Skip to main content

PyGitHub Utilities

Actions Status

GitHub API utilities for managing large numbers (10..1000) of users and repositories for education and institutions. GitHub v3 API is used via actively developed and growing PyGitHub. For very large number of repos say 1000+, it may be more useful and fast to use the GraphQL GitHub v4 API. Input / output is often via spreadsheet, as a gateway to APIs of other services such as Blackboard.

This repository helps us avoid having to use GitHub Education.

For example:

  • create repo for each team project (CreateGithubTeamRepos.py)
  • mass-add per-project collaborators (AddGithubCollab.py)
  • duplicate (mirror) lots of repos (DuplicateGithubRepos.p)

We also maintain Python-based Git utilities.

An important feature in

python CountGithubForks.py username

is showing which forks of your repos have had changes "ahead of" the parent repo.


Count how many total GitHub stars a GitHub account has:

python CountGithubStars.py username

That will take a couple seconds even for large numbers of repos.

Mass duplicate GitHub repos

DuplicateGithubRepos based on spreadsheet input, mass duplicate GitHub repos.

API Key

Users will need a GitHub API token, as the unauthenticated API access is severely limited.

  1. Generate GitHub API token with permission appropriate to the PyGitHub Utilities script being used.
  2. Copy that text string to a secure location on your computer.

permissions

For public repos, "public_repo" is needed. For private repos, "repo" is needed.

"admin:org" Oauth does not work.

It's suggested you create an Oauth key for this, and then disable/delete this key permissions when done to avoid a security issue. To do this, including for Organizations, go to your Username, Settings, Developer Settings, Personal Access Tokens and set repo:public_repo. For organization private repos, you need "repo" permissions on the Oauth token.

if you get error

github.GithubException.UnknownObjectException: 404 {'message': 'Not Found',
'documentation_url': 'https://developer.github.com/v3/repos/#edit'}

that typically means your Oauth key doesn't have adequate permissions.

Metadata

Release files for pygithubutils 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pygithubutils 1.0.2
File Size Uploaded
pygithubutils-1.0.2.tar.gz 9.9 kB Details

Release files / pygithubutils-1.0.2.tar.gz

Download URL pygithubutils-1.0.2.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
da53068ddca2d089ab45bd11f287cbbb268df01984ced6fe703d1a16abb5399f
BLAKE2b-256 checksum
How to use checksums
24be79fcd36e7391bba563875a41ad43888202472a4343ed015596bc237a18a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7

Release history Release notifications | RSS feed

This release

1.0.2 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page