sqr*_*sqr 6 pipeline gitlab gitlab-ci
我计划在 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 )
Run Code Online (Sandbox Code Playgroud)
这假设您已经创建了一个名为 的屏蔽变量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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4406 次 |
| 最近记录: |