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
62.7
Supply Chain
97.4
Quality
75.5
Maintenance
100
Vulnerability
100
License
JavaScript (100%)
Total Downloads
13,818
Last Day
5
Last Week
30
Last Month
110
Last Year
6,899
20 Stars
102 Commits
7 Forks
2 Watching
1 Branches
6 Contributors
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
Publised On
11 Nov 2023
Cumulative downloads
Total Downloads
Last day
-83.9%
5
Compared to previous day
Last week
-31.8%
30
Compared to previous week
Last month
-59.4%
110
Compared to previous month
Last year
56.9%
6,899
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 binaries found in the repo
Reason
no dangerous workflow patterns detected
Reason
license file detected
Details
Reason
packaging workflow detected
Details
Reason
SAST tool detected but not run on all commits
Details
Reason
3 existing vulnerabilities detected
Details
Reason
dependency not pinned by hash detected -- score normalized to 1
Details
Reason
Found 0/3 approved changesets -- score normalized to 0
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Score
Last Scanned on 2025-01-20
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