Azure DevOpsのSprint 163 Updateでは、リリースイベントとパイプラインイベントを監査ログに追加しました。さらに、service connectionsを使用して、YAMLパイプラインの別のorganizationのリポジトリを参照できるようになりました。
詳細については、以下の機能リストをご覧ください。
General:
- Azure Boards, Azure Pipelines, Azure ReposからのMicrosoft Teamsアプリケーションでの通知をコンパクトかつ、まとめられるようになりました
- Microsoft TeamsやSlackチャンネルで購読を一括削除できるようになりました
Azure Pipelines:
- パイプラインデコレーターを使って、deploymentジョブに自動的にステップを挿入できるようになりました
- ほかのAzure DevOps Organizationのレポジトリ参照を許可できるようになりました
- ステップターゲットとコマンド分離が可能になりました
- BuildsとReleaseの監査イベントが追加されました
- パイプラインでアーティファクト票かチェックポリシーが強化されました
以前は、Microsoft Teamsのチャネルで通知を受け取る場合、手動で追跡する必要がありました。多くの場合、さまざまなパイプライン、ワークアイテム、またはpull requestからの通知が同時にチャネルへ投稿されるため、整理することが難しくなり、結果としてチャネルが通知単位に作られてしまうことになりました。
Azure Boards、Azure Pipelines、Azure ReposのMicrosoft Teamsアプリでスレッド通知を発表できることを嬉しく思います。今回の更新で、パイプライン、ワークアイテム、またはpull requestに関連するすべての通知がスレッド化され、通知をより適切に整理し、タイムラインと最新のステータスをコンパクトに表示できます。
注意
この追加機能を使い始めるにあたって、何も変更する必要はありません。
この例では、Microsoft TeamsのAzure Reposアプリではpull requestに関連するすべての通知が、スレッド化されています。
現在、Microsoft TeamsおよびSlack用のAzure PipelinesおよびAzure Reposアプリから購読を一括追加できます。 今回の更新で、チャネル内の個々のパイプラインまたはリポジトリ用に作成されたすべてのサブスクリプションをすばやく削除できます。unsubscribe allコマンドを使用して、特定のプロジェクトのチャネル内のすべての購読を削除できます。詳細については、こちらのドキュメントを参照してください。
Microsoft Teams用のAzure Pipelinesアプリで特定のプロジェクトのチャネル内のすべての購読を削除するには、次のコマンドを使用します。
@azure pipelines unsubscribe all https://dev.azure.com/myorg/myproject
展開ジョブにパイプラインデコレータを追加できるようになりました。すべての展開ジョブのライフサイクルフックの実行ごとに、カスタムステップ(脆弱性スキャナーなど)を自動注入できます。パイプラインデコレータは組織内のすべてのパイプラインに適用できるため、安全な展開方法を実施する際の一部として活用できます。
さらに、展開ジョブは、定義されている場合はサービスサイドカーとともにコンテナージョブとして実行できます。
以前は、YAMLパイプラインでリポジトリを参照した場合、すべてのAzure Reposリポジトリはパイプラインと同じOrganizationに存在する必要がありました。今回の更新で、サービス接続を使用して他のOrganizationにあるリポジトリを指定できます。以下に例を紹介します。
resources:
repositories:
- repository: otherrepo
name: ProjectName/RepoName
endpoint: MyServiceConnection
steps:
- checkout: self
- checkout: otherrepo
MyServiceConnection
は別のAzure DevOps Organizationを指し、別のプロジェクトのリポジトリにアクセスできる資格情報が必要です。これによりself
とotherrepo
の両方のリポジトリがチェックアウトされます。
重要
MyServiceConnectionは、Azure Repos/Team Foundation Serverサービス接続に登録する必要があります。下の図を参照してください。
Azure Pipelinesは、コンテナーまたはエージェントホストでのジョブの実行をサポートしています。以前は、ジョブ全体がこれら2つのターゲットのいずれかに設定されていました。今回の更新で、選択したターゲットの個々のステップ(タスクまたはスクリプト)で実行できます。また、ステップは他のコンテナーを対象とする場合があるため、パイプラインは専用の専用コンテナーで各ステップを実行できます。
注意
この機能は公開プレビューです。この機能に関するフィードバックや質問がある場合は、Developer Communityでお知らせください。
コンテナーは分離境界として機能し、コードがホストマシンで予期しない変更を加えることを防ぎます。ステップがエージェントと通信し、エージェントからサービスにアクセスたとしても、コンテナー内のステップから分離されているため影響を受けません。そのため、ステップターゲットで使用できるコマンド制限モードも導入しています。これをオンにすると、ステップがエージェントに要求できるサービスが制限されます。ログの添付、アーティファクトのアップロード、およびその他の特定の操作はできなくなります。
ジョブコンテナー内および別のコンテナー内のホスト上で実行中の手順を示す包括的な例を次に示します。
resources:
containers:
- container: python
image: python:3.8
- container: node
image: node:13.2
jobs:
- job: example
container: python
steps:
- script: echo Running in the job container
- script: echo Running on the host
target: host
- script: echo Running in another container, in restricted commands mode
target:
container: node
commands: restricted
リリースおよびパイプラインイベントが監査ログで利用可能になりました。これらのイベントには、Organization Settings -> Auditingからアクセスできます。
現在、次のイベントが利用できます。
- Agent pool - 作成、削除、エージェントの追加および削除(プライベートエージェント)
- Service Connection - 実行、作成、削除、更新
- Variable Group - 作成、削除、更新
- Release - 削除、承認完了、定義の更新
- RM ステージ完了
- Deployment job 完了
evaluate artifact checkが強化され、すぐに使用可能なポリシー定義のリストからポリシーを簡単に追加できるようになりました。ポリシー定義は自動的に生成され、必要に応じてcheck configurationに追加されます。
注意事項
ここで議論されている機能は今後二~三週にわたって順次展開されます。
これらの新機能を読んだ後、次のリンクからぜひご自身でAzure DevOpsサービスを体験してみてください。
これらの機能についてどう思っているかお聞きしたいと思います。 フィードバックメニューを使用して問題を報告するか、提案を提出してください。
アドバイスや回答を必要とする質問がある場合、Stack Overflowコミュニティで聞いてください。
ありがとうございました。
Roopesh Nair