Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/actionsdesk/parse-issue
https://github.com/actionsdesk/parse-issue
Last synced: about 6 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/actionsdesk/parse-issue
- Owner: ActionsDesk
- License: mit
- Created: 2020-05-28T16:47:49.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T07:17:24.000Z (almost 2 years ago)
- Last Synced: 2024-10-14T14:46:13.454Z (about 1 month ago)
- Language: TypeScript
- Size: 1.58 MB
- Stars: 3
- Watchers: 1
- Forks: 3
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Actions Issue Parser
Extract useful information from new issues for use in your GitHub Actions.
## Getting Started
Simply add this action to any workflow that runs on GitHub Issue `created` events and it will extract `key: value` pairs as `outputs` to be used in subsequent actions.
This parser will replace whitespace and special characters with `_`, then squash repeating `_` down to one, dropping any leading or trailing `_`
`Email of User` would become `email_of_user`
#### Example Workflow
```Yaml
- id: parser
uses: actionsdesk/parse-issue@v1
- uses: actions/some-action@v1
with:
foo: ${{steps.parser.outputs.foo}}
bar: ${{steps.parser.outputs.bar}}
```#### Example Issue
```Yaml
# Welcomefoo: fizz
bar: buzz
```Given the workflow and issue above, this action will parse `foo` and `bar` with their values and make them available at `steps.parser.outputs`. In this example, the following would be defined:
- `steps.parser.outputs.foo` (with a value of `fizz`)
- `steps.parser.outputs.bar` (with a value of `buzz`)The `id` used is arbitrary, only used to reference the output in another step.
### Default Extractor
By default, this Action will extract all `key: value` pairs that it finds. Duplicate keys will be overridden by the last value found.
### Custom Extractors
You can define custom extractors with regular expressions by defining inputs to this action in a specific prefix. All inputs that start with `extract_` will be enumerated and made available on `outputs` based on the value passed in. If you use a capture group, we will assign the first match and ignore the rest
#### Examples
Workflow
Issue
Result
uses: actionsdesk/parse-issue@v1
inputs:
extract_username: '<p id="username">(?<username>[^<]+)</p>'
extract_email: '<p id="email">[email protected]</p>'
# Example Issue
<p id="username">johnsmith</p>
<p id="username">(?<email>[^<]+)</p>
username: johnsmith
email: [email protected]
uses: actionsdesk/parse-issue@v1
inputs:
extract_awesome: '^(.+) is awesome!$'
# Example Issue
Everything is awesome!
awesome: Everything