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

基于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.kler.cn/a/428822.html

相关文章:

  • 通过Ukey或者OTP动态口令实现windows安全登录
  • [gdb调试] gdb调试基础实践gdb指令汇总
  • imbinarize函数用法详解与示例
  • Codeforces Round 997 (Div. 2) A~C
  • 5、docker-compose和docker-harbor
  • Nginx:通过upstream进行代理转发
  • 【Unity高级】如何动态调整物体透明度
  • Linux-Regmap实验
  • Go database/sql包源码分析
  • ShardingSphere 数据库中间件
  • k8s 为什么需要Pod?
  • 高级java每日一道面试题-2024年12月05日-JVM篇-什么是TLAB?
  • 计算机键盘的演变 | 键盘键名称及其功能 | 键盘指法
  • 软件无线电安全之GNU Radio基础(下)
  • 英文论文翻译成中文,怎样翻译更地道?
  • 【开源免费】基于Vue和SpringBoot的高校学科竞赛平台(附论文)
  • 普通算法——一维前缀和
  • k8s-Informer概要解析(2)
  • Mybatis-plus 多租户插件
  • 如何使用Apache HttpClient来执行GET、POST、PUT和DELETE请求
  • 【JAVA】Java高级:数据库监控与调优:SQL调优与执行计划的分析
  • MySQL(四)--索引
  • QNX系统的编译过程
  • 【uniapp】swiper切换时,v-for重新渲染页面导致文字在视觉上的拉扯问题
  • 40分钟学 Go 语言高并发:【实战】分布式缓存系统
  • Go学习:变量