Get a patch for two commits

Produces a raw patch for a single commit (diffed against its first parent), or a patch-series for a revspec of 2 commits (e.

Script bitbucket Verified

by hugo697 ยท 10/24/2023

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 375 days ago
1
type Bitbucket = {
2
  username: string;
3
  password: string;
4
};
5
/**
6
 * Get a patch for two commits
7
 * Produces a raw patch for a single commit (diffed against its first
8
parent), or a patch-series for a revspec of 2 commits (e.
9
 */
10
export async function main(
11
  auth: Bitbucket,
12
  repo_slug: string,
13
  spec: string,
14
  workspace: string
15
) {
16
  const url = new URL(
17
    `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/patch/${spec}`
18
  );
19

20
  const response = await fetch(url, {
21
    method: "GET",
22
    headers: {
23
      Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
24
    },
25
    body: undefined,
26
  });
27
  if (!response.ok) {
28
    const text = await response.text();
29
    throw new Error(`${response.status} ${text}`);
30
  }
31
  return await response.text();
32
}
33