Sdílet prostřednictvím


Podpora výrazů šablon v definicích prostředků úložiště a kontejneru

V této aktualizaci jsme zahrnuli podporu výrazů šablon v definicích prostředků úložiště a kontejneru. Teď můžete použít výrazy šablony při definování ref vlastnosti repository prostředku v kanálu YAML a zvolit větev prostředku úložiště. Kromě toho jsme přidali podporu pro výrazy šablony při definování endpointvolumesports, , a options vlastnosti container prostředku v kanálu YAML.

Podrobnosti najdete v poznámkách k verzi.

Azure Boards

Azure Pipelines

Azure Boards

Změna odkazu na pracovní položku dříve vyžaduje dokončení alespoň tří kroků. Pokud chcete například změnit nadřazený odkaz na související odkaz, musíte zkopírovat ID pracovní položky, odebrat nadřazený odkaz, přidat nový existující odkaz související s typem a nakonec vložit zkopírované ID a uložit. Je to těžkopádný proces.

Tento problém jsme vyřešili tak, že vám umožní upravit a změnit typ odkazu přímo. Typ odkazu můžete rychle změnit v jednom kroku.

Gif pro ukázku úprav typů odkazů pracovních položek

Poznámka:

Tato funkce bude dostupná jenom ve verzi Preview new Boards Hubs.

Vytvoření dočasného koncového bodu REST dotazu

Viděli jsme několik instancí autorů rozšíření, kteří se pokoušejí spustit neuložené dotazy předáním příkazu WIQL (Work Item Query Language) prostřednictvím řetězce dotazu. To funguje správně, pokud nemáte velký příkaz WIQL, který dosáhne limitů prohlížeče na délku řetězce dotazu. Abychom to vyřešili, vytvořili jsme nový koncový bod REST, který autorům nástrojů umožní vygenerovat dočasný dotaz. Použití ID z odpovědi k předání prostřednictvím řetězce dotazu eliminuje tento problém.

Další informace najdete na stránce dokumentace k rozhraní REST API pro dočasné dotazy.

Rozhraní API pro dávkové odstranění (privátní verze Preview)

V současné době je jediným způsobem, jak odebrat pracovní položky z koše, pomocí tohoto rozhraní REST API odstranit po jednom. Může to být pomalý proces a při pokusu o vyčištění hmoty se může omezit rychlost. V reakci jsme přidali nový koncový bod rozhraní REST API pro odstranění a/nebo zničení pracovních položek v dávce.

Pokud se chcete zúčastnit privátní verze Preview tohoto nového koncového bodu, pošlete nám e-mail přímo.

@CurrentIteration makro v Plánech doručení

V této aktualizaci jsme přidali podporu @CurrentIteration makra pro styly v Plánech doručení. Toto makro vám umožní získat aktuální iteraci z týmového kontextu každého řádku v plánu.

Gif pro demo CurrentIteration macro in Delivery Plans.

Azure Pipelines

Výrazy šablony v definici prostředku úložiště

Přidali jsme podporu výrazů šablon při definování ref vlastnosti repository prostředku v kanálu YAML. To byla vysoce požadovaná funkce naší komunitou vývojářů.

Existují případy použití, kdy chcete, aby kanál zkontroloval různé větve stejného prostředku úložiště.

Řekněme například, že máte kanál, který sestaví vlastní úložiště, a proto musí rezervovat knihovnu z úložiště prostředků. Řekněme také, že chcete, aby váš kanál zkontroloval stejnou větev knihovny jako samotná. Pokud například kanál běží ve main větvi, měl by se podívat na main větev úložiště knihovny. Pokud kanály běží ve dev větvi, měla by se podívat na dev větev knihovny.

Až do dnešního dne jste museli explicitně zadat větev, která se má rezervovat, a změnit kód kanálu pokaždé, když se větev změní.

Teď můžete pomocí výrazů šablon zvolit větev prostředku úložiště. Podívejte se na následující příklad kódu YAML, který se má použít pro jiné než hlavní větve vašeho kanálu:

