Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,7 @@ def main(args):
ent_app_client_secret=${ent_app_client_secret}
ent_app_private_pem=${ent_app_private_pem}
ent_app_installation_id=${ent_app_installation_id}
ent_app_org_installation_id=${ent_app_org_installation_id}


### [GitHub Apps](https://docs.github.com/en/rest/apps)
Expand Down Expand Up @@ -685,6 +686,13 @@ def main(args):
default="0",
help="",
)
parser.add_argument(
"--enterprise-app-org-installation-id",
action="store",
dest="ent_app_org_installation_id",
default="0",
help="enterprise app org installation id",
)
parser.add_argument(
"--enterprise-app-id",
action="store",
Expand Down Expand Up @@ -713,7 +721,6 @@ def main(args):
default="ent_app_client_secret",
help="An enterprise app client secret.",
)

parser.add_argument(
"--number-of-orgs",
action="store",
Expand Down
1 change: 1 addition & 0 deletions dotcom-configure.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ python3 configure.py --hostname "${hostname}" \
--enterprise-app-id "${ent_app_id:-an_enterprise_app_id}" \
--enterprise-app-pem "${ent_app_private_pem=:-an_enterprise_app_pem}" \
--enterprise-app-installation-id "${ent_app_installation_id:-an_enterprise_app_installation_id}" \
--enterprise-app-org-installation-id "${ent_app_org_installation_id:-an_enterprise_app_org_installation_id}" \
--enterprise-app-client-id "${ent_app_client_id:-an_enterprise_app_client_id}" \
--enterprise-app-client-secret "${ent_app_client_secret:-an_enterprise_app_client_secret}" \
--curl_custom_flags "--fail-with-body --no-progress-meter"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#get-enterprise-owned-organizations-that-can-have-github-apps-installed
# GET /enterprises/{enterprise}/apps/installable_organizations


if [ -z "$1" ]
then
enterprise=$enterprise
else
enterprise=$1
fi


GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
curl ${curl_custom_flags} \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/installable_organizations"

23 changes: 23 additions & 0 deletions get-repositories-belonging-to-an-enterprise-owned-organization.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#get-repositories-belonging-to-an-enterprise-owned-organization
# GET /enterprises/${enterprise}/apps/installable_organizations/${org}/accessible_repositories


# If the script is passed an argument $1 use that as the name
if [ -z "$1" ]
then
org=$org
else
org=$1
fi


set -x
GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
curl ${curl_custom_flags} \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/installable_organizations/${org}/accessible_repositories"

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#get-the-repositories-accessible-to-a-given-github-app-installation
# GET /enterprises/{enterprise}/apps/organizations/{org}/installations/{installation_id}/repositories


if [ -z "$1" ]
then
installation_id=${ent_app_org_installation_id}
else
installation_id=$1
fi




GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
set -x
curl ${curl_custom_flags} \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/organizations/${org}/installations/${installation_id}/repositories"

31 changes: 31 additions & 0 deletions grant-repository-access-to-an-organization-installation.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#grant-repository-access-to-an-organization-installation
# PATCH /enterprises/{enterprise}/apps/organizations/{org}/installations/{installation_id}/repositories/add



if [ -z "$1" ]
then
installation_id=${ent_app_org_installation_id}
else
installation_id=$1
fi


json_file=tmp/grant-repository-access-to-an-organization-installation.json
jq -n \
--arg repo "${repo}" \
'{
repositories : [ $repo ],
}' > ${json_file}


GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
curl ${curl_custom_flags} \
-X PATCH \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/organizations/${org}/installations/${installation_id}/repositories/add" --data @${json_file}

36 changes: 36 additions & 0 deletions install-a-github-app-on-an-enterprise-owned-organization.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#install-a-github-app-on-an-enterprise-owned-organization
# POST /enterprises/{enterprise}/apps/organizations/{org}/installations


# If the script is passed an argument $1 use that as the name
if [ -z "$1" ]
then
repo=$repo
else
repo=$1
fi




repository_selection="all"

json_file=/tmp/install-a-github-app-on-an-enterprise-owned-organization.json
jq -n \
--arg client_id "${ent_app_client_id}" \
--arg repository_selection "${repository_selection}" \
'{
client_id : $client_id,
repository_selection : $repository_selection,
}' > ${json_file}


GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
curl ${curl_custom_flags} \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/organizations/${org}/installations" --data @${json_file}

22 changes: 22 additions & 0 deletions list-github-apps-installed-on-an-enterprise-owned-organization.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#list-github-apps-installed-on-an-enterprise-owned-organization
# GET /enterprises/{enterprise}/apps/organizations/{org}/installations


# If the script is passed an argument $1 use that as the name
if [ -z "$1" ]
then
org=$org
else
org=$1
fi


GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
curl ${curl_custom_flags} \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/organizations/${org}/installations"

31 changes: 31 additions & 0 deletions remove-repository-access-from-an-organization-installation.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#remove-repository-access-from-an-organization-installation
# PATCH /enterprises/{enterprise}/apps/organizations/{org}/installations/{installation_id}/repositories/remove


# If the script is passed an argument $1 use that as the name
if [ -z "$1" ]
then
installation_id=${ent_app_org_installation_id}
else
installation_id=$1
fi


json_file=tmp/remove-repository-access-from-an-organization-installation.json
jq -n \
--arg repo "${repo}" \
'{
repositories : [ $repo ],
}' > ${json_file}


GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
curl ${curl_custom_flags} \
-X PATCH \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/organizations/${org}/installations/${installation_id}/repositories/remove" --data @${json_file}

1 change: 1 addition & 0 deletions the-power-dotcom.skeleton
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ ent_app_public_link="https://example.com/ent-app01-public-link"
ent_app_client_secret="_an_ent_app_client_secret_"
ent_app_private_pem="~/Downloads/ent-app01.2025-02-12.private-key.pem"
ent_app_installation_id="_an_enterprise_app_installation_id"
ent_app_org_installation_id="_an_enterprise_app_org_installation_id"

# Legacy Oauth App
x_client_id="_an_oauth_app_client_id_"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#toggle-installation-repository-access-between-selected-and-all-repositories
# PATCH /enterprises/{enterprise}/apps/organizations/{org}/installations/{installation_id}/repositories


if [ -z "$1" ]
then
installation_id=${ent_app_org_installation_id}
else
installation_id=$1
fi

repository_selection="selected"

json_file=tmp/toggle-installation-repository-access-between-selected-and-all-repositories.json
jq -n \
--arg repo "${repo}" \
--arg repository_selection "${repository_selection}" \
'{
repository_selection : $repository_selection, "repositories": [ $repo ]
}' > ${json_file}


GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
curl ${curl_custom_flags} \
-X PATCH \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/organizations/${org}/installations/${installation_id}/repositories" --data @${json_file}

22 changes: 22 additions & 0 deletions uninstall-a-github-app-from-an-enterprise-owned-organization.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
. ./.gh-api-examples.conf

# https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/organization-installations?apiVersion=2022-11-28#uninstall-a-github-app-from-an-enterprise-owned-organization
# DELETE /enterprises/{enterprise}/apps/organizations/{org}/installations/{installation_id}


if [ -z "$1" ]
then
installation_id=${ent_app_org_installation_id}
else
installation_id=$1
fi


GITHUB_TOKEN=$(./ent-call-get-installation-token.sh | jq -r '.token')
curl ${curl_custom_flags} \
-X DELETE \
-H "X-GitHub-Api-Version: ${github_api_version}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
"${GITHUB_API_BASE_URL}/enterprises/${enterprise}/apps/organizations/${org}/installations/${installation_id}"