如何给极狐GitLab 配置 webhook,自动触发 Pipeline?

2024-02-04 10:36

本文主要是介绍如何给极狐GitLab 配置 webhook,自动触发 Pipeline?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文根据工作中的痛点来举例介绍如何使用极狐 GitLab,让你的日常工作更高效。

还在只使用极狐 GitLab 存放代码? 那你就 OUT 啦。

赶紧看看这篇文章,让你的日常工作更高效。

使用 Gitlab Webhook 触发 Pipeline,打通工作消息通知

关于 A/B 同学的问题,我想可以使用 Webhook 触发 Pipeline,打通工作消息通知的功能来解决他们的烦恼。

众所周知,极狐采用的是远程办公的工作模式,那么肯定有许多需要协同处理的工作,这些工作当然是采用极狐 GitLab 自带的 issue 提交到协同方。

关于需要 SRE 协同处理的工作,目前是在 Teamwork 中创建 issue,里面有模板,大家可以根据自己的需求填写。

紧急‼️或一般事件也无需担心该 issue assign 给谁,因为对于 SRE 来说,他们有on-call 的工作流程,所以我们会由 on-call 的同事来进行响应和处理。

如何配置

获取触发器令牌

首先需要选择一个 Project,新建或者现有项目都行。根据下面步骤获取 Webhook 触发令牌:

设置 -> CI/CD -> 流水线触发器 -> 添加触发器 -> 复制触发令牌

: 在上述配置页面也会有使用 webhook 配置的 url ,可直接复制替换令牌使用。

配置 webhook

设置 -> Webhooks -> 选择想要触发 Webhook 的事件进行勾选。

如当前我们需要的是 当有新的 issue创建时触发该 pipeline。

其中:URL: 为上述获取 trigger 令牌时 复制的 url

整个通知的流水线的实现

  1. 我们可以用自己的喜好和擅长的语言写脚本来完成以下功能:
  • 获取 Webhook 事件请求参数,所有的请求参数都会以文件类型的 CI/CD Variable 形式保存在 CI Job 中,可以使用 cat $TRIGGER_PAYLOAD 或者运行类似的命令来查看。
  • 获取当时的 ON-CALLER;
  • 自定义消息内容,发送消息至 Slack。
  1. CI Job 文件配置,设置只有trigger 时才执行此 Job
notify-sre:stage: notify-srescript:- chmod +x scripts/***.py- export TRIGGER_PAYLOAD=`cat $TRIGGER_PAYLOAD`- python3 scripts/***.pyonly:refs:- triggersvariables:- $ISSUE_WEBHOOK == "true"

通知消息内容如图

这样,即解决了 A 同学的没法及时响应,也解决了 B 同学的不知道 assign 给谁的问题。

使用极狐 GitLab 计划流水线,打通工作消息通知

C/D 同学的问题,既然是机械式的工作,那我们可以设置定时任务去触发流水线来完成需要手动处理的工作。

  • SRE 的工作内容也是按照 milestone 来管理日常的工作,周期也是固定的,Manager 可能会忘记 milestone 快结束了,但是程序不会忘记;
  • 作为 SRE,每周都会进行升级,但是我们不能都由一个人来操作创建 issue 并完成部署升级,怎么实现自动排班并创建issue。

如何实现

  1. 设置计划流水线:

  • milestone 结束提醒设置计划流水线触发策略:
    • 变量:$NOTIFY_MILESTONE_END_ISSUE == “1”
    • 时间:
  • 首次提醒: 14号 早上10点 0 10 14 * *
  • 最后提醒: 17 号 18 点最后再友情提示一下:0 18 17 * *
  • 自动化部署saas的 issue创建和提醒:
  • 变量:$NOTIFY_RELEASE == “1”
  • 时间:
  • 每周四上午11点 0 11 * * 4
  1. 编写 CI yml
  • 设置 CI_PIPELINE_SOURCE 为 schedule
  • 特定 variable 执行特定的 job
image: ****:1.0stages:- notify_sremilestone_issue:stage: notify_srescript:- chmod +x scripts/1***.py- python3 scripts/1.pyrules:- if: $CI_PIPELINE_SOURCE == "schedule" && $NOTIFY_MILESTONE_END_ISSUE == "1"release-saas:stage: notify_srescript:- chmod +x scripts/2.py- python3 scripts/2.pyrules:- if: $CI_PIPELINE_SOURCE == "schedule" && $NOTIFY_RELEASE == "1"
  1. 整个通知的流水线的实现,我们可以用自己的喜好和擅长的语言写脚本来完成以下功能:
  • milestone 结束提醒:
  • 获取当前 milestone;
  • 统计所有 sre 的成员的 issue 个数;
  • 自定义消息发送到slack;
  • auto release issue 提醒
  • 获取当时的on-caller;
  • 获取创建 auto release 的issue 模版
  • 创建issue,assign给on-caller
  • 自定义消息内容发送到 slack,艾特 on-caller
  1. Slack 通知消息如下:
  • milestone 结束消息通知:

auto release 消息通知:

以上只是使用极狐 GitLab 实现的一小部分自动化的功能,极狐 GitLab 给开发者或运维人员都提供了非常大的空间来实现各自需要的自动化工作流,只需掌握一些简单的编程技巧就能实现丰富多彩的结果。

关注【极狐GitLab】获取更多 DevOps 行业最佳实践。

这篇关于如何给极狐GitLab 配置 webhook,自动触发 Pipeline?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677197

相关文章

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的