~james/core

ref: 452f17b75181d62d1d92016edecd38e1d70fecab core/web/src/lib/api/commitStatuses.ts -rw-r--r-- 687 bytes
452f17b7 — james chore(import): snapshot james.dad.town/core at f70c71c7696a 16 hours ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import type { PipelineSummary } from "#lib/components/repo/types.ts";

export type CommitStatuses = Record<string, PipelineSummary>;

export const fetchCommitStatuses = async (
	ownerHandle: string,
	repoName: string,
	shas: string[],
	signal?: AbortSignal
): Promise<CommitStatuses> => {
	const params = new URLSearchParams();
	for (const sha of new Set(shas)) params.append("sha", sha);
	const path = `/${encodeURIComponent(ownerHandle)}/${encodeURIComponent(repoName)}/commit-statuses?${params}`;
	const response = await fetch(path, { signal });
	if (!response.ok) throw new Error(`commit statuses returned ${response.status}`);
	return response.json() as Promise<CommitStatuses>;
};