Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scivision/pygit-bulk
manage large numbers (100+) Git users / teams using GitHub API v3 and PyGitHub
https://github.com/scivision/pygit-bulk
github-api github-education pygithub
Last synced: 14 days ago
JSON representation
manage large numbers (100+) Git users / teams using GitHub API v3 and PyGitHub
- Host: GitHub
- URL: https://github.com/scivision/pygit-bulk
- Owner: scivision
- License: mit
- Created: 2018-10-03T03:17:45.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-07-10T14:06:18.000Z (4 months ago)
- Last Synced: 2024-09-05T01:52:36.231Z (2 months ago)
- Topics: github-api, github-education, pygithub
- Language: Python
- Homepage:
- Size: 171 KB
- Stars: 8
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Git Bulk operations
![Actions Status](https://github.com/scivision/pygit-bulk/workflows/ci/badge.svg)
Git remote (GitHub, GitLab) API utilities for managing large numbers (10..1000) of users and repositories for education and institutions.
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](https://education.github.com/).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](https://github.com/scivision/gitmc)
useful for managing large numbers of local Git repositories on a computer.API access via:
* GitHub v3 API: [PyGithub](https://pypi.org/project/PyGithub/)
* GitLab v4 API: [Python-Gitlab](https://python-gitlab.readthedocs.io/)Note: Scripts for each remote Git service are located under:
* [GitHub](./Github) We have many more GitHub scripts as GitHub is more popular
* [GitLab](./Gitlab) will add more here as users desire## Popularity
An important feature in
```sh
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:
```sh
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](https://github.com/settings/tokens) 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.