基于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

相关推荐
青木沐2 小时前
Jenkins介绍
运维·jenkins
只会copy的搬运工6 小时前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
测试杂货铺8 小时前
如何用postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·测试工具·职场和发展·jenkins·压力测试·postman
tingkeiii8 小时前
gitlab克隆仓库报错fatal: unable to access ‘仓库地址xxxxxxxx‘
gitlab
科马10 小时前
【Jenkins】持久化
java·运维·jenkins
编程、小哥哥13 小时前
在 Docker 中部署 Jenkins,并完成项目的构建和发布
servlet·docker·jenkins
dami_king13 小时前
项目开源能够带来什么?从中得到了什么?
开源·gitlab·github
_oP_i18 小时前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
coder_pig1 天前
📝小记:Ubuntu 部署 Jenkins 打包 Flutter APK
flutter·ubuntu·jenkins
月如琉璃1 天前
0.gitlab ubuntu20.04 部署问题解决
gitlab