python -m pip install github_analyserFrom source:
git clone https://github.com/alan-turing-institute/github-analyser
cd github-analyser
python -m pip install .All functions require a GitHub personal access token with appropriate permissions.
You will need to set it as an environment variable:
export GITHUB_TOKEN=your_token_hereAll functions return a pandas DataFrame and accept an optional save argument.
- Setting
save=Truewill cause the data to be saved todata/ - Setting
save="path/to/file.csv"will cause the data to be saved to the specified path.
Org-level data:
from github_analyser.org_user_info import get_org_members, get_org_teams
from github_analyser.repos import get_repos
# list all repositories in an organisation
repos = get_repos("my-org")
# list all members of an organisation
members = get_org_members("my-org")
# list all teams in an organisation
teams = get_org_teams("my-org")Team and repo-level data:
from github_analyser.team_user_info import get_team_members
from github_analyser.repo_user_info import get_repo_collaborators
from github_analyser.repo_contributors import get_repo_contributors
from github_analyser.commits import get_commits
from github_analyser.issues import get_issues
from github_analyser.pull_requests import get_pull_requests
from github_analyser.licences import get_licences
# list members of a team (use the team slug, e.g. "my-team")
members = get_team_members("my-org", "my-team")
# list collaborators of a repository
collaborators = get_repo_collaborators("my-org", "my-repo")
# get contributor commit counts for a repository
contributors = get_repo_contributors("my-org", "my-repo")
# get commits from the default branch of a repository
commits = get_commits("my-org", "my-repo")
# get issues from a repository
issues = get_issues("my-org", "my-repo")
# get pull requests from a repository
prs = get_pull_requests("my-org", "my-repo")
# get licence information for one or more repositories
licences = get_licences("my-org", ["repo-one", "repo-two"])Saving results to CSV:
# save to the default path
repos = get_repos("my-org", save=True)
# save to a custom path
repos = get_repos("my-org", save="output/repos.csv")See CONTRIBUTING.md for instructions on how to contribute.
Distributed under the terms of the MIT license.