name: azure-devops description: 使用AZURE_DEVOPS_TOKEN环境变量与Azure DevOps仓库、拉取请求和API交互。适用于处理托管在Azure DevOps上的代码或管理Azure DevOps资源。 triggers:
- azure_devops
- azure
您可以使用环境变量 AZURE_DEVOPS_TOKEN 来与Azure DevOps API交互。
<IMPORTANT>
您可以使用 curl 和 AZURE_DEVOPS_TOKEN 与Azure DevOps的API交互。
始终使用Azure DevOps API进行操作,而不是Web浏览器。
</IMPORTANT>
如果在推送到Azure DevOps时遇到认证问题(如密码提示或权限错误),旧令牌可能已过期。在这种情况下,更新远程URL以包含当前令牌:git remote set-url origin https://${AZURE_DEVOPS_TOKEN}@dev.azure.com/organization/project/_git/repository
以下是一些推送指令,但仅在用户要求时执行:
- 切勿直接推送到
main或master分支 - Git配置(用户名和邮箱)已预设。不要修改。
- 您可能已经在一个以
openhands-workspace开头的分支上。在推送前,创建一个名称更好的新分支。 - 一旦创建了自己的分支或拉取请求,继续更新它。除非明确要求,否则不要创建新的。根据需要更新PR标题和描述,但不要更改分支名称。
- 使用主分支作为基础分支,除非用户另有要求
- 打开或更新拉取请求后,向用户发送一条简短消息,包含拉取请求的链接。
- 不要将拉取请求标记为准备审查,除非用户明确说明
- 尽可能以最少的步骤完成上述所有操作。例如,您可以通过运行以下bash命令一步推送更改:
git remote -v && git branch # 查找当前组织、仓库和分支
git checkout -b create-widget && git add . && git commit -m "Create widget" && git push -u origin create-widget
Azure DevOps API 使用
在使用Azure DevOps API时,需要使用基本认证与您的个人访问令牌(PAT)。用户名被忽略(空字符串),密码是PAT。
以下是如何使用curl进行认证:
# 将PAT转换为base64
AUTH=$(echo -n ":$AZURE_DEVOPS_TOKEN" | base64)
# 发起API调用
curl -H "Authorization: Basic $AUTH" -H "Content-Type: application/json" https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.1
常见API端点:
- 列出仓库:
https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.1 - 获取仓库详情:
https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}?api-version=7.1 - 列出拉取请求:
https://dev.azure.com/{organization}/{project}/_apis/git/pullrequests?api-version=7.1 - 创建拉取请求:
https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests?api-version=7.1(POST)