当前位置: 首页 > news >正文

基于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
http://www.lryc.cn/news/500030.html

相关文章:

  • 服务器数据恢复—LINUX下各文件系统删除/格式化的数据恢复可行性分析
  • Spark on Yarn安装配置,大数据技能竞赛(容器环境)
  • 遣其欲,而心自静 -- 33DAI
  • No.25 笔记 | 信息收集与Google语法的实践应用
  • GitLab基础环境部署:Ubuntu 22.04.5系统在线安装GitLab 17.5.2实操手册
  • SpringBoot3配置文件
  • 【机器学习】任务十二:循环神经网络
  • 【返璞归真】-切比雪夫不等式(Chebyshev‘s Inequality)
  • 【Django】在view中调用channel来主动进行websocket通信
  • 18.[极客大挑战 2019]BabySQL1
  • Python快速入门二:Python3 基础语法
  • 1-1 C语言链表
  • [0629].第29节:配置中心业务规则与动态刷新
  • mac: docker : Command not found解决
  • Django drf基于APIView 快速使用
  • 【MarsCode】每日一题数组 之 数字分组求偶数和
  • 解决:error: subprocess-exited-with-error 的问题
  • 使用腾讯混元(HunYuanVideo)视频模型FP8量化版本来生成绅士动画,模型体积30G,8G甜品卡可玩,2秒视频需要15分钟
  • 使用Ancona安装node,安装vue
  • 如何“安装Android SDK“?
  • 天童教育:提升孩子的语言表达能力
  • Node.js中JWT的token完整生命周期管理:从生成到销毁
  • Kotlin报错:lateinit property xxx has not been initialized
  • debian编译失败
  • flink-connector-mysql-cdc:03 mysql-cdc常见问题汇总
  • JSP技术发展现状
  • 浏览器同源策略、跨域、跨域请求,服务器处理没、跨域解决方案
  • flink-connector-mysql-cdc:02 mysql-cdc高级扩展
  • Couchbase 简介
  • 我们来学mysql -- 事务并发之幻读(原理篇)