githuh 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +0 -2
- data/.gitignore +0 -1
- data/.ruby-version +1 -0
- data/Gemfile.lock +2 -2
- data/README.md +351 -0
- data/Rakefile +1 -1
- data/lib/githuh/version.rb +1 -1
- metadata +3 -2
- data/README.adoc +0 -181
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5be0fa7f06e1d9ed6a7b203eb14841bc8b1db665c83fe84cf4822719c4acea37
|
|
4
|
+
data.tar.gz: '06938db523d0837c4de403f2b3720cb624576dacaa905a2e416c6423a239f0a5'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 66e5a49df88c46b9a17c91bae2280281eb046e32768b17666dedd07d770b32a7673bd50da23474977142810786080a649eacda7dc3cba27826170d16a321de46
|
|
7
|
+
data.tar.gz: '07319b21a6dd6c2e3118d46aa4c77db37ed9b6e9be75572427de3b896bde6b646ab3aff4fe22c191a4c7e5be461f7df9583330d2bdb78c18cc92c64e73bc228f'
|
data/.github/workflows/ruby.yml
CHANGED
data/.gitignore
CHANGED
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.0.2
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
githuh (0.4.
|
|
4
|
+
githuh (0.4.1)
|
|
5
5
|
activesupport
|
|
6
6
|
colored2 (~> 3)
|
|
7
7
|
csv
|
|
@@ -246,7 +246,7 @@ CHECKSUMS
|
|
|
246
246
|
faraday-retry (2.4.0) sha256=7b79c48fb7e56526faf247b12d94a680071ff40c9fda7cf1ec1549439ad11ebe
|
|
247
247
|
ffi (1.17.4) sha256=bcd1642e06f0d16fc9e09ac6d49c3a7298b9789bcb58127302f934e437d60acf
|
|
248
248
|
ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b
|
|
249
|
-
githuh (0.4.
|
|
249
|
+
githuh (0.4.1)
|
|
250
250
|
hashie (5.1.0) sha256=c266471896f323c446ea8207f8ffac985d2718df0a0ba98651a3057096ca3870
|
|
251
251
|
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
|
|
252
252
|
json (2.19.4) sha256=670a7d333fb3b18ca5b29cb255eb7bef099e40d88c02c80bd42a3f30fe5239ac
|
data/README.md
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
# Githuh — GitHub API Client
|
|
2
|
+
|
|
3
|
+
[](https://github.com/kigster/githuh/actions?query=workflow%3ARuby)
|
|
4
|
+

|
|
5
|
+
|
|
6
|
+
As in... *git? huh?*
|
|
7
|
+
|
|
8
|
+
Githuh is a GitHub API client wrapper built on top of [Octokit](https://github.com/octokit/octokit.rb), using an extensible `dry-cli` command pattern. It is designed as a batteries-included CLI for tasks that are tedious to do through the GitHub web UI — exporting issues, generating repository listings, and (now) LLM-summarizing READMEs into human-readable descriptions.
|
|
9
|
+
|
|
10
|
+
## Table of Contents
|
|
11
|
+
|
|
12
|
+
- [Features](#features)
|
|
13
|
+
- [Installation](#installation)
|
|
14
|
+
- [Authentication](#authentication)
|
|
15
|
+
- [Commands](#commands)
|
|
16
|
+
- [`githuh version`](#githuh-version)
|
|
17
|
+
- [`githuh user info`](#githuh-user-info)
|
|
18
|
+
- [`githuh repo list`](#githuh-repo-list)
|
|
19
|
+
- [`githuh issue export`](#githuh-issue-export)
|
|
20
|
+
- [Global Options](#global-options)
|
|
21
|
+
- [LLM Support](#llm-support)
|
|
22
|
+
- [Contributing](#contributing)
|
|
23
|
+
- [License](#license)
|
|
24
|
+
|
|
25
|
+
## Features
|
|
26
|
+
|
|
27
|
+
- **Repository listing** in Markdown or JSON, with fork/private filtering
|
|
28
|
+
- **LLM-generated descriptions** — fetch each repo's README and summarize it into a flowing 5–6 sentence blurb using either Anthropic (Claude) or OpenAI
|
|
29
|
+
- **Issue export** to JSON or [Pivotal Tracker-compatible CSV](https://www.pivotaltracker.com/help/articles/csv_import_export), with configurable label → point mapping
|
|
30
|
+
- **User info** for the currently-authenticated GitHub user
|
|
31
|
+
- **In-process architecture** — every command is also runnable inside another Ruby process for scripting and testing (~89% test coverage via Aruba in-process)
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
gem install githuh
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Or add it to your `Gemfile`:
|
|
40
|
+
|
|
41
|
+
```ruby
|
|
42
|
+
gem 'githuh'
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Authentication
|
|
46
|
+
|
|
47
|
+
Githuh reads your GitHub token, in priority order, from:
|
|
48
|
+
|
|
49
|
+
1. The `--api-token=<token>` CLI flag
|
|
50
|
+
1. The `GITHUB_TOKEN` environment variable
|
|
51
|
+
1. `user.token` in your global git config
|
|
52
|
+
|
|
53
|
+
To set the token globally in git (recommended):
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
git config --global --add user.token <your-github-pat>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
To set it for a single session:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
export GITHUB_TOKEN=<your-github-pat>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Alternatively, use a local `.env` file (see [LLM Support](#llm-support) below — Githuh auto-loads `.env` from the current directory and from `$HOME`).
|
|
66
|
+
|
|
67
|
+
## Commands
|
|
68
|
+
|
|
69
|
+
All invocations assume `githuh` is on your `PATH`. If running from a source checkout use `bundle exec exe/githuh` instead.
|
|
70
|
+
|
|
71
|
+
### `githuh version`
|
|
72
|
+
|
|
73
|
+
Print the current version string (no color, no banner — scriptable):
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
githuh version
|
|
77
|
+
# => 0.4.0
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Aliases: `githuh v`, `githuh -v`, `githuh --version`.
|
|
81
|
+
|
|
82
|
+
______________________________________________________________________
|
|
83
|
+
|
|
84
|
+
### `githuh user info`
|
|
85
|
+
|
|
86
|
+
Print information about the currently authenticated user.
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Command:
|
|
90
|
+
githuh user info
|
|
91
|
+
|
|
92
|
+
Options:
|
|
93
|
+
--api-token=VALUE # Github API token; if not given, user.token is read from ~/.gitconfig
|
|
94
|
+
--per-page=VALUE # Pagination page size for Github API, default: 20
|
|
95
|
+
--[no-]info # Print UI elements, like the progress bar, default: true
|
|
96
|
+
--[no-]verbose # Print additional debugging info, default: false
|
|
97
|
+
--help, -h # Print this help
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### Examples
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Default invocation (uses token from git config or GITHUB_TOKEN)
|
|
104
|
+
githuh user info
|
|
105
|
+
|
|
106
|
+
# Supply the token explicitly
|
|
107
|
+
githuh user info --api-token=ghp_XXXXXXXXXXXXXXXXXXXX
|
|
108
|
+
|
|
109
|
+
# Suppress the summary box (handy for piping)
|
|
110
|
+
githuh user info --no-info
|
|
111
|
+
|
|
112
|
+
# Verbose, for debugging auth/permissions issues
|
|
113
|
+
githuh user info --verbose
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
______________________________________________________________________
|
|
117
|
+
|
|
118
|
+
### `githuh repo list`
|
|
119
|
+
|
|
120
|
+
List the authenticated user's owned repositories and render them as Markdown or JSON. The default output file is `<username>.repositories.<format>`.
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Command:
|
|
124
|
+
githuh repo list
|
|
125
|
+
|
|
126
|
+
Options:
|
|
127
|
+
--api-token=VALUE # Github API token; if not given, user.token is read from ~/.gitconfig
|
|
128
|
+
--per-page=VALUE # Pagination page size for Github API, default: 20
|
|
129
|
+
--[no-]info # Print UI elements, like the progress bar, default: true
|
|
130
|
+
--[no-]verbose # Print additional debugging info, default: false
|
|
131
|
+
--file=VALUE # Output file, overrides <username>.repositories.<format>
|
|
132
|
+
--format=VALUE # Output format: (markdown/json), default: "markdown"
|
|
133
|
+
--forks=VALUE # Include or exclude forks: (exclude/include/only), default: "exclude"
|
|
134
|
+
--[no-]private # If specified, returns only private repos for true, public for false
|
|
135
|
+
--[no-]llm # Use LLM (ANTHROPIC_API_KEY or OPENAI_API_KEY) to summarize README, default: false
|
|
136
|
+
--help, -h # Print this help
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
#### Examples
|
|
140
|
+
|
|
141
|
+
Default Markdown output with forks excluded, saved to `<username>.repositories.md`:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
githuh repo list
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Public repos only, custom output file:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
githuh repo list --no-private --file=my-public-repos.md
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
JSON output for programmatic consumption:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
githuh repo list --format=json --file=repos.json
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Only forks — useful for auditing what you've forked vs. maintained:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
githuh repo list --forks=only
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Include everything, private + public + forks:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
githuh repo list --forks=include --private
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Bump the API page size (GitHub allows up to 100):
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
githuh repo list --per-page=100
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Quiet mode (no progress bars, for scripting):
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
githuh repo list --no-info --no-verbose
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
LLM-summarized descriptions (see [LLM Support](#llm-support)):
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
githuh repo list --llm
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
All options combined — public repos, Markdown format, LLM summaries, verbose:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
githuh repo list \
|
|
193
|
+
--format=markdown \
|
|
194
|
+
--no-private \
|
|
195
|
+
--forks=exclude \
|
|
196
|
+
--llm \
|
|
197
|
+
--verbose \
|
|
198
|
+
--file=portfolio.md
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
______________________________________________________________________
|
|
202
|
+
|
|
203
|
+
### `githuh issue export`
|
|
204
|
+
|
|
205
|
+
Export issues for a given repository into JSON or [Pivotal Tracker-compatible CSV](https://www.pivotaltracker.com/help/articles/csv_import_export). The default output file is `<username>.<repo>.issues.<format>`.
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
Command:
|
|
209
|
+
githuh issue export REPO
|
|
210
|
+
|
|
211
|
+
Arguments:
|
|
212
|
+
REPO # REQUIRED Name of the repo, eg "rails/rails"
|
|
213
|
+
|
|
214
|
+
Options:
|
|
215
|
+
--api-token=VALUE # Github API token; if not given, user.token is read from ~/.gitconfig
|
|
216
|
+
--per-page=VALUE # Pagination page size for Github API, default: 20
|
|
217
|
+
--[no-]info # Print UI elements, like the progress bar, default: true
|
|
218
|
+
--[no-]verbose # Print additional debugging info, default: false
|
|
219
|
+
--file=VALUE # Output file, overrides <username>.<repo>.issues.<format>
|
|
220
|
+
--format=VALUE # Output format: (json/csv), default: "csv"
|
|
221
|
+
--mapping=VALUE # YAML file with label to estimates mapping
|
|
222
|
+
--help, -h # Print this help
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
#### Label-to-Estimate Mapping
|
|
226
|
+
|
|
227
|
+
When exporting to Pivotal Tracker CSV, GitHub labels can be mapped to point estimates. Create a YAML file like this:
|
|
228
|
+
|
|
229
|
+
```yaml
|
|
230
|
+
---
|
|
231
|
+
label-to-estimates:
|
|
232
|
+
Large: 5
|
|
233
|
+
Medium: 3
|
|
234
|
+
Small: 1
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
…and pass it via `--mapping=<path>`. Any label listed in the file is converted to its numeric estimate; other labels pass through unchanged in the `Labels` column.
|
|
238
|
+
|
|
239
|
+
#### Examples
|
|
240
|
+
|
|
241
|
+
Export all open issues from `rails/rails` as CSV:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
githuh issue export rails/rails
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Explicit format and output file:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
githuh issue export rails/rails --format=json --file=rails-issues.json
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Pivotal Tracker CSV with a label mapping:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
githuh issue export kigster/githuh --mapping=config/label-mapping.yml
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Quiet, scripted invocation with an explicit token:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
githuh issue export kigster/githuh \
|
|
263
|
+
--api-token=ghp_XXXXXXXXXXXXXXXXXXXX \
|
|
264
|
+
--no-info \
|
|
265
|
+
--no-verbose \
|
|
266
|
+
--file=issues.csv
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
______________________________________________________________________
|
|
270
|
+
|
|
271
|
+
## Global Options
|
|
272
|
+
|
|
273
|
+
The following options are available on every subcommand (`user info`, `repo list`, `issue export`):
|
|
274
|
+
|
|
275
|
+
| Option | Default | Description |
|
|
276
|
+
| --- | --- | --- |
|
|
277
|
+
| `--api-token=VALUE` | _(from env / git config)_ | GitHub personal access token |
|
|
278
|
+
| `--per-page=VALUE` | `20` | Pagination page size for the GitHub API |
|
|
279
|
+
| `--[no-]info` | `true` | Print UI elements like the progress bar and info boxes |
|
|
280
|
+
| `--[no-]verbose` | `false` | Print additional debugging info |
|
|
281
|
+
| `--help, -h` | — | Print contextual help and exit |
|
|
282
|
+
|
|
283
|
+
## LLM Support
|
|
284
|
+
|
|
285
|
+
When you pass `--llm` to `repo list`, Githuh fetches each repo's README via the GitHub API and asks an LLM to summarize it into a 5–6 sentence description. This is far more informative than GitHub's single-line description field, especially for portfolios or internal directories.
|
|
286
|
+
|
|
287
|
+
### Configuration
|
|
288
|
+
|
|
289
|
+
Set one of the following in your environment or in a `.env` file at the project root or `$HOME`:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# Preferred (uses claude-haiku-4-5-20251001)
|
|
293
|
+
ANTHROPIC_API_KEY=sk-ant-...
|
|
294
|
+
|
|
295
|
+
# Fallback (uses gpt-4o-mini)
|
|
296
|
+
OPENAI_API_KEY=sk-...
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
If both are set, Anthropic is preferred. If `--llm` is set but neither key is available, the command exits with a clear error.
|
|
300
|
+
|
|
301
|
+
A `.env` parser is built in (no `dotenv` gem required). `.env` is also in `.gitignore` by default to keep secrets out of commits.
|
|
302
|
+
|
|
303
|
+
### Behavior
|
|
304
|
+
|
|
305
|
+
On `repo list --llm` you will see:
|
|
306
|
+
|
|
307
|
+
1. An info box announcing LLM summarization (provider + model)
|
|
308
|
+
1. The regular `Format / File / Forks` info box
|
|
309
|
+
1. The pagination progress bar (magenta)
|
|
310
|
+
1. An LLM progress bar — **yellow for Anthropic**, **green for OpenAI** — advancing once per repo
|
|
311
|
+
1. A success box with the total record count
|
|
312
|
+
|
|
313
|
+
Each repo's description in the output is replaced with the LLM-generated summary. On any per-repo failure (README fetch error, LLM timeout, auth failure, etc.) the command falls back silently to GitHub's original description — use `--verbose` to see why.
|
|
314
|
+
|
|
315
|
+
### Cost & Performance
|
|
316
|
+
|
|
317
|
+
For 30–50 repos, expect:
|
|
318
|
+
|
|
319
|
+
- **Wall-clock**: ~45–90 seconds (sequential — one README fetch + one LLM call per repo)
|
|
320
|
+
- **Cost**: roughly $0.01–$0.05 per run with the default models
|
|
321
|
+
|
|
322
|
+
### Example
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
# Complete portfolio run
|
|
326
|
+
githuh repo list \
|
|
327
|
+
--format=markdown \
|
|
328
|
+
--no-private \
|
|
329
|
+
--forks=exclude \
|
|
330
|
+
--llm \
|
|
331
|
+
--file=portfolio.md
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
## Contributing
|
|
335
|
+
|
|
336
|
+
Pull requests welcome at <https://github.com/kigster/githuh/pulls>.
|
|
337
|
+
|
|
338
|
+
Development setup:
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
git clone git@github.com:kigster/githuh.git
|
|
342
|
+
cd githuh
|
|
343
|
+
bundle install
|
|
344
|
+
just test # run the rspec suite
|
|
345
|
+
just lint # run rubocop
|
|
346
|
+
just format # auto-correct rubocop offenses
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
## License
|
|
350
|
+
|
|
351
|
+
© 2020–present Konstantin Gredeskoul, released under the [MIT License](LICENSE.txt).
|
data/Rakefile
CHANGED
|
@@ -26,7 +26,7 @@ end
|
|
|
26
26
|
task build: :permissions
|
|
27
27
|
|
|
28
28
|
YARD::Rake::YardocTask.new(:doc) do |t|
|
|
29
|
-
t.files = %w[lib/**/*.rb exe/*.rb - README.
|
|
29
|
+
t.files = %w[lib/**/*.rb exe/*.rb - README.md LICENSE.txt WARRANTY.md CHANGELOG.md]
|
|
30
30
|
t.options.unshift("--title", '"FlowEngine — DSL + AST for buildiong complex flows in Ruby."')
|
|
31
31
|
t.after = -> { exec("open doc/index.html") } if RUBY_PLATFORM =~ /darwin/
|
|
32
32
|
end
|
data/lib/githuh/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: githuh
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Konstantin Gredeskoul
|
|
@@ -178,12 +178,13 @@ files:
|
|
|
178
178
|
- ".rspec"
|
|
179
179
|
- ".rubocop.yml"
|
|
180
180
|
- ".rubocop_todo.yml"
|
|
181
|
+
- ".ruby-version"
|
|
181
182
|
- ".secrets.baseline"
|
|
182
183
|
- CHANGELOG.md
|
|
183
184
|
- Gemfile
|
|
184
185
|
- Gemfile.lock
|
|
185
186
|
- LICENSE.txt
|
|
186
|
-
- README.
|
|
187
|
+
- README.md
|
|
187
188
|
- Rakefile
|
|
188
189
|
- WARRANTY.md
|
|
189
190
|
- codecov.yml
|
data/README.adoc
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
:doctype: book
|
|
2
|
-
:toc:
|
|
3
|
-
:toclevels: 4
|
|
4
|
-
:sectnums:
|
|
5
|
-
image:https://github.com/kigster/githuh/workflows/Ruby/badge.svg[Ruby,link=https://github.com/kigster/githuh/actions?query=workflow%3ARuby]
|
|
6
|
-
image:docs/img/badge.svg[Coverage]
|
|
7
|
-
|
|
8
|
-
= Githuh -- GitHub API client
|
|
9
|
-
|
|
10
|
-
As in... *git? huh?*.
|
|
11
|
-
|
|
12
|
-
Github API client wrapper on top of Octokit, that provides extensible command pattern for wrapping Github functionality.
|
|
13
|
-
|
|
14
|
-
At the moment two features are implemented:
|
|
15
|
-
|
|
16
|
-
* Generating a list of org's (or personal) repositories and rending in either markdown or JSON
|
|
17
|
-
* Printing info of the logged in user.
|
|
18
|
-
|
|
19
|
-
== Using `githuh`
|
|
20
|
-
|
|
21
|
-
Add your Github Token to the global config:
|
|
22
|
-
|
|
23
|
-
[source,bash]
|
|
24
|
-
----
|
|
25
|
-
git config --global --set user.token <token>
|
|
26
|
-
----
|
|
27
|
-
|
|
28
|
-
After that:
|
|
29
|
-
|
|
30
|
-
[source,bash]
|
|
31
|
-
----
|
|
32
|
-
❯ be exe/githuh -h
|
|
33
|
-
|
|
34
|
-
Githuh CLI 0.2.1 — API client for Github.com.
|
|
35
|
-
© 2020 Konstantin Gredeskoul, All rights reserved. MIT License.
|
|
36
|
-
|
|
37
|
-
Commands:
|
|
38
|
-
githuh issue [SUBCOMMAND]
|
|
39
|
-
githuh repo [SUBCOMMAND]
|
|
40
|
-
githuh user [SUBCOMMAND]
|
|
41
|
-
githuh version # Print version, no subcommands
|
|
42
|
-
----
|
|
43
|
-
|
|
44
|
-
Githuh is invoked by using one of its commands and sub-commands.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
=== `issue export`
|
|
48
|
-
|
|
49
|
-
Use this command to export all issues for a given repo into either a raw JSON format (using `--format=json`) or into a https://www.pivotaltracker.com/help/articles/csv_import_export[Pivotal Tracker-compatible CSV format] (the default output format).
|
|
50
|
-
|
|
51
|
-
[source,bash]
|
|
52
|
-
----
|
|
53
|
-
❯ be exe/githuh issue export -h
|
|
54
|
-
|
|
55
|
-
Githuh CLI 0.2.1 — API client for Github.com.
|
|
56
|
-
© 2020 Konstantin Gredeskoul, All rights reserved. MIT License.
|
|
57
|
-
|
|
58
|
-
Command:
|
|
59
|
-
githuh issue export
|
|
60
|
-
|
|
61
|
-
Usage:
|
|
62
|
-
githuh issue export REPO
|
|
63
|
-
|
|
64
|
-
Description:
|
|
65
|
-
Export Repo issues into a CSV or JSON format
|
|
66
|
-
Default output file is <username>.<repo>.issues.<format>
|
|
67
|
-
|
|
68
|
-
Arguments:
|
|
69
|
-
REPO # REQUIRED Name of the repo, eg "rails/rails"
|
|
70
|
-
|
|
71
|
-
Options:
|
|
72
|
-
--api-token=VALUE # Github API token; if not given, user.token is read from ~/.gitconfig
|
|
73
|
-
--per-page=VALUE # Pagination page size for Github API, default: 20
|
|
74
|
-
--[no-]info # Print UI elements, like a the progress bar, default: true
|
|
75
|
-
--[no-]verbose # Print additional debugging info, default: false
|
|
76
|
-
--file=VALUE # Output file, overrides <username>.<repo>.issues.<format>
|
|
77
|
-
--format=VALUE # Output format: (json/csv), default: "csv"
|
|
78
|
-
--mapping=VALUE # YAML file with label to estimates mapping
|
|
79
|
-
--help, -h # Print this help
|
|
80
|
-
----
|
|
81
|
-
|
|
82
|
-
==== Label Mappings
|
|
83
|
-
|
|
84
|
-
The export suppots a configurable mapping of Github labels to Pivotal Tracker points. To use this feature, create a YAML file similar to the xref:config/label-mapping.yml[config/label-mapping.yml] provided:
|
|
85
|
-
|
|
86
|
-
[source,yaml]
|
|
87
|
-
----
|
|
88
|
-
---
|
|
89
|
-
label-to-estimates:
|
|
90
|
-
Large: 5
|
|
91
|
-
Medium: 3
|
|
92
|
-
Small: 1
|
|
93
|
-
----
|
|
94
|
-
|
|
95
|
-
Then add `--mapping=<filename>` argument to the export command.
|
|
96
|
-
|
|
97
|
-
==== Example
|
|
98
|
-
|
|
99
|
-
Eg, to export all issues of this repo into Pivotal Tracker compatibel CSV:
|
|
100
|
-
|
|
101
|
-
[source,bash]
|
|
102
|
-
----
|
|
103
|
-
# export into Pivotal Tracker CSV format
|
|
104
|
-
githuh issue export kigster/githuh -v -i --api-token=XXXX
|
|
105
|
-
----
|
|
106
|
-
|
|
107
|
-
You should see an output similar to the following:
|
|
108
|
-
|
|
109
|
-
image::docs/img/githuh-issue-export.png[issue export,width=60%,border=1]
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
=== `repo list`
|
|
113
|
-
|
|
114
|
-
==== Motivation
|
|
115
|
-
|
|
116
|
-
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.
|
|
117
|
-
|
|
118
|
-
NOTE: nothing in this library constitutes a legal advice. Use it at your own risk. For more information, please see xref:WARANTY.adoc[WARRANTY].
|
|
119
|
-
|
|
120
|
-
Please watch the following Ascii Screen cast to see this command in action:
|
|
121
|
-
|
|
122
|
-
image::https://asciinema.org/a/CW8NbYfu9RsifQJVU6tKRtRkU.svg[asciicast,link=https://asciinema.org/a/CW8NbYfu9RsifQJVU6tKRtRkU]
|
|
123
|
-
|
|
124
|
-
==== Usage
|
|
125
|
-
|
|
126
|
-
[source,bash]
|
|
127
|
-
----
|
|
128
|
-
❯ githuh repo list --help
|
|
129
|
-
|
|
130
|
-
Githuh CLI 0.1.2 — API client for Github.com.
|
|
131
|
-
© 2020 Konstantin Gredeskoul, All rights reserved. MIT License.
|
|
132
|
-
|
|
133
|
-
Usage:
|
|
134
|
-
githuh repo list
|
|
135
|
-
|
|
136
|
-
Description:
|
|
137
|
-
List owned repositories and render the output in markdown or JSON
|
|
138
|
-
Default output file is <username>.repositories.<format>
|
|
139
|
-
|
|
140
|
-
Options:
|
|
141
|
-
--api-token=VALUE # Github API token; if not given, user.token is read from ~/.gitconfig
|
|
142
|
-
--per-page=VALUE # Pagination page size for Github API, default: 20
|
|
143
|
-
--[no-]info # Print UI elements, like a the progress bar, default: true
|
|
144
|
-
--[no-]verbose # Print additional debugging info, default: false
|
|
145
|
-
--file=VALUE # Output file, overrides <username>.repositories.<format>
|
|
146
|
-
--format=VALUE # Output format: (markdown/json), default: "markdown"
|
|
147
|
-
--forks=VALUE # Include or exclude forks: (exclude/include/only), default: "exclude"
|
|
148
|
-
--[no-]private # If specified, returns only private repos for true, public for false
|
|
149
|
-
--help, -h # Print this help
|
|
150
|
-
----
|
|
151
|
-
|
|
152
|
-
==== Example
|
|
153
|
-
|
|
154
|
-
For instance, to generate a markdown list of all of your *public* repos that are also *not forks*, run the following:
|
|
155
|
-
|
|
156
|
-
[source,bash]
|
|
157
|
-
----
|
|
158
|
-
$ githuh repo list --format=markdown --no-private --forks=exclude --file=repos.md
|
|
159
|
-
----
|
|
160
|
-
|
|
161
|
-
=== `user info`
|
|
162
|
-
|
|
163
|
-
This command prints the info about currently authenticated user.
|
|
164
|
-
|
|
165
|
-
[source,bash]
|
|
166
|
-
----
|
|
167
|
-
❯ githuh user info
|
|
168
|
-
{
|
|
169
|
-
:login => "kigster",
|
|
170
|
-
:url => "https://api.github.com/users/kigster",
|
|
171
|
-
:html_url => "https://github.com/kigster",
|
|
172
|
-
..............
|
|
173
|
-
----
|
|
174
|
-
|
|
175
|
-
== Contributing
|
|
176
|
-
|
|
177
|
-
Please submit a pull request at https://github.com/kigster/githuh/pulls
|
|
178
|
-
|
|
179
|
-
== License
|
|
180
|
-
|
|
181
|
-
© 2020 Konstantin Gredeskoul, link:LICENSE[MIT License]
|