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

相关推荐
半梦半醒*1 小时前
搭建Jenkins
linux·运维·centos·tomcat·jenkins·运维开发
颇有几分姿色1 小时前
Git将本地项目推送到GitLab
git·gitlab
DevOps探索之旅2 小时前
国产开源代码管理工具 GitPuk 安装+入门全流程解析
gitlab·tiklab·gitpuk·国产开源代码管理工具·安装与入门教程
半梦半醒*7 小时前
gitlab部署
linux·运维·centos·ssh·gitlab·jenkins
最好束手就擒8 小时前
Elasticsearch批量写入50万数据
大数据·elasticsearch·jenkins
dyj0959 小时前
【Devops-Jenkins自动将Java Maven工程编译成jar、并打成Docker镜像,并上传Harbor】
java·jenkins·devops
dalianwawatou1 天前
GitLab 代码基础操作清单
大数据·elasticsearch·gitlab
久曲健的测试窝2 天前
Jenkins Share Library教程 —— 开发入门
运维·servlet·jenkins
xxxxxxllllllshi2 天前
Java中Elasticsearch完全指南:从零基础到实战应用
java·开发语言·elasticsearch·面试·职场和发展·jenkins
黑马金牌编程3 天前
Jenkins的Linux与window部署方式
linux·运维·windows·jenkins·持续集成·cicd