gitlab 通过api设置某个commit对应的流水线状态 会创建一个external job,导致无法成功修改流水线的状态
背景
当mr流水线跑失败后,客户会使用api来修改gitlab的commit的pipeline 状态,在16.9之前用着都是正常的,但是升级到16.11之后,通过api修改的话会创建出来一个external类型的job,但是流水线的状态并没有更改过来,导致mr无法合并。
升级前
通过api修改流水线状态为success
curl --location --request POST 'https://jihulab.com/api/v4/projects/194535/statuses/7380bc3d3328bc1367e09c5f9f1f41e0e43df09d?state=success&ref=refs%2Fmerge-requests%2F2%2Fhead&pipeline_id=2674685' --header 'Authorization: Bearer xxxxxx'
升级后
通过api修改流水线状态为success
curl --location --request POST 'https://jihulab.com/api/v4/projects/194535/statuses/67e5a29da57376f32c373ced95b8728b5ab885a1?state=success&ref=dev-1&pipeline_id=2958380' --header 'PRIVATE-TOKEN: xxxxxx'
流水线状态修改成功,mr pipeline中多了一个external类型的default job,但是流水线的状态依然是失败的导致mr无法合并
这个是bug么还是官方预期的行为,目前来看改动还是很难让客户接受。
由 王凯旋 编辑于