Pra*_*eep 15 powershell azure-devops azure-devops-rest-api
我在 Azure DevOps 中有很多项目。我希望能够迭代 Azure DevOps 中的所有存储库并获取存储库的名称、存储库的创建者和上次更新/提交。
当有人创建新的 Repo 时收到通知吗?
Vit*_*Liu 21
我们可以通过 REST API 列出仓库信息
\n\n\n列出所有存储库并获取存储库的名称:
\n
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=6.1-preview.1\n
Run Code Online (Sandbox Code Playgroud)\n\n\n\n
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/refs?api-version=6.1-preview.1\n
Run Code Online (Sandbox Code Playgroud)\n注意:我们可以通过这个API获取分支创建者,我没有找到任何API来获取repo创建者。
\n\n\n\n
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits?searchCriteria.$top=1&api-version=6.1-preview.1\n
Run Code Online (Sandbox Code Playgroud)\n\n\n当有人创建新的 Repo 时收到通知
\n
我们无法创建此通知,当有人更新存储库代码时我们可以收到通知。请参阅此链接了解更多详细信息:支持的事件类型\n\xc2\xa0
\n更新1
\n//List project name\n$connectionToken="PAT"\n$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))\n$ProjectUrl = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=6.1-preview.1" \n$Repo = (Invoke-RestMethod -Uri $ProjectUrl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})\n$RepoName= $Repo.value.name\nWrite-Host $RepoName\n\n//get latest commit info and branch creator\n$RepoID=$Repo.value.id\nWrite-Host $RepoID\nForEach ($Id in $RepoID)\n{\n\n//Get latest commit info\n$ProjectUrl = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories/$Id/commits?api-version=6.1-preview.1" \n$CommitInfo = (Invoke-RestMethod -Uri $ProjectUrl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})\n$CommitID = $CommitInfo.value.commitId | Select-Object -first 1\nWrite-Host $CommitID\n$CommitUrl = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories/$Id/commits/$($CommitID)?api-version=6.0-preview.1"\n$LatestCommitInfo = (Invoke-RestMethod -Uri $CommitUrl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})\nWrite-Host "LatestCommitInfo = $($LatestCommitInfo | ConvertTo-Json -Depth 100)"\n\n//Get branch name and creatot\n$BarchCreatorUrl = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories/$Id/refs?api-version=6.1-preview.1"\n$CreateorInfo = (Invoke-RestMethod -Uri $BarchCreatorUrl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})\nWrite-Host $CreateorInfo.value.name\nWrite-Host $CreateorInfo.value.creator.displayName\n}\n
Run Code Online (Sandbox Code Playgroud)\n
小智 6
另一个选项(使用身份验证部分更容易)是使用以下命令通过AZ CLI检索 Azure 存储库:
登录 Azure
az login -t $tenant
Run Code Online (Sandbox Code Playgroud)
首先配置组织和项目的默认值,这将帮助您不在每个 az devops/repos 命令中指定--project
参数--organization
:
az devops configure -d organization=$organizationUrl project=$project
Run Code Online (Sandbox Code Playgroud)
列出您的订阅以及默认项目和组织的存储库
az repos list --subscription $subscription
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25538 次 |
最近记录: |