基于gitlab API刷新MR的commit的指定status

场景介绍

  • 自己部署的gitlab + Jenkins,并已经设置好联动(如何设置可以在网上很容易搜到)
  • 每个MergeRequest都可以触发多个Jenkins pipeline,pipeline结束后会将状态更新到gitlab这个MR上
  • 希望可以跳过pipeline运行,直接将指定的MR的指定pipeline状态刷新为success

实现

  • 需要获取下列信息,也就是变量赋值
    • GITLAB_URL:gitlab的url,包含前面的http://或者是https://
    • PROJECT_ID:gitlab上为该项目分配的编号(web上项目首页可以找到)
    • GITLAB_ACCESS_TOKEN:该项目Developer以上权限的用户的access_token
    • COMMIT_SHA:一般是MR的最后一次commit的id
    • STATUS_NAME:项目可能关联多个pipeline,每个pipeline对应一个status name,这里是确切的要更新状态的status_name
    • Linux环境下,安装curl
    • 运行下面的命令即可
curl -X POST \
-H "PRIVATE-TOKEN: ${GITLAB_ACCESS_TOKEN}" \
"${GITLAB_URL}/projects/api/v4/${PROJECT_ID}/statuses/${COMMIT_SHA}?state=success&name=${STATUS_NAME}"
  • 状态的值可以被置为:pending/running/success/failed/canceled/skipped
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值