Skip to content

Commit f7da8f5

Browse files
Merge pull request #1 from Jamesllllllllll/add-sentry-and-github-templates
Derive catalog song URLs from source IDs; Add OSS repo templates; Add…
2 parents 041fbc7 + af9db48 commit f7da8f5

34 files changed

+959
-187
lines changed

.env.deploy.example

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
APP_URL=https://your-app.workers.dev
2+
SENTRY_ENVIRONMENT=production
3+
# Set this as a Cloudflare secret on both workers instead of committing it here.
4+
SENTRY_DSN=
5+
# Optional trace sample rate from 0 to 1. Defaults to 0.
6+
SENTRY_TRACES_SAMPLE_RATE=
27
CLOUDFLARE_D1_DATABASE_ID=
38
CLOUDFLARE_SESSION_KV_ID=
49
TWITCH_CLIENT_ID=

.env.example

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
APP_URL=http://localhost:9000
22
# Allowed hosts for local development - eg. your cloudflare tunnel domain
33
VITE_ALLOWED_HOSTS=
4+
SENTRY_ENVIRONMENT=development
5+
# Optional. Leave unset locally to keep Sentry disabled.
6+
SENTRY_DSN=
7+
# Optional trace sample rate from 0 to 1. Defaults to 0.
8+
SENTRY_TRACES_SAMPLE_RATE=
49
TWITCH_CLIENT_ID=
510
TWITCH_CLIENT_SECRET=
611
# Generate with `openssl rand -hex 32`
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Bug report
2+
description: Report a reproducible problem with the app or repository
3+
title: "[Bug]: "
4+
labels:
5+
- bug
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thanks for taking the time to report this. Please provide enough detail for someone else to reproduce the issue.
11+
- type: textarea
12+
id: summary
13+
attributes:
14+
label: Summary
15+
description: What happened?
16+
placeholder: A clear and concise description of the problem.
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: steps
21+
attributes:
22+
label: Steps to reproduce
23+
description: List the exact steps needed to reproduce the problem.
24+
placeholder: |
25+
1. Go to ...
26+
2. Click ...
27+
3. Run ...
28+
4. Observe ...
29+
validations:
30+
required: true
31+
- type: textarea
32+
id: expected
33+
attributes:
34+
label: Expected behavior
35+
description: What did you expect to happen instead?
36+
placeholder: Describe the expected result.
37+
validations:
38+
required: true
39+
- type: textarea
40+
id: actual
41+
attributes:
42+
label: Actual behavior
43+
description: What happened instead?
44+
placeholder: Describe the actual result.
45+
validations:
46+
required: true
47+
- type: textarea
48+
id: logs
49+
attributes:
50+
label: Logs or screenshots
51+
description: Paste any relevant logs, stack traces, screenshots, or recordings.
52+
render: shell
53+
- type: input
54+
id: version
55+
attributes:
56+
label: Version or commit
57+
description: Which release, branch, or commit did you test?
58+
placeholder: main, v0.1.0, or a commit SHA
59+
- type: textarea
60+
id: environment
61+
attributes:
62+
label: Environment
63+
description: Share the environment where this happened.
64+
placeholder: |
65+
OS:
66+
Browser:
67+
Node version:
68+
Deployment target:
69+
Local or deployed:
70+
validations:
71+
required: true
72+
- type: textarea
73+
id: additional
74+
attributes:
75+
label: Additional context
76+
description: Add any other useful detail.
77+

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Documentation
4+
url: https://github.com/Jamesllllllllll/request-bot/blob/main/README.md
5+
about: Review the README and deployment docs before opening a support issue.
6+
- name: Deployment workflow
7+
url: https://github.com/Jamesllllllllll/request-bot/blob/main/docs/deployment-workflow.md
8+
about: Check the deployment guide for Cloudflare setup and production configuration.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Feature request
2+
description: Suggest an improvement or new capability
3+
title: "[Feature]: "
4+
labels:
5+
- enhancement
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Please describe the problem you are trying to solve before proposing a solution.
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem or use case
15+
description: What problem are you running into? Who is affected?
16+
placeholder: Describe the use case and why it matters.
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: proposal
21+
attributes:
22+
label: Proposed solution
23+
description: What would you like to happen?
24+
placeholder: Describe the behavior, workflow, or API you want.
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: alternatives
29+
attributes:
30+
label: Alternatives considered
31+
description: What alternatives have you considered, including workarounds?
32+
placeholder: Describe any other approaches you evaluated.
33+
- type: textarea
34+
id: additional
35+
attributes:
36+
label: Additional context
37+
description: Add links, examples, screenshots, or references if relevant.
38+

.github/pull_request_template.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Summary
2+
3+
Describe the change at a high level.
4+
5+
## What Changed
6+
7+
-
8+
9+
## How To Test
10+
11+
1.
12+
13+
## Screenshots Or UI Notes
14+
15+
Include screenshots, recordings, or notes for any visible UI change.
16+
17+
## Checklist
18+
19+
- [ ] I tested the change locally
20+
- [ ] I updated docs or examples if needed
21+
- [ ] I called out any follow-up work or known limitations
22+

