如何使用Rest API管理Azure DevOps组权限
我正在进行一项自动化任务,其中我需要一个组对repo、管道和发布等具有一组权限。我正在寻找一个Rest API,它可以管理此组的权限 例如: 在交叉回购策略中,我如何管理/设置组“项目管理员”的权限,以便使用Rest API允许“推送时绕过策略”、“推送时绕过策略”等如何使用Rest API管理Azure DevOps组权限,azure,rest,azure-devops,azure-devops-rest-api,Azure,Rest,Azure Devops,Azure Devops Rest Api,我正在进行一项自动化任务,其中我需要一个组对repo、管道和发布等具有一组权限。我正在寻找一个Rest API,它可以管理此组的权限 例如: 在交叉回购策略中,我如何管理/设置组“项目管理员”的权限,以便使用Rest API允许“推送时绕过策略”、“推送时绕过策略”等 提前感谢。根据您的要求,您可以使用Rest API: 请求机构: { "token": "repoV2/{ProjectID}/{RepoID(If you want to set the pe
提前感谢。根据您的要求,您可以使用Rest API: 请求机构:
{
"token": "repoV2/{ProjectID}/{RepoID(If you want to set the permission for a single repo)}",
"merge": true,
"accessControlEntries": [
{
"descriptor": "Microsoft.TeamFoundation.Identity;S-....",
"allow": 32768,
"deny": 0,
"extendedinfo": {}
}
]
}
您可以通过以下方法获得Rest API中所需的参数值:
安全名称空间ID:
GET https://dev.azure.com/{OrganizationName}/_apis/securitynamespaces?api-version=6.0
在响应正文中:您可以搜索Git存储库
然后可以获得与权限相对应的名称空间ID和参数值
例如:
要获取组标识(S-…),没有直接的RESTAPI来获取它。您可以使用以下方法获取它:
1.获取描述符:
GET https://vssps.dev.azure.com/{org name}/_apis/graph/users?api-version=5.1-preview.1
2.使用以下C#代码进行转换:
public static string Base64Decode(string base64EncodedData)
{
var lengthMod4 = base64EncodedData.Length % 4;
if (lengthMod4 != 0)
{
//fix Invalid length for a Base-64 char array or string
base64EncodedData += new string('=', 4 - lengthMod4);
}
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
public static string Base64Encode(string plainText)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}
这里有我们的Azure Identity团队工程师编写的,您可以参考它以获得更详细的信息
此外,您还可以通过浏览器F12记录直接获取所有参数的值
根据您的要求,您可以使用Rest API: 请求机构:
{
"token": "repoV2/{ProjectID}/{RepoID(If you want to set the permission for a single repo)}",
"merge": true,
"accessControlEntries": [
{
"descriptor": "Microsoft.TeamFoundation.Identity;S-....",
"allow": 32768,
"deny": 0,
"extendedinfo": {}
}
]
}
您可以通过以下方法获得Rest API中所需的参数值:
安全名称空间ID:
GET https://dev.azure.com/{OrganizationName}/_apis/securitynamespaces?api-version=6.0
在响应正文中:您可以搜索Git存储库
然后可以获得与权限相对应的名称空间ID和参数值
例如:
要获取组标识(S-…),没有直接的RESTAPI来获取它。您可以使用以下方法获取它:
1.获取描述符:
GET https://vssps.dev.azure.com/{org name}/_apis/graph/users?api-version=5.1-preview.1
2.使用以下C#代码进行转换:
public static string Base64Decode(string base64EncodedData)
{
var lengthMod4 = base64EncodedData.Length % 4;
if (lengthMod4 != 0)
{
//fix Invalid length for a Base-64 char array or string
base64EncodedData += new string('=', 4 - lengthMod4);
}
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
public static string Base64Encode(string plainText)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}
这里有我们的Azure Identity团队工程师编写的,您可以参考它以获得更详细的信息
此外,您还可以通过浏览器F12记录直接获取所有参数的值
查看您可以使用fiddler捕获大多数REST API调用。您看过REST API文档了吗?您好@irudne。这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒一下。看看吧,您可以使用fiddler捕获大多数REST API调用。您看过REST API文档了吗?您好@irudne。这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒一下。谢谢。它正在按预期工作。谢谢。它正在按预期工作。