From 22e09dce8bd5abc39113cea3b51a7e29847cf579 Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Sun, 23 Feb 2025 23:51:32 -0500 Subject: [PATCH 1/3] Show GitHub issue milestones on the repo detail page Related to #3701 --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/OWASP-BLT/BLT/issues/3701?shareId=XXXX-XXXX-XXXX-XXXX). --- website/templates/projects/repo_detail.html | 38 +++++++++++++++++++++ website/views/repo.py | 17 ++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/website/templates/projects/repo_detail.html b/website/templates/projects/repo_detail.html index c87962d72..febbab221 100644 --- a/website/templates/projects/repo_detail.html +++ b/website/templates/projects/repo_detail.html @@ -693,6 +693,44 @@

+ +
+
+
+

+ + + + Milestones +

+
+
+ {% if milestones %} + {% for milestone in milestones %} +
+

{{ milestone.title }}

+

{{ milestone.description }}

+
+
+ Due: {{ milestone.due_on|date:"M d, Y" }} +
+
+ {{ milestone.open_issues }} open / {{ milestone.closed_issues }} closed +
+
+ {{ milestone.closed_issues|divisibleby:milestone.open_issues|floatformat:2 }}% complete +
+
+
+ {% endfor %} + {% else %} +
No milestones available
+ {% endif %} +
+
+
diff --git a/website/views/repo.py b/website/views/repo.py index e3b788a56..da751e1ae 100644 --- a/website/views/repo.py +++ b/website/views/repo.py @@ -143,9 +143,24 @@ def post(self, request, *args, **kwargs): # Handle other section refreshes... return JsonResponse({"status": "error", "message": "Invalid section"}, status=400) + def fetch_github_milestones(self, repo): + """ + Fetch milestones from the GitHub API for the given repository. + """ + milestones_url = f"https://api.github.com/repos/{repo.repo_url.split('github.com/')[-1]}/milestones" + headers = { + "Accept": "application/vnd.github.v3+json", + "Authorization": f"token {settings.GITHUB_TOKEN}", + } + response = requests.get(milestones_url, headers=headers) + if response.status_code == 200: + return response.json() + return [] + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - # ... existing context data ... + repo = self.get_object() + context["milestones"] = self.fetch_github_milestones(repo) return context From dee8a9d13cedb0bf825ff7bebe1a3cfc771b69fa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Feb 2025 05:02:00 +0000 Subject: [PATCH 2/3] Apply pre-commit fixes --- website/templates/projects/repo_detail.html | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/website/templates/projects/repo_detail.html b/website/templates/projects/repo_detail.html index febbab221..9581f18ef 100644 --- a/website/templates/projects/repo_detail.html +++ b/website/templates/projects/repo_detail.html @@ -713,12 +713,8 @@

{{ milestone.title }}

{{ milestone.description }}

-
- Due: {{ milestone.due_on|date:"M d, Y" }} -
-
- {{ milestone.open_issues }} open / {{ milestone.closed_issues }} closed -
+
Due: {{ milestone.due_on|date:"M d, Y" }}
+
{{ milestone.open_issues }} open / {{ milestone.closed_issues }} closed
{{ milestone.closed_issues|divisibleby:milestone.open_issues|floatformat:2 }}% complete
From 85bd737750cc8ff5ea3bc6112c01cee7edc62228 Mon Sep 17 00:00:00 2001 From: DonnieBLT <128622481+DonnieBLT@users.noreply.github.com> Date: Mon, 24 Feb 2025 00:03:34 -0500 Subject: [PATCH 3/3] Update repo_detail.html --- website/templates/projects/repo_detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/templates/projects/repo_detail.html b/website/templates/projects/repo_detail.html index 9581f18ef..39316caa9 100644 --- a/website/templates/projects/repo_detail.html +++ b/website/templates/projects/repo_detail.html @@ -693,7 +693,7 @@

- +