Skip to content

Instantly share code, notes, and snippets.

@kkamegawa
Created January 27, 2023 13:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kkamegawa/42ddd0650f1cf928f041e9e3ac631350 to your computer and use it in GitHub Desktop.
Save kkamegawa/42ddd0650f1cf928f041e9e3ac631350 to your computer and use it in GitHub Desktop.

Wikiにサブページのテーブルが追加できるようになりました - Sprint 215

wikiのページにサブページのテーブルを追加して、内容やリンクを確認できるようになりました。Boardsでは、スイムレーンに色を追加したり、カスタムフィールドを編集できないようにロックしたりできるようになりました。また、セキュリティへの投資を継続し、パイプラインの認可と承認・チェックを管理するための新しいPATスコープを追加しました。

詳しくは、リリースノートをご覧ください。

カスタムフィールドは、プロセス間で共有されます。プロセス管理者がフィールドの値を追加または削除できるようにしているため、ピックリストフィールドで問題が発生する可能性があります。この場合、そのフィールドを使用しているすべてのプロセスで、その変更が影響します。

この問題を解決するために、コレクション管理者がフィールドを編集できないように"lock"する機能が追加されました。ピックリストフィールドがロックされると、ローカルプロセスの管理者は、そのピックリストの値を変更できなくなります。プロセスからフィールドを追加または削除することだけが可能です。

Gif to demo editing of shareable picklist fields.

Kanbanボードでは、スイムレーンを使って、さまざまなサービスレベルクラスをサポートする作業のステータスの視覚化ができます。スイムレーンに色を付けることで、ボード上で識別しやすくなりました。

Gif to demo adding color to swimlanes.

PATトークンの漏洩による被害を抑えるために、Pipeline Resourcesという名前の新しいPATスコープを追加しました。このPATスコープは、サービス接続などの保護されたリソースを使用してパイプラインの認可の管理や、そのリソースの承認やチェックを管理する際に使用できます。

Pipelines REST API Updates

次のスプリントでは、REST APIの呼び出しに必要な権限が次のように変更されます。

パイプラインの権限管理に関するエクスペリエンスを改善し、パイプラインが以前にサービス接続などの保護されたリソースを使用したことがあるかどうかを権限管理システムが記憶するようにしました。

以前は、保護されたリソースの作成時に"Grant access permission to all pipelines"(すべてのパイプラインにアクセス許可を与える)をチェックオフした後、リソースへのアクセスを制限すると、パイプラインがリソースを使用するために新しい権限が必要になりました。この動作は、新しい認証が必要でないリソースへのアクセスをその後開いたり閉じたりするときと矛盾していました。これは現在修正されています。

Approvals and checksは、リソースの所有者がどのパイプラインの実行が自分のリソースを使用できるかを制御できるようにするランタイムセキュリティメカニズムです。

よく使われるチェックは、Invoke Azure FunctionInvoke REST APIの2つです。以前は、これらを設定する場合、定義済みのシステム変数または変数グループのみを使用することができました。

今回のスプリントでは、パイプラインで定義された変数をサポートしました。これは、Function key、Header、Body、Queryの各パラメータを指定してチェックを行う場合に有効です。

例えば、次のようなYAMLパイプラインがあるとします。変数 FunctionKey, MyHeader, MyBody, MyQueryとランタイム定義変数RetryCountを定義していることに注意してください。

variables:
  FunctionKey: <<redacted>>
  MyHeader: "FabrikamHeader"
  MyQuery: "FabrikamQuery"
  MyBody: "FabrikamBody"

stages: 
- stage: Build
  jobs:
  - job: SetRC
    steps:
    - script: echo "##vso[task.setvariable variable=RetryCount;isOutput=true]3"
      name: RCValue
- stage: Deploy
  jobs:
  - deployment: 
    environment: Production
    strategy:
      runOnce:
        deploy:
          steps:
          - script: ./deploy.sh

本番環境では、以下のスクリーンショットのように、$(FunctionKey)$(MyHeader)$(MyBody)$(MyQuery)$(Build.SetRC.RCValue.RetryCount)を参照して、Invoke Azure Functionチェックの構成ができます。

Invoke Azure Function

ランタイムで定義された変数を使用するための構文は、StageId.JobId.StepOrTaskName.Variableです。

詳しくはInvoke Azure Function & REST API の推奨使用方法についてをご覧ください。

Azure Pipelinesは、ログに含まれるシークレットをマスクします。シークレットは、シークレットとしてマークされた変数、Azure Key Vaultにリンクされた変数グループの変数、またはサービス接続プロバイダーによってシークレットとしてマークされたサービス接続の要素である可能性があります。

シークレット値のすべての出現はマスクされます。'1'、'2'、'Dev' などの短い秘密値をマスクすると、その値を簡単に推測できるようになります。例えば'Jan 3, 202***'のような日付の場合です。 この場合、'3' が秘密であることは明らかです。このような場合、秘密を完全に隠さない方がいいかもしれません。値をシークレットとしないことが不可能な場合(Key Vaultから値を取得するなど)、AZP_IGNORE_SECRETS_SHORTER_THANノブを最大4までの値に設定可能です。

現在、Pipelineエージェントには、v2が.NET 3.1 Core、v3が.NET 6というふたつのバージョンがあります。v3エージェントはサポートされているオペレーティングシステムに徐々にロールアウトしており、その後v2エージェントは廃止される予定です。詳細については、the upgrade of .NET agent for Azure Pipelines blog postを参照してください。

セルフホストエージェントがアップグレードできるかどうかを確認するためのスクリプトを作成しました。このスクリプトは、組織内のすべてのプールを処理し、v3エージェントでサポートされていないオペレーティングシステム上のv2エージェントを特定します(例:CentOS 6、Fedoraバージョン31以前、macOS 10.14、RHEL 6)。

注意事項

v2エージェントの最近のビルドでは、v3エージェントと互換性がないことが分かっているOS上では、v3エージェントへの自動アップグレードを試みないようにします。

このスプリントでは、パイプラインの実行状況を全体的に把握しやすくしています。

多くのステージを持つYAMLパイプラインでは、パイプラインの実行状況、つまりまだ実行中なのか終了したのかを知るのは難しいことでした。また、終了した場合、全体的な状態はどうなっているのか、成功したのか、失敗したのか、キャンセルされたのか、などです。この問題を解決するために、実行状況の概要を示すアイコンを追加しました。

Pipeline run status overview icon

Wikiのページに、サブページの内容のテーブルを追加できるようになりました。このテーブルはサブページのテーブルが表示されているページの下にあるすべてのサブページへのリンクを持っています。

サブページのテーブルを追加するには、以下のアニメーション画像に示すように、特別なタグ[[_TOSP_]]を手動で挿入するか、More optionsから追加します。サブページのテーブルを作成するには、最初の[[_TOSP_]]タグだけが使用されます。

この機能は、以下のコミュニティからの提案チケットに基づいて優先的に実装されました。

注意事項

ここで議論されている機能は今後二~三週にわたって順次展開されます。

Azure DevOpsサービスを体験してみてください。

これらの機能についてどう思っているかお聞きしたいと思います。 フィードバックメニューを使用して問題を報告するか、提案を提出してください。

Make a suggestion

アドバイスや回答を必要とする質問がある場合、Stack Overflowコミュニティで聞いてください。

ありがとうございました。

Rajesh Ramamurthy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment