Skip to main content

Configuração do envio automático de dependência para o repositório

É possível usar o envio automático de dependência para enviar dados de dependências transitivas do seu repositório. Isso possibilita a você analisar essas dependências transitivas ao usar o grafo de dependência.

Quem pode usar esse recurso?

Proprietários de repositórios, proprietários de organizações, gerentes de segurança e usuários com a função de administrador

Sobre o envio automático de dependência

Note

No momento, o suporte para o envio automático de dependência é somente para o Maven.

O grafo de dependência analisa os arquivos de manifesto e de bloqueio de um repositório com a finalidade de ajudar os usuários no reconhecimento das dependências das quais o repositório depende. No entanto, em alguns ecossistemas, a resolução de dependências transitivas ocorre no momento da compilação e o GitHub não consegue descobrir automaticamente todas as dependências com base apenas no conteúdo do repositório.

Ao habilitar o envio automático de dependência para um repositório, o GitHub identifica automaticamente as dependências transitivas no repositório e as envia para o GitHub ao usar a API de envio de dependência. Em seguida, você pode criar relatórios sobre essas dependências ao usar o grafo de dependência.

O uso do envio automático de dependência é contabilizado nos minutos do GitHub Actions. Para saber mais, confira Sobre a cobrança das GitHub Actions.

Opcionalmente, você pode escolher configurar executores com auto-hospedagem ou executores avançados hospedados pelo GitHub para o envio automático de dependência. Para obter mais informações, confira “Como usar executores com auto-hospedagem para o envio automático de dependência” e “Como usar executores avançados hospedados pelo GitHub para o envio automático de dependência”.

Pré-requisitos

O grafo de dependência deve estar habilitado no repositório para que seja possível habilitar o envio automático de dependência.

Você também deve habilitar GitHub Actions para o repositório com a finalidade de usar o envio automático de dependência. Para saber mais, confira Gerenciando as configurações do GitHub Actions para um repositório.

Como habilitar o envio automático de dependência

Os administradores de repositório podem habilitar ou desabilitar o envio automático de dependência para um repositório ao seguir as etapas descritas neste procedimento.

Os proprietários da organização podem habilitar o envio automático de dependência para múltiplos repositórios ao usar uma configuração de segurança. Para saber mais, confira Criando uma configuração de segurança personalizada.

  1. Em GitHub, acesse a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Configurações" é realçada por um contorno laranja-escuro.

  3. Na seção "Security" da barra lateral, clique em Code security.

  4. Em “Grafo de dependência”, clique no menu suspenso próximo a “Envio automático de dependência” e, em seguida, selecione Habilitar.

Após habilitar o envio automático de dependência para um repositório, o GitHub irá:

  • Monitorar alterações no arquivo pom.xml na raiz do repositório em todas as ramificações do repositório.
  • Executar um envio automático de dependência a cada alteração.

É possível realizar a exibição de detalhes sobre a execução dos fluxos de trabalho automáticos ao exibir a guia Ações do repositório.

Note

O envio automático ocorrerá no primeiro push para o arquivo pom.xml assim que a opção estiver habilitada.

Como usar executores com auto-hospedagem para o envio automático de dependência

É possível configurar executores com auto-hospedagem para realizar a execução de trabalhos de envio automático de dependência, em vez de usar a infraestrutura do GitHub Actions.

  1. Realize o provisionamento de um ou mais executores com auto-hospedagem, seja no nível do repositório ou da organização. Para saber mais, confira Sobre executores auto-hospedados e Adicionar executores auto-hospedados. Os executores com auto-hospedagem devem estar em execução no Linux ou no macOS e devem ter o Docker instalado.
  2. Atribua um rótulo dependency-submission a cada executor que você deseja que o envio automático de dependência use. Para saber mais, confira Usar rótulos com os executores auto-hospedados.
  3. Na seção "Security" da barra lateral, clique em Code security.
  4. Em “Grafo de dependência”, clique no menu suspenso ao lado de “Envio automático de dependência” e, em seguida, selecione Habilitar para executores com rótulos.

Após habilitados, os trabalhos de envio automático de dependência serão executados nos executores com auto-hospedagem, exceto se:

  • Os executores com auto-hospedagem não estiverem disponíveis.
  • Não existirem grupos de executores com a marcação do rótulo dependency-submission.

Note

Ao usar executores com auto-hospedagem, é necessário adicionar acesso ao arquivo de configurações do servidor do Maven para permitir que os fluxos de trabalho de envio de dependência realizem a conexão com registros privados. As dependências de registros privados serão incluídas na árvore de dependência na próxima atualização pom.xml. Para obter mais informações sobre o arquivo de configurações do servidor do Maven, confira Security and Deployment Settings na documentação do Maven.

Como usar executores avançados hospedados pelo GitHub para o envio automático de dependência

Usuários do GitHub Team ou do GitHub Enterprise Cloud podem usar executores avançados para realizar a execução de envio automático de dependência.

  1. Realize o provisionamento de executores avançados no nível da organização com o nome dependency-submission. Para saber mais, confira Adicionando um executor maior a uma organização.
  2. Conceda ao repositório acesso ao executor. Para saber mais, confira Permitindo que repositórios acessem executores avançados.
  3. Em “Grafo de dependência”, clique no menu suspenso ao lado de “Envio automático de dependência” e, em seguida, selecione Habilitar para executores com rótulos.

Solução de problemas de envio automático de dependência

No momento, o suporte para o envio automático de dependência é somente para o Maven. O recurso usa a ação Envio da Árvore de Dependência do Maven. Para obter mais informações, confira a documentação para a ação Maven Dependency Tree Dependency Submission no GitHub Marketplace. Se o seu projeto usar uma configuração Maven não padrão, ele poderá não gerar corretamente as dependências e enviá-las para o grafo de dependência.

O envio automático de dependência faz o melhor esforço para armazenar em cache downloads de pacotes entre execuções usando a ação Cache para acelerar os fluxos de trabalho. Para executores auto-hospedados, talvez você queira gerenciar esse cache em sua infraestrutura. Para fazer isso, você pode desabilitar o cache interno definindo uma variável de ambiente GH_DEPENDENCY_SUBMISSION_SKIP_CACHE para true. Para saber mais, confira Armazenar informações em variáveis.

Leitura adicional