Udostępnij za pośrednictwem


Ulepszone zabezpieczenia i przepływy pracy linii pakietów

Dzięki temu sprintowi usprawniamy przepływ pracy DevOps, zwiększając widoczność zabezpieczeń i usprawniając procesy w potokach. Usługa GitHub Advanced Security zawiera teraz szczegółowe śledzenie aktywacji dla skanowania zależności , skanowania kodui skanowania tajemnic, oferując bardziej szczegółowe informacje na temat pokrycia zabezpieczeń organizacji.

Ponadto z przyjemnością wprowadzamy ulepszenia ukierunkowane na potoki, w tym nowe funkcje wyrażeń YAML oraz rozszerzone mechanizmy kontrolne dla zadań ręcznej weryfikacji, co umożliwia tworzenie bardziej wydajnych i bezpiecznych przepływów pracy.

Sprawdź notatki do wydania, aby uzyskać szczegóły.

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

  • omówienie zabezpieczeń specyficznych dla narzędzia

Azure Boards:

Azure Repos

Azure Pipelines

Plany testów

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

Omówienie zabezpieczeń specyficznych dla narzędzi

Przegląd zabezpieczeń w usłudze GitHub Advanced Security dla Azure DevOps zawiera teraz szczegółowy podział statusu włączenia dla każdego narzędzia skanowania, w tym skanowanie zależności , skanowanie kodu i skanowanie sekretów . To ulepszenie umożliwia wyświetlanie szczegółowego stanu włączania we wszystkich repozytoriach w organizacji.

Aby uzyskać więcej informacji, zobacz Security overview for Advanced Security.

Azure Boards

Integracja usługi Azure Boards z usługą GitHub Enterprise Cloud z rezydencją danych (wersja zapoznawcza)

Uwaga

Ta funkcja jest obecnie dostępna w wersji zapoznawczej. prosimy o wysłanie do nas wiadomości e-mail, jeśli jesteś zainteresowany wypróbowaniem integracji Boards z usługą GitHub Enterprise Cloud z rezydencją danych.

Usługa Azure Boards obsługuje teraz integrację z organizacjami GitHub Enterprise Cloud, które mają włączoną rezydencję danych. Ta aktualizacja jest zgodna z ogłoszeniem z września 2024 r. na GitHubie wprowadzeniem rezydencji danych dla klientów chmury korporacyjnej, począwszy od tych w Unii Europejskiej (UE).

Aby połączyć projekt usługi Azure Boards z organizacją usługi GitHub Enterprise Cloud przy użyciu miejsca przechowywania danych:

  1. Utwórz nowe połączenie w usłudze Azure Boards.
  1. Wybierz opcję GitHub Enterprise Cloud z miejsca przechowywania danych.

Zrzut ekranu przedstawiający nowe połączenie github. nowego połączenia github

Azure Repos

Częściowe pobieranie dla Azure Repos

Polecenie wyewidencjonowania git jest teraz obsługiwane w zadaniu wyewidencjonowania YAML wraz z filtrem częściowego klonowania, aby poprawić wydajność wyewidencjonowania repozytorium. Możesz użyć właściwości sparseCheckoutDirectories i sparseCheckoutPatterns.

Ustawienie sparseCheckoutDirectories włącza tryb "cone", w którym proces wyewidencjonowania używa dopasowywania katalogów. Alternatywnie można ustawić sparseCheckoutPatterns, które wyzwala tryb nie stożkowy, umożliwiając zaawansowane dopasowywanie wzorców.

Jeśli obie właściwości są ustawione, agent inicjuje tryb stożka z dopasowaniem katalogu. Jeśli żadna właściwość nie zostanie określona w zadaniu wyewidencjonowania, proces rzadkiego wyewidencjonowania jest wyłączony. Jeśli podczas wykonywania polecenia wystąpią jakiekolwiek problemy, zadanie zakończy się niepowodzeniem.

Przykład YAML dla rozrzedzania trybu wyewidencjonowania stożka:

    checkout: repo
    sparseCheckoutDirectories: src

