極狐GitLab 17.3 重點功能解讀 & 升級指南

极狐GitLab發表於2024-09-09

沿襲我們的月度釋出傳統,極狐GitLab 釋出了 17.2 版本,該版本帶來了從極狐GitLab UI 上刪除 Pod、從本地終端輕鬆連線到叢集以及為單個專案新增多個合規框架等幾十個重點功能的改進。下面是部分重點功能的詳細解讀。

關於極狐GitLab 的安裝升級,可以檢視官方指導文件。

極狐GitLab 是 GitLab 在中國的發行版,對於中國使用者使用體驗更友好。關於安裝&升級指南可以檢視官網文件

  • 17.3 容器映象
registry.gitlab.cn/omnibus/gitlab-jh:17.3.0-jh.0
  • 17.3 Helm Chart
helm search repo gitlab-jh
NAME                       CHART VERSION    APP VERSION    
gitlab-jh/gitlab           8.3.0            v17.3.0        
gitlab-jh/gitlab-runner    0.68.0           17.3.0         

17.3 重要改進

從極狐GitLab UI 上刪除 Pod

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

你是否曾經遇到過需要重啟或者刪除失敗的 Kubernetes pod?直到現在,你都不得不離開極狐GitLab,使用其他工具來連線叢集,然後停止 pod 並等待新 pod 的生成。現在,極狐GitLab 內建了一個功能,可以用來刪除 pod,這樣你就可以很絲滑地對 Kubernetes 叢集進行故障排查了。

Kubernetes 儀表盤能夠列出 Kubernetes 叢集或者名稱空間下的 pod,然後你可以直接在儀表盤上刪除 pod。

從本地終端輕鬆連線到叢集

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

你想使用本地終端或某個 Kubernetes GUI 工具來連線 Kubernetes 叢集嗎?極狐GitLab 允許你透過使用 Kubernetes agent 中的使用者訪問功能來連線到本地終端。之前,想要查詢命令的時候,就不得不跳出極狐GitLab 去查閱文件。現在,極狐GitLab 在 UI 上提供了連線命令。極狐GitLab 甚至能夠幫對使用者訪問進行配置。

如果要獲取連線命令,你可以前往 Kubernetes 儀表盤或者 agent 列表去檢視。

為單個專案新增多個合規框架

基礎版 專業版 旗艦版
SaaS Y Y
私有化部署 Y Y

你可以建立一個合規框架,以識別你的專案是否具有特定的合規要求或需要額外的監管。合規框架可以對其應用的專案強制執行合規的流水線配置。

之前,單個合規框架只能應用到單個專案上,這就難以將多個合規需求應用到單個專案上。現在,我們為使用者提供了可以將多個合規框架應用到單個專案上的能力。這將允許使用者在給定時間內將多個不同的合規框架應用到單個專案上。在此版本中,你可以為單個專案應用多個合規框架。該專案隨後被設定為滿足每個框架的合規要求。

17.3 的其他改進

使用命令皮膚找到群組設定

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

在極狐GitLab 17.2 中,我們新增了一個功能:透過使用命令皮膚來查詢群組設定。這讓找到群組設定變得簡單了很多。

在極狐GitLab 17.3 中,你依舊可以從命令皮膚來查詢群組設定。透過訪問群組,選擇搜尋或轉到,然後輸入命令模式 >,接著輸入設定部分的名稱,比如合併請求批准。選擇某個結果就可以直接跳轉到設定本身了。

透過使用 API 對整合的繼承設定進行切換

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

直到現在,你都只能透過 UI 來控制一個專案是繼承了整合設定,還是使用它自身的設定。

在這個里程碑中,我們為所有的整合 API 新增了一個 user_inherited_settings的引數。這個引數允許你在使用 API 的時候來對專案進行設定,以決定專案是否要繼承整合設定。如果不設定的話,預設的行為是 false(也就是使用專案自身的設定)。

將合併請求新增到任務中

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

議題(Issue)通常被拆解為工程師能更能容易實現的步驟——任務(Task)。在之前的版本中,是沒有辦法把合併請求連線到任務實現中的。現在,你可以使用在合併請求描述中引用議題時相同的關閉模式將合併請求與任務關聯起來。從任務的角度看,連線到的合併請求可以在側邊欄中看到。如果你的專案開啟了自動關閉設定,當關聯的合併請求被合併到預設分支以後,該任務就會被自動關閉。

