List the milestones for a project or a group:

p_milestones = project.milestones.list()
g_milestones = group.milestones.list()

You can filter the list using the following parameters:

  • iid: unique ID of the milestone for the project
  • state: either active or closed
  • search: to search using a string
p_milestones = project.milestones.list(state='closed')
g_milestones = group.milestones.list(state='active')

Get a single milestone:

p_milestone = project.milestones.get(milestone_id)
g_milestone = group.milestones.get(milestone_id)

Create a milestone:

milestone = project.milestones.create({'title': '1.0'})

Edit a milestone:

milestone.description = 'v 1.0 release'

Change the state of a milestone (activate / close):

# close a milestone
milestone.state_event = 'close'

# activate a milestone
milestone.state_event = 'activate'

List the issues related to a milestone:

issues = milestone.issues()

List the merge requests related to a milestone:

merge_requests = milestone.merge_requests()