Manage personal access tokens using API - Azure DevOps | Microsoft Learn の手順を az cli と httpie で書き直しただけ。これを使って Azure Artifacts を操作するサービスアカウントのトークンを定期的に更新とかできる。多分。
https://learn.microsoft.com/en-us/rest/api/azure/devops/tokens/pats?view=azure-devops-rest-7.1
499b84ac-1321-427f-aa17-267ca6975798/.default
が Azure DevOps を操作するためのスコープ。
❯❯ http --body --auth-type=bearer \
--auth="$(az account get-access-token --scope '499b84ac-1321-427f-aa17-267ca6975798/.default' -otsv --query 'accessToken')" \
'https://vssps.dev.azure.com/sensyn-robotics/_apis/tokens/pats?api-version=7.1-preview.1'
{
"continuationToken": "",
"patTokens": [
{
"authorizationId": "10070fdf-5f0b-4b58-8f3b-f9e1c1ec1eae",
"displayName": "local",
"scope": "vso.packaging",
"targetAccounts": [
"87adc412-601d-4d69-bec5-0684405c1c2c"
],
"token": null,
"validFrom": "2024-04-24T13:08:10.3433333Z",
"validTo": "2024-05-24T13:07:46.5066667Z"
}
]
}
❯❯ http --body --auth-type=bearer \
--auth="$(az account get-access-token --scope '499b84ac-1321-427f-aa17-267ca6975798/.default' -otsv --query 'accessToken')" \
PUT 'https://vssps.dev.azure.com/sensyn-robotics/_apis/tokens/pats?api-version=7.1-preview.1' \
authorizationId=10070fdf-5f0b-4b58-8f3b-f9e1c1ec1eae validTo=2024-06-05T15:00:00Z
{
"patToken": {
"authorizationId": "10070fdf-5f0b-4b58-8f3b-f9e1c1ec1eae",
"displayName": "local",
"scope": "vso.packaging",
"targetAccounts": [
"87adc412-601d-4d69-bec5-0684405c1c2c"
],
"token": null,
"validFrom": "2024-04-24T13:08:10.3433333Z",
"validTo": "2024-06-05T15:00:00Z"
},
"patTokenError": "none"
}