Unterstützung für Vorlagenausdrücke in Repository- und Containerressourcendefinitionen
Mit diesem Update wurden Vorlagenausdrücke in Repository- und Containerressourcendefinitionen unterstützt. Jetzt können Sie Vorlagenausdrücke verwenden, wenn Sie die ref
Eigenschaft einer repository
Ressource in einer YAML-Pipeline definieren, um den Zweig einer Repositoryressource auszuwählen. Darüber hinaus haben wir Unterstützung für Vorlagenausdrücke hinzugefügt, wenn die endpoint
Eigenschaften volumes
ports
options
einer Ressource in einer container
YAML-Pipeline definiert werden.
Weitere Informationen finden Sie in den Versionshinweisen.
Azure Boards
- Bearbeiten von Verknüpfungstypen für Arbeitsaufgaben
- Temporärer REST-Abfrageendpunkt erstellen
- Batchlösch-API (private Vorschau)
- @CurrentIteration Makro in Übermittlungsplänen
Azure Pipelines
- Vorlagenausdrücke in Repositoryressourcendefinition
- Vorlagenausdrücke in der Containerressourcendefinition
- Überwachungsereignisse für Änderungen an Genehmigungen
- Die Aufgabenbibliothek macht das Agent-Hostingmodell verfügbar.
Azure Boards
Bearbeiten von Verknüpfungstypen für Arbeitsaufgaben
Zuvor erfordert das Ändern eines Arbeitsaufgabenlinks mindestens drei Schritte, um den Vorgang abzuschließen. Wenn Sie z. B. einen übergeordneten Link zu einem verknüpften Link ändern möchten, müssen Sie die Arbeitsaufgaben-ID kopieren, den übergeordneten Link entfernen, einen neuen vorhandenen Link vom Typ "Verknüpft" hinzufügen und schließlich die kopierte ID einfügen und speichern. Es ist ein umständlicher Prozess.
Wir haben das Problem gelöst, indem Sie es Ihnen ermöglichen, den Linktyp direkt zu bearbeiten und zu ändern. Sie können den Linktyp schnell in nur einem Schritt ändern.
Hinweis
Dieses Feature ist nur in der Vorschauversion von New Boards Hubs verfügbar.
Temporärer REST-Abfrageendpunkt erstellen
Wir haben mehrere Instanzen von Erweiterungsautoren gesehen, die versuchen, nicht gespeicherte Abfragen auszuführen, indem die WIQL-Anweisung (Work Item Query Language) über die Abfragezeichenfolge übergeben wird. Dies funktioniert einwandfrei, es sei denn, Sie haben eine große WIQL-Anweisung, die die Browsergrenzwerte für die Länge der Abfragezeichenfolge erreicht. Um dies zu lösen, haben wir einen neuen REST-Endpunkt erstellt, damit Toolautoren eine temporäre Abfrage generieren können. Wenn Sie die ID aus der Antwort verwenden, um sie per Abfragezeichenfolge zu übergeben, wird dieses Problem beseitigt.
Weitere Informationen finden Sie auf der Dokumentationsseite der REST-API für temporäre Abfragen.
Batchlösch-API (private Vorschau)
Derzeit wird die einzige Möglichkeit zum Entfernen von Arbeitselementen aus dem Papierkorb diese REST-API zum gleichzeitigen Löschen verwendet. Dies kann ein langsamer Prozess sein und unterliegt der Begrenzung der Rate, wenn versucht wird, jede Art von Massenreinigung zu erledigen. Als Reaktion darauf haben wir einen neuen REST-API-Endpunkt hinzugefügt, um Arbeitsaufgaben im Batch zu löschen und/oder zu zerstören.
Wenn Sie an einer privaten Vorschau dieses neuen Endpunkts teilnehmen möchten, senden Sie uns bitte direkt eine E-Mail.
@CurrentIteration Makro in Übermittlungsplänen
Mit diesem Update haben wir Unterstützung für das @CurrentIteration Makro für Formatvorlagen in Übermittlungsplänen hinzugefügt. Mit diesem Makro können Sie die aktuelle Iteration aus dem Teamkontext jeder Zeile in Ihrem Plan abrufen.
Azure Pipelines
Vorlagenausdrücke in Repositoryressourcendefinition
Wir haben Unterstützung für Vorlagenausdrücke beim Definieren der ref
Eigenschaft einer repository
Ressource in einer YAML-Pipeline hinzugefügt. Dies war ein sehr angefordertes Feature unserer Entwicklercommunity.
Es gibt Anwendungsfälle, wenn Ihre Pipeline unterschiedliche Verzweigungen derselben Repositoryressource auschecken soll.
Angenommen, Sie haben eine Pipeline, die ein eigenes Repository erstellt, und dafür muss sie eine Bibliothek aus einem Ressourcen-Repository auschecken. Außerdem möchten Sie, dass Ihre Pipeline denselben Bibliothekszweig wie selbst auscheckt. Wenn Ihre Pipeline beispielsweise auf der main
Verzweigung ausgeführt wird, sollte die main
Verzweigung des Bibliotheks-Repositorys ausgecheckt werden. Wenn die Pipelines auf der dev
Verzweigung ausgeführt werden, sollte sie den dev
Bibliothekszweig auschecken.
Bis heute mussten Sie die zu auscheckende Verzweigung explizit angeben und den Pipelinecode ändern, wenn sich die Verzweigung ändert.
Jetzt können Sie Vorlagenausdrücke verwenden, um den Zweig einer Repositoryressource auszuwählen. Sehen Sie sich das folgende Beispiel von YAML-Code an, der für die nicht wichtigsten Zweigstellen Ihrer Pipeline verwendet werden soll:
resources:
repositories:
- repository: library
type: git
name: FabrikamLibrary
ref: ${{ variables['Build.SourceBranch'] }}
steps:
- checkout: library
- script: echo ./build.sh
- script: echo ./test.sh
Wenn Sie die Pipeline ausführen, können Sie die Verzweigung angeben, die für das library
Repository ausgecheckt werden soll.
Geben Sie die Version einer Vorlage an, die zur Erstellung der Warteschlangenzeit erweitert werden soll.
Vorlagen stellen eine hervorragende Möglichkeit dar, die Codeduplizierung zu reduzieren unddie Sicherheit Ihrer Pipelines zu verbessern.
Ein beliebter Anwendungsfall besteht darin, Vorlagen in ihrem eigenen Repository zu speichern. Dies reduziert die Kopplung zwischen einer Vorlage und den Pipelines, die sie erweitern, und erleichtert die Entwicklung der Vorlage und der Pipelines unabhängig voneinander.
Betrachten Sie das folgende Beispiel, in dem eine Vorlage verwendet wird, um die Ausführung einer Liste von Schritten zu überwachen. Der Vorlagencode befindet sich im Templates
Repository.
# template.yml in repository Templates
parameters:
- name: steps
type: stepList
default: []
jobs:
- job:
steps:
- script: ./startMonitoring.sh
- ${{ parameters.steps }}
- script: ./stopMonitoring.sh
Angenommen, Sie haben eine YAML-Pipeline, die diese Vorlage erweitert, die sich im Repository FabrikamFiber
befindet. Bis heute war es nicht möglich, die ref
Eigenschaft der templates
Repositoryressource dynamisch anzugeben, wenn das Repository als Vorlagenquelle verwendet wird. Dies bedeutete, dass Sie den Code der Pipeline ändern mussten, wenn Sie möchten, dass Die Pipeline eine Vorlage aus einer anderen Verzweigung erweitert, unabhängig davon, welche Verzweigung Sie ihre Pipeline ausgeführt haben.
Mit der Einführung von Vorlagenausdrücken in der Repositoryressourcendefinition können Sie Ihre Pipeline wie folgt schreiben:
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
Auf diese Weise erweitert Ihre Pipeline die Vorlage in derselben Verzweigung wie die Verzweigung, auf der die Pipeline ausgeführt wird, sodass Sie sicherstellen können, dass die Verzweigungen ihrer Pipeline und der Vorlage immer übereinstimmen. Wenn Sie die Pipeline auf einer Verzweigung dev
ausführen, wird die vorlage erweitert, die durch die template.yml
Datei im dev
Verzweigung des templates
Repositorys angegeben wird.
Alternativ können Sie beim Erstellen der Warteschlangenzeit auswählen, welche Vorlagenrepository-Verzweigung verwendet werden soll, indem Sie den folgenden YAML-Code schreiben.
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
Jetzt können Sie die Pipeline auf Verzweigung main
erweitern eine Vorlage von Verzweigung dev
in einer Ausführung erweitern und eine Vorlage aus Verzweigung main
in einer anderen Ausführung erweitern, ohne den Code der Pipeline zu ändern.
Wenn Sie einen Vorlagenausdruck für die ref
Eigenschaft einer Repositoryressource angeben, können Sie vordefinierte Variablen verwenden und systeminterne Variablen verwenden parameters
, sie können jedoch keine benutzerdefinierten VARIABLEN für YAML oder Pipelines verwenden.
Vorlagenausdrücke in der Containerressourcendefinition
Wir haben Unterstützung für Vorlagenausdrücke beim Definieren der endpoint
Eigenschaften volumes
ports
options
einer Ressource in einer container
YAML-Pipeline hinzugefügt. Dies war ein sehr angefordertes Feature unserer Entwicklercommunity.
Jetzt können Sie YAML-Pipelines wie folgt schreiben.
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'
Sie können Ihre Vorlagenausdrücke verwenden parameters.
und variables.
verwenden. Für Variablen können Sie nur die in der YAML-Datei definierten, aber nicht die in der Pipelines-Benutzeroberfläche definierten verwenden. Wenn Sie die Variable z. B. mithilfe von Agentprotokollbefehlen neu definieren, hat sie keine Auswirkung.
Überwachungsereignisse für Änderungen an Genehmigungen
Mit Genehmigungen können Sie steuern, wann eine Phase ausgeführt werden soll. Diese Überprüfung wird häufig verwendet, um Bereitstellungen in Produktionsumgebungen zu steuern. Die Überwachung ermöglicht es Ihnen, Complianceanforderungen zu erfüllen und die Sicherheit Ihrer Azure DevOps-Organisation zu überwachen.
Wenn ein Benutzer aufgefordert wird, eine Pipeline für die Bereitstellung in einer bestimmten Phase zu genehmigen, kann dieser Benutzer die Genehmigung einer anderen Person erneut zuweisen.
Bisher wurden solche Aktionen nicht in den Überwachungsprotokollen protokolliert. Dieses Problem wurde jetzt behoben.
Die Überwachungsprotokolle enthalten einen Eintrag ähnlich dem folgenden.
[
{
"Id": "2517368925862632546;00000264-0000-8888-8000-000000000000;839ad1ba-f72b-4258-bc3f-88be7a4553b5",
"CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
"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"
}
]
Darüber hinaus wird sie in der Überwachungs-UI angezeigt.
Die Aufgabenbibliothek macht das Agent-Hostingmodell verfügbar.
Task Authors that want to determine whether an agent is running in Microsoft-hosted pools or not can now use Task Library function getAgentMode()
to determine the hosting model. Dies ist in Szenarien nützlich, in denen eine Aufgabe das Verhalten beeinflussen möchte, basierend auf dem Zugriff auf das Netzwerk eines Kunden oder nicht. Eine Aufgabe versucht möglicherweise, einen Azure-Dienst über einen privaten Endpunkt zu erreichen, wenn er von einem selbst gehosteten Agent oder scale-set-Agents ausgeführt wird, die sich im Netzwerk eines Kunden befinden.
Siehe Vorgangsreferenz.
Nächste Schritte
Hinweis
Diese Features werden in den nächsten zwei bis drei Wochen eingeführt.
Wechseln Sie zu Azure DevOps, und sehen Sie sich an.
Senden von Feedback
Wir würden uns freuen zu hören, was Sie zu diesen Features halten. Verwenden Sie das Hilfemenü, um ein Problem zu melden oder einen Vorschlag bereitzustellen.
Sie können auch Ratschläge und Ihre Fragen von der Community in Stack Overflow beantworten lassen.
Vielen Dank,
Vijay Machiraju