Udostępnij za pośrednictwem


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

Usługa GitHub Advanced Security dla usługi Azure DevOps

Azure Boards

Azure Pipelines

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.

Zrzut ekranu przedstawiający pozycję Wybierz lokalizację geograficzną.

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.

Zrzut ekranu przedstawiający ścieżkę oprogramowania pośredniczącego z uwzględnieniem wielkości liter.

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.

Zrzut ekranu przedstawiający listę alertów tajnych.

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, Warningi 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 lowcritical w przypadku skalowania ważności alertów zabezpieczeń.

Zrzut ekranu przedstawiający listę alertów skanowania kodu i filtr ważności.

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 , ModifiedSinceaby 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.

Zrzut ekranu przedstawiający uprawnienia usługi Advanced Security.

Azure Boards

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ę).

Plik GIF do demonstracyjnego dodania linku.

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.

Narzędzia Gif do pokazu nowych ulepszeń koncentratora tablic.

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.

Zrzuty ekranu usług DevOps.

Po przejściu do elementu roboczego odpowiednie kontrolki programowania i wdrażania będą ukryte w formularzu.

Zrzuty ekranu dotyczące powiązanej pracy.

Jeśli zdecydujesz się połączyć repozytorium GitHub z usługą Azure Boards, zostanie wyświetlona kontrolka Programowanie dla repozytoriów GitHub.

Zrzuty ekranu kontrolki programowania .

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:

Zrzut ekranu przedstawiający federację tożsamości obciążenia (automatyczną).

Aby przekonwertować wcześniej utworzone połączenie usługi platformy Azure, wybierz akcję "Konwertuj" po wybraniu połączenia:

Zrzut ekranu przedstawiający akcję Konwertuj.

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:

Zrzut ekranu przedstawiający ostrzeżenie o ograniczonej ilości pamięci i miejsca na dysku.

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 można użyć do wylogowania się z 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.

Zrzut ekranu przedstawiający zatwierdzanie uruchomienia potoku.

Po wybraniu opcji Odroczenie zatwierdzenia można skonfigurować czas, w którym zatwierdzenie stanie się skuteczne.

Zrzut ekranu przedstawiający odroczenie zatwierdzenia.

Zrzut ekranu przedstawiający after_approval_deferred.

Zatwierdzenie jest wyświetlane jako odroczone w panelu kontroli. Po odroczeniu zatwierdzenie jest skuteczne.

Zrzut ekranu przedstawiający zatwierdzenie jest skuteczny.

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 Zatwierdzenia i sprawdzaniu. Istnieją teraz pięć kategorii Zatwierdzenia i kontrole:

  1. Testy statyczne: Kontrolka gałęzi, Wymagany szablon i Ocena artefaktu
  2. Zatwierdzanie wstępnego sprawdzania dynamicznego
  3. Testy dynamiczne: zatwierdzanie, wywoływanie funkcji platformy Azure, wywoływanie interfejsu API REST, godziny pracy, wykonywanie zapytań o alerty usługi Azure Monitor
  4. Zatwierdzanie po sprawdzeniu dynamicznym
  5. Blokada wyłączna

Zrzut ekranu przedstawiający dodawanie sprawdzania.

Kolejność jest również wyświetlana na karcie Zatwierdzenia i sprawdzania.

Zrzut ekranu przedstawiający kartę 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.

Zrzut ekranu przedstawiający sprawdzanie wdrożenia.

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.

Zrzut ekranu przedstawiający sprawdzanie, czy wdrożenie nie powiodło się.

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.

Zrzut ekranu przedstawiający nowy przycisk.

Zrzut ekranu przedstawiający weryfikowanie i zapisywanie.

Jeśli potok zawiera błędy, nadal będzie można go zapisać.

Zrzut ekranu przedstawiający prawidłowy potok.

Zrzut ekranu przedstawiający wykryte błędy.

Ulepszyliśmy również środowisko weryfikacji, dzięki czemu można zobaczyć błędy na liście, która jest łatwiejsza do zrozumienia.

Zrzut ekranu przedstawiający listę błędów.

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.

Zrzut ekranu przedstawiający uprawnienia piaskownicy.

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 .

Zrzut ekranu przedstawiający dodawanie zasad kompilacji.

Jeśli zasady kompilacji skonfigurowane do uruchamiania potoku o nazwie "Piaskownica" już istnieją, użytkownik bez uprawnień do kompilacji kolejki nie będzie mógł edytować ani wyświetlać zasad kompilacji. Ten przypadek jest pokazany na poniższej ilustracji.

Zrzut ekranu przedstawiający walidację kompilacji.

Gdy użytkownik spróbuje usunąć takie zasady, zostanie wyświetlone wyskakujące okno dialogowe z prośbą o potwierdzenie usunięcia.

Zrzut ekranu przedstawiający potwierdzanie 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ę.

Utwórz sugestię

Możesz również uzyskać porady i odpowiedzi na pytania społeczności w witrynie Stack Overflow.

Dzięki,

Dan Hellem