Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
usługi Azure DevOps
Testy stanu wymuszają standardy jakości, blokując scalanie, dopóki testy nie zostaną spełnione, czy nie zostaną spełnione skanowanie zabezpieczeń lub inne warunki. Azure DevOps Usługi i narzędzia zewnętrzne po sprawdzeniu stanu przy użyciu interfejsu API stanu żądania ściągnięcia.
Aby wymagać sprawdzenia stanu jako zasad gałęzi, utwórz zasady w sekcji Stan, aby sprawdzić i określić gatunek i nazwę sprawdzania w formacie genre/name. Żądanie ściągnięcia następnie blokuje scalanie do momentu sprawdzenia raportów succeeded.
Wartości stanu i zachowanie scalania
Gdy sprawdzanie stanu publikuje wynik w żądaniu ściągnięcia, zgłasza jedną z następujących wartości:
| Value | Zachowanie z wymaganymi zasadami | Zachowanie przy użyciu opcjonalnych zasad |
|---|---|---|
succeeded |
√ Odblokuje zasady | Informacyjny |
failed |
✗ Bloki scalania | Informacyjny |
error |
✗ Bloki scalania | Informacyjny |
pending |
⏳ Blokuje scalanie (oczekiwanie na wynik) | Informacyjny |
notApplicable |
√ Pomija wymaganie zasad | Informacyjny |
notSet |
⏳ Traktowane jako oczekujące | Informacyjny |
Uwaga / Notatka
Jeśli wymagane zasady są domyślnie ustawione na Zastosuj, można opublikować polecenie notApplicable , aby usunąć wymaganie zasad dla określonego żądania ściągnięcia bez zmiany konfiguracji zasad. Jest to przydatne, gdy sprawdzanie nie ma zastosowania do określonej zmiany.
Aby uzyskać ogólne instrukcje dotyczące dodawania zasad sprawdzania stanu, zobacz Konfigurowanie zasad gałęzi dla usługi zewnętrznej. Aby uzyskać zaawansowane opcje zasad, w tym autoryzowane ograniczenia tożsamości i ustawienia stosowania zasad, zobacz Dostosowywanie i rozszerzanie przepływów pracy żądań ściągnięcia ze stanem żądania ściągnięcia.
Sprawdzanie stanu Azure DevOps pierwszej firmy
Poniżej przedstawiono jedyne kontrole stanu opublikowane natywnie przez usługi Azure DevOps Services. Każde sprawdzenie używa stałej wartości gatunku , więc można skonfigurować zasady gałęzi przed lub po wpisaniu pierwszego stanu przez usługę. Wszystkie inne kontrole stanu pochodzą z usług zewnętrznych za pośrednictwem interfejsu API stanu żądania ściągnięcia.
GitHub Advanced Security dla usługi Azure DevOps
Te testy stanu wymagają włączenia GitHub Advanced Security dla Azure DevOps w repozytorium. Testy oceniają luki w zabezpieczeniach wykryte w ramach skanowania kodu (CodeQL), skanowania zależności i skanowania wpisów tajnych.
| Gatunek | Name | Stan do sprawdzenia | Description |
|---|---|---|---|
AdvancedSecurity |
AllHighAndCritical |
AdvancedSecurity/AllHighAndCritical |
Bloki są scalane, gdy w repozytorium istnieje dowolna nierozwiązana luka w zabezpieczeniach o krytycznym lub wysokiej ważności (kod, zależność lub wpis tajny). Wymaga zasad weryfikacji kompilacji z włączonymi zadaniami potoku Advanced Security. |
AdvancedSecurity |
NewHighAndCritical |
AdvancedSecurity/NewHighAndCritical |
Blokuje scalanie, gdy żądanie ściągnięcia wprowadza nowe luki w zabezpieczeniach o krytycznym lub wysokiej ważności z dowolnego typu skanowania. Istniejące luki w zabezpieczeniach repozytorium nie blokują scalania. Wymaga zasad weryfikacji kompilacji z zadaniami potoku Advanced Security w celu skanowania gałęzi żądania ściągnięcia. |
Uwaga / Notatka
Oba AdvancedSecurity testy stanu wymagają zasad weryfikacji kompilacji i zadań skanowania zaawansowanego zabezpieczeń skonfigurowanych przy Wait for Processing: true użyciu w celu zapewnienia, że stany odzwierciedlają najnowsze wyniki skanowania. W przypadku skanowania zależności lub skanowania kodu (CodeQL) włącz Wait for Processing zadanie AdvancedSecurity-Publish . W przypadku skanowania kodu włącz je również w AdvancedSecurity-CodeQL-Analyze zadaniu. Oba testy są wyświetlane na liście rozwijanej Stan, aby sprawdzić po pierwszym pomyślnym uruchomieniu potoku przy użyciu skanowania zaawansowanego zabezpieczeń.
Wskazówka
Jeśli repozytorium ma istniejące nierozwiązane alerty, zacznij od AdvancedSecurity/NewHighAndCritical , aby uniknąć natychmiastowego blokowania wszystkich żądań ściągnięcia. Przeprowadź migrację do AdvancedSecurity/AllHighAndCritical po rozwiązaniu listy prac alertu.
Aby uzyskać instrukcje dotyczące konfiguracji, zobacz Konfigurowanie kontroli stanu żądania ściągnięcia.
Important
Pozostaw wartości domyślne opcji zaawansowanych podczas konfigurowania zasad sprawdzania stanu. Zmiana autoryzowanej tożsamości lub wymaganie identyfikatora iteracji uniemożliwia prawidłowe publikowanie sprawdzania stanu.
pokrycie kodu Azure Pipelines
Azure Pipelines automatycznie publikuje sprawdzanie stanu pokrycia kodu, gdy potok publikuje wyniki pokrycia kodu dla żądania ściągnięcia. Gatunek jest nazwą potoku, więc dokładna genre/name wartość zależy od sposobu nazwania potoku.
| Gatunek | Name | Stan do sprawdzenia | Description |
|---|---|---|---|
{pipeline-name} |
codecoverage |
{pipeline-name}/codecoverage |
Raportuje wartość procentową pokrycia różnic dla wierszy zmienionych w żądaniu ściągnięcia. Porady domyślnie; nie blokuje scalania, chyba że skonfigurowano jako wymagane zasady gałęzi z minimalnym progiem pokrycia. |
Domyślny próg przekazywania to 70% pokrycie różnic. Aby dostosować próg i inne ustawienia, dodaj azurepipelines-coverage.yml plik do katalogu głównego repozytorium:
coverage:
status:
comments: on
diff:
target: 80
Zastąp 80 element wartością procentową minimalnego pokrycia różnic.
Aby uzyskać instrukcje dotyczące konfiguracji, zobacz Wymuszanie ochrony gałęzi za pomocą zasad pokrycia kodu.
Wskazówka
Gatunek pochodzi z nazwy wyświetlanej potoku w Azure Pipelines; nie jest to oddzielnie konfigurowalna wartość. Na przykład potok o nazwie CI — main używa CI - Main/codecoverage jako stanu do sprawdzenia wartości. Kontrole stanu są wyświetlane tylko na liście rozwijanej po opublikowaniu co najmniej jednego stanu w żądaniu ściągnięcia. W przypadku nowych integracji, które nie zostały jeszcze uruchomione, wpisz genre/name wartość bezpośrednio w polu.
Niestandardowe i zewnętrzne kontrole stanu
Każda usługa korzystająca z interfejsu API stanu żądania ściągnięcia może opublikować sprawdzanie stanu żądań ściągnięcia. Aby opublikować sprawdzanie stanu za pośrednictwem interfejsu API REST, tożsamość wywołująca musi mieć uprawnienie Współtworzenie żądań ściągnięcia w repozytorium.
Gdy usługa opublikuje stan, zostanie genre/name wyświetlona na liście rozwijanej Stan, aby sprawdzić podczas dodawania zasad. W przypadku nowych usług, które nie zostały jeszcze opublikowane, wpisz genre/name wartość bezpośrednio.
Typowe wzorce integracji
| Typ integracji | Description | Examples |
|---|---|---|
| Kompilowanie i testowanie serwerów | Zewnętrzne narzędzia ciągłej integracji, które publikują wyniki powodzenia lub niepowodzenia po uruchomieniu testów względem gałęzi żądania ściągnięcia. | Jenkins, GitLab CI, CircleCI, Travis CI |
| Analiza jakości kodu | Narzędzia do analizy statycznej, które skanują kod pod kątem usterek, luk w zabezpieczeniach i zapachów kodu. | SonarQube, SonarCloud |
| Skanery zabezpieczeń | Skanery luk w zabezpieczeniach bez Microsoft, które publikują wyniki po skanowaniu zmian żądania ściągnięcia. Obsługuje również wyniki formatu SARIF. | Snyk, Checkmarx, WhiteSource (), rozwiązania zabezpieczające firmy Microsoft DevOps |
| Zgodność i zasady | Narzędzia wymuszania zasad, które weryfikują licencjonowanie, standardy kodu, wymagania prawne lub gotowość wdrożenia. | Niestandardowe kontrolery zgodności, bramy wdrożenia, skanery licencji |
| GitHub Actions | Sprawdzanie przepływów pracy GitHub Actions jest wyświetlane w Azure DevOps żądania ściągnięcia, gdy repozytorium jest połączone z GitHub. Aby uzyskać szczegółowe informacje o konfiguracji, zobacz Azure DevOps GitHub integracja. | Dowolny przepływ pracy GitHub Actions może publikować stan |
| Zatwierdzenia i bramy | Usługi wymagające ręcznego lub zautomatyzowanego zatwierdzania przed zezwoleniem na scalanie. | ServiceNow, niestandardowe usługi zatwierdzania za pośrednictwem interfejsu API REST |
Opcje konfiguracji zasad
Podczas dodawania zasad sprawdzania stanu można skonfigurować:
- Wymaganie dotyczące zasad: ustaw zasady zgodnie z wymaganiami (bloki scalają, chyba że sprawdzanie przebiegnie) lub opcjonalne (tylko informacyjne).
- Tożsamość autoryzowana: ogranicz, które konta mogą publikować wartości stanu spełniające zasady. Pozostaw pole puste, aby zezwolić na dowolne konto.
- Warunki resetowania: określ, czy stan jest resetowany po wypchnięciu nowego zatwierdzenia. Domyślnie wypychanie nowego resetowania zatwierdzenia wymaga sprawdzenia stanu do oczekujących, co zmusza je do oceny najnowszego kodu. Aby zezwolić na utrwalanie stanu w zatwierdzeniach, wyłącz opcję Resetuj stan zawsze, gdy pojawią się nowe zmiany.
-
Możliwość stosowania zasad: wybierz, czy zasady są stosowane natychmiast (zastosuj domyślnie), czy tylko po opublikowaniu pierwszego stanu (warunkowe).
-
Zastosuj domyślnie: bloki zasad są scalane do momentu opublikowania
succeededstanu. Możesz opublikować wpisnotApplicable, aby pominąć wymaganie dla określonego żądania ściągnięcia. - Warunkowe: zasady stają się aktywne tylko po wpisaniu pierwszego stanu sprawdzania.
-
Zastosuj domyślnie: bloki zasad są scalane do momentu opublikowania
- Filtr ścieżki: ogranicz zasady do żądań ściągnięcia, które modyfikują pliki w określonych ścieżkach (opcjonalnie).
Aby zaimplementować niestandardowe sprawdzanie stanu, zobacz:
- Dostosowywanie i rozszerzanie przepływów pracy dla pull requestów przy użyciu ich statusu
- Utwórz serwer statusu pull requestu za pomocą Node.js
- Tworzenie niestandardowych zasad rozgałęziania za pomocą usługi Azure Functions
Treści powiązane
- Konfigurowanie zasad rozgałęziania dla usługi zewnętrznej
- Konfiguruj GitHub Advanced Security dla funkcji Azure DevOps
- Przejrzyj wyniki pokrycia kodu
- Dokumentacja interfejsu API REST stanu żądania ściągnięcia
- Tworzenie serwera statusu PR przy użyciu Node.js
- Azure DevOps Marketplace — kategoria Azure Repos