From 2ee3e7af7b9133da946dff2643505a3d7013b3c0 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sat, 28 Dec 2024 11:30:03 -0600 Subject: restructure directories --- github/github_branch_protections.py | 78 ------------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 github/github_branch_protections.py (limited to 'github/github_branch_protections.py') diff --git a/github/github_branch_protections.py b/github/github_branch_protections.py deleted file mode 100644 index 73c94b6..0000000 --- a/github/github_branch_protections.py +++ /dev/null @@ -1,78 +0,0 @@ -""" -Gathers branch protection rules for a repository. -""" - -import requests - -GITHUB_TOKEN = 'your_personal_access_token' -ORGANIZATION = 'your_organization' -REPOSITORY = 'your_repository' -TIMEOUT = 30 - -headers = { - 'Authorization': f'token {GITHUB_TOKEN}', - 'Accept': 'application/vnd.github.v3+json' -} - -def get_all_branches(org, repo): - """ - Get all branches in a repository - """ - all_branches = [] - page = 1 - while True: - url = f'https://api.github.com/repos/{org}/{repo}/branches?page={page}&per_page=100' - response = requests.get(url, headers=headers, timeout=TIMEOUT) - response.raise_for_status() - page_branches = response.json() - if not page_branches: - break - all_branches.extend(page_branches) - page += 1 - return all_branches - -def get_branch_protection(org, repo, repo_branch): - """ - Get branch protection settings - """ - url = f'https://api.github.com/repos/{org}/{repo}/branches/{repo_branch}/protection' - response = requests.get(url, headers=headers, timeout=TIMEOUT) - if response.status_code == 404: - return None # No protection settings for this branch - response.raise_for_status() - return response.json() - -def get_repository_rulesets(org, repo): - """ - Get repository rulesets - """ - url = f'https://api.github.com/repos/{org}/{repo}/rulesets' - response = requests.get(url, headers=headers, timeout=TIMEOUT) - response.raise_for_status() - return response.json() - -if __name__ == '__main__': - try: - # Get all branches in the repository - branches = get_all_branches(ORGANIZATION, REPOSITORY) - print(f"Total branches in the repository '{REPOSITORY}': {len(branches)}") - - # Get protection settings for each branch - for branch in branches: - branch_name = branch['name'] - protection_settings = get_branch_protection(ORGANIZATION, REPOSITORY, branch_name) - print(f"\nBranch: {branch_name}") - if protection_settings: - print(f"Protection settings: {protection_settings}") - else: - print("No protection settings") - - # Get repository rulesets - rulesets = get_repository_rulesets(ORGANIZATION, REPOSITORY) - print(f"\nRepository rulesets for '{REPOSITORY}':") - print(rulesets) - - except requests.exceptions.Timeout: - print("The request timed out") - except requests.exceptions.RequestException as e: - print(f"An error occurred: {e}") -- cgit v1.2.3-70-g09d2