50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# contribute.btcpayserver.org
|
|
|
|
A unified landing page that surfaces all **good first issues** across the BTCPay Server GitHub organization, filtered by contributor skill — developer, writer, designer, or marketer.
|
|
|
|
**Live:** https://contribute.btcpayserver.org
|
|
|
|
---
|
|
|
|
## How it works
|
|
|
|
1. A GitHub Actions workflow runs every 6 hours (and on manual trigger)
|
|
2. It fetches all `good first issue` labeled issues from every public repo in the `btcpayserver` org
|
|
3. Issues are mapped to skill categories and sub-tags based on repo language and labels
|
|
4. The data is written to `public/data/issues.json` and the site is rebuilt and deployed to GitHub Pages
|
|
|
|
The site is fully static — no backend, no API calls from the browser.
|
|
|
|
## Local development
|
|
|
|
```bash
|
|
git clone https://github.com/btcpayserver/contribute.btcpayserver.org
|
|
cd contribute.btcpayserver.org
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
The dev server uses the seed data in `public/data/issues.json`. To fetch live data:
|
|
|
|
```bash
|
|
ORG_GITHUB_TOKEN=ghp_your_token node scripts/fetch-issues.js
|
|
```
|
|
|
|
## Contributing
|
|
|
|
See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
|
|
## Stack
|
|
|
|
- React 19 + TypeScript (strict)
|
|
- Vite 6 + Tailwind CSS 4
|
|
- Radix UI (Dialog), Lucide React
|
|
- GitHub Actions for data pipeline and deployment
|
|
|
|
## Deployment
|
|
|
|
GitHub Pages via `actions/deploy-pages`. Source: `main` branch.
|
|
Pages source must be set to **GitHub Actions** in repo Settings → Pages.
|
|
|
|
Required secret: `ORG_GITHUB_TOKEN` — a PAT with `repo:read` scope to query cross-repo issues.
|