docs: open project to public contributions with CLA

Add full contribution infrastructure: CLA with broad sublicensing
rights for dual-licensing, CONTRIBUTING.md with scope rules and dev
setup, CLA Assistant workflow, CODEOWNERS, SUPPORT.md, PR template,
updated issue templates with contribution prompts, and declarative
label config.
This commit is contained in:
SnapOtter
2026-05-16 16:05:08 +08:00
parent 92b85d3506
commit 29d959e7c1
12 changed files with 433 additions and 26 deletions
+10 -1
View File
@@ -51,7 +51,7 @@ body:
attributes:
label: Image tag
description: Which Docker image tag are you using?
placeholder: "e.g. latest, 1.11.0"
placeholder: "e.g. latest, 1.17.0"
validations:
required: true
@@ -83,3 +83,12 @@ body:
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain the problem.
- type: dropdown
id: willing-to-fix
attributes:
label: Would you like to contribute a fix?
description: If yes, we can assign this issue to you. See CONTRIBUTING.md for the PR process.
options:
- "Yes, I'd like to submit a PR"
- "No, just reporting"
+3
View File
@@ -3,6 +3,9 @@ contact_links:
- name: Documentation
url: https://docs.snapotter.com/
about: Check the docs for setup guides, configuration, and API reference.
- name: Discord
url: https://discord.gg/hr3s7HPUsr
about: Ask questions, get help, and chat with the community.
- name: Security vulnerability
url: https://github.com/snapotter-hq/snapotter/security/advisories/new
about: Report security issues privately through GitHub Security Advisories.
@@ -43,3 +43,12 @@ body:
attributes:
label: Additional context
description: Screenshots, links, examples, or anything else that helps explain the request.
- type: dropdown
id: willing-to-implement
attributes:
label: Would you like to implement this?
description: Feature PRs require issue approval first. If approved, we can assign this to you.
options:
- "Yes, I'd like to submit a PR if approved"
- "No, just suggesting"
+97
View File
@@ -0,0 +1,97 @@
# Bug & Issue Types
- name: bug
color: "d73a4a"
description: Something isn't working
- name: enhancement
color: "a2eeef"
description: New feature or improvement
- name: documentation
color: "0075ca"
description: Documentation improvements
- name: translation
color: "7057ff"
description: New or updated translation
# Contribution Flow
- name: good first issue
color: "7057ff"
description: Good for newcomers
- name: help wanted
color: "008672"
description: Extra attention is needed
- name: approved
color: "0e8a16"
description: Feature approved for implementation
- name: needs discussion
color: "fbca04"
description: Requires maintainer input before proceeding
# PR Status
- name: awaiting review
color: "f9d0c4"
description: PR is ready for maintainer review
- name: changes requested
color: "e11d48"
description: PR needs changes before merge
- name: cla-signed
color: "0e8a16"
description: Contributor has signed the CLA
- name: cla-needed
color: "b60205"
description: CLA signature required
# Scope
- name: "area: frontend"
color: "bfdadc"
description: Changes to apps/web
- name: "area: backend"
color: "c5def5"
description: Changes to apps/api
- name: "area: image-engine"
color: "d4c5f9"
description: Changes to packages/image-engine
- name: "area: i18n"
color: "e99695"
description: Changes to packages/shared/src/i18n
- name: "area: docs"
color: "0075ca"
description: Changes to apps/docs
# Priority
- name: "priority: critical"
color: "b60205"
description: Must be fixed immediately
- name: "priority: high"
color: "d93f0b"
description: Important, fix soon
- name: "priority: low"
color: "c2e0c6"
description: Nice to have, no rush
# Meta
- name: duplicate
color: "cfd3d7"
description: This issue or PR already exists
- name: wontfix
color: "ffffff"
description: This will not be worked on
- name: invalid
color: "e4e669"
description: Not a valid issue or doesn't apply
+25 -8
View File
@@ -1,12 +1,29 @@
<!--
Thanks for your interest in SnapOtter.
## What does this PR do?
We don't accept pull requests. All development is handled internally to maintain architectural consistency and code quality.
<!-- 1-2 sentences. Link to the related issue if applicable. -->
If you've found a bug or have a feature idea, please open an issue instead:
https://github.com/snapotter-hq/snapotter/issues
Fixes #
Your feedback is valuable and directly shapes the project.
-->
## Type of change
**This project does not accept pull requests.** Please close this PR and [open an issue](https://github.com/snapotter-hq/snapotter/issues/new/choose) instead. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] New translation or i18n update
- [ ] Documentation update
- [ ] Test improvement
- [ ] Refactor (no functional change)
## Checklist
- [ ] I have read [CONTRIBUTING.md](../CONTRIBUTING.md)
- [ ] I have signed the [CLA](../CLA.md) (the bot will prompt you if not)
- [ ] My changes follow the project's code style (Biome passes)
- [ ] I have added or updated tests for my changes
- [ ] All existing tests pass locally (`pnpm test`)
- [ ] TypeScript compiles without errors (`pnpm typecheck`)
- [ ] My PR is focused on a single concern (under 400 lines of change)
- [ ] I have not modified CI, release, or linter configuration files
## Screenshots (if applicable)
<!-- For UI changes, include before/after screenshots. -->
+45
View File
@@ -0,0 +1,45 @@
name: CLA Assistant
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened, synchronize, reopened]
permissions:
actions: write
contents: read
pull-requests: write
statuses: write
jobs:
cla:
if: |
(github.event_name == 'pull_request_target') ||
(github.event_name == 'issue_comment' && github.event.comment.body == 'recheck')
runs-on: ubuntu-latest
steps:
- name: CLA Assistant
uses: contributor-assistant/github-action@ca4a40a7d1004f18d9960b404b97e5f30a505a08 # v2.6.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_ACCESS_TOKEN: ${{ secrets.CLA_TOKEN }}
with:
path-to-signatures: "signatures/cla.json"
path-to-document: "https://github.com/snapotter-hq/snapotter/blob/main/CLA.md"
branch: "main"
allowlist: "dependabot[bot],renovate[bot],github-actions[bot],snapotter-bot"
custom-notsigned-prcomment: |
Thank you for your contribution! Before we can merge this PR, you need to sign our [Contributor License Agreement](https://github.com/snapotter-hq/snapotter/blob/main/CLA.md).
**What the CLA does:** You keep ownership of your code. You grant SnapOtter a license to use your contribution under any license (including our commercial license). [Read the plain-language summary](https://github.com/snapotter-hq/snapotter/blob/main/CLA.md#plain-language-summary).
**How to sign:** Comment on this PR with the following text:
> I have read the CLA Document and I hereby sign the CLA
You only need to do this once. It applies to all future contributions.
custom-pr-sign-comment: "I have read the CLA Document and I hereby sign the CLA"
custom-allsigned-prcomment: "All contributors have signed the CLA. Thank you!"
lock-pullrequest-aftermerge: false
use-dco-flag: false