如何使用az-cli设置分支权限?

时间:2020-07-15 13:03:08

标签: git azure-devops azure-cli

我试图拒绝主题来自 develop 分支的“编辑策略”权限。我觉得该命令可以工作:

$ az devops security permission update --allow-bit 2048 --subject foo@bar.com --namespace-id ***** --token repoV2/<project id>/<git repo id>/refs^heads^develop/ 

尽管有回应

[
  {
    "acesDictionary": {
      "Microsoft.IdentityModel.Claims.ClaimsIdentity;****\\foo@bar.com": {
        "allow": 2048,
        "deny": 0,
        "descriptor": "Microsoft.IdentityModel.Claims.ClaimsIdentity;****\\foo@bar.com",
        "extendedInfo": {
          "effectiveAllow": 20342
        },
        "resolvedPermissions": [
          {
            "bit": 2048,
            "displayName": "Edit policies",
            "effectivePermission": "Allow",
            "name": "EditPolicies"
          }
        ]
      }
    },
    "includeExtendedInfo": true,
    "inheritPermissions": true,
    "token": "repoV2/***/***/refs^heads^develop"
  }
]

权限保持不变。

我认为令牌ID和名称空间ID是正确的,因为该命令在使用令牌repoV2/***/***/时有效。

1 个答案:

答案 0 :(得分:0)

以下是az devops security permission update的格式:

az devops security permission update --id
                                     --subject
                                     --token
                                     [--allow-bit]
                                     [--deny-bit]
                                     [--org]

从您的azure cli命令中,问题的原因应该是参数。

您可以在Browser F12 Network Tool中获得这些参数。

以下是步骤:

第1步:导航到分支权限,然后按F12键打开NetWork工具。 然后,您可以选择“网络”标签。

第二步:尝试更改权限。

第3步:您可以检查网络记录并获取这些参数。

enter image description here

以下是有关蔚蓝cli的示例:

az devops security permission update --id 2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87 --subject xxx@xxx.com --token repoV2/92c1c5e8-d842-4698-b3f5-45d69e25624c/34439f96-646e-4aa0-a3e5-a55742a9813e/refs/heads/310032003400/ --allow-bit 0 --deny-bit 2048 --org https://dev.azure.com/orgname

注意:令牌中的branch parameter必须为十六进制的id(例如refs / heads / 310032003400 /)。

根据我的测试,如果使用分支名称,它不会更改权限。

这是一张有关convert branch name to hex id的票。