報告任務、目標和關鍵結果條目的濫用情況

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

現在,你可以更容易地從操作選單中對工作條目的濫用進行舉報了,就像你在傳統的議題中使用的那樣。這個新功能透過允許你快速標記不適當的內容,幫助你保持工作空間的清潔和安全,確保為你的團隊提供更好的協作環境。

為 OKR 和任務設定父項

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

現在,你可以輕鬆地直接從子記錄更新OKR(目標與關鍵結果)和任務的父項分配,消除了來回導航的需要。這是朝著我們提高工作流程效率目標邁出的重要一步。

改進了對 JetBrains IDE TLS 的支援

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

為了在敏感環境中實現更嚴格的安全,現在你可以直接在你的 JetBrains IDE 配置中自定義 HTTP 代理選項了,包括客戶端證書和證書頒發機構。

在 CI/CD 目錄、元件輸入詳情中增加了描述和型別

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

在 CI/CD 目錄中,一個元件的詳情頁面提供了關於此元件使用的有用資訊。在這個版本中,我們在顯示可用輸入資訊的表格中增加了兩列。新增的描述和型別列使得理解一個輸入用於什麼目的以及預期的值的型別變得容易得多。

極狐GitLab Runner 17.3

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

我們還發布了極狐GitLab Runner 17.3。極狐GitLab Runner 是一個輕量級、高擴充套件的代理,用來執行你的 CI/CD 作業並且將結果傳送回極狐GitLab 例項。極狐GitLab Runner 和極狐GitLab CI/CD 繫結在一起,而極狐GitLab CI/CD 是一個開源且內建在極狐GitLab 裡面的服務。

修復的缺陷:

  • 在 Kubernetes 執行器中,作業在被取消時似乎被掛起
  • 當未指定時,日誌級別不會更新
  • 當使用 Kubernetes 執行器時,Job 日誌新增了額外的換行符

對於完整的變更,可檢視極狐GitLab Runner 的變更日誌。

合併列車的視覺化

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

現在,你可以對合並列車進行視覺化了,以便更好的獲得流水線中合併請求的順序和狀態。有了此功能,你就能更早地發現衝突,然後在合併列車中的合併請求上直接進行操作,最終將阻塞預設分支的風險降到最小。

對於 Kubernetes 1.30 的支援

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

此版本增加了對 Kubernetes 1.30 版本的支援(該版本釋出於 2024年4月)。如果你在 Kubernetes 上部署應用,現在你就可以將你連線的叢集升級到最新版本了,以便享受所有新的功能。

更多關於 Kubernetes 的支援策略,你可以查閱我們對於 Kubernetes 版本的支援策略。

SAST、IaC 掃描以及金鑰檢測中規則集的強制使用

基礎版 專業版 旗艦版
SaaS Y
私有化部署 Y

你可以透過建立一個提交到倉庫中的本地配置檔案,或者透過設定一個 CI/CD 變數來在多個專案中透過共享配置的方式實現自定義規則集在 SAST(靜態應用程式測試)、IaC(基礎設施即程式碼掃描)和 Secret Detection(金鑰檢測)中的使用。

之前,即使你設定了共享規則集的引用,但是掃描器依舊傾向於使用本地配置檔案。這個優先順序順序很難確保讓掃描器去使用一個已知的、更可信的規則集。

現在,我們新增了一個 CI/CD 變數,SECURE_ENABLE_LOCAL_CONFIGURATION用來對是否允許使用本地配置檔案進行控制。預設是 true,也就意味著既有的行為是:允許使用本地配置檔案,而且順序在共享配置檔案之上。如果你在強制執行掃描時將值設定為 false,就能夠確保掃描使用的是共享規則集,或者預設的規則集,即使開發者增加了本地配置檔案。

為合併請求外部狀態檢查新增認證

基礎版 專業版 旗艦版
SaaS Y
私有化部署 Y

現在,可以使用 HMAC(基於雜湊訊息的驗證碼)認證來對外部狀態檢查進行配置了。這將提供一種更安全的方式來驗證來自極狐GitLab到外部服務的請求的真實性。

