我计划针对CI管道中的请求请求运行一些验证,并且基于验证结果,我希望自动创建一个问题并将其分配给开发人员。
这是可以在GitLab管道中实现的吗?
谢谢!
如果您只需要创建一个问题,请使用cURL
命令。但是,如果您需要更复杂的逻辑,则python-gitlab库可能是您军械库中的有用工具。
要创建项目问题:
import gitlab
import os
gl = gitlab.Gitlab(os.environ['CI_SERVER_URL'], private_token=os.environ['PRIVATE_TOKEN'])
project = gl.projects.get(os.environ['CI_PROJECT_ID'])
issue_details = {
'title': f'Validation failed in {os.environ["CI_PROJECT_NAME"]}',
'description': f'Pipeline: {os.environ["CI_PIPELINE_URL"]}',
'assignee_ids': [111, 222]
}
issue = project.issues.create(issue_details )
假设您已经创建了一个名为的屏蔽变量PRIVATE_TOKEN
。其他变量是预定义变量。
您可以将上述代码和其他逻辑添加到Python脚本中,并按如下方式调用它gitlab-ci.yml
:
# Use whatever image you need, but make sure it has Python installed
image: python:3.7
...
handle-failure:
when: on_failure
before_script:
- pip install -r ./cicd/gitlab/requirements.txt
script:
- python -m ./cicd/gitlab/create_issue.py
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句