Gathering detailed insights and metrics for @zentered/issue-forms-body-parser
Gathering detailed insights and metrics for @zentered/issue-forms-body-parser
Gathering detailed insights and metrics for @zentered/issue-forms-body-parser
Gathering detailed insights and metrics for @zentered/issue-forms-body-parser
npm install @zentered/issue-forms-body-parser
Typescript
Module System
Min. Node Version
Node Version
NPM Version
JavaScript (100%)
Verify real, reachable, and deliverable emails with instant MX records, SMTP checks, and disposable email detection.
Total Downloads
13,979
Last Day
1
Last Week
41
Last Month
114
Last Year
6,489
MIT License
20 Stars
110 Commits
7 Forks
1 Watchers
1 Branches
6 Contributors
Updated on Feb 24, 2025
Minified
Minified + Gzipped
Latest Version
2.2.0
Package Id
@zentered/issue-forms-body-parser@2.2.0
Unpacked Size
84.79 kB
Size
20.15 kB
File Count
35
NPM Version
10.1.0
Node Version
20.9.0
Published on
Nov 11, 2023
Cumulative downloads
Total Downloads
Last Day
0%
1
Compared to previous day
Last Week
215.4%
41
Compared to previous week
Last Month
-10.9%
114
Compared to previous month
Last Year
40.9%
6,489
Compared to previous year
12
Issue Forms is a great way to structure GitHub Issues to an expected format, and to make it easier to capture information from the user. Unfortunately, the schema only defined the input of the data, not the output. So the markdown body needs to be parsed to extract the information in a structured way and to make further processing easier.
We use this Action at the
Cyprus Developer Community to
create issues with event data
for upcoming meetups etc. The parser extracts the information from the issues
and provides structured data to create calendar entries (ie .ics
files for
calendar subscriptions with GitEvents),
calling 3rd party APIs, etc.
Inspired by: Peter Murray's Issue Forms Body Parser with valuable feedback from Steffen
npm i @zentered/issue-forms-body-parser
checked
attributesdate
and time
fieldsTransforms markdown from GitHub Issue Forms:
1### Event Description 2 3Let's meet for coffee and chat about tech, coding, Cyprus and the newly formed 4CDC (Cyprus Developer Community). 5 6### Location 7 8Cafe Nero Finikoudes, Larnaka 9 10### Date 11 1211.03.2022 13 14### Time 15 1616:00
to structured, usable data:
1{ 2 "event-description": { 3 "order": 0, 4 "title": "Event Description", 5 "text": "Let's meet for coffee and chat about tech, coding, Cyprus and the newly formed\nCDC (Cyprus Developer Community)." 6 }, 7 "location": { 8 "order": 1, 9 "title": "Location", 10 "text": "Cafe Nero Finikoudes, Larnaka" 11 }, 12 "date": { 13 "order": 2, 14 "title": "Date", 15 "text": "11.03.2022", 16 "date": "2022-03-11" 17 }, 18 "time": { 19 "order": 3, 20 "title": "Time", 21 "text": "16:00", 22 "time": "16:00" 23 } 24}
See more examples in md test cases and test results.
date
: checks if the value matches a
common date format
and returns a formatted date
field (in UTC).time
: checks if the value matches a
common time format
and returns a formatted time
field.lists
: automatically returns lists as arraysduration
: currently only the format XXhYYm
is supported as duration, ie.
1h30m
returns a duration
object with hours
and minutes
.1name: Issue Forms Body Parser 2 3on: issues 4 5jobs: 6 process: 7 runs-on: ubuntu-latest 8 steps: 9 - name: Issue Forms Body Parser 10 id: parse 11 uses: zentered/issue-forms-body-parser@v2.0.0 12 - run: echo ${{ toJSON(steps.parse.outputs.data) }}
You can also provide a custom body
input:
1name: Issue Forms Body Parser 2 3on: 4 workflow_dispatch: 5 inputs: 6 issue_number: 7 type: string 8 required: true 9env: 10 GH_TOKEN: ${{ github.token }} 11 12jobs: 13 process: 14 runs-on: ubuntu-latest 15 steps: 16 - name: Fetch the issue 17 id: read_issue_body 18 run: 19 echo "body=$(gh issue view ${{ inputs.issue_number }} --repo ${{ 20 github.repo }} --json body --jq '.body')" >> $GITHUB_OUTPUT 21 22 - name: Issue Forms Body Parser 23 id: parse 24 uses: zentered/issue-forms-body-parser@v2.0.0 25 with: 26 body: ${{ steps.read_issue_body.output.body }} 27 28 - run: echo ${{ toJSON(steps.parse.outputs.data) }}
The parser is available as a standalone library:
npm i @zentered/issue-forms-body-parser
# OR yarn add @zentered/issue-forms-body-parser
Usage:
import bodyParser from '@zentered/issue-forms-body-parser'
const issueData = await bodyParser(issue.body)
You can use act to test this Action locally.
npm run build && act issues -e test/issue.json
or run:
npm test
to test the parser.
Licensed under MIT.
Here is a list of all the licenses of our production dependencies
No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
packaging workflow detected
Details
Reason
2 existing vulnerabilities detected
Details
Reason
SAST tool detected but not run on all commits
Details
Reason
8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
Reason
dependency not pinned by hash detected -- score normalized to 1
Details
Reason
Found 0/3 approved changesets -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Score
Last Scanned on 2025-03-03
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More