0

Check Issues Against JQL

by
Published Nov 2, 2023

Check which of the given issues match each of one or more JQL queries. Takes numeric issue IDs (not keys) and returns, per query, the matched IDs.

Script jira Verified

The script

Submitted by hugo989 Typescript (fetch-only)
Verified 8 days ago
1
//native
2

3
/**
4
 * Check Issues Against JQL
5
 * Check which of the given issues match each of one or more JQL queries. Takes numeric issue IDs (not keys) and returns, per query, the matched IDs.
6
 */
7
export async function main(auth: RT.Jira, issue_ids: number[], jqls: string[]) {
8
  const url = new URL(
9
    `https://${auth.domain}.atlassian.net/rest/api/3/jql/match`
10
  )
11

12
  const response = await fetch(url, {
13
    method: "POST",
14
    headers: {
15
      Authorization: `Basic ${btoa(`${auth.username}:${auth.password}`)}`,
16
      "Content-Type": "application/json",
17
      Accept: "application/json",
18
    },
19
    body: JSON.stringify({ issueIds: issue_ids, jqls }),
20
  })
21

22
  if (!response.ok) {
23
    throw new Error(`${response.status} ${await response.text()}`)
24
  }
25

26
  return await response.json()
27
}
28

Other submissions
  • Submitted by hugo697 Typescript (fetch-only)
    Created 532 days ago
    1
    type Jira = {
    2
      username: string;
    3
      password: string;
    4
      domain: string;
    5
    };
    6
    /**
    7
     * Check issues against JQL
    8
     * Checks whether one or more issues would be returned by one or more JQL queries.
    9
    
    
    10
    **[Permissions](#permissions) required:** None, however, issues are only matched against JQL queries where the user has:
    11
    
    
    12
     *  *Browse projects* [project permission](https://confluence.atlassian.com/x/yodKLg) for the project that the issue is in.
    13
     *  If [issue-level security](https://confluence.atlassian.com/x/J4lKLg) is configured, issue-level security permission to view the issue.
    14
     */
    15
    export async function main(
    16
      auth: Jira,
    17
      body: { issueIds: number[]; jqls: string[] }
    18
    ) {
    19
      const url = new URL(
    20
        `https://${auth.domain}.atlassian.net/rest/api/2/jql/match`
    21
      );
    22
    
    
    23
      const response = await fetch(url, {
    24
        method: "POST",
    25
        headers: {
    26
          "Content-Type": "application/json",
    27
          Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
    28
        },
    29
        body: JSON.stringify(body),
    30
      });
    31
      if (!response.ok) {
    32
        const text = await response.text();
    33
        throw new Error(`${response.status} ${text}`);
    34
      }
    35
      return await response.json();
    36
    }
    37