何謂 GitHub Packages?

已完成

GitHub Packages 是一種套件管理服務,可讓您在原始程式碼旁輕鬆發佈公用或私人套件。

注意

如果您還不熟悉 GitHub,請參閱 Learn 課程模組 GitHub 簡介

GitHub Packages 是套件登錄

GitHub Packages 可讓您在組織內或公開共用專案相依性。

處理具有套件相依性的專案時,請務必信任這些套件、了解其程式碼,並與建置該套件的社群交流。 在組織內部,您也需要能快速找出已核准使用的項目。

GitHub Packages 使用您熟悉的相同 GitHub 介面,尋找在 GitHub 上任何位置的公用套件,或組織或存放庫內的私人套件。

標準套件管理員

GitHub Packages 與一般套件管理用戶端相容,因此您可以使用自己選擇的工具來發佈套件。 如果您的存放庫較複雜,可能需要發佈多個不同類型的套件。 您也可以使用 Webhook 或 GitHub Actions 來完全自訂發佈及發佈後的工作流程。

您發佈的是開放原始碼套件嗎? 任何開放原始碼專案會將程式碼儲存在 GitHub,所以您可以在自己的社群內發佈套件的發行前版本以進行測試,再輕鬆地將特定版本升階至您選擇的公用登錄。

GitHub n p m package page, with description, and instructions about how to install it.

在撰寫本文時,GitHub Packages 與下列套件管理員相容:

  • npm,Node.js 套件管理員
  • NuGet,.NET 套件管理員
  • RubyGems,Ruby 套件管理員
  • Maven 和 Gradle,適用於 JAVA 的兩個套件管理員

GitHub Packages 也是容器登錄

從完整的應用程式到 CLI 公用程式,容器是另一種形式的散發程式碼。 GitHub Packages 可讓您發佈及散發容器映像。 (公開或私下) 發佈後,您可以在任何地方使用這些映像,包括:

  • 在您的本機開發環境中
  • 當作您 GitHub Codespaces 開發環境中的基礎映像
  • 使用 GitHub Actions 當作執行持續整合 (CI) /持續部署 (CD) 工作流程的步驟
  • 在伺服器或雲端服務上

GitHub container image page, with image versions listing, statistics and instructions about how to install it.

比較 GitHub Packages 與 GitHub Releases

GitHub Packages 用來將您程式庫的版本,發佈至標準套件摘要或容器登錄。 它們旨在利用特定套件管理用戶端使用該摘要的方式,例如連結回建立套件的存放庫,以及使用的程式碼版本。

GitHub Releases 用來發行封裝軟體的套件組合,以及版本資訊二進位檔案的和連結。 您可以直接從其專屬 URL 下載這些版本,並追溯至建立來源的特定認可。 您只能將版本下載為 tarball 或 ZIP 檔案。

統一的身分識別和權限

假設您正在使用 GitHub 處理專案,以裝載原始程式碼:適用於前端的 JavaScript,及適用於後端的 npm 和 JAVA。 您現在至少要維護三組不同的使用者認證和權限:git、npm 和 Maven 存放庫。

有了 GitHub Packages,您可以在您原始程式碼存放庫、私人 npm 登錄,以及 Maven 或 Gradle 私人登錄間,使用一組認證。 透過 GitHub 發佈的套件會繼承在存放庫層級指派的可見度和權限。 新的小組成員是否需要套件及其程式碼的讀取權限? 提供他們存放庫的讀取權限,然後就大功告成!

從 GitHub 建置及發佈套件

GitHub Actions 是另一項 GitHub 功能,可讓您將軟體工作流程自動化。 您可以直接從 GitHub 建置、測試及部署您的程式碼。

提示

如果想要深入了解 GitHub Actions,請參閱 使用 GitHub Actions 建置持續整合 (CI) 工作流程 Learn 學習課程模組。

藉由結合 GitHub Actions 和 GitHub Packages,您可以建置會建置及測試程式碼的工作流程,然後只要將程式碼推送至存放庫,即可將該工作流程發佈至 GitHub Packages。

在下一個單元中,我們將了解如何使用我們的工作流程發佈至 GitHub Packages 和 GitHub Container Registry。