type Bitbucket = {
username: string;
password: string;
};
/**
* Create a repository
* Creates a new repository.
*/
export async function main(
auth: Bitbucket,
repo_slug: string,
workspace: string,
body: { type: string; [k: string]: unknown } & {
links?: {
self?: { href?: string; name?: string };
html?: { href?: string; name?: string };
avatar?: { href?: string; name?: string };
pullrequests?: { href?: string; name?: string };
commits?: { href?: string; name?: string };
forks?: { href?: string; name?: string };
watchers?: { href?: string; name?: string };
downloads?: { href?: string; name?: string };
clone?: { href?: string; name?: string }[];
hooks?: { href?: string; name?: string };
};
uuid?: string;
full_name?: string;
is_private?: boolean;
parent?: unknown;
scm?: "git";
owner?: { type: string; [k: string]: unknown } & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
};
created_on?: string;
display_name?: string;
username?: string;
uuid?: string;
[k: string]: unknown;
};
name?: string;
description?: string;
created_on?: string;
updated_on?: string;
size?: number;
language?: string;
has_issues?: boolean;
has_wiki?: boolean;
fork_policy?: "allow_forks" | "no_public_forks" | "no_forks";
project?: { type: string; [k: string]: unknown } & {
links?: {
html?: { href?: string; name?: string };
avatar?: { href?: string; name?: string };
};
uuid?: string;
key?: string;
owner?: ({ type: string; [k: string]: unknown } & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
};
created_on?: string;
display_name?: string;
username?: string;
uuid?: string;
[k: string]: unknown;
}) & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
} & {
self?: { href?: string; name?: string };
html?: { href?: string; name?: string };
members?: { href?: string; name?: string };
projects?: { href?: string; name?: string };
repositories?: { href?: string; name?: string };
[k: string]: unknown;
};
[k: string]: unknown;
};
name?: string;
description?: string;
is_private?: boolean;
created_on?: string;
updated_on?: string;
has_publicly_visible_repos?: boolean;
[k: string]: unknown;
};
mainbranch?: {
type: string;
links?: {
self?: { href?: string; name?: string };
commits?: { href?: string; name?: string };
html?: { href?: string; name?: string };
};
name?: string;
target?: ({ type: string; [k: string]: unknown } & {
hash?: string;
date?: string;
author?: { type: string; [k: string]: unknown } & {
raw?: string;
user?: { type: string; [k: string]: unknown } & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
};
created_on?: string;
display_name?: string;
username?: string;
uuid?: string;
[k: string]: unknown;
};
[k: string]: unknown;
};
message?: string;
summary?: {
raw?: string;
markup?: "markdown" | "creole" | "plaintext";
html?: string;
};
parents?: unknown[];
[k: string]: unknown;
}) & {
repository?: unknown;
participants?: ({ type: string; [k: string]: unknown } & {
user?: { type: string; [k: string]: unknown } & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
};
created_on?: string;
display_name?: string;
username?: string;
uuid?: string;
[k: string]: unknown;
};
role?: "PARTICIPANT" | "REVIEWER";
approved?: boolean;
state?: "approved" | "changes_requested" | null;
participated_on?: string;
[k: string]: unknown;
})[];
[k: string]: unknown;
};
[k: string]: unknown;
} & {
merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
default_merge_strategy?: string;
[k: string]: unknown;
};
[k: string]: unknown;
}
) {
const url = new URL(
`https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}`
);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 478 days ago
type Bitbucket = {
username: string;
password: string;
};
/**
* Create a repository
* Creates a new repository.
Note: In order to set the project for the newly created repository,
pass in either the project key or the project UUID as part of the
request body as shown in the examples below:
```
$ curl -X POST -H "Content-Type: application/json" -d '{
"scm": "git",
"project": {
"key": "MARS"
}
}' https://api.bitbucket.org/2.0/repositories/teamsinspace/hablanding
```
or
```
$ curl -X POST -H "Content-Type: application/json" -d '{
"scm": "git",
"project": {
"key": "{ba516952-992a-4c2d-acbd-17d502922f96}"
}
}' https://api.bitbucket.org/2.0/repositories/teamsinspace/hablanding
```
The project must be assigned for all repositories. If the project is not provided,
the repository is automatically assigned to the oldest project in the workspace.
Note: In the examples above, the workspace ID `teamsinspace`,
and/or the repository name `hablanding` can be replaced by UUIDs.
*/
export async function main(
auth: Bitbucket,
repo_slug: string,
workspace: string,
body: { type: string; [k: string]: unknown } & {
links?: {
self?: { href?: string; name?: string };
html?: { href?: string; name?: string };
avatar?: { href?: string; name?: string };
pullrequests?: { href?: string; name?: string };
commits?: { href?: string; name?: string };
forks?: { href?: string; name?: string };
watchers?: { href?: string; name?: string };
downloads?: { href?: string; name?: string };
clone?: { href?: string; name?: string }[];
hooks?: { href?: string; name?: string };
};
uuid?: string;
full_name?: string;
is_private?: boolean;
parent?: unknown;
scm?: "git";
owner?: { type: string; [k: string]: unknown } & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
};
created_on?: string;
display_name?: string;
username?: string;
uuid?: string;
[k: string]: unknown;
};
name?: string;
description?: string;
created_on?: string;
updated_on?: string;
size?: number;
language?: string;
has_issues?: boolean;
has_wiki?: boolean;
fork_policy?: "allow_forks" | "no_public_forks" | "no_forks";
project?: { type: string; [k: string]: unknown } & {
links?: {
html?: { href?: string; name?: string };
avatar?: { href?: string; name?: string };
};
uuid?: string;
key?: string;
owner?: ({ type: string; [k: string]: unknown } & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
};
created_on?: string;
display_name?: string;
username?: string;
uuid?: string;
[k: string]: unknown;
}) & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
} & {
self?: { href?: string; name?: string };
html?: { href?: string; name?: string };
members?: { href?: string; name?: string };
projects?: { href?: string; name?: string };
repositories?: { href?: string; name?: string };
[k: string]: unknown;
};
[k: string]: unknown;
};
name?: string;
description?: string;
is_private?: boolean;
created_on?: string;
updated_on?: string;
has_publicly_visible_repos?: boolean;
[k: string]: unknown;
};
mainbranch?: {
type: string;
links?: {
self?: { href?: string; name?: string };
commits?: { href?: string; name?: string };
html?: { href?: string; name?: string };
};
name?: string;
target?: ({ type: string; [k: string]: unknown } & {
hash?: string;
date?: string;
author?: { type: string; [k: string]: unknown } & {
raw?: string;
user?: { type: string; [k: string]: unknown } & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
};
created_on?: string;
display_name?: string;
username?: string;
uuid?: string;
[k: string]: unknown;
};
[k: string]: unknown;
};
message?: string;
summary?: {
raw?: string;
markup?: "markdown" | "creole" | "plaintext";
html?: string;
};
parents?: unknown[];
[k: string]: unknown;
}) & {
repository?: unknown;
participants?: ({ type: string; [k: string]: unknown } & {
user?: { type: string; [k: string]: unknown } & {
links?: {
avatar?: { href?: string; name?: string };
[k: string]: unknown;
};
created_on?: string;
display_name?: string;
username?: string;
uuid?: string;
[k: string]: unknown;
};
role?: "PARTICIPANT" | "REVIEWER";
approved?: boolean;
state?: "approved" | "changes_requested" | null;
participated_on?: string;
[k: string]: unknown;
})[];
[k: string]: unknown;
};
[k: string]: unknown;
} & {
merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
default_merge_strategy?: string;
[k: string]: unknown;
};
[k: string]: unknown;
}
) {
const url = new URL(
`https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}`
);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 479 days ago