Skip to content

Commit 1981fa9

Browse files
committed
docs: Add GitHub issue templates
Added comprehensive issue templates aligned with safe-formdata's security boundary: - Bug report template with scope confirmation checkboxes - Security issue template for non-sensitive concerns - Config with links to Security Advisories, Discussions, and documentation All templates enforce boundary awareness and reference SECURITY.md for triage decisions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <[email protected]>")
1 parent 11cbd9b commit 1981fa9

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Bug Report
2+
description: Report a bug within the FormData parsing boundary
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
safe-formdata defines a **strict trust boundary** between untrusted FormData input
10+
and application logic.
11+
12+
Only issues **within this boundary** are considered bugs.
13+
14+
Security decisions and issue triage are based on the definitions in SECURITY.md.
15+
16+
- type: checkboxes
17+
id: scope-check
18+
attributes:
19+
label: Scope confirmation
20+
options:
21+
- label: This issue concerns FormData parsing behavior **within the defined boundary**
22+
required: true
23+
- label: This issue is **not** about value validation, schema enforcement, framework behavior, or application logic
24+
required: true
25+
26+
- type: textarea
27+
id: reproduction
28+
attributes:
29+
label: Minimal reproducible example
30+
description: Provide the smallest example to reproduce the bug
31+
placeholder: |
32+
```ts
33+
import { parse } from "safe-formdata";
34+
const formData = new FormData();
35+
// Your code here
36+
const result = parse(formData);
37+
```
38+
validations:
39+
required: true
40+
41+
- type: input
42+
id: version
43+
attributes:
44+
label: safe-formdata version
45+
placeholder: e.g., 0.1.0
46+
validations:
47+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security Vulnerability (Private)
4+
url: https://github.com/roottool/safe-formdata/security/advisories/new
5+
about: Report a security vulnerability privately via GitHub Security Advisories
6+
7+
- name: Question or Discussion
8+
url: https://github.com/roottool/safe-formdata/discussions
9+
about: Ask questions or discuss ideas about safe-formdata
10+
11+
- name: Documentation
12+
url: https://github.com/roottool/safe-formdata#readme
13+
about: Read the README for API documentation, design principles, and usage examples
14+
15+
- name: Security Guidelines
16+
url: https://github.com/roottool/safe-formdata/SECURITY.md
17+
about: Learn about safe-formdata security scope, guarantees, and reporting policy
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Security Issue
2+
description: Report a security concern within the FormData parsing boundary
3+
title: "[Security]: "
4+
labels: ["security"]
5+
blank_issues_enabled: false
6+
contact_links:
7+
- name: Security Vulnerability (Private)
8+
url: https://github.com/roottool/safe-formdata/security/advisories/new
9+
about: Report a security vulnerability privately via GitHub Security Advisories
10+
- name: Question or Discussion
11+
url: https://github.com/roottool/safe-formdata/discussions
12+
about: Ask questions or discuss ideas about safe-formdata
13+
- name: Documentation
14+
url: https://github.com/roottool/safe-formdata#readme
15+
about: Read the README for API documentation, design principles, and usage examples
16+
body:
17+
- type: markdown
18+
attributes:
19+
value: |
20+
For sensitive vulnerabilities, please use **GitHub Security Advisories** (private).
21+
22+
This template is for **non-sensitive security concerns or design questions**
23+
within the FormData parsing boundary.
24+
25+
safe-formdata defines a **strict trust boundary** between untrusted FormData input
26+
and application logic.
27+
28+
Security decisions and issue triage are based on the definitions in SECURITY.md.
29+
30+
- type: checkboxes
31+
id: security-scope
32+
attributes:
33+
label: Security scope confirmation
34+
options:
35+
- label: This issue relates to boundary security (prototype pollution, forbidden keys, duplicate keys)
36+
required: true
37+
- label: This issue is **not** about value validation, authentication, framework behavior, or denial-of-service
38+
required: true
39+
40+
- type: textarea
41+
id: description
42+
attributes:
43+
label: Description
44+
description: Detailed description of the security issue or concern
45+
validations:
46+
required: true
47+
48+
- type: textarea
49+
id: reproduction
50+
attributes:
51+
label: Proof of concept / reproduction
52+
description: Minimal code or steps to demonstrate the issue
53+
placeholder: |
54+
```ts
55+
import { parse } from "safe-formdata";
56+
const formData = new FormData();
57+
// Demonstration code here
58+
const result = parse(formData);
59+
```
60+
validations:
61+
required: true
62+
63+
- type: input
64+
id: version
65+
attributes:
66+
label: Affected safe-formdata version
67+
placeholder: e.g., 0.1.0
68+
validations:
69+
required: true

0 commit comments

Comments
 (0)