Extract useful information from new issues for use in your GitHub Actions.
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
- id: parser
uses: actionsdesk/parse-issue@v1
- uses: actions/some-action@v1
with:
foo: ${{steps.parser.outputs.foo}}
bar: ${{steps.parser.outputs.bar}}
# Welcome
foo: 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 offizz
)steps.parser.outputs.bar
(with a value ofbuzz
)
The id
used is arbitrary, only used to reference the output in another step.
By default, this Action will extract all key: value
pairs that it finds. Duplicate keys will be overridden by the last value found.
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
Workflow | Issue | Result |
---|---|---|
uses: actionsdesk/parse-issue@v1 inputs: extract_username: '<p id="username">(?<username>[^<]+)</p>' extract_email: '<p id="email">johnsmith@example.com</p>' |
# Example Issue <p id="username">johnsmith</p> <p id="username">(?<email>[^<]+)</p> |
username: johnsmith email: johnsmith@example.com |
uses: actionsdesk/parse-issue@v1 inputs: extract_awesome: '^(.+) is awesome!$' |
# Example Issue Everything is awesome! |
awesome: Everything |