https://github.com/sv-oss/github-pr-labels-buildkite-plugin
Retrieve the labels attached to a github PR build and expose them via env var or meta-data
https://github.com/sv-oss/github-pr-labels-buildkite-plugin
buildkite-plugin
Last synced: 3 months ago
JSON representation
Retrieve the labels attached to a github PR build and expose them via env var or meta-data
- Host: GitHub
- URL: https://github.com/sv-oss/github-pr-labels-buildkite-plugin
- Owner: sv-oss
- License: mit
- Created: 2021-09-09T11:36:41.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-10T15:58:51.000Z (over 3 years ago)
- Last Synced: 2025-03-11T15:50:57.525Z (7 months ago)
- Topics: buildkite-plugin
- Language: Shell
- Homepage:
- Size: 9.77 KB
- Stars: 4
- Watchers: 1
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GitHub PR Labels Buildkite Plugin
Retrieve the labels associated with a GitHub Pull Request and publish them as environment variable and/or build meta-data.
Multiple labels will appear as comma-separated values.
## Pre-requisites for private repositories
When using with a private repository, a valid GitHub token (PAT) must be provided.
It can be provided either inside an environment variable or inside a file.
Other plugins can be used before this plugin to set up the token.## Examples
### Publish the labels as environment variable (public repository)
The comma-separated list of labels will be published in the `PULL_REQUEST_LABELS` environment variable.
The variable is accessible to all subsequent commands and plugins within the same step.```yml
steps:
- command: echo $$PULL_REQUEST_LABELS
plugins:
- sv-oss/github-pr-labels#v0.0.2:
publish-env-var: PULL_REQUEST_LABELS
```### Publish the labels as environment variable (private repository)
In this example a valid GitHub token has been pre-loaded inside the GITHUB_TOKEN environment variable
The comma-separated list of labels will be published in the `PULL_REQUEST_LABELS` environment variable.
The variable is accessible to all subsequent commands and plugins within the same step.```yml
steps:
- command: echo $$PULL_REQUEST_LABELS
plugins:
- sv-oss/github-pr-labels#v0.0.2:
token-from:
env: GITHUB_TOKEN
publish-env-var: PULL_REQUEST_LABELS
```### Publish the labels as build meta-data (private repository)
In this example a valid GitHub token has been pre-loaded inside the /etc/github/token file
The comma-separated list of labels will be available in the `pull-request-labels` meta-data key.
The meta-data key is accessible on all subsequent steps of the pipeline.```yml
steps:
- command: buildkite-agent meta-data get pull-request-labels
plugins:
- sv-oss/github-pr-labels#v0.0.2:
token-from:
file: /etc/github/token
publish-metadata-key: pull-request-labels
- wait: ~
- command: buildkite-agent meta-data get pull-request-labels
```
## Configuration### `token-from` (optional, {file | env})
Datasource for the github token. One of `file` or `env` subkeys must be provided
#### `file` (optional[mutually-exclusive with env], string)
File containing the github token
#### `env` (optional[mutually-exclusive with file], string)
Env var containing the github token### `publish-env-var` (optional, string)
Enables publishing the labels in an environment variable of specified name### `publish-metadata-key` (optional, string)
Enables publishing the labels in a build meta-data key of specified name## Developing
To run the tests:
```shell
docker-compose run --rm tests
```## Contributing
1. Fork the repo
2. Make the changes
3. Run the tests
4. Commit and push your changes
5. Send a pull request