- Githuh — GitHub API client
- 1. Using
githuh
- 1.1.
issue export
- 1.1.1. Label Mappings
- 1.1.2. Example
- 1.2.
repo list
- 1.2.1. Motivation
- 1.2.2. Usage
- 1.2.3. Example
- 1.3.
user info
- 1.1.
- 2. Contributing
- 3. License
- 1. Using
Githuh — GitHub API client
As in… git? huh?.
Github API client wrapper on top of Octokit, that provides extensible command pattern for wrapping Github functionality.
At the moment two features are implemented:
-
Generating a list of org’s (or personal) repositories and rending in either markdown or JSON
-
Printing info of the logged in user.
1. Using githuh
Add your Github Token to the global config:
git config --global --set user.token <token>
After that:
❯ be exe/githuh -h
Githuh CLI 0.2.1 — API client for Github.com.
© 2020 Konstantin Gredeskoul, All rights reserved. MIT License.
Commands:
githuh issue [SUBCOMMAND]
githuh repo [SUBCOMMAND]
githuh user [SUBCOMMAND]
githuh version # Print version, no subcommands
Githuh is invoked by using one of its commands and sub-commands.
1.1. issue export
Use this command to export all issues for a given repo into either a raw JSON format (using --format=json
) or into a Pivotal Tracker-compatible CSV format (the default output format).
❯ be exe/githuh issue export -h
Githuh CLI 0.2.1 — API client for Github.com.
© 2020 Konstantin Gredeskoul, All rights reserved. MIT License.
Command:
githuh issue export
Usage:
githuh issue export REPO
Description:
Export Repo issues into a CSV or JSON format
Default output file is <username>.<repo>.issues.<format>
Arguments:
REPO # REQUIRED Name of the repo, eg "rails/rails"
Options:
--api-token=VALUE # Github API token; if not given, user.token is read from ~/.gitconfig
--per-page=VALUE # Pagination page size for Github API, default: 20
--[no-]info # Print UI elements, like a the progress bar, default: true
--[no-]verbose # Print additional debugging info, default: false
--file=VALUE # Output file, overrides <username>.<repo>.issues.<format>
--format=VALUE # Output format: (json/csv), default: "csv"
--mapping=VALUE # YAML file with label to estimates mapping
--help, -h # Print this help
1.1.1. Label Mappings
The export suppots a configurable mapping of Github labels to Pivotal Tracker points. To use this feature, create a YAML file similar to the config/label-mapping.yml provided:
---
label-to-estimates:
Large: 5
Medium: 3
Small: 1
Then add --mapping=<filename>
argument to the export command.
1.2. repo list
1.2.1. Motivation
This functionality was born out of the need to generate a brief but comprehensive, well-formatted list of prior inventions for a typical employment contract.
Note
|
nothing in this library constitutes a legal advice. Use it at your own risk. For more information, please see WARRANTY. |
Please watch the following Ascii Screen cast to see this command in action:
1.2.2. Usage
❯ githuh repo list --help
Githuh CLI 0.1.2 — API client for Github.com.
© 2020 Konstantin Gredeskoul, All rights reserved. MIT License.
Usage:
githuh repo list
Description:
List owned repositories and render the output in markdown or JSON
Default output file is <username>.repositories.<format>
Options:
--api-token=VALUE # Github API token; if not given, user.token is read from ~/.gitconfig
--per-page=VALUE # Pagination page size for Github API, default: 20
--[no-]info # Print UI elements, like a the progress bar, default: true
--[no-]verbose # Print additional debugging info, default: false
--file=VALUE # Output file, overrides <username>.repositories.<format>
--format=VALUE # Output format: (markdown/json), default: "markdown"
--forks=VALUE # Include or exclude forks: (exclude/include/only), default: "exclude"
--[no-]private # If specified, returns only private repos for true, public for false
--help, -h # Print this help
1.2.3. Example
For instance, to generate a markdown list of all of your public repos that are also not forks, run the following:
$ githuh repo list --format=markdown --no-private --forks=exclude --file=repos.md
1.3. user info
This command prints the info about currently authenticated user.
❯ githuh user info
{
:login => "kigster",
:url => "https://api.github.com/users/kigster",
:html_url => "https://github.com/kigster",
..............
2. Contributing
Please submit a pull request at https://github.com/kigster/githuh/pulls
3. License
© 2020 Konstantin Gredeskoul, MIT License