當開啟狀態檢查後,就會用一個共享金鑰來為每一個請求生成一個獨一無二的簽名。簽名以 SHA256 為雜湊演算法並在標頭中以 X-Gitlab-Signature被髮送:

  • 改善了安全性:HMAC 認證能夠阻止對於請求的篡改,確保請求來自於合法的源。
  • 合規:此項功能對於極為重視合規的行業來講是非常有價值的,比如銀行業這種安全至上的行業。
  • 向後相容性:該功能將是可選的,並且向後相容。使用者可以選擇為新的或現有的檢查啟用 HMAC 認證,但現有的外部狀態檢查將繼續無需更改即可執行。

在將來的迭代中,極狐GitLab 計劃新增一個選項來驗證或者阻止 HTTP 請求。

使用管理員 UI 禁用個人訪問令牌

基礎版 專業版 旗艦版
SaaS
私有化部署 Y Y Y

現在,管理員可以透過管理員 UI 來禁用或重新啟用個人訪問令牌。之前,管理員不得不透過使用應用程式配置 API 或者極狐GitLab Rails 控制檯來實現這一切。

Omnibus 改進

基礎版 專業版 旗艦版
SaaS
私有化部署 Y Y Y

極狐GitLab 17.3 包含了對於樹莓派 Raspberry Pi OS 12 安裝包的支援。

Debina 10 已經在 2024年 6 月 30 日到了生命週期的結束(EOL)。極狐GitLab將在 17.6 版本中移除對於 Debina 10 的支援。

改進了您的工作中對專案和群組的排序和過濾

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

我們已經在您的工作中更新了對於專案和群組概覽的排序和過濾功能。之前,在專案的您的工作頁面中,你可以透過名稱和語言進行過濾,而且可以使用預定義的排序選項。我們已經對過濾選項進行了標準化,包括名稱、常見日期、更新日期以及星星。我們還在導航元素中新增了按升序或降序排序的功能,並將語言過濾器移動到了篩選選單中。

現在你可以在新的不活躍標籤頁中找到歸檔的專案。此外,我們還新增了一個角色過濾器以允許你查詢那些你擁有的專案。

在群組的您的工作頁面中,我們也已經標準化了排序選項,包括名稱、建立日期以及更新日期,且在導航元素中新增了按升序或降序排序的功能。

用 API 獲取群組或專案 webhook 事件

基礎版 專業版 旗艦版
SaaS Y Y
私有化部署 Y Y

從極狐GitLab 9.3 開始,你可以在 UI 上檢視專案 webhook 請求歷史,而自極狐GitLab 15.3 以後,你還可以在 UI 上檢視群組 webhook 請求歷史。

在此版本中,資料以 REST API 的形式暴露,這能夠幫助你透過自動化的流程來發現 webhook 錯誤或者對其做出響應。您可以獲取過去7天內特定專案 hook 和群組 hook 的事件列表。

在任務、目標及關鍵結果中解決主題

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

現在,你可以在任務、目標及關鍵結果中解決主題,這使得對重要對話的管理和追蹤變得更加容易。預設情況下解決的主題會被摺疊起來,這能夠幫助你聚焦在那些活躍的討論上,而且能夠簡化你們的協作工作流。

從倉庫中更容易地移除內容

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

當前,從倉庫中刪除內容的流程是比較複雜的,你不得不透過強制推送到專案中來實現這一切。這很容易出錯,而且迫使你不得不短暫地取消對於推送的保護。如果要對那些在倉庫中佔用大量空間的檔案進行刪除也是非常困難的。

現在,你可以在專案設定中使用新的倉庫維護選項來基於一系列的 object ID 來刪除 blob。有了這個新的方法,你就可以在無需強制推送到專案的情況下對選擇的內容進行刪除了。

如果專案中已經推送了需要被刪除的金鑰或者其他內容,我們也將引入一個新的選項來對文字進行刪除處理。如果想要刪除某個字元,極狐GitLab 會將專案檔案中的內容替換為REMOVED。在文字刪除以後,執行清理操作對舊版本的字元進行刪除。

下面這個新的使用者介面簡化了當你需要刪除內容時管理你的程式碼庫的方式。

透過作業名稱來過濾作業

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

