Skip to content

cssnr/parse-issue-form-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Tag Major GitHub Tag Minor GitHub Release Version GitHub Dist Size Release Test Lint Quality Gate Status GitHub Last Commit Codeberg Last Commit GitHub Top Language GitHub Org Stars Discord

Parse Issue Form Action

Parse GitHub issue forms into outputs.
This turns all issue form inputs into action outputs with zero configuration.

Note

Please submit a Feature Request for new features or Open an Issue if you find any bugs.

This is a very simple action, for more details see: src/index.js

Inputs

Input Req. Default Input Description
body Yes - Set to ${{ github.event.issue.body }}
- name: 'Parse Issue'
  id: issue
  uses: cssnr/parse-issue-form-action@v1
  with:
    body: ${{ github.event.issue.body }}

Outputs

Outputs are headings/labels, to lower case, with spaces replaced with _'s.
A heading/label of Site Link will be an output with key site_link.

Warning

This only parses values as strings and will not parse check boxes or dropdowns correctly.
Once I have a use or request for this feature, the functionality will be added...

- name: 'Parse Issue'
  id: issue
  uses: cssnr/parse-issue-form-action@v1
  with:
    body: ${{ github.event.issue.body }}

- name: 'Echo Outputs'
  run: |
    echo "URL: ${{ steps.issue.outputs.url }}"
    echo "Details: ${{ steps.issue.outputs.details }}"

Examples

Using this issue form template:

name: 'Issue'
description: 'Open an Issue'

body:
  - type: input
    id: url
    attributes:
      label: Site URL
      description: Enter a URL

  - type: textarea
    id: description
    attributes:
      label: Details
      description: Please describe the issue...

Will generate these 2 outputs:

  • ${{ steps.issue.outputs.site_url }}
  • ${{ steps.issue.outputs.details }}
name: 'Issue'

on:
  issues:
    types: [opened]

jobs:
  issue:
    name: 'Issue'
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: 'Checkout'
        uses: actions/checkout@v4

      - name: 'Debug Issue'
        run: |
          echo "Issue number: ${{ github.event.issue.number }}"
          echo "Issue title: ${{ github.event.issue.title }}"
          echo "Issue body: ${{ github.event.issue.body }}"

      - name: 'Parse Issue'
        id: issue
        uses: cssnr/parse-issue-form-action@v1
        with:
          body: ${{ github.event.issue.body }}

      - name: 'Debug Parsed Issue'
        run: |
          echo "Site Link: ${{ steps.issue.outputs.site_link }}"
          echo "Details: ${{ steps.issue.outputs.details }}"

For a full example, see: https://github.com/cssnr/link-extractor/blob/master/.github/workflows/issue.yaml

Tags

The following rolling tags are maintained.

Version Tag Rolling Bugs Feat. Name Target Example
GitHub Tag Major Major vN.x.x vN
GitHub Tag Minor Minor vN.N.x vN.N
GitHub Release Micro vN.N.N vN.N.N

You can view the release notes for each version on the releases page.

The Major tag is recommended. It is the most up-to-date and always backwards compatible. Breaking changes would result in a Major version bump. At a minimum you should use a Minor tag.

Known Issues

  • As mentioned, this currently parses raw content, therefore, will not parse check box/dropdown values, yet.
  • If a users uses ### at the start of a line, it would be interpreted as an output. Let us know if this is an issue.
  • If you use an actions validator, it will display the outputs as invalid since outputs are arbitrary based on input.

Support

For general help or to request a feature, see:

If you are experiencing an issue/bug or getting unexpected results, you can:

For more information, see the CSSNR SUPPORT.md.

Contributing

Currently, the best way to contribute to this project is to star this project on GitHub.

For more information, see the CSSNR CONTRIBUTING.md.

Additionally, you can support other GitHub Actions I have published:

For a full list of current projects to support visit: https://cssnr.github.io/

About

Parse Issue Form Action

Topics

Resources

License

Stars

Watchers

Forks