Jenkins 多分支流水线: 如何创建用于 Jenkins 状态检查的 GitHub 应用

使用 Jenkins 多分支流水线时,您可以将状态检查与 GitHub 拉取请求集成。

以下是状态检查的示例

要实现这些类型的状态检查,您需要创建一个与 Jenkins 主实例集成的 GitHub 应用。

在本博客中,我们将介绍如何创建一个 GitHub 应用,以便在流水线中启用状态检查。

创建 GitHub 应用


要创建 GitHub 应用,请选择您的 GitHub 个人资料,然后转到“设置”,如下所示。

向下滚动并选择开发者设置 

 然后点击 New GitHub App 按钮创建一个新的 GitHub 应用 

您需要在配置中填写以下详细信息。

  1. GitHub 应用名称:此名称必须是唯一的。例如,jenkins-auth-app。请将其替换为所需的名称。
  2. 主页 URL:输入您的 Jenkins URL。
  3. Webhook URL:包含 webhook 路径的 Jenkins URL(http://3.107.8.66:8080/github-webhook/)

 

 

 

 

在“仓库权限”下,从下拉菜单中选择以下权限。

  1. 管理:只读
  2. 检查:读写
  3. 提交状态:读写
  4. 内容:只读(用于在 git fetch 期间读取 Jenkinsfile 和仓库内容)。
  5. 元数据:只读
  6. 拉取请求:只读

 

在“订阅事件”下,选择以下事件:

  1. 检查运行
  2. 检查套件
  3. 拉取请求
  4. 推送
  5. 代码库

 

 创建应用程序后,您将看到生成私钥的通知,如下所示。

单击生成私钥选项,然后单击生成私钥按钮,如下所示。

 

它会下载一个私钥。

现在,您需要使用以下命令将密钥转换为 Jenkins 可以使用的格式。将 key-in-your-downloads-folder.pem 替换为您下载的私钥。

ninjamac@ip-192-168-1-95 key % openssl pkcs8 -topk8 -inform PEM -outform PEM -in rockjenkinsgithubapp.2025-04-18.private-key.pem -out converted-github-app.pem -nocrypt 


我们需要将转换后的密钥添加到 Jenkins 凭证中。

安装 Github 应用


现在,在应用配置页面上,您将看到一个名为“安装应用”的选项,如下所示。点击该选项即可为所有仓库启用此应用。

 

您可以选择所需的全部或单个存储库,然后单击“安装”。

将私钥添加到 Jenkins 凭证


现在,我们需要将转换后的 PEM 密钥添加到 Jenkins 凭证中。

前往 Jenkins 主页 --> 管理 Jenkins --> 凭证。

在“凭据”下,选择全局选项。
然后,选择“添加凭据”选项以添加新凭据。
现在,您需要选择“类型”为“GitHub 应用”。

我们还需要 Github 应用 ID。您可以从 Github 应用配置中获取它,如下所示。

 

 在key字段中,添加我们之前转换好的converted-github-app.pem私有文件内容,然后点击Create按钮,如下图所示。

差不多就是这样了。

现在,您可以在多分支管道中使用此凭证来启用 PR 期间的检查。

提交PR验证Jenkins status

修改readme文件,然后commit到develop分支,然后创建PR到master分支。

这时github 会通过github app来通知Jenkins webhook,触发PR pipeline

从下面的示例中可以看到有一个状态检查已经成功,单还有一个状态还没有完成。 

我们还可以在github -repo上设置分支保护rule: 在合并之前启用状态检查

总结

通过安装github app,你在通过github创建一个拉取请求的时候,会通过Jenkins webhook触发Jenkins PR 流水线,Jenkins 会将流水线的状态上报给github,这样可以确保该PR请求在从 Jenkins 构建作业获取所需的状态检查通知之前不会合并,通过与保护分支规则结合,你可以确保分支被合并之前必须通过所有的状态检查,从而有效地保护分支。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/77447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型如何突破“知识盲区”?一场静悄悄的技术革命正在发生

大模型如何突破“知识盲区”?一场静悄悄的技术革命正在发生 凌晨三点,程序员李然盯着屏幕上的报错信息苦笑。他正在调试的智能客服系统,又一次把"北京今日体感温度"回答成了"建议穿羽绒服"。这不是代码错误,…

【SQL Server】数据探查工具1.0研发可行性方案

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 想抢先解锁数据自由的宝子,速速戳我!评论区蹲一波 “蹲蹲”,揪人唠唠你的超实用需求! 【SQL Server】数据探查工具1.0研发可行性方案…

Qt GUI 库总结

Qt GUI 库总结 Qt GUI 库(QtGui)是 Qt 框架中负责图形用户界面(GUI)开发的核心模块。本文将一步步详解 QtGui,从基础入门到高级应用,帮助你全面掌握其功能。以下内容包括环境配置、基本功能、核心特性及进…

如何在米尔-STM32MP257开发板上部署环境监测系统

本文将介绍基于米尔电子MYD-LD25X开发板(米尔基于STM35MP257开发板)的环境监测系统方案测试。 摘自优秀创作者-lugl4313820 一、前言 环境监测是当前很多场景需要的项目,刚好我正在论坛参与的一个项目:Thingy:91X 蜂窝物联网原型…

网络互连与互联网3

1.SMTP简单邮件传输协议,用于发送电子邮件,默认情况下是明文传输,没有加密机制。 SSL是一种安全协议,对电子邮件进行加密传输。 POP3主要用于接收电子邮件 IMAP用于接收电子邮件 2.采用存储-转发方式处理信号的设备是交换机 …

DICOM通讯(ACSE->DIMSE->Worklist)

DICOM 通讯协议中的 ACSE → DIMSE → Worklist 这条通讯链路。DICOM 通讯栈本身是一个多层的协议结构,就像 OSI 模型一样,逐层封装功能。 一、DICOM 通讯协议栈总体架构 DICOM 通讯使用 TCP/IP 建立连接,其上面封装了多个协议层次&#xf…

优化自旋锁的实现

在《C11实现一个自旋锁》介绍了分别使用TAS和CAS算法实现自旋锁的方案,以及它们的优缺点。TAS算法虽然实现简单,但是因为每次自旋时都要导致一场内存总线流量风暴,对全局系统影响很大,一般都要对它进行优化,以降低对全…

Excel 中让表格内容自适应列宽和行高

Excel 中让表格内容自适应列宽和行高 目录 Excel 中让表格内容自适应列宽和行高自适应列宽自适应行高在Excel中让表格内容自适应列宽和行高,可参考以下操作: 自适应列宽 方法一:手动调整 选中需要调整列宽的列(如果是整个表格,可点击表格左上角行号和列号交叉处的三角形全…

JWT令牌:实现安全会话跟踪与登录认证的利器

摘要:本文深入探讨了JWT令牌在实现会话跟踪和登录认证方面的应用,详细介绍了JWT令牌的概念、组成、生成与校验方法,以及在实际案例中如何通过JWT令牌进行会话跟踪和登录认证的具体实现步骤,为系统的安全认证机制提供了全面且深入的…

Mybtis和Mybatis-Plus区别

MyBatis 和 MyBatis-Plus 是 Java 中常用的持久层框架,MyBatis-Plus 是在 MyBatis 基础上增强的工具包,让开发更便捷、高效。下面是两者主要的区别: ✅ 核心区别总结: 特性MyBatisMyBatis-Plus配置复杂度需要手写大量 XML 或注解…

JavaScript 性能优化实战

一、代码执行效率优化 1. 减少全局变量的使用 全局变量在 JavaScript 中会挂载在全局对象(浏览器环境下是window,Node.js 环境下是global)上,频繁访问全局变量会增加作用域链的查找时间。 // 反例:使用全局变量 var globalVar = example; function someFunction() {con…

学习笔记十六——Rust Monad从头学

🧠 零基础也能懂的 Rust Monad:逐步拆解 三大定律通俗讲解 实战技巧 📣 第一部分:Monad 是什么? Monad 是一种“包值 链操作 保持结构”的代码模式,用来处理带上下文的值,并方便连续处理。 …

PL/SQL登录慢,程序连接Oracle 提示无法连接或无监听

PL/SQL登录慢,程序连接Oracle 提示无法连接或无监听 错误提示:ORA-12541: TNS: 无监听程序 的解决办法, 现象:PL/SQL登录慢,程序连接Oracle 提示无法连接或无监听 监听已经正常开起,但还是PL/SQL登录慢或…

Windows10,11账户管理,修改密码,创建帐户...

在这里,我们使用微软操作系统的一款工具:netplwiz 它可以非常便捷的管理用户账户. 一:修改密码(无需现在密码) 01修改注册表 运行命令:regedit 在地址栏输入: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Passwor…

电脑 BIOS 操作指南(Computer BIOS Operation Guide)

电脑 BIOS 操作指南 电脑的BIOS界面(应为“BIOS”)是一个固件界面,允许用户配置电脑的硬件设置。 进入BIOS后,你可以进行多种设置,具体包括: 1.启动配置 启动顺序:设置从哪个设备启动&#x…

iOS 冷启动时间监控:启动起点有哪些选择?

⏱️ iOS 冷启动时间监控:启动起点有哪些选择? 作者:侯仕奇 来源:sqi.io 在监控 iOS 冷启动性能时,一个关键问题是:如何精确记录 App 冷启动的开始时间? 本文将对不同的“冷启动起点”监控方式…

onlyoffice关闭JWT后依然报错如何解决?

onlyoffice关闭JWT后依然报错如何解决? 一、部署方式 我是以docker方式部署的,直接通过环境变量禁用了JWT,命令如下: docker run -d \--name onlyoffice-no-jwt \--restartalways \-p 8069:80 \-e JWT_ENABLEDfalse \onlyoffic…

rk3588 驱动开发(一)字符设备开发

3.字符设备驱动开发 3.1 什么是字符设备驱动 字符设备:就是一个个字节,按照字节流进行读写操作的设备,读写是按照先后顺序的。 举例子:IIC 按键 LED SPI LCD 等 Linux 应用程序调用驱动程序流程: Linux中驱动加载成功…

设计模式 --- 外观模式

外观模式是一种结构型设计模式,为复杂子系统提供​​统一的高层接口​​,通过定义一个外观类来​​简化客户端与子系统的交互​​,降低系统耦合度。这种模式隐藏了子系统的复杂性,将客户端与子系统的实现细节隔离开来,…

我的gittee仓库

日常代码: 日常代码提交https://gitee.com/xinxin-pingping/daily-code 有需要的宝子们可自行读取。