diff --git a/CHANGELOG.md b/CHANGELOG.md index 398fb3c5..9e09a7cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ - ... +## 6.7.3 (unreleased) + +- GitHub Importer: fix import error with issues associated to a closed milestone. + ## 6.7.2 (2024-02-16) - Docker: DEBUG and LANGUAGE_CODE settings are customizable. diff --git a/taiga/importers/github/importer.py b/taiga/importers/github/importer.py index a6bdc19d..7a9ff27d 100644 --- a/taiga/importers/github/importer.py +++ b/taiga/importers/github/importer.py @@ -202,7 +202,7 @@ def _import_project_data(self, repo, options): import_service.create_memberships(options.get('users_bindings', {}), project, self._user, "github") - for milestone in self._client.get("/repos/{}/milestones".format(repo['full_name'])): + for milestone in self._client.get("/repos/{}/milestones".format(repo['full_name']), {"state": "all"}): taiga_milestone = Milestone.objects.create( name=milestone['title'], owner=users_bindings.get(milestone.get('creator', {}).get('id', None), self._user), @@ -240,11 +240,18 @@ def _import_user_stories_data(self, project, repo, options): if options.get('keep_external_reference', False): external_reference = ["github", issue['html_url']] + milestone = None + if issue['milestone']: + try: + milestone = project.milestones.get(name=issue['milestone']['title']) + except Milestone.DoesNotExist: + milestone = None + us = UserStory.objects.create( ref=issue['number'], project=project, owner=users_bindings.get(issue['user']['id'], self._user), - milestone=project.milestones.get(name=issue['milestone']['title']) if issue['milestone'] else None, + milestone=milestone, assigned_to=assigned_to, status=project.us_statuses.get(slug=issue['state']), kanban_order=issue['number'],