何謂 GitHub Packages?

已完成

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

備註

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

GitHub Packages 是套件登錄

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

當您處理具有套件相依性的專案時,請務必信任這些專案、瞭解其程序代碼,並與建置它們的社群連線。 在組織內,您也必須能夠快速找出已核准以供使用的內容。

GitHub 套件使用相同的熟悉的 GitHub 介面,在 GitHub 上尋找公用套件,或組織或存放庫中的私人套件。

標準套件管理員

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

您要發佈開放原始碼套件嗎? 許多開放原始碼專案都會將其程式代碼儲存在 GitHub 上,因此您可以發佈套件的發行前版本,以便在社群內進行測試,然後輕鬆地將特定版本升級至您選擇的公用登錄。

GitHub n p m 套件頁面,其中包含描述,以及如何安裝它的指示。

撰寫時,GitHub Packages 與下列套件管理員兼容:

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

GitHub Packages 也是容器登錄

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

  • 在您的本機開發環境中
  • 當作您 GitHub Codespaces 開發環境中的基礎映像
  • 作為將 GitHub Actions 整合至您的持續整合(CI)/持續部署(CD)工作流程中的一步骤。
  • 在伺服器或雲端服務上

GitHub 容器映射頁面,其中包含映像版本清單、統計數據和如何安裝它的指示。

比較 GitHub 套件與 GitHub 版本

GitHub Packages 可用來將程式庫的版本發佈至標準套件清單或容器註冊表。 用途是利用特定套件管理用戶端使用該摘要的方式,例如連結回建立套件的存放庫,以及使用的程式碼版本。

GitHub 版本 可用來發行套件組合的軟體,以及版本資訊和二進位檔的連結。 您可以直接從其專屬 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 Learn 課程模組建置持續整合 (CI) 工作流程

藉由結合 GitHub Actions 和 GitHub Packages,您可以建置工作流程來建置及測試您的程式代碼,然後直接將程式代碼推送至存放庫,將其發佈至 GitHub Packages。

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