.github/workflows/deploy-production.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ jobs:
4747
- name: Generate production Wrangler configs
4848
run: npm run deploy:prepare
4949

50+
- name: Apply production D1 migrations
51+
run: npm run db:migrate:remote
52+
5053
- name: Deploy production backend
5154
shell: bash
5255
run: |

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
## [Unreleased]
6+
7+
### Added
8+
- Production-ready Sentry scaffolding for the Cloudflare app and backend workers, with DSN-based opt-in for local development and Cloudflare-managed secrets for deployed environments.
9+
- GitHub issue templates, a pull request template, and a repository `CODE_OF_CONDUCT.md`.
10+
11+
### Changed
12+
- Simplified catalog song source URLs to always derive the Ignition download link from the song source ID instead of storing `source_url` in the database.
13+
- Added a migration to remove the redundant `catalog_songs.source_url` column and updated the sample catalog seed to match the new schema.
14+
- Tightened schema version checks so the app only accepts migrations that are actually present in the repo.
15+
- Expanded deployment and environment documentation for Sentry configuration in local development and production.
16+
17+
## [0.1.0] - 2026-03-18
18+
19+
### Added
20+
- Initial public release of the Twitch request bot with playlist management, dashboard controls, and Cloudflare-backed deployment support.

CODE_OF_CONDUCT.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Code of Conduct
2+
3+
## TL;DR
4+
5+
Be respectful, stay constructive, and keep discussion focused on the work. Harassment, personal attacks, abusive behavior, and sharing private information without permission are not acceptable. If there is a problem, contact the maintainers through GitHub rather than escalating publicly in a thread.
6+
7+
## Our Commitment
8+
9+
In the interest of fostering an open, professional, and respectful community, contributors and maintainers of this project commit to making participation in this project a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
10+
11+
We commit to acting and interacting in ways that contribute to an open, technically constructive, and respectful environment.
12+
13+
## Our Standards
14+
15+
Examples of behavior that contributes to a positive environment include:
16+
17+
- Demonstrating empathy and respect toward other people
18+
- Giving and receiving constructive feedback professionally
19+
- Focusing discussion on the work, the code, and the documented behavior
20+
- Being clear about assumptions, tradeoffs, and technical constraints
21+
- Accepting responsibility for mistakes and correcting them promptly
22+
23+
Examples of unacceptable behavior include:
24+
25+
- Harassment, intimidation, threats, or personal attacks
26+
- Trolling, insulting, or derogatory comments
27+
- Public or private abuse directed at contributors, maintainers, or users
28+
- Deliberate misrepresentation of another person’s work or intent
29+
- Publishing someone else’s private information without explicit permission
30+
- Disruptive behavior that repeatedly derails technical discussion or collaboration
31+
32+
## Enforcement Responsibilities
33+
34+
Project maintainers are responsible for clarifying and enforcing these standards and may take appropriate and fair corrective action in response to behavior they deem inappropriate, threatening, offensive, or harmful.
35+
36+
Maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
37+
38+
## Scope
39+
40+
This Code of Conduct applies within all project spaces, including:
41+
42+
- GitHub issues
43+
- Pull requests
44+
- Discussions tied to the repository
45+
- Review comments
46+
- Project documentation and contribution threads
47+
48+
It also applies when an individual is officially representing the project in public spaces.
49+
50+
## Reporting
51+
52+
If you experience or witness behavior that violates this Code of Conduct, please contact the maintainers through GitHub rather than opening a public argument in an issue or pull request.
53+
54+
For now, use one of these paths:
55+
56+
- Open a GitHub Discussion if the matter can be handled publicly and constructively
57+
- Open an issue only if the problem is about repository process rather than a personal conduct concern
58+
- Contact a maintainer directly through GitHub if the matter should be handled more discreetly
59+
60+
Maintainers will review reports and respond as reasonably as possible based on availability and the information provided.
61+
62+
## Enforcement Guidelines
63+
64+
Maintainers may use the following types of responses when determining consequences for conduct violations:
65+
66+
### 1. Correction
67+
68+
For use when behavior is inappropriate but limited in scope.
69+
70+
Examples:
71+
72+
- A private or public clarification
73+
- A request to stop a specific behavior
74+
- A reminder of project expectations
75+
76+
### 2. Warning
77+
78+
For use when there is a pattern of inappropriate behavior or a more serious single incident.
79+
80+
Examples:
81+
82+
- A formal warning
83+
- Temporary limits on participation in discussions or reviews
84+
85+
### 3. Temporary Ban
86+
87+
For use when behavior causes sustained disruption or creates an unsafe environment.
88+
89+
Examples:
90+
91+
- Temporary suspension from issues, pull requests, or discussions
92+
- Temporary loss of contribution privileges
93+
94+
### 4. Permanent Ban
95+
96+
For use when a participant demonstrates a pattern of harmful behavior or a serious violation that makes continued participation inappropriate.
97+
98+
Examples:
99+
100+
- Permanent removal from project spaces
101+
- Blocking from future participation in the repository
102+
103+
## Attribution
104+
105+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, with modifications for this repository’s current reporting workflow.

0 commit comments

Comments
 (0)