关于如何将 Dependabot 配置为仅访问专用注册表
默认情况下,Dependabot 可访问公共注册表,你可将 Dependabot 配置为还访问专用注册表。有关专用注册表支持和配置的详细信息,请参阅“为 Dependabot 配置对专用注册表的访问权限”。 有关可用选项的详细信息,以及配置专用注册表时的建议,请参阅“针对 Dependabot 的专用注册表配置指南”。
可通过移除对公共注册表的调用,将 Dependabot 配置为仅访问专用注册表。 这只能为本文中列出的生态系统进行配置。
注意:在从 Dependabot updates 的配置中移除对公共注册表的访问权限之前,请检查确保站点管理员已使用所需的专用注册表访问权限设置了 Dependabot 运行器。 有关详细信息,请参阅“配置 Dependabot,使其在 Internet 访问受限的情况下工作”。
Bundler
若要将捆绑程序生态系统配置为仅访问专用注册表,可以在 dependabot.yml
文件中将 replaces-base
设置为 true
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
捆绑程序生态系统还要求将具有专用注册表 URL 的 Gemfile
文件签入存储库。
# Example Gemfile
source "https://private_registry_url"
Docker
若要将 Docker 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。
选项 1
在不使用 replaces-base
的 dependabot.yml
文件中定义专用注册表配置。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意****:从配置文件中移除 replaces-base: true
。
version: 2
registries:
azuretestregistry: # Define access for a private registry
type: docker-registry
url: firewallregistrydep.azurecr.io
username: firewallregistrydep
password: ${{ secrets.AZUREHUB_PASSWORD }}
在 Dockerfile
文件中,以 IMAGE[:TAG]
格式添加映像名称,其中 IMAGE
由用户名和存储库名称组成。
FROM firewallregistrydep.azurecr.io/myreg/ubuntu:22.04
方法 2
在 dependabot.yml
文件中将 replaces-base
设置为 true
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。 使用 replaces-base
配置的注册表可用作镜像或拉取缓存。 有关更多详细信息,请参阅 Docker 文档中的将注册表作为拉取缓存。
Gradle
若要将 Gradle 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。
在 dependabot.yml
文件中定义专用注册表配置。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意****:从配置文件中移除 replaces-base: true。
此外,还需要在 build.gradle
文件的 repositories
部分中指定专用注册表 URL。
# Example build.gradle file
repositories {
maven {
url "https://private_registry_url"
}
}
Maven
若要将 Maven 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。
选项 1
在 dependabot.yml
文件中将 replaces-base
设置为 true
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
方法 2
仅使用 pom.xml
文件中的专用注册表 URL。
<project>
...
<repositories>
<repository>
<id>central</id>
<name>your custom repo</name>
<url>https://private_registry_url</url>
</repository>
...
</project>
节点
npm
若要将 npm 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。
选项 1
在 dependabot.yml
文件中定义专用注册表配置。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意****:从配置文件中移除 replaces-base: true
。
npm 生态系统还要求将具有专用注册表 URL 的 .npmrc
文件签入存储库。
registry=https://private_registry_url
方法 2
如果 .npmrc
文件中未定义全局注册表,可以在 dependabot.yml
文件中将 replaces-base
设置为 true
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意:对于已限定范围的依赖项 (@my-org/my-dep
),Dependabot 要求在项目的 .npmrc
文件中定义专用注册表。 若要为个别范围定义专用注册表,请使用 @myscope:registry=https://private_registry_url
。
Yarn
Dependabot 同时支持 Yarn Classic 和 Yarn Berry 专用注册表,但 Dependabot 要求每个生态系统使用不同的配置才能仅访问专用注册表。
Yarn Classic
若要将 Yarn Classic 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。
选项 1
在 dependabot.yml
文件中定义专用注册表配置。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意:从配置文件中删除 replaces-base: true
。
若要确保专用注册表作为项目的 yarn.lock
文件中的依赖项源列出,请在具有专用注册表访问权限的计算机上运行 yarn install
。 Yarn 应更新 resolved
字段以包含专用注册表 URL。
encoding@^0.1.11:
version "0.1.13"
resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
方法 2
如果 yarn.lock
文件没有将专用注册表列为依赖项源,则可以根据常规包管理器的说明来设置 Yarn Classic:
-
在
dependabot.yml
文件中定义专用注册表配置 -
使用 registry 键将注册表添加到项目根目录中的
.yarnrc
文件中。 或者,运行yarn config set registry <private registry URL>
。registry https://private_registry_url
选项 3
如果 .yarnrc
文件中未定义全局注册表,可以在 dependabot.yml
文件中将 replaces-base
设置为 true
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意:对于已限定范围的依赖项 (@my-org/my-dep
),Dependabot 要求在项目的 .npmrc
文件中定义专用注册表。 若要为个别范围定义专用注册表,请使用 @myscope:registry=https://private_registry_url
。
Yarn Berry
若要将 Yarn Berry 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。
选项 1
在 dependabot.yml
文件中定义专用注册表配置。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意:从配置文件中删除 replaces-base: true
。
若要确保专用注册表作为项目的 yarn.lock
文件中的依赖项源列出,请在具有专用注册表访问权限的计算机上运行 yarn install
。 Yarn 应更新 resolved
字段以包含专用注册表 URL。
encoding@^0.1.11:
version "0.1.13"
resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
方法 2
如果 yarn.lock
文件没有将专用注册表列为依赖项源,则可以根据常规包管理器的说明来设置 Yarn Berry:
- 在
dependabot.yml
文件中定义专用注册表配置 - 使用
npmRegistryServer
键将注册表添加到项目根目录中的.yarnrc.yml
文件中。 或者,运行yarn config set npmRegistryServer <private registry URL>
。npmRegistryServer: "https://private_registry_url"
注意:对于已限定范围的依赖项 (@my-org/my-dep
),Dependabot 要求在项目的 .yarnrc
文件中定义专用注册表。 若要为个别范围定义专用注册表,请使用 "@myscope:registry" "https://private_registry_url"
。
Nuget
若要允许 Nuget 生态系统仅访问专用注册表,可以配置 dependabot.yml
文件。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
此外,Nuget 生态系统还要求将 nuget.config
文件签入存储库,其中 <packageSources>
部分中包含 < clear />
标记,或者在 nuget.config
文件的 disabledPackageSources
部分中将 nuget.org
键设置为 true。
下面的示例是 nuget.config
的 packageSources
部分中的 < clear />
标记。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
< clear />
<add key="example-nuget" value="https://private_registry_url/nuget/example-nuget/index.json" />
</packageSources>
</configuration>
下面的示例向 nuget.config
的 disabledPackageSources
部分添加设为“true”的 nuget.org
键
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="example-nuget" value="https://private_registry_url/nuget/example-nuget/index.json" />
</packageSources>
<disabledPackageSources>
<add key="nuget.org" value="true" />
</disabledPackageSources>
</configuration>
若要将 Dependabot 配置为专用源_和_公共源都访问,请查看以下 dependabot.yml
示例,其中 registries
下包括了配置的 public
源:
version: 2
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: $
password: $
public:
type: nuget-feed
url: https://api.nuget.org/v3/index.json
updates:
- package-ecosystem: nuget
directory: "/"
registries: "*"
schedule:
interval: daily
Python
Pip、Pip-compile、Pipenv 和 Poetry 是 Python 生态系统目前支持的四个包管理器。
Pip
若要将 Pip 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。
选项 1
在 dependabot.yml
文件中定义专用注册表配置。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意:从配置文件中删除 replaces-base: true
。
将专用注册表 URL 添加到 pip.conf
文件的 [global]
部分,并将该文件签入存储库。
[global]
timeout = 60
index-url = https://private_registry_url
方法 2
在 dependabot.yml
文件中将 replaces-base
设置为 true
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
Pip-compile
若要将 Pip-compile 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。
选项 1
在 dependabot.yml
文件中将 replaces-base
设置为 true
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
方法 2
在 dependabot.yml
文件中定义专用注册表配置。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意:从配置文件中删除 replaces-base: true
。
将专用注册表 URL 添加到 requirements.txt
文件,并将该文件签入存储库。
--index-url https://private_registry_url
Pipenv
若要将 Pipenv 配置为仅访问专用注册表,请从 dependabot.yml
文件中移除 replaces-base
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
注意:从配置文件中删除 replaces-base: true
。
将专用注册表 URL 添加到 Pipfile
文件的 [[source]]
部分,并将该文件签入存储库。
[[source]]
url = "https://private_registry_url"
verify_ssl = true
name = "pypi"
诗歌
若要将 Poetry 配置为仅访问专用注册表,请在 dependabot.yml
文件中将 replaces-base
设置为 true
。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。
将专用注册表 URL 添加到 pyproject.toml
文件的 [[tool.poetry.source]]
部分,并将该文件签入存储库。
[[tool.poetry.source]]
name = "private"
url = "https://private_registry_url"
default = true