0

Delete default actors from project role

by
Published Nov 2, 2023

Deletes the [default actors](#api-rest-api-2-resolution-get) from a project role. You may delete a group or user, but you cannot delete a group and a user in the same request. Changing a project role's default actors does not affect project role members for projects already created. **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).

Script jira
  • Submitted by hugo697 Typescript (fetch-only)
    Created 527 days ago
    1
    type Jira = {
    2
      username: string;
    3
      password: string;
    4
      domain: string;
    5
    };
    6
    /**
    7
     * Delete default actors from project role
    8
     * Deletes the [default actors](#api-rest-api-2-resolution-get) from a project role. You may delete a group or user, but you cannot delete a group and a user in the same request.
    9
    
    
    10
    Changing a project role's default actors does not affect project role members for projects already created.
    11
    
    
    12
    **[Permissions](#permissions) required:** *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
    13
     */
    14
    export async function main(
    15
      auth: Jira,
    16
      id: string,
    17
      user: string | undefined,
    18
      groupId: string | undefined,
    19
      group: string | undefined
    20
    ) {
    21
      const url = new URL(
    22
        `https://${auth.domain}.atlassian.net/rest/api/2/role/${id}/actors`
    23
      );
    24
      for (const [k, v] of [
    25
        ["user", user],
    26
        ["groupId", groupId],
    27
        ["group", group],
    28
      ]) {
    29
        if (v !== undefined && v !== "") {
    30
          url.searchParams.append(k, v);
    31
        }
    32
      }
    33
      const response = await fetch(url, {
    34
        method: "DELETE",
    35
        headers: {
    36
          Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
    37
        },
    38
        body: undefined,
    39
      });
    40
      if (!response.ok) {
    41
        const text = await response.text();
    42
        throw new Error(`${response.status} ${text}`);
    43
      }
    44
      return await response.json();
    45
    }
    46