mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 23:04:52 +09:00
Add contributors title and statistics to the changelog script
Puts the contributors under a "Contributors" title on a single comma separated line, and prints commits, merged pull requests, files changed and line additions and deletions since the last release after them. The compare API lists at most 300 files, so the file and line counts come from the diff media type of the same comparison instead. To fetch it, githubFetch now lets the caller override the Accept header and checks the Content-Type against it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
a28e2bf9f6
commit
0f4671afd0
2 files changed
+74
-5
No files matched your search
+17
-2
@@ -11,8 +11,8 @@ export async function githubFetch(
|
||||
init = {
|
||||
...init,
|
||||
headers: {
|
||||
...init.headers as Record<string, string> ?? {},
|
||||
"Accept": "application/vnd.github+json",
|
||||
...init.headers as Record<string, string> ?? {},
|
||||
}
|
||||
};
|
||||
if (process.env.GH_TOKEN) {
|
||||
@@ -24,7 +24,9 @@ export async function githubFetch(
|
||||
console.log(response.headers);
|
||||
throw new Error(`GitHub replied with ${response.status} ${response.statusText}: ${await response.text()}`);
|
||||
}
|
||||
if (!response.headers.get("Content-Type")?.startsWith("application/json")) {
|
||||
const accept = init.headers!["Accept"];
|
||||
const contentType = accept === "application/vnd.github+json" ? "application/json" : accept;
|
||||
if (!response.headers.get("Content-Type")?.startsWith(contentType)) {
|
||||
throw new Error(
|
||||
`GitHub replied with ${response.status} ${response.statusText}: ${response.headers.get("Content-Type")}`
|
||||
);
|
||||
@@ -41,6 +43,15 @@ export async function githubFetchJson<T>(
|
||||
return await response.json();
|
||||
}
|
||||
|
||||
export async function githubFetchText(
|
||||
path: string,
|
||||
query: Record<string, string> = {},
|
||||
init: RequestInit & { headers?: Record<string, string> } = {},
|
||||
): Promise<string> {
|
||||
const response = await githubFetch(path, query, init);
|
||||
return await response.text();
|
||||
}
|
||||
|
||||
export async function githubFetchJsonPaginated<T>(
|
||||
path: string,
|
||||
query: Record<string, string> = {},
|
||||
@@ -117,6 +128,10 @@ export interface Release {
|
||||
updated_at?: string | null,
|
||||
}
|
||||
|
||||
export interface Comparison {
|
||||
total_commits: number,
|
||||
}
|
||||
|
||||
export interface Commit {
|
||||
sha: string,
|
||||
commit: {
|
||||
|
||||
Reference in new issue
Block a user