gpt4 book ai didi

python - 用于检查 PAT 到期日期的 Azure DevOps API

转载 作者:行者123 更新时间:2023-12-02 06:02:55 24 4
gpt4 key购买 nike

我正在尝试检查 PAT token 何时到期,以便在特定 token 即将到期时创建警报/通知,并在到期之前将其替换。

有一个 API 可以查询组织内的所有 PAT: https://learn.microsoft.com/en-us/rest/api/azure/devops/tokenadmin/personal%20access%20tokens/list?view=azure-devops-rest-5.1

遗憾的是,这个 API 需要组织本身的写入权限,而我没有。使用下面的脚本我收到以下错误:azure.devops.exceptions.AzureDevOpsServiceError:访问被拒绝:XXX 需要以下权限才能执行此操作:编辑实例级信息

这引出了我的问题:有没有办法/API 可以在没有组织本身权限的情况下查询我的个人 PAT?

这里是Python脚本的当前草案,用于检查PAT以供引用:

#!/usr/bin/env python

from msrest.authentication import BasicAuthentication
from azure.devops.connection import Connection

# Fill in with your personal access token and org URL
personal_access_token = 'XXX'
organization_url = 'https://dev.azure.com/XXX'

# Create a connection to the org
credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)

# Get personal subject_descriptor by mail
graph_client = connection.clients_v6_0.get_graph_client()
user_descriptor = None
continuation_token = None

while True:
graph_response = graph_client.list_users(continuation_token=continuation_token)
continuation_token = graph_response.continuation_token
for u in graph_response.graph_users:
if u.mail_address == "my@mail":
user_descriptor = u.descriptor
break
if continuation_token == None:
break

# Get a client for token admin
token_admin_client = connection.clients_v6_0.get_token_admin_client()

# Get list of personal access tokens
tokens_response = token_admin_client.list_personal_access_tokens(user_descriptor)

print(tokens_response)

最佳答案

Is there a way / an API to query my personal PATs without permissions on the org itself?

根据我的测试,这个API确实存在。官方文档中没有这个API。

我们可以在浏览器控制台 -> 网络选项卡中获取它。

API

这是模板:

https://vssps.dev.azure.com/Org name/_apis/Token/SessionTokens?displayFilterOption=1&createdByOption=3&sortByOption=3&isSortAscending=true&startRowNumber=1&pageSize=100&api-version=5.0-preview.1

此 Rest API 不需要具有编辑实例级信息权限。

您只需将“ token 管理”范围授予个人访问 token 即可。然后就可以成功运行API了。

PAT Scope

希望这有帮助。

关于python - 用于检查 PAT 到期日期的 Azure DevOps API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62264305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com