Przykład YAML dla rzadkiego pobierania w trybie innym niż stożkowy.


   checkout: repo
   sparseCheckoutPatterns: /* !/img 

Ważny

Funkcja rzadka kontrola wymaga agenta w wersji 3.248.0 lub późniejszej (wersji 4.248.0 lub późniejszej dla platformy .NET 8) lub nowszych wersji.

Agent jest dostępny na stronie wydań .

Ustaw zasady między repozytoriami jako uwzględniające wielkość liter

Wcześniej wersja zapoznawcza kandydata dla gałęzi dla zasad między repozytoriami wyświetlała wyniki w sposób niewrażliwy na wielkość liter, mimo że dopasowanie gałęzi jest czułe na wielkość liter. Ta niespójność spowodowała potencjalne niedopasowanie, ponieważ mogło stwarzać wrażenie, że niektóre gałęzie były chronione, chociaż wcale nie były. Aby rozwiązać ten problem, zaktualizowaliśmy podgląd wzorca gałęzi, aby dostosować go do zastosowania zasad z uwzględnieniem wielkości liter.

Poprzednio:

zrzut ekranu przedstawiający przed poprawką

Po:

Azure Pipelines

Nowe funkcje wyrażeń pipeline

Funkcje wyrażeń potoku umożliwiają pisanie zaawansowanych potoków YAML. W tym sprincie wprowadziliśmy dwie nowe funkcje:

  • iif(condition, value_when_true, value_when_false), który zwraca value_when_true, gdy condition przyjmuje wartość true lub value_when_false, w przeciwnym razie

  • trim(string), który zwraca nowy ciąg, w którym są usuwane białe znaki na początku i na końcu ciągu

Na przykład możesz użyć funkcji iif do dynamicznego wyboru puli do uruchamiania potoku. Jeśli chcesz utworzyć żądania ściągnięcia przy użyciu puli usługi Azure Pipelines, ale wszystkie inne uruchomienia powinny używać zarządzanej puli DevOps, możesz napisać następujący potok.

variables:
  poolToUse: ${{ iif(eq(variables['Build.Reason'], 'PullRequest'), 'Azure Pipelines', 'ManagedDevOpsPool')}}

stages:
- stage: build
  pool: ${{variables.poolToUse}}
  jobs:
  - job:
    steps:   
    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'

Możesz użyć funkcji trim, aby kod YAML był bardziej odporny na dane wejściowe użytkownika. Na przykład w poniższym przepływie używamy funkcji trim, aby upewnić się, że nazwa etapu nie zaczyna się od spacji.

parameters:
- name: regions
  type: string
  default: '  wus1,   wus2, wus3,wus4'

stages:
- ${{ each region in split(parameters.regions, ',')}}:
  - stage: stage_${{trim(region)}}
    displayName: Deploy to ${{trim(region)}}
    jobs:
    - job: deploy
      steps:
      - script: ./deploy.sh ${{trim(region)}}

Ulepszenia zadania ManualValidation

Zadanie ManualValidation umożliwia wstrzymanie przebiegu potoku i oczekiwanie na ręczną interwencję. Jednym ze scenariuszy użycia tego zadania jest testowanie ręczne.

Aby zwiększyć bezpieczeństwo potoku, możesz ograniczyć, kto może ukończyć zadanie i wznowić uruchomienie potoku. W tym celu wprowadzamy nową wersję zadania, która udostępnia dwa dodatkowe parametry:

  • approvers: ogranicz, kto może wykonać zadanie do wstępnie zdefiniowanego zestawu użytkowników / grup zabezpieczeń / zespołów

  • allowApproversToApproveTheirOwnRuns: uniemożliw użytkownikowi, który uruchomił potok w kolejce, wznowienie go.

Na przykład poniższy fragment kodu YAML ogranicza możliwość wznowienia działania potoku do członków Grupy zatwierdzających wydań, z wyłączeniem użytkownika, który uruchomił potok.

- task: ManualValidation@1
  inputs:
    notifyUsers: 'Release Approvers'
    approvers: 'Release Approvers'
    allowApproversToApproveTheirOwnRuns: false

We właściwości approvers można użyć następujących wartości (rozdzielonych przecinkami):

  • Adres e-mail,
  • Grupa uprawnień,
  • Zespół projektu,
  • [ProjectName][Grupa uprawnień],
  • [Organizacja][Grupa uprawnień],
  • [ProjectName][Zespół projektu]

Plany testów

Poprawki błędów planów testów platformy Azure

W tym przebiegu wprowadziliśmy aktualizacje planów testów platformy Azure, aby rozwiązać kilka usterek i zwiększyć użyteczność. Oto, co zostało naprawione:

  • widoczne wyniki kroków wspólnych: Usunięto usterkę polegającą na tym, że wyniki kroków wspólnych nie pojawiały się w edytorze zapytań podczas uzyskiwania dostępu do przypadków testowych w New Boards Hub.

  • Ulepszone sesje trybu interesariuszy: Rozwiązano problem w rozszerzeniu testów i opinii zwrotnej, który uniemożliwiał użytkownikom z dostępem interesariusza rozpoczynanie sesji.

  • Kopiowanie planu testów narzędzia Cleaner: Rozwiązano problem polegający na tym, że wymagania zostały zduplikowane podczas kopiowania planu testów przy użyciu opcji "Odwołaj się do istniejących przypadków testowych".

Następne kroki

Notatka

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

Silviu Andrica