resources:
  repositories:
    - repository: library
      type: git
      name: FabrikamLibrary
      ref: ${{ variables['Build.SourceBranch'] }}

steps:
- checkout: library
- script: echo ./build.sh
- script: echo ./test.sh

Při spuštění kanálu můžete zadat větev, která se má rezervovat pro library úložiště.

Zadejte verzi šablony, která se má rozšířit v době fronty sestavení.

Šablony představují skvělý způsob, jak omezit duplikaci kódu a zlepšit zabezpečení kanálů.

Jedním zoblíbených Tím se snižuje propojení mezi šablonou a kanály, které ji rozšiřují, a usnadňuje nezávislému vývoji šablony a kanálů.

Podívejte se na následující příklad, ve kterém se šablona používá k monitorování provádění seznamu kroků. Kód šablony se nachází v Templates úložišti.

# template.yml in repository Templates
parameters:
- name: steps
  type: stepList
  default: []

jobs:
- job:
  steps:
  - script: ./startMonitoring.sh
  - ${{ parameters.steps }}
  - script: ./stopMonitoring.sh

Řekněme, že máte kanál YAML, který rozšiřuje tuto šablonu, která se nachází v úložišti FabrikamFiber. Až do dnešního dne nebylo možné dynamicky určit ref vlastnost templates prostředku úložiště při použití úložiště jako zdroje šablony. To znamenalo, že jste museli změnit kód kanálu, pokud chcete, aby kanál rozšířil šablonu z jiné větve, a to ze stejného názvu větve jako váš kanál, bez ohledu na to, na které větvi jste kanál spustili.

Po zavedení výrazů šablony v definici prostředku úložiště můžete kanál zapsat následujícím způsobem:

resources:
  repositories:
    - repository: templates
      type: git
      name: Templates
      ref: ${{ variables['Build.SourceBranch'] }}

extends:
  template: template.yml@templates
  parameters:
    steps:
      - script: echo ./build.sh
      - script: echo ./test.sh

Tím kanál rozšíří šablonu ve stejné větvi jako větev, na které se kanál spouští, abyste měli jistotu, že větve kanálu a šablony se vždy shodují. To znamená, že pokud kanál spustíte ve větvi dev, rozšíří se šablona určená souborem template.yml ve dev větvi templates úložiště.

Nebo můžete zvolit větev úložiště šablony, která se má použít, při sestavování fronty, napsáním následujícího kódu YAML.

parameters:
  - name: branch
    default: main

resources:
  repositories:
    - repository: templates
      type: git
      name: Templates
      ref: ${{ parameters.branch }}

extends:
  template: template.yml@templates
  parameters:
    steps:
      - script: echo ./build.sh
      - script: echo ./test.sh

Teď můžete mít kanál ve větvi rozšíření šablony z větve main dev v jednom spuštění a rozšířit šablonu z větve main v jiném spuštění beze změny kódu kanálu.

Při zadávání výrazu šablony pro ref vlastnost prostředku úložiště můžete použít parameters a systémové předdefinované proměnné, ale nemůžete použít proměnné definované uživatelským rozhraním YAML nebo Pipelines.

Výrazy šablony v definici prostředku kontejneru

Přidali jsme podporu výrazů šablon při definování endpointvolumesportsprostředku v kanálu YAML .options container To byla vysoce požadovaná funkce naší komunitou vývojářů.

Teď můžete napsat kanály YAML, jako je následující.

parameters:
  - name: endpointName    
    default: AzDOACR
    type: string

resources:
  containers:
    - container: linux
      endpoint: ${{ parameters.endpointName }}
      image: fabrikamfiber.azurecr.io/ubuntu:latest

jobs:
- job:
  container: linux
  steps:
  - task: CmdLine@2
    inputs:
      script: 'echo Hello world'

Můžete použít parameters. a variables. ve výrazech šablony. U proměnných můžete použít pouze ty definované v souboru YAML, ale ne ty, které jsou definované v uživatelském rozhraní Pipelines. Pokud předefinujete proměnnou, například pomocí příkazů protokolu agenta, nebude mít žádný vliv.

