コード例 #1
0
    def create_milestones(self, github_data):
        """
        Scan all issues and pull requests in a `github_data` dict from `self.load_data(...)`
        and Link them into a github milestone for that release
        """
        # Load repository data (is needed?)
        repo_name = github_data.get('name')
        github = Github(login_or_token=self.github_token).get_repo(f'{self.github_user}/{repo_name}')
        milestone_title = github_data.get('tag_to')
        milestone_num = self._find_milestone(github_data.get('name'), milestone_title)

        # Get or Create milestone
        if milestone_num == -1:
            milestone = github.create_milestone(milestone_title)
        else:
            milestone = github.get_milestone(milestone_num)

        # Assgin pull requesuts/issues to milestone
        for pr in github_data.get('pull_requests'):
            pull_request = pr.get('pull_request')
            pull_request.as_issue().edit(milestone=milestone)
            self.logger.info(f'PR-{pull_request.number}, added to milestone "{milestone.title}"')
            for issue in pr.get('linked_issues'):
                issue.edit(milestone=milestone)
                self.logger.info(f'Issue #{issue.number}, added to milestone "{milestone.title}"')