Skip to content

Instantly share code, notes, and snippets.

@kkamegawa
Created March 12, 2023 08:06
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/2f65894655de5763f185340348be5451 to your computer and use it in GitHub Desktop.
Save kkamegawa/2f65894655de5763f185340348be5451 to your computer and use it in GitHub Desktop.

ダッシュボードの管理とパイプラインのセキュリティを改善しました - Sprint 218

今回の更新では、ダッシュボードが最後に表示または変更された時刻を追跡する機能が追加されました。この改善により、プロジェクト管理者は、ダッシュボードを削除するかどうかという判断を最終履歴を使って評価することができ、保存されたダッシュボードの上限の到達を防ぐことが可能になります。

また、セキュリティへの投資も継続しています。GitHub Enterprise Serverでホストされたパイプラインを作成する際のデフォルトの認証メカニズムがOAuth2となります。

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

Node 6タスクランナーを除外したエージェントリリースを採用する場合、新しいNodeランナーを使用するように更新されていないタスクを実行しなければならい場合があります。このシナリオのために、Node End-of-Lifeランナーに依存するタスクを引き続き使用する方法を提供します(Node runner guidanceというタイトルのブログを参照してください)。

以下のタスクは、Node 6ランナーを実行時にインストールする方法であり、古いタスクでもまだ実行できるようにします。

  steps:
  - task: NodeTaskRunnerInstaller@0
    inputs:
      runnerVersion: 6

タスク作成者は、拡張機能を公開するために拡張機能パッケージングツール(TFX)を使用します。TFXは、Nodeランナーのバージョンに関する検証を実行するように更新されました。詳細はブログを参照してください。

Node 6ランナーを使用するタスクを含む拡張機能には、この警告が表示されます。

Task <TaskName> is dependent on a task runner that is end-of-life and will be removed in the future. Authors should review Node upgrade guidance: https://aka.ms/node-runner-guidance.

サービスフックを使用すると、パイプラインランの状態が変化を起こすイベントに反応できます。今まで、パイプラインの実行状態やステージの状態変化に対してサービスフックを設定することができました。

今回から、パイプラインランのジョブの状態が変化したときに呼び出されるサービスフックの設定が可能です。新しいイベントのペイロード構造は、次の例のとおりです。

{
    "subscriptionId": "8d91ad83-1db5-4d43-8c5a-9bb2239644b1",
    "notificationId": 29,
    "id": "fcad4962-f3a6-4fbf-9653-2058c304503f",
    "eventType": "ms.vss-pipelines.job-state-changed-event",
    "publisherId": "pipelines",
    "message":
    {
        "text": "Run 20221121.5 stage Build job Compile succeeded.",
        "html": "Run 20221121.5 stage Build job <a href=\"https://dev.azure.com/fabrikamfiber/fabrikamfiber-viva/_build/results?buildId=2710088\">Compile</a> succeeded.",
        "markdown": "Run 20221121.5 stage Build job [Compile](https://dev.azure.com/fabrikamfiber/fabrikamfiber-viva/_build/results?buildId=2710088) succeeded."
    },
    "detailedMessage":
    {
        "text": "Run 20221121.5 stage Build job Compile succeeded.",
        "html": "Run 20221121.5 stage Build job <a href=\"https://dev.azure.com/fabrikamfiber/fabrikamfiber-viva/_build/results?buildId=2710088\">Compile</a> succeeded.",
        "markdown": "Run 20221121.5 stage Build job [Compile](https://dev.azure.com/fabrikamfiber/fabrikamfiber-viva/_build/results?buildId=2710088) succeeded."
    },
    "resource":
    {
        "job":
        {
            "_links":
            {
                "web":
                {
                    "href": "https://dev.azure.com/fabrikamfiber/fabrikamfiber-viva/_build/results?buildId=2710088"
                },
                "pipeline.web":
                {
                    "href": "https://dev.azure.com/fabrikamfiber/fabrikamfiber-viva/_build/definition?definitionId=4647"
                }
            },
            "id": "e87e3d16-29b0-5003-7d86-82b704b96244",
            "name": "Compile",
            "state": "completed",
            "result": "succeeded",
            "startTime": "2022-11-21T16:10:28.49Z",
            "finishTime": "2022-11-21T16:10:53.66Z"
        },
        "stage": { ... },
        "run": { ... },
        "pipeline": { ... },
        "repositories": [ ... ]
    },
    "resourceVersion": "5.1-preview.1",
    "createdDate": "2022-11-21T16:11:02.9207334Z"
}

実行、ステージ、およびジョブの状態変更サービスフックイベントに、パイプラインの実行によって参照されるAzure Reposを列挙するrepositoryプロパティが含まれるようになりました。例えば、以下のようなものです。

"repositories":
[
    {
        "type": "Git",
        "change":
        {
            "author":
            {
                "name": "Fabrikam John",
                "email": "john@fabrikamfiber.com",
                "date": "2022-11-11T15:09:21Z"
            },
            "committer":
            {
                "name": "Fabrikam John",
                "email": "john@fabrikamfiber.com",
                "date": "2022-11-11T15:09:21Z"
            },
            "message": "Added Viva support"
        },
        "url": "https://fabrikamfiber@dev.azure.com/fabrikamfiber/fabrikamfiber-viva/_git/fabrikamfiber"
    }
]

以前は、認証メカニズムとしてPersonal access tokenを使うという選択肢しかありませんでした。これは、安全性の低いサービス接続となってしまいました。

New GitHub

今回のスプリントから、パイプライン作成時やサービス接続の追加時など、GHESのサービス接続を作成する際のデフォルトの認証メカニズムをOAuth2に変更しました。

OAuth2

チームが複数のダッシュボードを作成できるようにする際の課題のひとつは、古くなったり使われなくなったダッシュボードの管理と後始末です。ダッシュボードが最後にアクセスまたは変更された日時を知ることは、どのダッシュボードを削除できるかを理解する上で重要な要素になります。今回のスプリントでは、Dashboardsディレクトリページにふたつの新しいカラムを追加しました。Last Accessed Dateは、ダッシュボードが最後にアクセスされた日時を記録します。Modified Byは、ダッシュボードが最後に編集された日時と、その編集者を記録します。

Modified Byの情報は、ダッシュボードページ自体にも表示されます。

Dashboard Preview

これらの新しいフィールドは、プロジェクト管理者がダッシュボードのアクティビティレベルを理解し、削除すべきかどうかの判断に役立つことを期待しています。

注意事項

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

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