create-gh-repo
Bash script to interact with the Github API to create a repo.
Parameter Descriptions
Personal access token
A personal access token must be created to interact with the Github API.
Any OS:
The personal access token can be passed in on the command line via the --pat
switch.
macOS Only: The personal access token may be fetched from the macOS keychain. Note that this is accomplished with the command below.
sudo security find-internet-password -gws github.com
Licenses
Licenses are represented by an abbreviation utilized by Github.
For convenience, the licenses available are listed below.
License Abbreviation | License Text |
---|---|
afl-3.0 | Academic Free License v3.0 |
apache-2.0 | Apache license 2.0 |
artistic-2.0 | Artistic license 2.0 |
bsl-1.0 | Boost Software License 1.0 |
bsd-2-clause | BSD 2-clause 'Simplified' license |
bsd-3-clause | BSD 3-clause 'New' or 'Revised' license |
bsd-3-clause-clear | BSD 3-clause Clear license |
cc | Creative Commons license family |
cc0-1.0 | Creative Commons Zero v1.0 Universal |
cc-by-4.0 | Creative Commons Attribution 4.0 |
cc-by-sa-4.0 | Creative Commons Attribution Share Alike 4.0 |
wtfpl | Do What The F*ck You Want To Public License |
ecl-2.0 | Educational Community License v2.0 |
epl-1.0 | Eclipse Public License 1.0 |
eupl-1.1 | European Union Public License 1.1 |
agpl-3.0 | GNU Affero General Public License v3.0 |
gpl | GNU General Public License family |
gpl-2.0 | GNU General Public License v2.0 |
gpl-3.0 | GNU General Public License v3.0 |
lgpl | GNU Lesser General Public License family |
lgpl-2.1 | GNU Lesser General Public License v2.1 |
lgpl-3.0 | GNU Lesser General Public License v3.0 |
isc | ISC |
lppl-1.3c | LaTeX Project Public License v1.3c |
ms-pl | Microsoft Public License |
mit | MIT |
mpl-2.0 | Mozilla Public License 2.0 |
osl-3.0 | Open Software License 3.0 |
postgresql | PostgreSQL License |
ofl-1.1 | SIL Open Font License 1.1 |
ncsa | University of Illinois/NCSA Open Source License |
unlicense | The Unlicense |
zlib | zLib License |
Use
To display the help text.
create-gh-repo --help
The resulting help text (and usage) is below.
create-gh-repo: Create a Github repo
Usage: ./create-gh-repo [option...]
-h, --help display help
-r, --repo name of repository
-p, --private private repository
-l, --license license
-t, --pat personal access token
Defaults
- private: false (set to public)
- license: mit
- pat: accessed via macOS keychain
Personal access token
Personal access token may be passed in on the command line or it may be fetched from macOS keychain (default).
Licenses
License abbreviations may be found at https://help.github.com/en/articles/licensing-a-repository#searching-github-by-license-type
Examples:
./create-gh-repo --repo test # create a repository named 'test', set it to be public (default), with mit license (default)
./create-gh-repo --repo test --private --license bsd-2-clause # create a repository named 'test', set it to be private, with bsd license
./create-gh-repo --repo test --private --pat 123abc # create a repository named 'test', set it to be private, and pass the personal access token on the command line
Other
The repo also includes a script, process-gh-license-table.py
which simply transforms the Github license table into a few different forms to include in the script. This was done in lieu of hand writing everything.