Update an organization

**Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions.

Script github Verified

by hugo697 ยท 10/25/2023

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 367 days ago
1
type Github = {
2
  token: string;
3
};
4
/**
5
 * Update an organization
6
 * **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions.
7
 */
8
export async function main(
9
  auth: Github,
10
  org: string,
11
  body: {
12
    advanced_security_enabled_for_new_repositories?: boolean;
13
    billing_email?: string;
14
    blog?: string;
15
    company?: string;
16
    default_repository_permission?: "read" | "write" | "admin" | "none";
17
    dependabot_alerts_enabled_for_new_repositories?: boolean;
18
    dependabot_security_updates_enabled_for_new_repositories?: boolean;
19
    dependency_graph_enabled_for_new_repositories?: boolean;
20
    description?: string;
21
    email?: string;
22
    has_organization_projects?: boolean;
23
    has_repository_projects?: boolean;
24
    location?: string;
25
    members_allowed_repository_creation_type?: "all" | "private" | "none";
26
    members_can_create_internal_repositories?: boolean;
27
    members_can_create_pages?: boolean;
28
    members_can_create_private_pages?: boolean;
29
    members_can_create_private_repositories?: boolean;
30
    members_can_create_public_pages?: boolean;
31
    members_can_create_public_repositories?: boolean;
32
    members_can_create_repositories?: boolean;
33
    members_can_fork_private_repositories?: boolean;
34
    name?: string;
35
    secret_scanning_enabled_for_new_repositories?: boolean;
36
    secret_scanning_push_protection_custom_link?: string;
37
    secret_scanning_push_protection_custom_link_enabled?: boolean;
38
    secret_scanning_push_protection_enabled_for_new_repositories?: boolean;
39
    twitter_username?: string;
40
    web_commit_signoff_required?: boolean;
41
    [k: string]: unknown;
42
  }
43
) {
44
  const url = new URL(`https://api.github.com/orgs/${org}`);
45

46
  const response = await fetch(url, {
47
    method: "PATCH",
48
    headers: {
49
      "Content-Type": "application/json",
50
      Authorization: "Bearer " + auth.token,
51
    },
52
    body: JSON.stringify(body),
53
  });
54
  if (!response.ok) {
55
    const text = await response.text();
56
    throw new Error(`${response.status} ${text}`);
57
  }
58
  return await response.json();
59
}
60