Skip to content

Instantly share code, notes, and snippets.

@ranfysvalle02
Created August 22, 2024 05:16
Show Gist options
  • Save ranfysvalle02/9f8ad5878ac4827fa8a36309f151df85 to your computer and use it in GitHub Desktop.
Save ranfysvalle02/9f8ad5878ac4827fa8a36309f151df85 to your computer and use it in GitHub Desktop.
import json
import requests
def get_repo_info(owner, repo):
url = f"https://api.github.com/repos/{owner}/{repo}"
headers = {"Accept": "application/vnd.github+json"}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
else:
print(f"Error: {response.status_code}")
return None
def get_collaborators(collaborators_url):
response = requests.get(collaborators_url)
if response.status_code == 200:
return [collaborator["login"] for collaborator in response.json()]
else:
return []
def get_languages(languages_url):
response = requests.get(languages_url)
if response.status_code == 200:
return list(response.json().keys())
else:
return []
def get_open_issues(owner, repo):
url = f"https://api.github.com/repos/{owner}/{repo}/issues?state=open"
headers = {"Accept": "application/vnd.github+json"}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
else:
print(f"Error: {response.status_code}")
return []
def get_repo_data(repo_url):
owner, repo = repo_url.split("/")[-2:]
repo_info = get_repo_info(owner, repo)
if repo_info:
data = {
"Github URL": repo_url,
"Project name": repo_info["name"],
"Project owner": repo_info["owner"]["login"],
"List users with access": get_collaborators(repo_info["collaborators_url"]),
"Programming languages used": get_languages(repo_info["languages_url"]),
"Security/visibility level": repo_info["visibility"],
"Summary": repo_info["description"],
"Last maintained": repo_info["pushed_at"],
"Last release": repo_info["default_branch"],
"Open issues": get_open_issues(owner, repo),
}
return data
else:
return None
# Example usage
repo_url = "https://github.com/ranfysvalle02/event0"
repo_data = get_repo_data(repo_url)
if repo_data:
print(
json.dumps(repo_data, indent=4)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment