Skip to main content

Removendo o acesso do Dependabot a registros públicos

Exemplos de como configurar o Dependabot para acessar somente registros privados removendo as chamadas para registros públicos.

Quem pode usar esse recurso?

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

Sobre a configuração do Dependabot para acessar somente registros privados

O Dependabot pode acessar registros públicos por padrão e você pode configurar o Dependabot para também acessar registros privados. Para saber mais sobre suporte e configuração de registro privado, confira "Configurando o acesso a registros privados para Dependabot." Para obter informações detalhadas sobre as opções disponíveis, bem como recomendações e conselhos ao configurar registros privados, consulte "Diretrizes para a configuração de registros privados para o Dependabot".

Para ter maior controle sobre o acesso do Dependabot aos seus registros privados e recursos de rede interna, você pode configurar o Dependabot para ser executado em executores auto-hospedados do GitHub Actions. Para obter mais informações, confira "Sobre o Dependabot em executores do GitHub Actions" e "Gerenciar o Dependabot em executores auto-hospedados."

É possível configurar o Dependabot para acessar apenas registros privados removendo as chamadas para registros públicos. Essa configuração só pode ser feita para os ecossistemas listados neste artigo.

bundler

Para configurar o ecossistema do Bundler a fim de acessar somente registros privados, defina replaces-base como true no arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Além disso, o ecossistema do Bundler requer o check-in de um arquivo Gemfile com a URL de registro privado no repositório.

# Example Gemfile

 source "https://private_registry_url"

Docker

Para configurar o ecossistema do Docker a fim de acessar somente registros privados, use os métodos de configuração a seguir.

Opção 1

Defina a configuração do registro privado em um arquivo dependabot.yml sem replaces-base. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: remova replaces-base: true do arquivo de configuração.

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

No arquivo Dockerfile, adicione o nome da imagem no formato IMAGE[:TAG], em que IMAGE consiste no seu nome de usuário e no nome do repositório.

 FROM firewallregistrydep.azurecr.io/myreg/ubuntu:22.04

Opção 2

Defina replaces-base como true no arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml". O registro configurado com replaces-base pode ser usado como um espelho ou um cache de preenchimento automático. Para saber mais, confira Registro como um cache de preenchimento automático na documentação do Docker.

Gradle

Para configurar o ecossistema do Gradle a fim de acessar somente registros privados, use os métodos de configuração a seguir.

Defina a configuração do registro privado em um arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: remova replaces-base: true do arquivo de configuração.

Além disso, também é necessário especificar a URL do registro privado na seção repositories do arquivo build.gradle.

# Example build.gradle file

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

Maven

Para configurar o ecossistema do Maven a fim de acessar somente registros privados, use os métodos de configuração a seguir.

Opção 1

Defina replaces-base como true no arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Opção 2

Use somente a URL do registro privado no arquivo pom.xml.

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

npm

Para configurar o ecossistema do npm a fim de acessar somente registros privados, use os métodos de configuração a seguir.

Opção 1

Defina a configuração do registro privado em um arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: remova replaces-base: true do arquivo de configuração.

Além disso, o ecossistema do npm requer o check-in de um arquivo .npmrc com a URL do registro privado no repositório.

 registry=https://private_registry_url

Opção 2

Se não houver um registro global definido em um arquivo .npmrc, será possível definir replaces-base como true no arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: para dependências com escopo definido (@my-org/my-dep), o Dependabot requer que o registro privado seja definido no arquivo .npmrc do projeto. Para definir registros privados para escopos individuais, use @myscope:registry=https://private_registry_url.

Yarn

Os registros privados do Yarn Classic e do Yarn Berry são compatíveis com o Dependabot, mas o Dependabot requer uma configuração diferente para que cada ecossistema acesse somente registros privados.

Yarn Classic

Para configurar o ecossistema do Yarn Classic a fim de acessar somente registros privados, use os métodos de configuração a seguir.

Opção 1

Defina a configuração do registro privado em um arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: exclua replaces-base: true do arquivo de configuração.

Para garantir que o registro privado esteja listado como a fonte de dependência no arquivo yarn.lock do projeto, execute yarn install em um computador com acesso ao registro privado. O Yarn deve atualizar o campo resolved para incluir a URL do registro privado.

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"