Auditování událostí pro změny schválení

Schválení umožňují řídit, kdy se má fáze spustit. To se běžně používá k řízení nasazení do produkčních prostředí. Auditování umožňuje splnit požadavky na dodržování předpisů a monitorovat zabezpečení vaší organizace Azure DevOps.

Když se uživateli zobrazí výzva ke schválení kanálu pro nasazení do konkrétní fáze, může se tento uživatel rozhodnout znovu přiřadit schválení někomu jinému.

Auditování událostí pro změny schválení

Až doteď se tyto akce do protokolů auditu nezaprotokolovaly. Tento problém je opravený.

Protokoly auditu budou obsahovat položku podobnou následující.

[
    {
        "Id": "2517368925862632546;00000264-0000-8888-8000-000000000000;839ad1ba-f72b-4258-bc3f-88be7a4553b5",
        "CorrelationId": "8392d1ba-f76b-4258-bc3f-88be7a4553b5",
        "ActivityId": "a298a06c-965f-4e60-9643-2593f2066e37",
        "ActorCUID": "fe950802-bf07-755b-826d-e8dcc066252c",
        "ActorUserId": "fe950802-bf07-755b-826d-e8dcc066252c",
        "ActorUPN": "silviu@fabrikam.app",
        "AuthenticationMechanism": "AAD_Cookie",
        "Timestamp": "2022-10-10T11:26:53.7367453Z",
        "ScopeType": "Organization",
        "ScopeDisplayName": "Fabrikam (Organization)",
        "ScopeId": "547a7316-cdf4-40d2-af16-3215f97d053e",
        "ProjectId": "4bf16944-3595-421f-9947-79d9eb190284",
        "ProjectName": "FabrikamFiber",
        "IpAddress": "127.0.0.1",
        "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.37",
        "ActionId": "ApproverReassigned",
        "Data": {
            "ApprovalId": "dae6e7c9-2a10-4cd8-b63a-579a6e7ba78d",
            "OldApproverUserId": "692b6e2a-dd61-4872-866a-85498da390fc",
            "OldApproverDisplayName": "[FabrikamFiber]\\Build Administrators",
            "NewApproverUserId": "fe95080b-bf07-655b-226d-e8dcc066252c",
            "NewApproverDisplayName": "Jack Fabrikam",
            "Comment": "All admins are OOO"
        },
        "Details": "Reassigned approver of Approval dae6e7c9-9a10-4cd8-b63a-579a6e7ba78d in Project \"FabrikamFiber\" from \"[FabrikamFiber]\\Build Administrators\" to \"Jack Fabrikam\" with comment \"All admins are OOO\".",
        "Area": "Checks",
        "Category": "Modify",
        "CategoryDisplayName": "Modify",
        "ActorDisplayName": "Silviu"
    }
]

Kromě toho se zobrazí v uživatelském rozhraní auditu.

Položka protokolu v uživatelském rozhraní auditu

Knihovna úloh zveřejňuje model hostování agenta.

Autoři úloh, kteří chtějí zjistit, jestli je agent spuštěný ve fondech hostovaných Microsoftem nebo nemůže nyní použít funkci getAgentMode() Knihovna úloh k určení modelu hostování. To je výhodné ve scénářích, kdy úloha chce ovlivnit chování na základě přístupu k síti zákazníka nebo ne. Úloha se může pokusit spojit se službou Azure přes privátní koncový bod, pokud se spustí z agenta v místním prostředí nebo agentů škálovací sady, které se nacházejí v síti zákazníka. Viz referenční informace k úkolu.

Další kroky

Poznámka:

Tyto funkce se budou zavádět během následujících dvou až tří týdnů.

Přejděte na Azure DevOps a podívejte se na ně.

Jak poskytnout zpětnou vazbu

Rádi bychom slyšeli, co si o těchto funkcích myslíte. Pomocí nabídky nápovědy můžete nahlásit problém nebo poskytnout návrh.

Vytvoření návrhu

Můžete také získat rady a své otázky zodpovězené komunitou ve službě Stack Overflow.

Díky,

Vijay Machiraju