Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services
Statuscontroles dwingen kwaliteitsnormen af door samenvoegingen te blokkeren totdat aan tests wordt voldaan, beveiligingsscans worden gewist of andere voorwaarden worden voldaan. Azure DevOps Services en externe hulpprogramma's worden na statuscontroles gecontroleerd met behulp van de PR-status-API.
Als u een statuscontrole wilt vereisen als een vertakkingsbeleid, maakt u een beleid in de sectie Status om de sectie te controleren en geeft u het genre en de naam van de controle op in de indeling genre/name. De pull-aanvraag blokkeert vervolgens de samenvoegingen totdat de controlerapporten worden gecontroleerd succeeded.
Statuswaarden en samenvoeggedrag
Wanneer een statuscontrole een resultaat plaatst op een pull-aanvraag, wordt een van de volgende waarden gerapporteerd:
| Value | Gedrag met vereist beleid | Gedrag met optioneel beleid |
|---|---|---|
succeeded |
✓ Het beleid deblokkeren | Informatief |
failed |
✗ Samenvoegen van blokken | Informatief |
error |
✗ Samenvoegen van blokken | Informatief |
pending |
⏳ Samenvoegen blokkeren (wachtend op resultaat) | Informatief |
notApplicable |
✓ Beleidsvereiste overslaan | Informatief |
notSet |
⏳ Behandeld als in behandeling | Informatief |
Note
Wanneer een vereist beleid standaard is ingesteld op Toepassen, kunt u posten notApplicable om de beleidsvereiste voor een specifieke pull-aanvraag te verwijderen zonder de beleidsconfiguratie te wijzigen. Dit is handig wanneer een controle niet van toepassing is op een bepaalde wijziging.
Zie Een vertakkingsbeleid configureren voor een externe service voor algemene instructies voor het toevoegen van een statuscontrolebeleid. Zie Werkstromen voor pull-aanvragen aanpassen en uitbreiden met de status van pull-aanvragen voor geavanceerde beleidsopties, waaronder geautoriseerde identiteitsbeperkingen en instellingen voor toepasselijkheid van beleid.
Statuscontroles van eerste partijen Azure DevOps
Hier volgen de enige statuscontroles die systeemeigen door Azure DevOps Services worden geplaatst. Elke controle maakt gebruik van een vaste genrewaarde , zodat u het vertakkingsbeleid kunt configureren voor of na de service de eerste status plaatst. Alle andere statuscontroles zijn afkomstig van externe services via de PR-status-API.
GitHub Geavanceerde beveiliging voor Azure DevOps
Voor deze statuscontroles moet GitHub Advanced Security voor Azure DevOps zijn ingeschakeld in de opslagplaats. De controles evalueren beveiligingsproblemen die zijn gedetecteerd tijdens codescans (CodeQL), afhankelijkheidsscans en geheim scannen.
| Genre | Naam | Status om te controleren | Description |
|---|---|---|---|
AdvancedSecurity |
AllHighAndCritical |
AdvancedSecurity/AllHighAndCritical |
Blokken worden samengevoegd wanneer een onopgeloste beveiligingsprobleem met kritieke of hoge ernst in de opslagplaats bestaat van een scantype (code, afhankelijkheid of geheim). Vereist een buildvalidatiebeleid waarvoor Geavanceerde beveiligingspijplijntaken zijn ingeschakeld. |
AdvancedSecurity |
NewHighAndCritical |
AdvancedSecurity/NewHighAndCritical |
Blokken worden samengevoegd wanneer de pull-aanvraag nieuwe kritieke of ernstige beveiligingsproblemen introduceert van elk scantype. Bestaande beveiligingsproblemen in de opslagplaats blokkeren de samenvoeging niet. Vereist een buildvalidatiebeleid met Geavanceerde beveiligingspijplijntaken om de PULL-vertakking te scannen. |
Note
Beide AdvancedSecurity statuscontroles vereisen een buildvalidatiebeleid en geavanceerde beveiligingsscantaken die zijn geconfigureerd Wait for Processing: true om ervoor te zorgen dat statussen de meest recente scanresultaten weerspiegelen. Schakel voor het scannen van afhankelijkheden of codescans (CodeQL) de AdvancedSecurity-Publish taak inWait for Processing. Voor het scannen van code schakelt u deze ook in voor de AdvancedSecurity-CodeQL-Analyze taak. Beide controles worden weergegeven in de vervolgkeuzelijst Status om de vervolgkeuzelijst te controleren nadat de eerste geslaagde pijplijn is uitgevoerd met Advanced Security scanning.
Tip
Als uw opslagplaats bestaande niet-opgeloste waarschuwingen bevat, moet u beginnen AdvancedSecurity/NewHighAndCritical om te voorkomen dat alle pull-aanvragen onmiddellijk worden geblokkeerd. Migreren naar AdvancedSecurity/AllHighAndCritical zodra de achterstand van de waarschuwing is opgelost.
Zie Statuscontroles voor pull-aanvragen instellen voor installatie-instructies.
Important
Laat geavanceerde opties op de standaardinstellingen staan bij het configureren van het statuscontrolebeleid. Als u de geautoriseerde identiteit wijzigt of een iteratie-id vereist, voorkomt u dat statuscontroles correct worden geplaatst.
Azure-pipelines codedekking
Azure-pipelines automatisch een statuscontrole van de codedekking plaatst wanneer een pijplijn de resultaten van de codedekking publiceert voor een pull-aanvraag. Het genre is de naam van de pijplijn, dus de exacte genre/name waarde is afhankelijk van de naam van uw pijplijn.
| Genre | Naam | Status om te controleren | Description |
|---|---|---|---|
{pipeline-name} |
codecoverage |
{pipeline-name}/codecoverage |
Rapporteert het diff-dekkingspercentage voor regels die zijn gewijzigd in de pull-aanvraag. Advies standaard; blokkeert geen samenvoegingen, tenzij geconfigureerd als een vereist vertakkingsbeleid met een minimale dekkingsdrempel. |
De standaarddrempelwaarde is 70% diff dekking. Als u de drempelwaarde en andere instellingen wilt aanpassen, voegt u een azurepipelines-coverage.yml bestand toe aan de hoofdmap van uw opslagplaats:
coverage:
status:
comments: on
diff:
target: 80
Vervang door 80 het gewenste minimale diff dekkingspercentage.
Zie Vertakkingsbeveiliging afdwingen met een codedekkingsbeleid voor installatie-instructies.
Tip
Het genre is afgeleid van de weergavenaam van uw pijplijn in Azure-pipelines; het is geen afzonderlijk configureerbare waarde. Een pijplijn met de naam CI - Main gebruikt CI - Main/codecoverage bijvoorbeeld als status om de waarde te controleren . Statuscontroles worden alleen weergegeven in de vervolgkeuzelijst nadat de service ten minste één status heeft geplaatst in een pull-aanvraag. Voor nieuwe integraties die nog niet zijn uitgevoerd, typt u de genre/name waarde rechtstreeks in het veld.
Aangepaste en externe statuscontroles
Elke service die gebruikmaakt van de PULL-status-API , kan een statuscontrole plaatsen bij uw pull-aanvragen. Als u een statuscontrole wilt posten via de REST API, heeft de aanroepende identiteit de machtiging Bijdragen nodig voor pull-aanvragen voor de opslagplaats.
Wanneer een service een status plaatst, genre/name wordt deze weergegeven in de vervolgkeuzelijst Status om de vervolgkeuzelijst te controleren wanneer u een beleid toevoegt. Voor nieuwe services die nog niet zijn gepost, typt u de genre/name waarde rechtstreeks.
Algemene integratiepatronen
| Integratietype | Description | Examples |
|---|---|---|
| Servers bouwen en testen | Externe CI-hulpprogramma's die resultaten na het doorgeven of mislukken na het uitvoeren van tests op basis van de PULL-vertakking. | Jenkins, GitLab CI, CircleCI, Travis CI |
| Analyse van codekwaliteit | Statische analysehulpprogramma's waarmee code wordt gescand op bugs, beveiligingsproblemen en codegeuren. | SonarQube, SonarCloud |
| Beveiligingsscanners | Niet-Microsoft scanners voor beveiligingsproblemen die resultaten posten na het scannen van pull-aanvraagwijzigingen. Biedt ook ondersteuning voor sarif-indelingsresultaten. | Snyk, Checkmarx, WhiteSource (Mend), Microsoft Beveiliging DevOps |
| Naleving en beleid | Hulpprogramma's voor het afdwingen van beleid waarmee licenties, codestandaarden, wettelijke vereisten of implementatiegereedheid worden gecontroleerd. | Aangepaste nalevingscontroles, implementatiepoorten, licentiescanners |
| GitHub Actions | Controles van GitHub Actions werkstromen worden weergegeven in Azure DevOps PULL's wanneer de opslagplaats is verbonden met GitHub. Raadpleeg Azure DevOps GitHub integratie voor configuratiedetails. | Elke GitHub Actions werkstroom kan de status posten |
| Goedkeuringen en poorten | Services waarvoor handmatige of geautomatiseerde goedkeuring is vereist voordat samenvoegingen zijn toegestaan. | ServiceNow, aangepaste goedkeuringsservices via REST API |
Beleidsconfiguratieopties
Wanneer u een statuscontrolebeleid toevoegt, kunt u het volgende configureren:
- Beleidsvereiste: stel het beleid in zoals vereist (blokken worden samengevoegd, tenzij de controle is geslaagd) of optioneel (alleen ter informatie).
- Geautoriseerde identiteit: beperk welke accounts statuswaarden kunnen posten die voldoen aan het beleid. Laat leeg om elk account toe te staan.
- Voorwaarden voor opnieuw instellen: geef op of de status opnieuw wordt ingesteld wanneer een nieuwe doorvoering wordt gepusht. Als u standaard een nieuwe doorvoer pusht, worden de vereiste statuscontroles in behandeling opnieuw ingesteld, waardoor ze de meest recente code moeten evalueren. Als u een status wilt toestaan voor doorvoeringen, schakelt u De status Opnieuw instellen uit wanneer er nieuwe wijzigingen zijn.
-
Toepasselijkheid van beleid: kies of het beleid onmiddellijk van toepassing is (standaard toepassen) of pas nadat de eerste status is geplaatst (voorwaardelijk).
-
Standaard toepassen: het beleid blokkeert samenvoegen totdat een
succeededstatus wordt geplaatst. U kunt postennotApplicableom de vereiste voor een specifieke pull-aanvraag te omzeilen. - Voorwaardelijk: het beleid wordt pas actief nadat de controle de eerste status heeft.
-
Standaard toepassen: het beleid blokkeert samenvoegen totdat een
- Padfilter: Beperk het beleid tot PULL's die bestanden in specifieke paden wijzigen (optioneel).
Als u een aangepaste statuscontrole wilt implementeren, raadpleegt u:
- Werkstromen voor pull-aanvragen aanpassen en uitbreiden met de status van de pull-aanvraag
- Een statusserver voor pull-aanvragen maken met Node.js
- Azure Functions gebruiken om aangepast vertakkingsbeleid te maken
Verwante onderwerpen
- Een vertakkingsbeleid configureren voor een externe service
- GitHub Advanced Security voor Azure DevOps-functies configureren
- Resultaten van de codedekking controleren
- Naslaginformatie over REST API voor PR-status
- Een PR-statusserver maken met Node.js
- Azure DevOps Marketplace - Azure-opslagplaatsen categorie