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.pswp.cn/bicheng/77447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77447.shtml
英文地址,請注明出處:http://en.pswp.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 有需要的寶子們可自行讀取。