Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Removing Dependabot access to public registries

Examples of how you can configure Dependabot to only access private registries by removing calls to public registries.

Who can use this feature

People with write permissions to a repository can configure Dependabot for the repository.

删除对公共注册表的 Dependabot 访问权限

举例说明如何通过删除对公共注册表的调用,将 Dependabot 配置为仅访问专用注册表。 删除对公共注册表的访问权限

关于如何将 Dependabot 配置为仅访问专用注册表 Dependabot 可以访问公共注册表,你可以将 Dependabot 配置为也访问专用注册表。

有关专用注册表支持和配置的详细信息,请参阅“为 Dependabot 配置对专用注册表的访问”。

可以通过删除对公共注册表的调用,将 Dependabot 配置为仅访问专用注册表。 这只能为本文中列出的生态系统进行配置。

Bundler

# Example Gemfile

 source "https://private_registry_url"

若要将捆绑程序生态系统配置为仅访问专用注册表,可以在 dependabot.yml 文件中将 replaces-base 设置为 true

有关详细信息,请参阅dependabot.yml 文件的配置选项

捆绑程序生态系统还要求将具有专用注册表 URL 的 Gemfile 文件签入存储库。

Docker 若要将 Docker 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。

选项 1

在不使用 replaces-basedependabot.yml 文件中定义专用注册表配置。

有关详细信息,请参阅“dependabot.yml 文件的配置选项”。

version: 2
registries:
  azuretestregistry: # Define access for a private registry
   type: docker-registry
   url: firewallregistrydep.azurecr.io
   username: firewallregistrydep
   password: ${{ secrets.AZUREHUB_PASSWORD }}
 FROM firewallregistrydep.azurecr.io/myreg/ubuntu:18.04

注意:从配置文件中移除 replaces-base: true

在 `Dockerfile` 文件中,以 `IMAGE[:TAG]` 格式添加映像名称,其中 `IMAGE` 由用户名和存储库名称组成。 **方法 2** 在 `dependabot.yml` 文件中将 `replaces-base` 设置为 `true`。

有关详细信息,请参阅dependabot.yml 文件的配置选项

使用 replaces-base 配置的注册表可用作镜像或拉取缓存。

有关更多详细信息,请参阅 Docker 文档中的将注册表作为拉取缓存。 Gradle

若要将 Gradle 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。

在 dependabot.yml 文件中定义专用注册表配置。

有关详细信息,请参阅“dependabot.yml 文件的配置选项”。

# Example build.gradle file

repositories {
    maven {
        url "https://private_registry_url"
    }
}

注意:从配置文件中移除 replaces-base: true。

此外,还需要在 build.gradle 文件的 repositories 部分中指定专用注册表 URL。

Maven 若要将 Maven 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。

选项 1

dependabot.yml 文件中将 replaces-base 设置为 true

<project>
...
 <repositories>
  <repository>
    <id>central</id>
    <name>your custom repo</name>
    <url>https://private_registry_url</url>
 </repository>
...
</project>

有关详细信息,请参阅dependabot.yml 文件的配置选项

方法 2

仅使用 pom.xml 文件中的专用注册表 URL。

节点

npm 若要将 npm 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。

选项 1

dependabot.yml 文件中定义专用注册表配置。

有关详细信息,请参阅“dependabot.yml 文件的配置选项”。

 registry=https://private_registry_url

注意:从配置文件中移除 replaces-base: true

npm 生态系统还要求将具有专用注册表 URL 的 `.npmrc` 文件签入存储库。

方法 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`。 ```yaml 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" ```

若要确保专用注册表作为项目的 yarn.lock 文件中的依赖项源列出,请在具有专用注册表访问权限的计算机上运行 yarn install

  1. Yarn 应更新 resolved 字段以包含专用注册表 URL。
  2. 方法 2 如果 yarn.lock 文件没有将专用注册表列为依赖项源,则可以根据常规包管理器的说明来设置 Yarn Classic:
    registry https://private_registry_url
    

dependabot.yml 文件中定义专用注册表配置

使用 registry 键将注册表添加到项目根目录中的 .yarnrc 文件中。 或者,运行 yarn config set registry <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`。
```yaml 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" ``` 若要确保专用注册表作为项目的 `yarn.lock` 文件中的依赖项源列出,请在具有专用注册表访问权限的计算机上运行 `yarn install`。

Yarn 应更新 resolved 字段以包含专用注册表 URL。

  1. 方法 2 如果 yarn.lock 文件没有将专用注册表列为依赖项源,则可以根据常规包管理器的说明来设置 Yarn Berry:
    npmRegistryServer: "https://private_registry_url"
    

dependabot.yml 文件中定义专用注册表配置

使用 npmRegistryServer 键将注册表添加到项目根目录中的 .yarnrc.yml 文件中。 或者,运行 yarn config set npmRegistryServer <private registry URL>

注意:对于已限定范围的依赖项 (@my-org/my-dep),Dependabot 要求在项目的 .yarnrc 文件中定义专用注册表。

若要为个别范围定义专用注册表,请使用 "@myscope:registry" "https://private_registry_url"

Nuget

若要允许 Nuget 生态系统仅访问专用注册表,可以配置 dependabot.yml 文件。

<?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>

有关详细信息,请参阅dependabot.yml 文件的配置选项

<?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>

此外,Nuget 生态系统还要求将 nuget.config 文件签入存储库,其中 <packageSources> 部分中包含 < clear /> 标记,或者在 nuget.config 文件的 disabledPackageSources 部分中将 nuget.org 键设置为 true。

下面的示例是 nuget.configpackageSources 部分中的 < clear /> 标记。

下面的示例向 nuget.configdisabledPackageSources 部分添加设为“true”的 nuget.org

Python

Pip、Pip-compile、Pipenv 和 Poetry 是 Python 生态系统目前支持的四个包管理器。

Pip 若要将 Pip 生态系统配置为仅访问专用注册表,可以使用下面几种配置方法。

选项 1

dependabot.yml 文件中定义专用注册表配置。

有关详细信息,请参阅“dependabot.yml 文件的配置选项”。

[global]
timeout = 60
index-url = https://private_registry_url

注意:从配置文件中删除 replaces-base: true

将专用注册表 URL 添加到 `pip.conf` 文件的 `[global]` 部分,并将该文件签入存储库。

方法 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 文件的配置选项”。

--index-url https://private_registry_url

注意:从配置文件中删除 replaces-base: true

将专用注册表 URL 添加到 `requirements.txt` 文件,并将该文件签入存储库。

Pipenv

若要将 Pipenv 配置为仅访问专用注册表,请从 dependabot.yml 文件中移除 replaces-base

有关详细信息,请参阅“dependabot.yml 文件的配置选项”。

[[source]]
url = "https://private_registry_url"
verify_ssl = true
name = "pypi"

注意:从配置文件中删除 replaces-base: true

将专用注册表 URL 添加到 `Pipfile` 文件的 `[[source]]` 部分,并将该文件签入存储库。

诗歌

[[tool.poetry.source]]
name = "private"
url = "https://private_registry_url"
default = true