https://github.com/actionsdesk/parse-issue
https://github.com/actionsdesk/parse-issue
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/actionsdesk/parse-issue
- Owner: ActionsDesk
- License: mit
- Archived: true
- Created: 2020-05-28T16:47:49.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2025-01-10T17:01:55.000Z (6 months ago)
- Last Synced: 2025-04-19T09:56:48.156Z (3 months ago)
- Language: TypeScript
- Size: 1.58 MB
- Stars: 3
- Watchers: 0
- Forks: 3
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**Note:** This repository is no longer maintained. See [`issue-ops/parser`](https://github.com/issue-ops/parser) for a suitable alternative.
# 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