Table of Contents
gitlab package)gitlab command)List the issues:
issues=gl.issues.list()
Use thestate andlabel parameters to filter the results. Use theorder_by andsort attributes to sort the results:
open_issues=gl.issues.list(state='opened')closed_issues=gl.issues.list(state='closed')tagged_issues=gl.issues.list(labels=['foo','bar'])
Note
It is not possible to edit or delete Issue objects. You need to create aProjectIssue object to perform changes:
issue=gl.issues.list()[0]project=gl.projects.get(issue.project_id,lazy=True)editable_issue=project.issues.get(issue.iid,lazy=True)editable_issue.title=updated_titleeditable_issue.save()
List the group issues:
issues=group.issues.list()# Filter using the state, labels and milestone parametersissues=group.issues.list(milestone='1.0',state='opened')# Order using the order_by and sort parametersissues=group.issues.list(order_by='created_at',sort='desc')
Note
It is not possible to edit or delete GroupIssue objects. You need to createa ProjectIssue object to perform changes:
issue=group.issues.list()[0]project=gl.projects.get(issue.project_id,lazy=True)editable_issue=project.issues.get(issue.iid,lazy=True)editable_issue.title=updated_titleeditable_issue.save()
List the project issues:
issues=project.issues.list()# Filter using the state, labels and milestone parametersissues=project.issues.list(milestone='1.0',state='opened')# Order using the order_by and sort parametersissues=project.issues.list(order_by='created_at',sort='desc')
Get a project issue:
issue=project.issues.get(issue_iid)
Create a new issue:
issue=project.issues.create({'title':'I have a bug','description':'Something useful here.'})
Update an issue:
issue.labels=['foo','bar']issue.save()
Close / reopen an issue:
# close an issueissue.state_event='close'issue.save()# reopen itissue.state_event='reopen'issue.save()
Delete an issue (admin or project owner only):
project.issues.delete(issue_id)# prissue.delete()
Subscribe / unsubscribe from an issue:
issue.subscribe()issue.unsubscribe()
Move an issue to another project:
issue.move(other_project_id)
Make an issue as todo:
issue.todo()
Get time tracking stats:
issue.time_stats()
On recent versions of Gitlab the time stats are also returned as an issueobject attribute:
issue=project.issue.get(iid)print(issue.attributes['time_stats'])
Set a time estimate for an issue:
issue.time_estimate('3h30m')
Reset a time estimate for an issue:
issue.reset_time_estimate()
Add spent time for an issue:
issue.add_spent_time('3h30m')
Reset spent time for an issue:
issue.reset_spent_time()
Get user agent detail for the issue (admin only):
detail=issue.user_agent_detail()
Get the list of merge requests that will close an issue when merged:
mrs=issue.closed_by()
Get the merge requests related to an issue:
mrs=issue.related_merge_requests()
Get the list of participants:
users=issue.participants()
List the issues linked toi1:
links=i1.links.list()
Link issuei1 to issuei2:
data={'target_project_id':i2.project_id,'target_issue_iid':i2.iid}src_issue,dest_issue=i1.links.create(data)
Note
Thecreate() method returns the source and destinationProjectIssueobjects, not aProjectIssueLink object.
Delete a link:
i1.links.delete(issue_link_id)
v4 API:
gitlab.issues_statistics
GitLab API:https://docs.gitlab.com/ce/api/issues_statistics.htm
Get statistics of all issues created by the current user:
statistics=gl.issues_statistics.get()
Get statistics of all issues the user has access to:
statistics=gl.issues_statistics.get(scope='all')
Get statistics of issues for the user withfoobar in thetitle or thedescription:
statistics=gl.issues_statistics.get(search='foobar')
Get statistics of all issues in a group:
statistics=group.issues_statistics.get()
Get statistics of issues in a group withfoobar in thetitle or thedescription:
statistics=group.issues_statistics.get(search='foobar')
Get statistics of all issues in a project:
statistics=project.issues_statistics.get()
Get statistics of issues in a project withfoobar in thetitle or thedescription:
statistics=project.issues_statistics.get(search='foobar')