0
votes

Is there an API for editing/adding users/user groups to a project's security groups in Azure DevOps? For example, create a new security group under project and add members under it?

1
May I know that how's the issue going now? Does below approach can get you unblock. Feel free to leave comment if you have any puzzle here. - Merlin Liang
This is great! Thank you! - Edvinas Perminas

1 Answers

1
votes

Create a group and add members under this new group are separate steps. As of now, we have not provide one api that you can achieve them at once.


(1) To create a new user group under project level:

POST https://vssps.dev.azure.com/{organization}/_apis/graph/groups?scopeDescriptor={scopeDescriptor}&api-version=6.1-preview.1

Request body:

{
  "displayName": "{group name}",
  "description": "{The description of this group}"
}

Notes:

  • The only trouble here is getting scopeDescriptor of the project. Since you are trying to add group under Project level, scopeDescriptor is a necessary parameter of this api.

    a. Please firstly use this api to retrieve the id of the project that you would like to add the group to.

    GET https://dev.azure.com/{organization}/_apis/projects?api-version=6.0
    

    b. Then calling this Descriptors - Get api to get the corresponding scopeDescriptor.

    GET https://vssps.dev.azure.com/{organization}/_apis/graph/descriptors/{storageKey}?api-version=5.0-preview.1
    

    Please replace storageKey with project Id since we need to get the scope descriptor for a project. The content of Value property is what we are looking for:

    enter image description here

  • Please copy the "descriptor" value into a txt file from the response body after you create a new group successfully, it is the important parameter for next steps.


(2) Adding a member into this new group, please refer to this api:

POST https://vssps.dev.azure.com/{organization}/_apis/graph/users?groupDescriptors={xxxxx}&api-version=6.1-preview.1

Request body:

{
  "principalName": "{user' account address}"
}

Notes:

Here please input the descriptor value you copied from previous api's response body, as the value of groupDescriptors parameter.

For request body, just input the user's account address is ok.