需要将env变量从python脚本传递到gitlab ci管道。尝试过
responce = requests.post("https://gitlab.com/api/v4/projects/{project_id}/trigger/pipeline", data={'token': 'token', 'ref': 'branch', 'variables': [{'key': 'MR_ID', 'value': 'VALUE'}])
responce = requests.post("https://gitlab.com/api/v4/projects/{project_id}/trigger/pipeline", data={'token': 'token', 'ref': 'branch', {variables': [{'key': 'MR_ID', 'value': 'VALUE'}]})
一直都在获取{“ error”:“变量无效”}。
文档内容如下:https://docs.gitlab.com/ee/api/pipelines.html#create-a-new-pipeline
有人可以提供真正有效的python示例吗?
答案 0 :(得分:0)
似乎您误解了data
中的requests.post
参数。如果您查看the docs,就会发现data
的信息将在体内传递。
您要实现gitlab API的是请求的params
参数。
params
会将URL中的data
编码为查询参数,如下所示:
requests.post("https://gitlab.example.com/api/v4/projects/YOUR_PROJECT_ID/pipeline", params={"MR_ID": "VALUE"});
因此,您必须将variables
放在params
参数中,并将data
中的其他信息放在正确的位置(例如标头中的令牌等)
答案 1 :(得分:0)
您可以通过以下方式发送变量:
import requests
url = "https://gitlab.com/api/v4/projects/{project_id}/trigger/pipeline"
data = {'token': 'token', 'ref': 'branch', 'variables[MR_ID]': 'VALUE'}
response = requests.posts(url, data=data}