Ogólna dostępność federacji tożsamości obciążenia dla połączeń usługi Azure Resource Manager
Z przyjemnością ogłaszamy, że federacja tożsamości obciążenia jest teraz ogólnie dostępna w usłudze Azure Pipelines! Możesz korzystać ze usprawnionego środowiska bez konieczności zarządzania wpisami tajnymi i certyfikatami w połączeniach usług platformy Azure.
Dzięki tej aktualizacji zapoznamy się również z nową funkcją w ramach rozszerzonej integracji usługi GitHub z usługą Azure Boards. Teraz możesz połączyć się bezpośrednio z żądaniami ściągnięcia lub zatwierdzeniami usługi GitHub. Nie ma więcej przełączania między oknami lub kopiowanie/wklejanie. Po prostu wybierz żądane repozytorium, znajdź potrzebne żądanie ściągnięcia lub zatwierdzenie i połącz je.
Zapoznaj się z informacjami o wersji, aby dowiedzieć się więcej o tych funkcjach.
Ogólne
- Ostateczne powiadomienie o wycofaniu poświadczeń alternatywnych
- Samoobsługowa rotacja wpisów tajnych usługi Azure Devops OAuth
Usługa GitHub Advanced Security dla usługi Azure DevOps
- Fragmenty kodu są teraz dostępne w widoku szczegółów alertu
- Obcięte wpisy tajne wyświetlane w przeglądze alertów
- Dodano więcej ważności alertów dla alertów skanowania kodu
- Połączona subskrypcja platformy Azure wymagana do włączenia usługi GitHub Advanced Security dla usługi Azure DevOps
- Zaawansowane aktualizacje interfejs API Zabezpieczenia
- Uprawnienia zabezpieczeń zaawansowanych są teraz trwale wyświetlane
Azure Boards
- Dodawanie linku do zatwierdzenia lub żądania ściągnięcia usługi GitHub (wersja zapoznawcza)
- Ulepszenia centrum nowych tablic
- Kontrolki programowania i wdrażania
Azure Pipelines
- Federacja tożsamości obciążenia dla połączeń usługi Azure Resource Manager jest teraz ogólnie dostępna
- Instalacja poza pasmem modułu uruchamiającego zadania node 6
- Zatwierdzenie odroczone
- Sekwencjonowanie zatwierdzeń i kontroli
- Sprawdzanie poprawności i zapisywanie domyślnie podczas edytowania potoków YAML
Azure Repos
Azure Artifacts
Ogólne
Ostateczne powiadomienie o wycofaniu poświadczeń alternatywnych
Alternatywne poświadczenia zostały formalnie przestarzałe w marcu 2020 r., ale niektórzy istniejący użytkownicy byli dziadkowie z ciągłym użyciem istniejących poświadczeń alternatywnych. Od stycznia 2024 r. w pełni wycofaliśmy wszystkie alternatywne poświadczenia. Aby uniknąć potencjalnych zakłóceń, przełącz się na jeden z dostępnych mechanizmów uwierzytelniania, takich jak osobiste tokeny dostępu lub tożsamości zarządzane.
Samoobsługowa rotacja wpisów tajnych usługi Azure Devops OAuth
Co pięć lat ważne jest zaktualizowanie klucza tajnego klienta dla aplikacji OAuth usługi Azure DevOps w celu zapewnienia ciągłego generowania tokenów dostępu i odświeżania niezbędnych do korzystania z interfejsów API usługi Azure DevOps. Gdy klucz tajny klienta zbliża się do wygaśnięcia, możesz teraz niezależnie wygenerować nowy, zapewniając zespołowi swobodę zarządzania nim bez polegania na obsłudze klienta. Ta elastyczność planowania rotacji wpisów tajnych minimalizuje potencjalny czas przestoju dla klientów oczekujących na zastąpienie z powodu wygasłego wpisu tajnego.
Poszukaj tej nowej funkcji na każdej stronie aplikacji usługi Azure DevOps, które mogą być dostępne za pośrednictwem twojego profilu tutaj. Dowiedz się więcej o tym nowym kroku w naszym przewodniku OAuth usługi Azure DevOps.
Usługa GitHub Advanced Security dla usługi Azure DevOps
Fragmenty kodu są teraz dostępne w widoku szczegółów alertu
Strona szczegółów alertu dotycząca skanowania kodu i alertów skanowania wpisów tajnych zawiera teraz fragmenty kodu, które oznaczają jeden lub więcej wierszy kodu, w których wystąpił alert. Aby przejść do oryginalnego pliku w repozytorium usługi Azure DevOps, kliknij nazwę pliku powyżej fragmentu kodu.
Obcięte wpisy tajne wyświetlane w przeglądze alertów
Obcięte, ostatnie sześć znaków wszystkich wykrytych wpisów tajnych jest teraz wyświetlane na ekranie przeglądu alertów wpisów tajnych. Ta funkcja jest przydatna, jeśli masz wiele tajnych ekspozycji tego samego typu wpisu tajnego, co pozwala na szybkie zidentyfikowanie miejsca, w którym żyją określone wpisy tajne.
Dodano więcej ważności alertów dla alertów skanowania kodu
Istnieją teraz nowe ważności alertów dla wyników alertów z zapytań CodeQL quality
jako Error
, Warning
i Note
ważności. Każda ważność alertu jakości ma własny znaczek i kolor, aby określić ważność skalowania. Można również filtrować dla każdej z tych ważności, podobnie jak low
critical
w przypadku skalowania ważności alertów zabezpieczeń.
Połączona subskrypcja platformy Azure wymagana do włączenia usługi GitHub Advanced Security dla usługi Azure DevOps
Jeśli wcześniej włączono usługę Advanced Security dla repozytoriów w organizacji usługi Azure DevOps bez połączonej subskrypcji platformy Azure, możesz zauważyć automatyczne wyłączenie zabezpieczeń zaawansowanych w tych repozytoriach. Aby ponownie włączyć zabezpieczenia zaawansowane, dodaj skojarzona subskrypcja platformy Azure do organizacji. Aby uzyskać więcej informacji na temat dodawania lub zmieniania subskrypcji, zobacz Zmienianie subskrypcji platformy Azure.
Zaawansowane aktualizacje interfejs API Zabezpieczenia
Ostatnio wysłane różne aktualizacje interfejs API Zabezpieczenia zaawansowanych:
- Interfejs API alertów GET obsługuje teraz nowy parametr ,
ModifiedSince
aby zwrócić przyrostową listę alertów i zwracać tylko alerty, które zostały zmodyfikowane od tej daty. Aby uzyskać więcej informacji, zobacz Alerty — lista. - Istnieją dwa nowe punkty końcowe umożliwiające pobranie lub zaktualizowanie stanu włączania zabezpieczeń zaawansowanych organizacji lub projektu. Oba punkty końcowe zwracają listę repozytoriów z włączonym zabezpieczeniami zaawansowanymi. Aby uzyskać więcej informacji, zobacz Org - Enablement or Project - Enablement (Włączanie organizacji lub projekt — włączanie).
- Istnieją dwa nowe punkty końcowe do pobrania oszacowania liczby aktywnych zatwierdźców dla organizacji lub projektu, aby odzwierciedlić szacowane użycie miernika usługi Advanced Security może kosztować. Aby uzyskać więcej informacji, zobacz Szacowanie użycia miernika organizacji lub Szacowanie użycia miernika projektu.
Uprawnienia zabezpieczeń zaawansowanych są teraz trwale wyświetlane
W przeszłości trzy bity uprawnień usługi Advanced Security były obecne tylko jako uprawnienia do przypisywania dla każdego repozytorium, jeśli włączono zabezpieczenia zaawansowane. Teraz te uprawnienia są domyślnie dostępne w okienku Uprawnienia zabezpieczeń repozytoriów > i można je przypisać bez konieczności włączania zabezpieczeń zaawansowanych.
Azure Boards
Dodawanie linku do zatwierdzenia lub żądania ściągnięcia usługi GitHub (wersja zapoznawcza)
Dostępne są dwie opcje łączenia elementu roboczego z żądaniem ściągnięcia lub zatwierdzeniem usługi GitHub. Składnię AB# można użyć w żądaniu ściągnięcia lub połączyć ją bezpośrednio z elementu roboczego. Obecnie proces polega na skopiowaniu adresu URL żądania ściągnięcia usługi GitHub i wklejeniu go podczas dodawania linku. Wymaga to otwarcia wielu okien i przełączania się między usługą GitHub i usługą Azure DevOps.
W tym przebiegu z przyjemnością ogłaszamy ulepszone środowisko, włączając funkcje wyszukiwania podczas łączenia z żądaniem ściągnięcia lub zatwierdzeniem usługi GitHub. Wyszukaj i wybierz żądane repozytorium, a następnie przejdź do szczegółów, aby znaleźć i połączyć się z określonym żądaniem ściągnięcia lub zatwierdzeniem. Nie trzeba już wprowadzać zmian w wielu oknach i kopiować/wklejać (mimo że nadal masz tę opcję).
Uwaga
Ta funkcja jest dostępna tylko w wersji zapoznawczej New Boards Hub.
Jeśli chcesz uzyskać dostęp do tej funkcji, wyślij nam wiadomość e-mail bezpośrednio z nazwą organizacji (dev.azure.com/{nazwa organizacji}).
Ulepszenia centrum nowych tablic
W tej wersji wprowadziliśmy szereg ulepszeń usługi New Boards Hub w wersji zapoznawczej, koncentrując się na ułatwieniach dostępu i ponownym przepływie stron.
Oto przykład zmian przepływu strony, które są adaptacyjne do 400% powiększenia.
Ponadto wprowadziliśmy ulepszenia wydajności na stronach formularzy, tablic i list prac elementów roboczych. Dzięki tym zmianom można oczekiwać, że nowe tablice będą zgodne ze standardami wydajności ustawionymi na stare tablice.
Kontrolki programowania i wdrażania
Teraz usuwamy kontrolki Programowanie i/lub Wdrażanie z elementu roboczego, w zależności od konfiguracji projektu. Możesz na przykład skonfigurować ustawienia projektu, aby wyłączyć repozytoria i/lub potoki.
Po przejściu do elementu roboczego odpowiednie kontrolki programowania i wdrażania będą ukryte w formularzu.
Jeśli zdecydujesz się połączyć repozytorium GitHub z usługą Azure Boards, zostanie wyświetlona kontrolka Programowanie dla repozytoriów GitHub.
Azure Pipelines
Federacja tożsamości obciążenia dla połączeń usługi Azure Resource Manager jest teraz ogólnie dostępna
We wrześniu ogłosiliśmy możliwość konfigurowania połączeń usługi platformy Azure bez używania wpisu tajnego. Od tego czasu wielu klientów przyjęło tę funkcję i z przyjemnością ogłaszamy, że ta funkcja jest teraz ogólnie dostępna.
Jeśli nie używasz jeszcze federacji tożsamości obciążenia, możesz skorzystać z bezpłatnych połączeń usługi platformy Azure, które nie mają wygasających wpisów tajnych w następujący sposób:
Aby utworzyć nowe połączenie usługi platformy Azure przy użyciu federacji tożsamości obciążenia, wybierz pozycję Federacja tożsamości obciążenia (automatyczna) w środowisku tworzenia połączenia z usługą platformy Azure:
Aby przekonwertować wcześniej utworzone połączenie usługi platformy Azure, wybierz akcję "Konwertuj" po wybraniu połączenia:
Aby przekonwertować wiele połączeń usług, możesz użyć automatyzacji, na przykład tego skryptu programu PowerShell:
#!/usr/bin/env pwsh
<#
.SYNOPSIS
Convert multiple Azure Resource Manager service connection(s) to use Workload identity federation
.LINK
https://aka.ms/azdo-rm-workload-identity-conversion
.EXAMPLE
./convert_azurerm_service_connection_to_oidc_simple.ps1 -Project <project> -OrganizationUrl https://dev.azure.com/<organization>
#>
#Requires -Version 7.3
param (
[parameter(Mandatory=$true,HelpMessage="Name of the Azure DevOps Project")]
[string]
[ValidateNotNullOrEmpty()]
$Project,
[parameter(Mandatory=$true,HelpMessage="Url of the Azure DevOps Organization")]
[uri]
[ValidateNotNullOrEmpty()]
$OrganizationUrl
)
$apiVersion = "7.1"
$PSNativeCommandArgumentPassing = "Standard"
#-----------------------------------------------------------
# Log in to Azure
$azdoResource = "499b84ac-1321-427f-aa17-267ca6975798"
az login --allow-no-subscriptions --scope ${azdoResource}/.default
$OrganizationUrl = $OrganizationUrl.ToString().Trim('/')
#-----------------------------------------------------------
# Retrieve the service connection
$getApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints?authSchemes=ServicePrincipal&type=azurerm&includeFailed=false&includeDetails=true&api-version=${apiVersion}"
az rest --resource $azdoResource -u "${getApiUrl} " -m GET --query "sort_by(value[?authorization.scheme=='ServicePrincipal' && data.creationMode=='Automatic' && !(isShared && serviceEndpointProjectReferences[0].projectReference.name!='${Project}')],&name)" -o json `
| Tee-Object -Variable rawResponse | ConvertFrom-Json | Tee-Object -Variable serviceEndpoints | Format-List | Out-String | Write-Debug
if (!$serviceEndpoints -or ($serviceEndpoints.count-eq 0)) {
Write-Warning "No convertible service connections found"
exit 1
}
foreach ($serviceEndpoint in $serviceEndpoints) {
# Prompt user to confirm conversion
$choices = @(
[System.Management.Automation.Host.ChoiceDescription]::new("&Convert", "Converting service connection '$($serviceEndpoint.name)'...")
[System.Management.Automation.Host.ChoiceDescription]::new("&Skip", "Skipping service connection '$($serviceEndpoint.name)'...")
[System.Management.Automation.Host.ChoiceDescription]::new("&Exit", "Exit script")
)
$prompt = $serviceEndpoint.isShared ? "Convert shared service connection '$($serviceEndpoint.name)'?" : "Convert service connection '$($serviceEndpoint.name)'?"
$decision = $Host.UI.PromptForChoice([string]::Empty, $prompt, $choices, $serviceEndpoint.isShared ? 1 : 0)
if ($decision -eq 0) {
Write-Host "$($choices[$decision].HelpMessage)"
} elseif ($decision -eq 1) {
Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
continue
} elseif ($decision -ge 2) {
Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
exit
}
# Prepare request body
$serviceEndpoint.authorization.scheme = "WorkloadIdentityFederation"
$serviceEndpoint.data.PSObject.Properties.Remove('revertSchemeDeadline')
$serviceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
$serviceEndpoint | ConvertTo-Json -Depth 4 -Compress | Set-Variable serviceEndpointRequest
$putApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints/$($serviceEndpoint.id)?operation=ConvertAuthenticationScheme&api-version=${apiVersion}"
# Convert service connection
az rest -u "${putApiUrl} " -m PUT -b $serviceEndpointRequest --headers content-type=application/json --resource $azdoResource -o json `
| ConvertFrom-Json | Set-Variable updatedServiceEndpoint
$updatedServiceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
if (!$updatedServiceEndpoint) {
Write-Debug "Empty response"
Write-Error "Failed to convert service connection '$($serviceEndpoint.name)'"
exit 1
}
Write-Host "Successfully converted service connection '$($serviceEndpoint.name)'"
}
Aby uzyskać więcej informacji, odwiedź naszą dokumentację.
Agent Pipelines pokazuje bardziej widoczne problemy z wykorzystaniem zasobów
W październiku ubiegłego roku dodaliśmy możliwość śledzenia użycia pamięci i miejsca na dysku przez agenta Pipelines.
Aby zapewnić klientom świadomość, że mogą mieć ograniczenia zasobów, takie jak ograniczenia pamięci lub miejsca na dysku w agencie, bardziej widoczne są ograniczenia zasobów:
Jeśli widzisz którykolwiek z powyższych komunikatów, może to być spowodowane przez zadanie korzystające z większej liczby zasobów niż agent jest wymiarem, co może spowodować, że agent nie odpowiada i nie będzie działać zadanie potoku:
"Przestaliśmy słyszeć od agenta"
W takich przypadkach włącz pełne dzienniki , aby uzyskać bardziej szczegółowe komunikaty o wykorzystaniu zasobów i śledzić, gdzie agent zabrakło zasobów. Jeśli używasz własnego agenta, upewnij się, że agent ma odpowiednie zasoby.
Instalacja poza pasmem modułu uruchamiającego zadania node 6
Usługa Azure Pipelines udostępnia dwie wersje pakietów agentów:
- Pakiety vsts-agent-* obsługują zadania uruchamiane przy użyciu węzła 6.
- pakiety pipelines-agent-* nie obsługują zadań, które wymagają uruchomienia węzła Node 6.
Klienci, którzy tworzą własnych agentów, mogą je pobrać ze strony Wydania agenta potoku. Wersje środowiska Node dołączone do agenta są używane do wykonywania zadań. Zobacz Wersje modułu uruchamiającego węzły.
Po rejestracji agenta agenci zainstalowani z pakietów pipelines-agent-* będą teraz pobierać wersje węzła, które nie są dołączone do agenta i nie są blokowane w obszarze "Ograniczenia zadań" w ustawieniach organizacji. Dzięki temu klienci mogą używać pakietów agentów pipelines-agent-* i kontrolować instalację węzła 6 przy użyciu ograniczeń zadań w ustawieniach organizacji.
Zatwierdzenie odroczone
Zatwierdzenia mogą służyć do podpisywania wdrożenia. Istnieją jednak sytuacje, w których czas zatwierdzenia i godzina rozpoczęcia wdrożenia nie jest zgodna. Na przykład w przypadku konkretnego przeglądu wdrożenia wiadomo, że jest to niezwiązane. Wyobraź sobie, że nie można kontynuować natychmiast, raczej powinno się to odbywać w nocy.
Aby uwzględnić takie scenariusze, dodaliśmy opcję odroczenia zatwierdzeń dla potoków YAML. Teraz możesz zatwierdzić uruchomienie potoku i określić, kiedy zatwierdzenie powinno być skuteczne.
Po wybraniu opcji Odroczenie zatwierdzenia można skonfigurować czas, w którym zatwierdzenie stanie się skuteczne.
Zatwierdzenie jest wyświetlane jako odroczone w panelu kontroli. Po odroczeniu zatwierdzenie jest skuteczne.
Sekwencjonowanie zatwierdzeń i kontroli
Dzięki temu przebiegowi możesz określić kolejność uruchamiania zatwierdzeń i testów.
Zatwierdzenia i kontrole umożliwiają kontrolowanie wdrożeń w środowisku produkcyjnym. Można na przykład określić, że tylko potoki uruchamiane w main
gałęzi repozytorium mogą używać produkcyjnego połączenia usługi ARM. Ponadto można wymagać zatwierdzenia przez człowieka i że system przejdzie kontrolę wydajności.
Do dziś wszystkie zatwierdzenia i kontrole przebiegały równolegle, z wyjątkiem blokady wyłącznej. Oznacza to, że jeśli proces wdrażania wymaga sprawdzenia wydajności, aby przejść przed zatwierdzeniem ręcznym, nie można tego wymusić w usłudze Azure Pipelines. Trzeba było polegać na instrukcjach zatwierdzania i wewnętrznej dokumentacji procesu.
W tym przebiegu wprowadzamy sekwencjonowanie w obszarze Zatwierdzenia i kontrole. Istnieje teraz pięć kategorii zatwierdzeń i kontroli:
- Testy statyczne: Kontrolka gałęzi, Wymagany szablon i Ocena artefaktu
- Zatwierdzanie wstępnego sprawdzania dynamicznego
- Testy dynamiczne: zatwierdzanie, wywoływanie funkcji platformy Azure, wywoływanie interfejsu API REST, godziny pracy, wykonywanie zapytań o alerty usługi Azure Monitor
- Zatwierdzanie po sprawdzeniu dynamicznym
- Blokada wyłączna
Kolejność jest również wyświetlana na karcie Zatwierdzenia i kontrole.
W każdej kategorii testy są uruchamiane równolegle. Oznacza to, że jeśli masz sprawdzanie wywołania funkcji platformy Azure i sprawdzanie godzin pracy, są one uruchamiane w tym samym czasie.
Sprawdź kategorie uruchamiane pojedynczo, a jeśli jeden zakończy się niepowodzeniem, pozostałe testy nie zostaną wykonane. Oznacza to, że jeśli masz kontrolę gałęzi i zatwierdzenie, jeśli kontrolka Gałąź zakończy się niepowodzeniem, zatwierdzenie również zakończy się niepowodzeniem. Nie będą więc wysyłane niepotrzebne wiadomości e-mail.
Możesz zalogować się do wdrożenia po uruchomieniu wszystkich testów dynamicznych, przy użyciu zatwierdzenia po dynamicznym sprawdzaniu lub przeprowadzić ręczną walidację przed kontynuowaniem testów dynamicznych przy użyciu wstępnego sprawdzania dynamicznego zatwierdzenia.
Sprawdzanie poprawności i zapisywanie domyślnie podczas edytowania potoków YAML
Nieprawidłowy potok YAML może prowadzić do marnowania czasu i nakładu pracy. Aby zwiększyć produktywność edytowania potoku, zmieniamy przycisk Zapisz w edytorze w celu przeprowadzenia walidacji KODU YAML.
Jeśli potok zawiera błędy, nadal będzie można go zapisać.
Ulepszyliśmy również środowisko weryfikacji, dzięki czemu można zobaczyć błędy na liście, która jest łatwiejsza do zrozumienia.
Azure Repos
Zapobieganie nieautoryzowanym użytkownikom konfigurowania potoku jako zasad kompilacji
Zapobieganie nieautoryzowanym użytkownikom konfigurowania potoku jako zasad kompilacji
Wcześniej podczas dodawania nowych zasad kompilacji można było skonfigurować uruchamianie dowolnego potoku z listy rozwijanej (w tym potoków, dla których nie masz uprawnień do kompilacji kolejki). Podobnie można edytować istniejące zasady kompilacji, nawet jeśli zostało skonfigurowane do uruchamiania potoku, dla którego nie masz uprawnień do kompilacji kolejki .
Teraz uniemożliwiamy użytkownikom wykonywanie tych czynności. Jeśli użytkownik nie ma uprawnień do tworzenia kolejki dla danego potoku, ten potok będzie wyświetlany jako wyłączony (wyszarzony) na liście rozwijanej podczas dodawania nowych zasad kompilacji.
Zobacz poniższy obraz przedstawiający potok o nazwie "Piaskownica" z odmową uprawnień kompilacji kolejki.
Zobacz poniższy obraz przedstawiający potok o nazwie "Piaskownica" wyłączony (wyszarzony) na liście rozwijanej, gdy użytkownik z odrzuconymi uprawnieniami kompilacji kolejki próbuje dodać nowe zasady kompilacji .
Jeśli zasady kompilacji skonfigurowane do uruchamiania potoku o nazwie "Piaskownica" już istnieją, użytkownik bez uprawnień kompilacji kolejki nie będzie mógł edytować ani wyświetlać zasad kompilacji. Ten przypadek jest pokazany na poniższej ilustracji.
Podczas próby usunięcia tych zasad zostanie wyświetlone wyskakujące okno dialogowe z prośbą o potwierdzenie usunięcia.
Te zmiany dotyczą również wszystkich wywołań interfejsu API, które powodują utworzenie lub edytowanie zasad kompilacji. Jeśli którakolwiek z tych akcji jest uruchamiana przy użyciu tożsamości użytkownika bez uprawnień do kompilacji kolejki, wywołanie zakończy się niepowodzeniem, zwracając odpowiedni kod błędu i komunikat o błędzie z informacją, że “TFS.WebApi.Exception: TF401027:
do wykonania tej akcji potrzebne jest uprawnienie QueueBuild w tym potoku.
Usunięcie zasad kompilacji wykonanych za pośrednictwem interfejsu API przy użyciu user identity
uprawnienia bez kompilacji kolejki powiedzie się i nie będzie żadnych ostrzeżeń ani zapobiegania (nie będzie żadnych zmian w sposobie usuwania za pośrednictwem interfejsu API).
Azure Artifacts
Obsługa stawek rust jest ogólnie dostępna
Od 16 lutego 2024 r. obsługa stawek Rust stanie się ogólnie dostępną funkcją dla usługi Azure Artifacts. Mierniki rozliczeniowe zostaną aktywowane przy użyciu tego samego modelu cenowego, który ma zastosowanie do innych obsługiwanych protokołów.
Obsługa usługi Azure Artifacts na potrzeby inspekcji npm
Usługa Azure Artifacts obsługuje npm audit
teraz polecenia i npm audit fix
. Ta funkcja umożliwia użytkownikom analizowanie i naprawianie luk w zabezpieczeniach projektu przez automatyczne aktualizowanie niezabezpieczonych wersji pakietów. Aby dowiedzieć się więcej, skorzystaj z inspekcji npm, aby wykryć i naprawić luki w zabezpieczeniach pakietu.
Następne kroki
Uwaga
Te funkcje będą wdrażane w ciągu najbliższych dwóch do trzech tygodni.
Przejdź do usługi Azure DevOps i przyjrzyj się.
Jak przekazać opinię
Chcielibyśmy usłyszeć, co myślisz o tych funkcjach. Użyj menu Pomocy, aby zgłosić problem lub podać sugestię.
Możesz również uzyskać porady i odpowiedzi na pytania społeczności w witrynie Stack Overflow.
Dzięki,
Dan Hellem