現在,你可以透過搜尋作業名來快速找到特定的作業。

之前,你只能透過狀態來過濾作業列表或者手動滾動的方式來找到特定的作業。在此版本中,你只需要輸入作業名即可找到對應的作業。當然,結果將只會包含極狐GitLab 17.3 版本釋出後執行的流水線中的作業。

對 macOS 上安裝的 Runner 進行了效能改進

基礎版 專業版 旗艦版
SaaS Y Y
私有化部署

我們在最近升級到 macOS 14.5 和 Xcode 15.4 時進行了效能改進。有了這個變化,Xcode 構建作業與之前的作業執行相比顯著加快。

當建立和刪除 Kubernetes agent 時會產生審計事件

基礎版 專業版 旗艦版
SaaS Y Y
私有化部署 Y Y

因為 Kubernetes agent 允許資料在極狐GitLab 和 Kubernets 叢集之間進行雙向流動,因此,知道那些能夠訪問系統的元件是何時增加或刪除的是非常重要的。在過去的版本中,合規團隊不得不使用自定義的工具或者直接在極狐GitLab 上查詢資料來實現這一切。現在,極狐GitLab 新增了以下審計事件:

  • cluster_agent_created記錄了是誰註冊了一個新的 Kubernetes agent。
  • cluster_agent_create_failed記錄了是誰在嘗試註冊新的 Kubernetes agent 但是卻失敗了。
  • cluster_agent_deleted記錄了是誰移除了 Kubernetes agent 的註冊。
  • cluster_agent_delete_failed記錄了是誰在嘗試一處 Kubernetes agent 但是卻失敗了。

這些審計事件對 cluster_agent_token_createdcluster_agent_token_revoked這兩類審計事件進行了擴充套件,進一步提升了你對極狐GitLab 例項本身的審計能力。

在極狐GitLab UI 上顯示 SBOM 提取錯誤

基礎版 專業版 旗艦版
SaaS Y
私有化部署 Y

極狐GitLab 15.3 增加了對於 CycloneDX SBOM 的支援。在 SBOM 報告針對 CycloneDX 結構進行驗證的同時,任何告警和錯誤(作為驗證的一部分)都不會展示給使用者看。

在GitLab 17.3版本中,這些驗證訊息會出現在專案級別的漏洞報告和依賴列表頁面的極狐GitLab UI 上。

使用者將能夠在極狐GitLab UI 的以下區域檢視 SBOM 的提取報告:專案級別的漏洞報告和依賴列表頁面,以及流水線頁面的許可證和安全標籤中。

依賴項和許可證掃描增加了對 Rust 的支援

基礎版 專業版 旗艦版
SaaS Y
私有化部署 Y

組成成分分析提供了依賴項和許可證掃描中對 Rust 語言的支援。Rust 掃描支援 Cargo.lock檔案型別。

為了在你的專案中開啟 Rust 掃描,你可以在依賴項掃描 CI/CD 元件中直接使用 cargo模板。

在使用者資料中增加 Bluesky 身份識別

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

現在你可以在你的極狐GitLab 資料中新增 Bluesky did:plc 身份識別了。

基礎版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

我們對極狐GitLab 的登出流程做了改進,來自子域名的 cookie 在登出時不會被刪除。之前,這些 cookie 會被刪除,這就容易導致那些和極狐GitLab 使用相同頂級域名的服務被迫退出。比如,一個使用者將 Kibana 服務的域名設定為 kibana.example.com,而極狐GitLab 的域名設定為 gitlab.example.com,那麼當使用者從極狐GitLab 登出後,使用者也將不能再登入 Kibana 服務。

高階搜尋中的端到端例項索引

基礎版 專業版 旗艦版
SaaS Y Y
私有化部署 Y Y

當你在極狐GitLab 中開啟高階搜尋時,現在,你可以選擇索引例項來執行初始化索引或者重新新建索引。此項設定透過將所有支援的資料型別索引到 Elasticsearch 或者 OpenSearch 叢集中,實現了和執行 gitlab:elastic:index rake 任務時的同等功能。

索引例項取代了僅在初始索引時索引所有專案的設定。

本文由部落格群發一文多發等運營工具平臺 OpenWrite 釋出

相關文章