问题描述
我正在尝试阅读没有标签 resolved 的未解决问题标题列表。为此,我指的是 API 文档 (https://docs.gitlab.com/ee/api/issues.html),其中提到了 NOT 但我无法让 NOT 工作。
到目前为止,我已经尝试使用以下 python 脚本来阅读问题列表,现在我无法找到如何使用 NOT 过滤没有 resolved 标签的问题。
import gitlab
# private token or personal token authentication
gl = gitlab.Gitlab('https://example.com',private_token='XXXYYYZZZ')
# make an API request to create the gl.user object. This is mandatory if you
# use the username/password authentication.
gl.auth()
# list all the issues
issues = gl.issues.list(all=True,scope='all',state='opened',assignee_username='username')
for issue in issues:
print(issue.title)
解决方法
从 Gitlab issues api documentation 开始,not
的类型为 Hash
。这是一种特殊类型的文档 here
例如,要排除标签 Category:DAST
和 devops::secure
,并排除里程碑 13.11
,您可以使用以下参数:
not[labels]=Category:DAST,devops::secure
not[milestone]=13.11
使用 gitlab python 模块,您需要通过添加更多关键字参数来传递一些额外的参数:
import gitlab
gl = gitlab.Gitlab('https://gitlab.com')
extra_params = {
'not[labels]': "Category:DAST,devops::secure","not[milestone]": "13.11"
}
issues = gl.issues.list(all=True,scope='all',state='opened',assignee_username='derekferguson',**extra_params)
for issue in issues:
print(issue.title)