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 密钥,例如,您自己的用户帐户或组织中可用的功能标识。 此 SSH 密钥具有来自用户帐户的存储库许可权。Code Engine 需要读访问权才能下载源代码。

    由于设置作用域限定为用户帐户的 SSH 密钥可提供对完整帐户的访问权,因此在选择此选项时,请务必注意安全含义。

请勿使用安全口令创建 SSH 密钥文件,因为此操作会导致 build 命令失败。

从控制台添加专用存储库访问权

开始之前,请 创建项目

  1. 在项目处于 活动 状态后,在 Code Engine "项目" 页面上单击项目的名称。
  2. 在“组件”页面中,单击 私钥和配置映射
  3. 从“私钥和配置映射”页面中,单击 创建 以创建私钥。
  4. 从“创建私钥或配置映射”页面,完成以下步骤:
    1. 选择 SSH 密钥,然后单击 下一步
    2. 提供名称; 例如,mysecret-ssh
    3. 为此私钥添加 SSH 专用密钥。
    4. 单击“创建”创建密文。

现在,您的私钥是从控制台创建的,请转至“私钥和配置映射”页面以查看已定义的私钥和配置映射的列表。 您可以应用过滤器来定制列表以满足您的需求。

您可以在构建映像时创建访问权。

使用 CLI 添加专用存储库访问权

从 CLI 版本 1.42.0 开始,在 CLI 中定义和处理秘密将统一到 secret 命令组。 请参阅 ibmcloud ce secret 命令。 使用 --format 选项指定秘密类别,如 basic_auth, generic, hmac, ssh, tlsregistry。 虽然可以继续使用 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 命令。 此命令需要名称和密钥路径,并且还允许其他可选参数,例如已知主机文件的路径。 有关选项的完整列表,请参阅 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 命令。

命令描述
选项 描述
--name ssh 私钥的名称。 请使用项目中唯一的名称。 此值是必需的。
-名称必须以小写字母数字字符开头和结尾。
-名称必须小于或等于 253 个字符,并且可以包含小写字母,数字,句点 (.) 和连字符 (-)。
--key-path 未加密的专用 SSH 密钥的本地路径。 如果使用的是个人 SSH 私钥,则该文件通常位于 $HOME/.ssh/id_rsa ( Mac OS 或 Linux ) 或 %HOMEPATH%.ssh\id_rsa(Windows)。 此值是必需的。
--known-hosts-path 已知主机文件的路径。 此值是一项安全功能,用于确保专用密钥仅用于在您先前访问的主机 (尤其是 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. 完成指定构建的信息,然后单击 完成

有关构建映像的更多信息,请参阅 构建容器映像

代码 repo URL 必须是 SSH URL (如 git@github.com:IBM/CodeEngine.git ),而不是 HTTPS URL (如 https://github.ibm.com/codeengine/ui )。

使用 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 私钥。