关于专用注册表
Dependabot version updates 随时将依赖项更新为最新版本。 Dependabot 可以访问公共注册表。 此外,你可以授予 Dependabot version updates 对专用包注册表和专用 GitHub 存储库的访问权限,从而确保专用和内源依赖项与公共依赖项同时保持最新状态。
在大多数生态系统中,专用依赖项通常会发布到专用包注册表。 这些专用注册表与公共注册表类似,但需要身份验证。
对于特定的生态系统,可通过移除对公共注册表的调用,将 Dependabot 配置为_仅_访问专用注册表。 有关详细信息,请参阅“Removing Dependabot access to public registries”。
要允许 Dependabot 访问私有托管或仅限于内部网络的注册表,请将 Dependabot 配置为在 GitHub Actions 自托管运行器上运行。 有关详细信息,请参阅 Managing Dependabot on self-hosted runners。
配置专用注册表
可以在 dependabot.yml
文件中配置 Dependabot 对专用注册表的访问。
顶级的 registries
密钥是可选的,用于指定身份验证详细信息。
dependabot.yml
文件中有 2 个位置可以使用 registries
密钥:
- 在顶级,可在这里定义注册表及其访问信息(如果需要)。
- 在
updates
块中,可以使用registries: "*"
告知 Dependabot 使用你在顶级定义的任何或所有注册表。
# registries: gradle-artifactory - provides access details for the gradle-artifactory registry
# registries: "*" - allows Dependabot to use all the defined registries specified at the top level
version: 2
registries:
gradle-artifactory:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-gradle-registry
username: octocat
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
updates:
- package-ecosystem: "gradle"
directory: "/"
registries: "*"
schedule:
interval: "monthly"
您使用以下选项来指定访问设置。 注册表设置必须包含 type
和 url
,并且通常包含 username
和 password
组合或 token
。
选项 | 说明 |
---|---|
type | 识别注册表的类型。 有关可用注册表类型的详细信息,请参阅“registries ”。有关专用注册表配置的更多详细信息,请参阅“专用注册表的配置选项”。 |
url | 用于访问此注册表中的依赖项的 URL。 协议是可选的。 如果未指定,则假定为 https:// 。 Dependabot 根据需要添加或忽略尾随斜线。 |
username | Dependabot 用于访问注册表的用户名。username 是帐户的用户名或电子邮件地址。 |
password | 引用包含指定用户密码的 Dependabot 机密。 有关详细信息,请参阅“为 Dependabot 配置对专用注册表的访问权限”。password 是为该用户名所指定用户帐户的密码。 如果帐户是 GitHub 帐户,则可以使用 GitHub personal access token 代替密码。 |
key | 引用包含此注册表访问密钥的 Dependabot 机密。 有关详细信息,请参阅“为 Dependabot 配置对专用注册表的访问权限”。 |
token | 引用包含此注册表访问令牌的 Dependabot 机密。 有关详细信息,请参阅“为 Dependabot 配置对专用注册表的访问权限”。token 用于为外部系统提供访问令牌,不应用于提供 GitHub personal access token。 要使用 GitHub personal access token,则应将其作为密码提供。 |
replaces-base | 对于注册表,如果布尔值为 true ,Dependabot 会使用指定的 URL 而不是特定生态系统的基 URL 来解析依赖项。 例如,对于包含 type: python-index 的注册表,如果布尔值为 true ,pip 会使用指定的 URL 而不是 Python 包索引的基 URL(默认为 https://pypi.org/simple )来解析依赖项。 |
有关可用的配置选项及其使用方法,以及支持的类型的详细信息,请参阅 Dependabot options reference。
存储供 Dependabot 使用的凭据
若要授予 Dependabot 对 GitHub 支持的专用注册表的访问权限,可以将注册表的访问令牌或机密存储在存储库或组织的机密存储中。
关于 Dependabot 的加密机密
Dependabot 密码是您在组织级别或仓库级别创建的加密凭据。 当您在组织级别添加密码时,可以指定哪些仓库可以访问该密码。 您可以使用密码允许 Dependabot 更新位于私人包注册表中的依赖项。 添加机密时,它会在到达 GitHub 之前进行加密,并且保持加密状态,直到 Dependabot 将其用于访问专用包注册表。
Dependabot 机密还包括 Dependabot 拉取请求触发的 GitHub Actions 工作流所使用的机密。 Dependabot 本身可能不会使用这些机密,但工作流需要这些机密。 有关详细信息,请参阅“通过 GitHub Actions 自动化 Dependabot”。
添加 Dependabot 机密后,可在 dependabot.yml
配置文件中引用它,如下所示:${{secrets.NAME}}
,其中“NAME”是为机密选择的名称。 例如:
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
有关详细信息,请参阅“Dependabot options reference”。
命名您的密码
Dependabot 密码的名称:
- 只能包含字母数字字符(
[A-Z]
、[0-9]
)或下划线 (_
)。 不允许空格。 如果您输入小写字母,这些字母将更改为大写字母。 - 不得以
GITHUB_
前缀开头。 - 不能以数字开头。
为 Dependabot 添加仓库密码
要为个人帐户存储库创建机密,你必须是存储库所有者。 要为组织存储库创建密码,必须具有 admin
访问权限。
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。
-
在边栏的“安全性”部分中,选择 机密和变量,然后单击 Dependabot。
-
单击“新建存储库机密”。
-
在“名称”输入框中键入机密名称。
-
输入密码的值。
-
单击“添加机密”。
密码名称列在 Dependabot 密码页面上。 可单击“更新”来更改机密值。 可单击“删除”来删除机密。
将组织机密添加到 Dependabot
在组织中创建密码时,可以使用策略来限制可以访问该密码的仓库。 例如,您可以将访问权限授予所有仓库,也可以限制仅私有仓库或指定的仓库列表拥有访问权限。
要在组织级别创建机密,必须具有 admin
访问权限。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 “设置”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。
-
在边栏的“安全性”部分中,选择 机密和变量,然后单击 Dependabot。
-
单击“新建组织机密”。
-
在“名称”输入框中键入机密名称。
-
输入“机密”的值。
-
从“存储库访问”下拉列表中,选择访问策略。
-
如果选择“选定的存储库”:
- 单击“”。
- 在对话框中,选择可以访问此机密的存储库。
- 单击“更新选择”。
-
单击“添加机密”。
机密的名称列在 Dependabot 机密页面中。 可单击“更新”以更改机密值或其访问策略。 可单击“删除”来删除机密。
配置防火墙 IP 规则
可将 Dependabot 相关的 IP 地址添加到注册表 IP 允许列表中。
如果专用注册表配置了 IP 允许列表,则可在 dependabot
键下找到用于访问元 API 终结点中的注册表的 IP 地址 Dependabot。 如果在 GitHub Actions 自托管运行器上运行 Dependabot,则应改用 actions
密钥下的 IP 地址。 有关详细信息,请参阅 元数据的 REST API 终结点 和 关于 GitHub Actions 运行器上的 Dependabot。