chore: add GitHub community files and CI pipeline
- .github/workflows/ci.yml: TypeScript check + Vitest + build on every PR - .github/dependabot.yml: weekly npm + Actions updates (minor/patch grouped) - .github/ISSUE_TEMPLATE/: bug_report, feature_request, config (→ Discussions) - .github/PULL_REQUEST_TEMPLATE.md: checklist for contributors - SECURITY.md: responsible disclosure policy via GitHub Advisories - CONTRIBUTING.md: dev setup, code style, commit conventions
This commit is contained in:
68
CONTRIBUTING.md
Normal file
68
CONTRIBUTING.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# Contributing to Immich Folio
|
||||
|
||||
Thanks for your interest in contributing! 🎉
|
||||
|
||||
## Ways to contribute
|
||||
|
||||
- **Bug reports** — [Open a bug report issue](https://github.com/ralksta/immich-folio/issues/new?template=bug_report.md)
|
||||
- **Feature requests** — [Open a feature request](https://github.com/ralksta/immich-folio/issues/new?template=feature_request.md)
|
||||
- **Pull requests** — see below
|
||||
- **Discussions** — [Ask questions or share ideas](https://github.com/ralksta/immich-folio/discussions)
|
||||
|
||||
## Development setup
|
||||
|
||||
```bash
|
||||
# 1. Clone
|
||||
git clone https://github.com/ralksta/immich-folio.git
|
||||
cd immich-folio
|
||||
|
||||
# 2. Install
|
||||
npm install
|
||||
|
||||
# 3. Configure
|
||||
cp content/gallery.example.yaml content/gallery.yaml
|
||||
# Edit .env or set IMMICH_URL + IMMICH_API_KEY
|
||||
|
||||
# 4. Run
|
||||
npm run dev # http://localhost:3000
|
||||
npm run build # production build check
|
||||
```
|
||||
|
||||
## Before submitting a PR
|
||||
|
||||
```bash
|
||||
npx tsc --noEmit # must be 0 errors
|
||||
npx vitest run # all tests must pass
|
||||
npm run build # build must succeed
|
||||
```
|
||||
|
||||
## Code style
|
||||
|
||||
- **TypeScript** — strict mode, no `any` without justification
|
||||
- **Components** — Server Components by default; use `'use client'` only when necessary
|
||||
- **CSS** — vanilla CSS variables, no Tailwind, no CSS-in-JS
|
||||
- **Naming** — descriptive names, no abbreviations in public APIs
|
||||
|
||||
## Commit messages
|
||||
|
||||
Use [Conventional Commits](https://www.conventionalcommits.org/):
|
||||
|
||||
```
|
||||
feat: add new hero style
|
||||
fix: correct image aspect ratio on mobile
|
||||
security: escape HTML in map popups
|
||||
docs: update theming guide
|
||||
chore: bump next to 15.x
|
||||
```
|
||||
|
||||
## Pull Request checklist
|
||||
|
||||
- [ ] `npx tsc --noEmit` passes
|
||||
- [ ] `npx vitest run` passes
|
||||
- [ ] `npm run build` passes
|
||||
- [ ] No secrets in the diff
|
||||
- [ ] Documentation updated if needed
|
||||
|
||||
## License
|
||||
|
||||
By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).
|
||||
Reference in New Issue
Block a user