Opção 2

Se o arquivo yarn.lock não listar o registro privado como fonte de dependência, será possível configurar o Yarn Classic de acordo com as instruções normais do gerenciador de pacotes:

  1. Defina a configuração do registro privado em um arquivo dependabot.yml

  2. Adicione o registro a um arquivo .yarnrc na raiz do projeto com o registro de chave. Como alternativa, execute yarn config set registry <private registry URL>.

    registry https://private_registry_url
    

Opção 3

Se não houver um registro global definido em um arquivo .yarnrc, defina replaces-base como true no arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: para dependências com escopo definido (@my-org/my-dep), o Dependabot requer que o registro privado seja definido no arquivo .npmrc do projeto. Para definir registros privados para escopos individuais, use @myscope:registry=https://private_registry_url.

Yarn Berry

Para configurar o ecossistema do Yarn Berry a fim de acessar somente registros privados, use os métodos de configuração a seguir.

Opção 1

Defina a configuração do registro privado em um arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: exclua replaces-base: true do arquivo de configuração.

Para garantir que o registro privado esteja listado como a fonte de dependência no arquivo yarn.lock do projeto, execute yarn install em um computador com acesso ao registro privado. O Yarn deve atualizar o campo resolved para incluir a URL do registro privado.

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"

Opção 2

Se o arquivo yarn.lock não listar o registro privado como fonte de dependência, será possível configurar o Yarn Berry de acordo com as instruções normais do gerenciador de pacotes:

  1. Defina a configuração do registro privado em um arquivo dependabot.yml
  2. Adicione o registro a um arquivo .yarnrc.yml na raiz do projeto com a chave npmRegistryServer. Como alternativa, execute yarn config set npmRegistryServer <private registry URL>. npmRegistryServer: "https://private_registry_url"

Observação: para dependências com escopo definido (@my-org/my-dep), o Dependabot requer que o registro privado seja definido no arquivo .yarnrc do projeto. Para definir registros privados para escopos individuais, use "@myscope:registry" "https://private_registry_url".

Nuget

Para permitir que o ecossistema do Nuget acesse somente registros privados, é possível configurar o arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Além disso, o ecossistema do Nuget requer o check-in de um arquivo nuget.config no repositório, com uma marca < clear /> na seção <packageSources> ou uma chave nuget.org como true na seção disabledPackageSources do arquivo nuget.config.

Este é um exemplo de uma marca < clear /> na seção packageSources de nuget.config.

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

Este é um exemplo de adição da chave nuget.org como true à seção disabledPackageSources de nuget.config

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

A fim de configurar o Dependabot para acessar feeds públicos e privados, confira o exemplo dependabot.yml a seguir, que inclui o feed public configurado emregistries:

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

O Pip, o Pip-compile, o Pipenv e o Poetry são os quatro gerenciadores de pacotes compatíveis atualmente com o ecossistema do Python.

Pip

Para configurar o ecossistema do Pip a fim de acessar somente registros privados, use os métodos de configuração a seguir.

Opção 1

Defina a configuração do registro privado em um arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: exclua replaces-base: true do arquivo de configuração.

Adicione a URL do registro privado à seção [global] do arquivo pip.conf e faça check-in do arquivo no repositório.

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

Opção 2

Defina replaces-base como true no arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Pip-compile

Para configurar o ecossistema do Pip-compile a fim de acessar somente registros privados, use os métodos de configuração a seguir.

Opção 1

Defina replaces-base como true no arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Opção 2

Defina a configuração do registro privado em um arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: exclua replaces-base: true do arquivo de configuração.

Adicione a URL do registro privado ao arquivo requirements.txt para fazer o check-in dele no repositório.

--index-url https://private_registry_url

Pipenv

Para configurar o Pipenv a fim de acessar somente registros privados, remova replaces-base do arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Observação: exclua replaces-base: true do arquivo de configuração.

Adicione a URL do registro privado à seção [[source]] do arquivo Pipfile e faça check-in do arquivo no repositório.

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

Poetry

Para configurar o Poetry a fim de acessar somente registros privados, defina replaces-base como true no arquivo dependabot.yml. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Adicione a URL do registro privado à seção [[tool.poetry.source]] do arquivo pyproject.toml e faça check-in dele no repositório.

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