Skip to content

Commit

Permalink
Update README with usage details
Browse files Browse the repository at this point in the history
  • Loading branch information
jimschubert committed Apr 2, 2020
1 parent 22d2cfb commit f0dc732
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 4 deletions.
134 changes: 134 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,140 @@

A labeler for GitHub issues and pull requests.

```bash
Usage:
labeler [OPTIONS]

Application Options:
-o, --owner= GitHub Owner/Org name [$GITHUB_ACTOR]
-r, --repo= GitHub Repo name [$GITHUB_REPO]
-t, --type= The target event type to label (issues or pull_request) [$GITHUB_EVENT_NAME]
--id= The integer id of the issue or pull request
--data= A JSON string of the 'event' type (issue event or pull request event)'
-v, --version Display version information
Help Options:
-h, --help Show this help message
```
Example usage:
```bash
export GITHUB_TOKEN=yourtoken
./labeler -o jimschubert -r labeler -type pull_request -id 1
```
This will evaluate the configuration file for the repository and apply any relevant labels to PR #1.
## Configuration
The configuration file must be located in the target repository at `.github/labeler.yml`, and the contents must follow either the *simple* schema or the *full* schema.
Feel free to use one of the following schema examples to get started.
### Simple Schema
```yaml
# labeler "simple" schema
# Comment is applied to both issues and pull requests.
# If you need a more robust solution, consider the "full" schema.
comment: |
👍 Thanks for this!
🏷 I have applied any labels matching special text in your issue.
Please review the labels and make any necessary changes.
# Labels is an object where:
# - keys are labels
# - values are array of string patterns to match against title + body in issues/prs
labels:
'bug':
- '\bbug[s]?\b'
'help wanted':
- '\bhelp( wanted)?\b'
'duplicate':
- '\bduplicate\b'
- '\bdupe\b'
'enhancement':
- '\benhancement\b'
'question':
- '\bquestion\b'
```
### Full Schema
```yaml
# labeler "full" schema
# enable labeler on issues, prs, or both.
enable:
issues: true
prs: true
# comments object allows you to specify a different message for issues and prs
comments:
issues: |
Thanks for opening this issue!
I have applied any labels matching special text in your title and description.
Please review the labels and make any necessary changes.
prs: |
Thanks for the contribution!
I have applied any labels matching special text in your title and description.
Please review the labels and make any necessary changes.
# Labels is an object where:
# - keys are labels
# - values are objects of { include: [ pattern ], exclude: [ pattern ] }
# - pattern must be a valid regex, and is applied globally to
# title + description of issues and/or prs (see enabled config above)
# - 'include' patterns will associate a label if any of these patterns match
# - 'exclude' patterns will ignore this label if any of these patterns match
labels:
'bug':
include:
- '\bbug[s]?\b'
exclude: []
'help wanted':
include:
- '\bhelp( me)?\b'
exclude:
- '\b\[test(ing)?\]\b'
'enhancement':
include:
- '\bfeat\b'
exclude: []
```
## Build
Build a local distribution for evaluation using goreleaser.
```bash
goreleaser release --skip-publish --snapshot --rm-dist
```
This will create an executable application for your os/architecture under `dist`:
```
dist
├── labeler_darwin_amd64
│   └── labeler
├── labeler_linux_386
│   └── labeler
├── labeler_linux_amd64
│   └── labeler
├── labeler_linux_arm64
│   └── labeler
├── labeler_linux_arm_6
│   └── labeler
└── labeler_windows_amd64
└── labeler.exe
```
## License
The labeler project is licensed under Apache 2.0
*labeler* is a rewrite of an earlier GitHub App I wrote (see [auto-labeler](https://github.com/jimschubert/auto-labeler)). I've rewritten that app to replace the license while making the tool reusable across CI tools and operating systems.
4 changes: 2 additions & 2 deletions docs/samples/full.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# auto-labeler "full" schema
# labeler "full" schema

# enable auto-labeler on issues, prs, or both.
# enable labeler on issues, prs, or both.
enable:
issues: true
prs: true
Expand Down
2 changes: 1 addition & 1 deletion docs/samples/simple.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# auto-labeler "simple" schema
# labeler "simple" schema
# Comment is applied to both issues and pull requests.
# If you need a more robust solution, consider the "full" schema.
comment: |
Expand Down
2 changes: 1 addition & 1 deletion labeler.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ func (l *Labeler) addComment(comment *string) error {
}

func newComment(comment string) *string {
fullComment := fmt.Sprintf("<!-- Labaler (https://github.com/jimschubert/labeler) -->\n%s", comment)
fullComment := fmt.Sprintf("<!-- Labeler (https://github.com/jimschubert/labeler) -->\n%s", comment)
return &fullComment
}

Expand Down

0 comments on commit f0dc732

Please sign in to comment.