Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Serviços de DevOps do Azure
As verificações de estado aplicam padrões de qualidade bloqueando fusões até que os testes passem, as análises de segurança sejam resolvidas ou outras condições sejam cumpridas. Os Serviços Azure DevOps e ferramentas externas publicam verificações de estado usando a API PR Status.
Para exigir uma verificação de estado como política de ramo, crie uma política na secção de Estado para verificar e especifique o Género e o Nome do verificador no formato genre/name. O pull request bloqueia então fusões até que a verificação reporte succeeded.
Valores de estado e comportamento de fusão
Quando uma verificação de estado publica um resultado num pull request, reporta um dos seguintes valores:
| Value | Comportamento com a política necessária | Comportamento com política opcional |
|---|---|---|
succeeded |
✓ Desbloqueia a apólice | Informativo |
failed |
✗ Blocos fundem-se | Informativo |
error |
✗ Blocos fundem-se | Informativo |
pending |
⏳ Fusão de blocos (aguardando resultado) | Informativo |
notApplicable |
✓ Contorna o requisito da política | Informativo |
notSet |
⏳ Tratado como pendente | Informativo |
Note
Quando uma política obrigatória está definida como Aplicar por defeito, pode publicar notApplicable para remover o requisito de política para uma RP específica sem alterar a configuração da política. Isto é útil quando um cheque não é aplicável a uma alteração específica.
Para instruções gerais sobre como adicionar uma política de verificação de estado, consulte Configurar uma política de branch para um serviço externo. Para opções avançadas de políticas, incluindo restrições de identidade autorizadas e definições de aplicabilidade de políticas, consulte Personalizar e estender fluxos de trabalho de pull request com estado de pull request.
First-party Azure DevOps status checks
A seguir-se as únicas verificações de estado publicadas nativamente pelo Azure DevOps Services. Cada verificação usa um valor fixo de Género , por isso pode configurar a política de branch antes ou depois do serviço publicar o seu primeiro estado. Todas as outras verificações de estado vêm de serviços externos através da API PR Status.
GitHub Advanced Security para o Azure DevOps
Estas verificações de estado exigem que o GitHub Advanced Security for Azure DevOps esteja ativado no repositório. As verificações avaliam vulnerabilidades de segurança detetadas através da varredura de código (CodeQL), varredura de dependências e análise secreta.
| Gênero | Name | Estado a verificar | Description |
|---|---|---|---|
AdvancedSecurity |
AllHighAndCritical |
AdvancedSecurity/AllHighAndCritical |
Bloqueia fusões quando existe qualquer vulnerabilidade crítica ou de alta gravidade não resolvida no repositório de qualquer tipo de varredura (código, dependência ou segredo). Requer uma política de validação de compilações com tarefas do pipeline Advanced Security ativadas. |
AdvancedSecurity |
NewHighAndCritical |
AdvancedSecurity/NewHighAndCritical |
Blocos fusão quando o pull request introduz novas vulnerabilidades críticas ou de alta gravidade de qualquer tipo de varrimento. Vulnerabilidades existentes no repositório não bloqueiam a fusão. Requer uma política de validação de build com tarefas de pipeline de Segurança Avançada para analisar o ramo PR. |
Note
Ambas AdvancedSecurity as verificações de estado requerem uma política de validação de compilação e tarefas de varredura de Segurança Avançada configuradas para Wait for Processing: true garantir que os estados refletem os resultados mais recentes da varredura. Para varredura de dependências ou de código (CodeQL), ative Wait for Processing a AdvancedSecurity-Publish tarefa. Para digitalização de código, também ative-o na AdvancedSecurity-CodeQL-Analyze tarefa. Ambas as verificações aparecem no menu suspenso de Estado para verificação após a primeira execução bem-sucedida do pipeline com a varredura Advanced Security.
Tip
Se o seu repositório já tiver alertas não resolvidos, comece por AdvancedSecurity/NewHighAndCritical evitar bloquear imediatamente todos os pull requests. Migre para AdvancedSecurity/AllHighAndCritical quando o atraso de alertas estiver resolvido.
Para instruções de configuração, consulte verificações de estado de configurar pull requests.
Importante
Deixe as Opções Avançadas nos seus valores predefinidos ao configurar a política de verificação de estado. Alterar a identidade autorizada ou exigir um ID de iteração impede que as verificações de estado sejam publicadas corretamente.
Azure Pipelines code coverage
O Azure Pipelines publica automaticamente uma verificação do estado da cobertura de código quando um pipeline publica resultados de cobertura de código para um pull request. O género é o nome do pipeline, por isso o valor exato genre/name depende de como nomeaste o pipeline.
| Gênero | Name | Estado a verificar | Description |
|---|---|---|---|
{pipeline-name} |
codecoverage |
{pipeline-name}/codecoverage |
Reporta a percentagem de cobertura do diferencial para linhas alteradas no pull request. Consultoria por defeito; não bloqueia fusões, a menos que esteja configurada como uma política de ramo obrigatória com um limiar mínimo de cobertura. |
O limiar padrão de aprovação é 70% cobertura diferencial. Para ajustar o limiar e outras definições, adicione um azurepipelines-coverage.yml ficheiro à raiz do seu repositório:
coverage:
status:
comments: on
diff:
target: 80
Substitua 80 pela percentagem mínima desejada de cobertura diferencial.
Para instruções de configuração, consulte Enforcer proteção de ramos com uma política de cobertura de código.
Tip
O género deriva do nome de exibição do seu pipeline no Azure Pipelines; não é um valor configurável separadamente. Por exemplo, um pipeline chamado CI - Main é usado CI - Main/codecoverage como Estado para verificar o valor. As verificações de estado só aparecem no menu suspenso depois de o serviço ter publicado pelo menos um estado num pull request. Para novas integrações que ainda não foram executadas, escreva o genre/name valor diretamente no campo.
Verificações de estado personalizadas e externas
Qualquer serviço que utilize a PR Status API pode enviar uma verificação de estado para os seus pull requests. Para publicar uma verificação de estado através da API REST, a identidade que chama precisa da permissão Contribuir para pull requests no repositório.
Quando um serviço publica um estado, aparece genre/name no Estado para verificar o menu suspenso ao adicionar uma política. Para serviços novos que ainda não foram publicados, escreva o genre/name valor diretamente.
Padrões comuns de integração
| Tipo de integração | Description | Examples |
|---|---|---|
| Servidores de construção e teste | Ferramentas externas de CI que publicam resultados de aprovação ou reprovação após a execução de testes contra o ramo PR. | Jenkins, GitLab CI, CircleCI, Travis CI |
| Análise de qualidade de código | Ferramentas de análise estática que analisam código à procura de bugs, vulnerabilidades e cheiros de código. | SonarQube, SonarCloud |
| Scanners de segurança | Scanners de vulnerabilidades não-Microsoft que publicam resultados após analisar alterações de PR. Também suporta resultados em formato SARIF. | Snyk, Checkmarx, WhiteSource (Mend), Microsoft Security DevOps |
| Conformidade e política | Ferramentas de aplicação de políticas que verificam licenciamentos, normas de código, requisitos regulamentares ou prontidão para a implementação. | Verificadores personalizados de conformidade, portas de implementação, scanners de licença |
| GitHub Actions | Verificações dos fluxos de trabalho do GitHub Actions aparecem nos PRs do Azure DevOps quando o repositório está ligado ao GitHub. Consulte Azure DevOps GitHub integração para detalhes de configuração. | Qualquer fluxo de trabalho do GitHub Actions pode publicar o estado |
| Aprovações e limites | Serviços que requerem aprovação manual ou automática antes das fusões são permitidos. | ServiceNow, serviços personalizados de aprovação via API REST |
Opções de configuração de políticas
Ao adicionar uma política de verificação de estado, pode configurar:
- Requisito da política: Definir a política conforme necessário (bloqueia fusões a menos que a verificação seja aprovada) ou opcional (apenas informativo).
- Identidade autorizada: Restringa que contas podem publicar valores de estado que satisfaçam a política. Deixe em branco para permitir qualquer conta.
- Condições de reset: Especifique se o estado se reinicia quando um novo commit é empurrado. Por defeito, enviar um novo commit reinicia as verificações de estado para pendentes, obrigando-os a avaliar o seu código mais recente. Para permitir que um estado persista entre os commits, desative o estado de Reset sempre que houver novas alterações.
-
Aplicabilidade da política: Escolha se a política se aplica imediatamente (Aplicar por defeito) ou apenas após o primeiro estado ser publicado (Condicional).
-
Aplicar por defeito: A política bloqueia fusões até que um
succeededestado seja publicado. Podes publicarnotApplicablepara contornar o requisito de um PR específico. - Condicional: A apólice só se torna ativa depois de o cheque publicar o seu primeiro estado.
-
Aplicar por defeito: A política bloqueia fusões até que um
- Filtro de caminhos: Restringa a política a PRs que modificam ficheiros em caminhos específicos (opcional).
Para implementar uma verificação de estado personalizada, veja:
- Personalize e expanda os fluxos de trabalho do pull request com o estado do pull request
- Criar um servidor de estado de pull request com Node.js
- Utilizar Funções do Azure para criar políticas de ramificação personalizadas
Conteúdo relacionado
- Configurar uma política de ramificação para um serviço externo
- Configurar GitHub Advanced Security para funcionalidades do Azure DevOps
- Rever os resultados da cobertura do código
- PR Status Referência da API REST
- Criar um servidor de status de RP com Node.js
- Azure DevOps Marketplace — Repositórios do Azure category