forked from catppuccin/userstyles
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.ts
More file actions
executable file
路66 lines (56 loc) 路 1.68 KB
/
Copy pathmain.ts
File metadata and controls
executable file
路66 lines (56 loc) 路 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import type { Userstyle } from "@/types/userstyles.d.ts";
import * as assert from "@std/assert";
import {
addUserstylesTeamMember,
getAuthenticatedOctokit,
getUserstylesData,
getUserstylesTeamMembers,
removeUserstylesTeamMember,
} from "@/utils.ts";
const { userstyles } = getUserstylesData();
// Lowercase usernames of all the "current-maintainers" in the file.
const maintainers = [
...new Set(
Object.values(userstyles).flatMap((
style: Userstyle,
) =>
style["current-maintainers"].map((name) => {
assert.assertExists(name);
return name.toLowerCase();
})
),
),
];
assert.assertExists(maintainers);
assert.assert(Array.isArray(maintainers));
assert.assertGreater(maintainers.length, 0);
const octokit = getAuthenticatedOctokit();
const team = "userstyles-maintainers";
const maintainersTeamMembers = await getUserstylesTeamMembers(
octokit,
team,
);
if (assert.equal(maintainers, maintainersTeamMembers)) {
console.log("Maintainers are in sync.");
Deno.exit(0);
}
const toAdd = maintainers.filter((m) => !maintainersTeamMembers.includes(m));
const toRemove = maintainersTeamMembers.filter((m) => !maintainers.includes(m));
for (const maintainer of toAdd) {
await addUserstylesTeamMember(octokit, team, maintainer);
console.log(
`Added ${maintainer} to the catppuccin/${team} team.`,
);
}
console.log(
`${toAdd.length} users added to the catppuccin/${team} team.`,
);
for (const member of toRemove) {
await removeUserstylesTeamMember(octokit, team, member);
console.log(
`Removed ${member} from the catppuccin/${team} team.`,
);
}
console.log(
`${toRemove.length} users removed from the catppuccin/${team} team.`,
);