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

相关推荐
任我坤18 小时前
搭建Jenkins服务-2025更新
运维·servlet·jenkins
bearpping2 天前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
代码星辰2 天前
Jenkins——安装与使用
运维·ci/cd·jenkins
带娃的IT创业者2 天前
WeClaw 日志分析实战:如何从海量日志中快速定位根因?
运维·python·websocket·jenkins·fastapi·架构设计·实时通信
1candobetter3 天前
GitLab 项目创建与分支管理全流程
gitlab
林鸿群4 天前
Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)
linux·ubuntu·gitlab·私有部署·代码托管·ubuntu 26.04·omnibus
常利兵4 天前
Spring Boot 邂逅Elasticsearch:打造搜索“光速引擎”
spring boot·elasticsearch·jenkins
耀耀_很无聊4 天前
09_Jenkins安装JDK环境
java·运维·jenkins
深念Y5 天前
Elasticsearch 8.11 + IK 分词器安装踩坑记录
大数据·数据库·elasticsearch·中文分词·jenkins·ki分词器