Sobre a análise de dependência
Revisão de dependências ajuda você a entender as alterações de dependência e o impacto de segurança dessas alterações em cada pull request. Ele fornece uma visualização facilmente compreensível de mudanças de dependência, com um diff avançado na aba "Arquivos alterados" de uma solicitação de pull. A revisão de dependências informa você:
- Quais dependências foram adicionadas, removidas ou atualizadas, junto com as datas de versão.
- Quantos projetos usam esses componentes.
- Dados de vulnerabilidade para essas dependências.
Para obter mais informações, confira "Sobre a análise de dependência" e "Revendo alterações de dependência em um pull request."
Sobre a configuração da revisão de dependência
A revisão de dependência está incluída no GitHub Enterprise Cloud em repositórios públicos. Para usar a revisão de dependências em repositórios privados pertencentes a organizações, você deve ter uma licença para GitHub Advanced Security e ter o gráfico de dependências habilitado.
Os administradores de repositório podem habilitar ou desabilitar o gráfico de dependência para repositórios privados ou internos.
Você pode habilitar ou desabilitar o gráfico de dependências para todos os repositórios pertencentes à sua conta de usuário. Para obter mais informações, confira "Gerenciar as configurações de segurança e análise para a sua conta pessoal".
Você também pode habilitar o grafo de dependência para vários repositórios em uma organização ao mesmo tempo. Para obter mais informações, confira "Como proteger sua organização".
-
No GitHub.com, navegue até a página principal do repositório.
-
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.
-
Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.
-
Leia a mensagem sobre a permissão de acesso somente leitura do GitHub Enterprise Cloud aos dados do repositório para habilitar o grafo de dependência e, ao lado de "Grafo de Dependência", clique em Habilitar.
Você pode desabilitar o grafo de dependência a qualquer momento clicando em Desabilitar ao lado de "Grafo de Dependência" na página de configurações em "Segurança e análise de código".
-
Role a página para baixo e, se "GitHub Advanced Security" não estiver habilitado, clique em Habilitar ao lado do recurso.
Sobre a configuração da ação de revisão de dependência
O ação de revisão de dependência verifica as solicitações de pull em busca de alterações de dependência e gera um erro se as novas dependências têm vulnerabilidades conhecidas. A ação é compatível com um ponto de extremidade de API que compara as dependências entre duas revisões e relata todas as diferenças.
Para obter mais informações sobre a ação e o ponto de extremidade da API, confira a documentação dependency-review-action
e "Análise de dependência" na documentação da API.
As opções de configuração a seguir estão disponíveis.
Opção | Obrigatório | Uso |
---|---|---|
fail-on-severity | Define o limite do nível de severidade (low , moderate , high e critical ).A ação falhará nas solicitações de pull que apresentarem vulnerabilidades no nível de severidade especificado ou superior. | |
allow-licenses | Contém uma lista de licenças permitidas. Veja os valores possíveis para esse parâmetro na página Licenças da documentação da API. A ação falhará em solicitações de pull que introduzirem dependências com licenças que não correspondem à lista. | |
deny-licenses | Contém uma lista de licenças proibidas. Veja os valores possíveis para esse parâmetro na página Licenças da documentação da API. A ação falhará em solicitações de pull que introduzirem dependências com licenças que correspondem à lista. | |
allow-ghsas | Contém uma lista de IDs do GitHub Advisory Database que podem ser ignoradas durante a detecção. É possível encontrar os valores possíveis para este parâmetro no GitHub Advisory Database. | |
config-file | Especifica um caminho para um arquivo de configuração. O arquivo de configuração pode ser local em relação ao repositório ou estar em um repositório externo. |
Dica: as opções allow-licenses
e deny-licenses
são mutuamente exclusivas.
Como configurar a ação de revisão de dependência
Há dois métodos de configuração da ação de revisão de dependência:
- Integrar as opções de configuração no arquivo de fluxo de trabalho.
- Fazer referência a um arquivo de configuração no arquivo de fluxo de trabalho.
Observe que todos os exemplos usam um número de versão curto para a ação (v3
) em vez de um número de versão semver (por exemplo, v3.0.8
). Isso garante que você use a versão secundária mais recente da ação.
Usar a configuração em linha para configurar a ação de revisão de dependência
-
Adicione um fluxo de trabalho YAML à pasta
.github/workflows
.YAML name: 'Dependency Review' on: [pull_request] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' uses: actions/checkout@v4 - name: Dependency Review uses: actions/dependency-review-action@v3
name: 'Dependency Review' on: [pull_request] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' uses: actions/checkout@v4 - name: Dependency Review uses: actions/dependency-review-action@v3
-
Especifique suas configurações.
Esse arquivo de exemplo de ação de revisão de dependência ilustra como usar as opções de configuração disponíveis.
YAML name: 'Dependency Review' on: [pull_request] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' uses: actions/checkout@v4 - name: Dependency Review uses: actions/dependency-review-action@v3 with: # Possible values: "critical", "high", "moderate", "low" fail-on-severity: critical # You can only include one of these two options: `allow-licenses` and `deny-licenses` # ([String]). Only allow these licenses (optional) # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses allow-licenses: GPL-3.0, BSD-3-Clause, MIT # ([String]). Block the pull request on these licenses (optional) # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses deny-licenses: LGPL-2.0, BSD-2-Clause # ([String]). Skip these GitHub Advisory Database IDs during detection (optional) # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories allow-ghsas: GHSA-abcd-1234-5679, GHSA-efgh-1234-5679 # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional) # Possible values: "development", "runtime", "unknown" fail-on-scopes: development, runtime
name: 'Dependency Review' on: [pull_request] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' uses: actions/checkout@v4 - name: Dependency Review uses: actions/dependency-review-action@v3 with: # Possible values: "critical", "high", "moderate", "low" fail-on-severity: critical # You can only include one of these two options: `allow-licenses` and `deny-licenses` # ([String]). Only allow these licenses (optional) # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses allow-licenses: GPL-3.0, BSD-3-Clause, MIT # ([String]). Block the pull request on these licenses (optional) # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses deny-licenses: LGPL-2.0, BSD-2-Clause # ([String]). Skip these GitHub Advisory Database IDs during detection (optional) # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories allow-ghsas: GHSA-abcd-1234-5679, GHSA-efgh-1234-5679 # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional) # Possible values: "development", "runtime", "unknown" fail-on-scopes: development, runtime
Usar um arquivo de configuração para configurar a ação de revisão de dependência
-
Adicione um fluxo de trabalho YAML à pasta
.github/workflows
e useconfig-file
para especificar que você está usando um arquivo de configuração.YAML name: 'Dependency Review' on: [pull_request] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' uses: actions/checkout@v4 - name: Dependency Review uses: actions/dependency-review-action@v3 with: # ([String]). Representing a path to a configuration file local to the repository or in an external repository. # Possible values: An absolute path to a local file or an external file. config-file: './.github/dependency-review-config.yml' # Syntax for an external file: OWNER/REPOSITORY/FILENAME@BRANCH config-file: 'github/octorepo/dependency-review-config.yml@main' # ([Token]) Use if your configuration file resides in a private external repository. # Possible values: Any GitHub token with read access to the private external repository. external-repo-token: 'ghp_123456789abcde'
name: 'Dependency Review' on: [pull_request] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' uses: actions/checkout@v4 - name: Dependency Review uses: actions/dependency-review-action@v3 with: # ([String]). Representing a path to a configuration file local to the repository or in an external repository. # Possible values: An absolute path to a local file or an external file. config-file: './.github/dependency-review-config.yml' # Syntax for an external file: OWNER/REPOSITORY/FILENAME@BRANCH config-file: 'github/octorepo/dependency-review-config.yml@main' # ([Token]) Use if your configuration file resides in a private external repository. # Possible values: Any GitHub token with read access to the private external repository. external-repo-token: 'ghp_123456789abcde'
-
Crie o arquivo de configuração no caminho especificado.
Esse arquivo de exemplo YAML ilustra como é possível usar as opções de configuração disponíveis.
YAML # Possible values: "critical", "high", "moderate", "low" fail-on-severity: critical # You can only include one of these two options: `allow-licenses` and `deny-licenses` # ([String]). Only allow these licenses (optional) # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses allow-licenses: - GPL-3.0 - BSD-3-Clause - MIT # ([String]). Block the pull request on these licenses (optional) # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses deny-licenses: - LGPL-2.0 - BSD-2-Clause # ([String]). Skip these GitHub Advisory Database IDs during detection (optional) # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories allow-ghsas: - GHSA-abcd-1234-5679 - GHSA-efgh-1234-5679 # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional) # Possible values: "development", "runtime", "unknown" fail-on-scopes: - development - runtime
# Possible values: "critical", "high", "moderate", "low" fail-on-severity: critical # You can only include one of these two options: `allow-licenses` and `deny-licenses` # ([String]). Only allow these licenses (optional) # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses allow-licenses: - GPL-3.0 - BSD-3-Clause - MIT # ([String]). Block the pull request on these licenses (optional) # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses deny-licenses: - LGPL-2.0 - BSD-2-Clause # ([String]). Skip these GitHub Advisory Database IDs during detection (optional) # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories allow-ghsas: - GHSA-abcd-1234-5679 - GHSA-efgh-1234-5679 # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional) # Possible values: "development", "runtime", "unknown" fail-on-scopes: - development - runtime
Para saber mais detalhes sobre as opções de configuração, confira dependency-review-action
.