关于配置 Dependabot 以仅访问私有注册表
Dependabot 默认可以访问公共注册表,您可以配置 Dependabot 也访问私有注册表。有关私有注册表支持和配置的更多信息,请参阅“为 Dependabot 配置对私有注册表的访问”。有关可用选项的深入信息,以及配置私有注册表时的建议和提示,请参阅“Dependabot 私有注册表配置指南”。
为了更好地控制 Dependabot 对您的私有注册表和内部网络资源的访问,您可以配置 Dependabot 在 GitHub Actions 自托管运行器上运行。有关更多信息,请参阅“关于 GitHub Actions 运行器上的 Dependabot”和“管理自托管运行器上的 Dependabot”。
您可以通过移除对公共注册表的调用来配置 Dependabot 以仅访问私有注册表。这只能为本文列出的生态系统进行配置。
Bundler
要将 Bundler 生态系统配置为仅访问私有注册表,您可以在 dependabot.yml
文件中将 replaces-base
设置为 true
。有关更多信息,请参阅“dependabot.yml 文件的配置选项”。
Bundler 生态系统还需要将包含私有注册表 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>
Node
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 <私有注册表 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 <私有注册表 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 生态系统还需要将包含<packageSources>
部分中的< clear />
标签或nuget.config
文件disabledPackageSources
部分中值为 true 的密钥nuget.org
的nuget.config
文件检入存储库。
这是一个在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.org
设置为 true 的nuget.config
文件disabledPackageSources
部分的示例。
<?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
要将 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