0

Export issues

by
Published Oct 24, 2023

A POST request to this endpoint initiates a new background celery task that archives the repo's issues. When the job has been accepted, it will return a 202 (Accepted) along with a unique url to this job in the 'Location' response header. This url is the endpoint for where the user can obtain their zip files."

Script bitbucket Verified

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 398 days ago
1
type Bitbucket = {
2
  username: string;
3
  password: string;
4
};
5
/**
6
 * Export issues
7
 * A POST request to this endpoint initiates a new background celery task that archives the repo's issues.
8

9
When the job has been accepted, it will return a 202 (Accepted) along with a unique url to this job in the
10
'Location' response header. This url is the endpoint for where the user can obtain their zip files."
11
 */
12
export async function main(
13
  auth: Bitbucket,
14
  repo_slug: string,
15
  workspace: string,
16
  body: {
17
    type: string;
18
    project_key?: string;
19
    project_name?: string;
20
    send_email?: boolean;
21
    include_attachments?: boolean;
22
    [k: string]: unknown;
23
  }
24
) {
25
  const url = new URL(
26
    `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/issues/export`
27
  );
28

29
  const response = await fetch(url, {
30
    method: "POST",
31
    headers: {
32
      "Content-Type": "application/json",
33
      Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
34
    },
35
    body: JSON.stringify(body),
36
  });
37
  if (!response.ok) {
38
    const text = await response.text();
39
    throw new Error(`${response.status} ${text}`);
40
  }
41
  return await response.text();
42
}
43