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 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 required default description
body Yes - Set this 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.

Tag Example Target Bugs Feat. Description
GitHub Tag vN vN.x.x Includes new features but is always backwards compatible.
GitHub Tag vN.N vN.N.x Only receives bug fixes. This is the most stable tag.
GitHub Release vN.N.N vN.N.N Not a rolling tag. Not recommended.

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

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/