From 8ccbd9e9b29ffb4fd1d1f1645786fa546661b4ee Mon Sep 17 00:00:00 2001 From: Christopher Bohn <bohn@unl.edu> Date: Mon, 27 Apr 2020 12:20:00 -0500 Subject: [PATCH] added Milestones to gitlab api --- api/gitlab_classes.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/api/gitlab_classes.py b/api/gitlab_classes.py index 8d213be..38368a5 100644 --- a/api/gitlab_classes.py +++ b/api/gitlab_classes.py @@ -2,7 +2,7 @@ from datetime import datetime from typing import ClassVar, Dict, Iterable, List, Optional, Set, Union from gitlab import Gitlab, MAINTAINER_ACCESS -from gitlab.v4.objects import Issue, Project, ProjectCommit, User +from gitlab.v4.objects import Issue, Project, ProjectCommit, ProjectMilestone, User from config import Config @@ -250,6 +250,24 @@ class GitlabCommit: # project_id +class GitlabMilestone: + gitlab_milestone: ProjectMilestone + + def __init__(self, milestone: ProjectMilestone): + super().__init__() + self.gitlab_milestone = milestone + + def get_issues(self) -> List[GitlabIssue]: + """ + :return: List of Issue objects representing project's issues + """ + gitlab_issues: Iterable[Issue] = self.gitlab_milestone.issues() + issues: List[GitlabIssue] = [] + for issue in gitlab_issues: + issues.append(GitlabIssue(issue)) + return issues + + class GitlabProject: git_project: Project @@ -390,6 +408,16 @@ class GitlabProject: def add_user_as_maintainer(self, user: GitlabUser) -> None: self.git_project.members.create({'user_id': user.get_user_id(), 'access_level': MAINTAINER_ACCESS}) + def get_milestones(self) -> List[GitlabMilestone]: + """ + :return: List of Milestone objects representing the project's milestones + """ + gitlab_milestones: Iterable[ProjectMilestone] = self.git_project.milestones.list() + milestones: List[GitlabMilestone] = [] + for milestone in gitlab_milestones: + milestones.append(GitlabMilestone(milestone)) + return milestones + def get_issues(self) -> List[GitlabIssue]: """ :return: List of Issue objects representing project's issues, sorted by creation date -- GitLab