0

Get all branches for a project

by
Published Dec 20, 2024

Get a list of all branches for a specified project. The list will only contain branches currently available within Insights. The maximum number of branches returned by this endpoint is 5,000.

Script circleci Verified

The script

Submitted by hugo697 Bun
Verified 536 days ago
1
//native
2
type Circleci = {
3
	token: string
4
}
5
/**
6
 * Get all branches for a project
7
 * Get a list of all branches for a specified project. The list will only contain branches currently available within Insights. The maximum number of branches returned by this endpoint is 5,000.
8
 */
9
export async function main(
10
	auth: Circleci,
11
	project_slug: string,
12
	workflow_name: string | undefined
13
) {
14
	const url = new URL(`https://circleci.com/api/v2/insights/${project_slug}/branches`)
15
	for (const [k, v] of [['workflow-name', workflow_name]]) {
16
		if (v !== undefined && v !== '' && k !== undefined) {
17
			url.searchParams.append(k, v)
18
		}
19
	}
20
	const response = await fetch(url, {
21
		method: 'GET',
22
		headers: {
23
			'Circle-Token': auth.token
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.json()
32
}
33