IBM Cloud Docs
存取專用程式碼儲存庫

存取專用程式碼儲存庫

程式碼儲存庫 (例如 GitHub 或 GitLab) 會儲存原始碼。 使用 Code Engine,您可以新增專用程式碼儲存庫的存取權,然後從建置中參照該儲存庫。

建立專用程式碼儲存庫的存取權之後,您可以從儲存庫取回程式碼、建置它,以及使用 IBM Cloud® Code Engine來部署應用程式或工作。

建立程式碼儲存庫存取權

當您建立專用程式碼儲存庫的存取權時,會將認證儲存在 Code Engine中。 這些認證稱為 SSH 密碼

開始之前

選擇程式碼儲存庫的 SSH 金鑰

對於 GitHub 和 GitLab,您可以決定兩種 SSH 金鑰來連接至來源儲存庫。

  1. 與原始碼儲存庫相關聯的 SSH 金鑰,此金鑰只能存取您在其中登錄 SSH 金鑰的那些儲存庫。 依預設,此存取權是唯讀的,這是 Code Engine 下載原始碼所需的層次。 必要的話,您可以選取寫入權。 請考慮選擇這個選項來設定 SSH 金鑰,使其以特定儲存庫為範圍,以便只控制對指定儲存庫的存取權。

  2. 與使用者相關聯的 SSH 金鑰,例如,您自己的使用者帳戶或組織中可用的功能 ID。 此 SSH 金鑰具有來自使用者帳戶的儲存庫許可權。Code Engine 需要讀取權才能下載原始碼。

    因為設定以使用者帳戶為範圍的 SSH 金鑰可讓您存取完整帳戶,所以當您選擇此選項時,請務必注意安全含意。

請勿使用安全通行詞組來建立 SSH 金鑰檔,因為此動作會導致 build 指令失敗。

從主控台新增專用儲存庫存取權

開始之前,請 建立專案

  1. 在專案處於 作用中 狀態之後,請在 Code Engine「專案」頁面上按一下專案的名稱。
  2. 從「元件」頁面中,按一下 密鑰及配置對映
  3. 從「密鑰及配置對映」頁面中,按一下 建立 以建立密鑰。
  4. 從「建立密鑰或 configmap」頁面中,完成下列步驟:
    1. 選取 SSH 密碼,然後按 下一步
    2. 提供名稱; 例如 mysecret-ssh
    3. 新增此密鑰的 SSH 私密金鑰。
    4. 按一下 建立 以建立密鑰。

既然已從主控台建立密鑰,請移至「密鑰及配置對映」頁面,以檢視已定義密鑰及配置對映的清單。 您可以套用過濾器來自訂清單以符合您的需求。

您可以在建置映像檔時建立存取權。

使用 CLI 新增專用儲存庫存取權

從 CLI 1.42.0版開始,CLI 中的定義及使用密碼是統一在 secret 指令群組下。 請參閱 ibmcloud ce secret 指令。 使用 --format 選項來指定密鑰種類,例如 basic_authgenericsshtlsregistry。 雖然您可以繼續使用 repo 指令群組,但請利用統一的 secret 指令群組。 若要建立密鑰以使用 SSH 金鑰來存取服務 (例如向 Git 儲存庫 (例如 GitHub 或 GitLab) 進行鑑別),請使用 ibmcloud ce secret create --format ssh 指令。 SSH 密鑰也用作 Git 儲存庫存取密鑰。 若要進一步瞭解在 Code Engine中使用密碼,請參閱 使用密碼

SSH 密鑰包含用來存取專用儲存庫的認證,該專用儲存庫包含用來建置容器映像檔的原始碼。 SSH 密鑰也用作 Git 儲存庫存取密鑰。

若要使用 CLI 來建立 SSH 密鑰,請使用 secret create --format ssh 指令。 這個指令需要名稱和金鑰路徑,也容許其他選用引數,例如已知 hosts 檔的路徑。 如需選項的完整清單,請參閱 ibmcloud ce secret create --format ssh 指令。

例如,下列指令會建立一個稱為 myrepossh 的 SSH 密鑰,該密鑰至 github.com 中的儲存庫,該儲存庫使用您在系統上預設位置找到的個人 SSH 私密金鑰。

Mac OS 或 Linux®

ibmcloud ce secret create --format ssh --name myrepossh --key-path $HOME/.ssh/id_rsa --known-hosts-path $HOME/.ssh/known_hosts

Windows

ibmcloud ce secret create --format ssh --name myrepossh --key-path "%HOMEPATH%\.ssh\id_rsa" --known-hosts-path "%HOMEPATH%\.ssh\known_hosts"

下表彙總在此範例中與 repo create 指令搭配使用的選項。 如需指令及其選項的相關資訊,請參閱 ibmcloud ce repo create 指令。

表 1. 指令說明
選項 說明
--name ssh 密碼的名稱。 請使用專案內唯一的名稱。 此值是必要項目。
-名稱必須以小寫英數字元開頭及結尾。
-名稱必須是 253 個字元或更少,且可以包含小寫字母、數字、句點 (.) 及連字號 (-)。
--key-path 未加密私密 SSH 金鑰的本端路徑。 如果您使用個人私密 SSH 金鑰,則此檔案通常位於 $HOME/.ssh/id_rsa (Mac OS 或 Linux) 或 %HOMEPATH%.ssh\id_rsa(Windows)。 這是必要值。
--known-hosts-path 已知 hosts 檔的路徑。 此值是安全特性,可確保私密金鑰僅用於在您先前存取的主機 (特別是 GitHub 或 GitLab 主機) 進行鑑別。 此檔案通常位於 $HOME/.ssh/known_hosts (Mac OS 或 Linux) 或 %HOMEPATH%.ssh\known_hosts (Windows)。

參照建置中的專用 Git 儲存庫

從主控台建置映像檔時,您可以參照現有的存取權或建立存取權。

從主控台參照建置中的專用 Git 儲存庫

如果要在建置中參照專用 Git 儲存庫,

  1. 移至 Code Engine 儀表板
  2. 選取專案 (或 建立一個)。
  3. 從專案頁面中,按一下 映像檔建置
  4. 映像檔建置 標籤中,按一下 建立
  5. 若要指定專用儲存庫並新增存取權,請在 程式碼儲存庫 URL 欄位中輸入儲存庫的 URL,然後選取現有程式碼儲存庫存取權或 建立存取權
  6. 完成指定建置的資訊,然後按一下 完成

如需建置映像檔的相關資訊,請參閱 建置容器映像檔

程式碼儲存庫 URL 必須是 SSH URL (例如 git@github.com:IBM/CodeEngine.git ),而不是 https://github.ibm.com/codeengine/ui 之類的 HTTP URL。

使用 CLI 在建置中參照 SSH 密鑰

若要在建置中使用 SSH 密鑰,請在執行 build createbuild update 指令時使用 --git-repo-secret 選項。 SSH 密鑰也用作 Git 儲存庫存取密鑰。

如果您有現有的建置,則可以使用 build update 指令來更新它。

ibmcloud ce build update --name mybuild --git-repo-secret myrepossh

如果您想要建立新的建置,請參閱 使用 CLI 建立建置配置

Git 儲存庫存取權的後續步驟

建立 SSH 密鑰以存取 Git 儲存庫之後,您可以從專用儲存庫中的原始碼 建置映像檔。 當您使用 --git-repo-secret 選項執行 build create 指令時,請指定 SSH 密鑰。