From 0bdd26ce12d750f321bbb0eee5dba768672f0ea7 Mon Sep 17 00:00:00 2001 From: pablohashescobar <118773738+pablohashescobar@users.noreply.github.com> Date: Tue, 27 Jun 2023 22:54:52 +0530 Subject: [PATCH 1/2] fix: github importer issue (#1414) --- apiserver/plane/api/views/importer.py | 24 +++++++++++++++++--- apiserver/plane/utils/integrations/github.py | 2 +- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/apiserver/plane/api/views/importer.py b/apiserver/plane/api/views/importer.py index 28d490740..63e2d38a1 100644 --- a/apiserver/plane/api/views/importer.py +++ b/apiserver/plane/api/views/importer.py @@ -42,16 +42,34 @@ from plane.utils.html_processor import strip_tags class ServiceIssueImportSummaryEndpoint(BaseAPIView): + def get(self, request, slug, service): try: if service == "github": + owner = request.GET.get("owner", False) + repo = request.GET.get("repo", False) + + if not owner or not repo: + return Response( + {"error": "Owner and repo are required"}, + status=status.HTTP_400_BAD_REQUEST, + ) + workspace_integration = WorkspaceIntegration.objects.get( integration__provider="github", workspace__slug=slug ) - access_tokens_url = workspace_integration.metadata["access_tokens_url"] - owner = request.GET.get("owner") - repo = request.GET.get("repo") + access_tokens_url = workspace_integration.metadata.get( + "access_tokens_url", False + ) + + if not access_tokens_url: + return Response( + { + "error": "There was an error during the installation of the GitHub app. To resolve this issue, we recommend reinstalling the GitHub app." + }, + status=status.HTTP_400_BAD_REQUEST, + ) issue_count, labels, collaborators = get_github_repo_details( access_tokens_url, owner, repo diff --git a/apiserver/plane/utils/integrations/github.py b/apiserver/plane/utils/integrations/github.py index d9aecece1..45cb5925a 100644 --- a/apiserver/plane/utils/integrations/github.py +++ b/apiserver/plane/utils/integrations/github.py @@ -113,7 +113,7 @@ def get_github_repo_details(access_tokens_url, owner, repo): last_url = labels_response.links.get("last").get("url") parsed_url = urlparse(last_url) last_page_value = parse_qs(parsed_url.query)["page"][0] - total_labels = total_labels + 100 * (last_page_value - 1) + total_labels = total_labels + 100 * (int(last_page_value) - 1) # Get labels in last page last_page_labels = requests.get(last_url, headers=headers).json() From ed0106200e6a6bb6518d83435c2cafa1ae8234bf Mon Sep 17 00:00:00 2001 From: pablohashescobar <118773738+pablohashescobar@users.noreply.github.com> Date: Wed, 28 Jun 2023 11:06:52 +0530 Subject: [PATCH 2/2] dev: migrations for removal of timelineissues and shortcut (#1417) --- .../db/migrations/0034_auto_20230628_1046.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 apiserver/plane/db/migrations/0034_auto_20230628_1046.py diff --git a/apiserver/plane/db/migrations/0034_auto_20230628_1046.py b/apiserver/plane/db/migrations/0034_auto_20230628_1046.py new file mode 100644 index 000000000..cdd722f59 --- /dev/null +++ b/apiserver/plane/db/migrations/0034_auto_20230628_1046.py @@ -0,0 +1,39 @@ +# Generated by Django 3.2.19 on 2023-06-28 05:16 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('db', '0033_auto_20230618_2125'), + ] + + operations = [ + migrations.RemoveField( + model_name='timelineissue', + name='created_by', + ), + migrations.RemoveField( + model_name='timelineissue', + name='issue', + ), + migrations.RemoveField( + model_name='timelineissue', + name='project', + ), + migrations.RemoveField( + model_name='timelineissue', + name='updated_by', + ), + migrations.RemoveField( + model_name='timelineissue', + name='workspace', + ), + migrations.DeleteModel( + name='Shortcut', + ), + migrations.DeleteModel( + name='TimelineIssue', + ), + ]