Thanks for your interest in improving Payback Helper Script! This document describes how changes get into main.
- Create a branch from
mainnamed<type>/<short-kebab-description>, e.g.fix/stuck-loading-stateorfeat/progress-bar. - Make your changes and commit them following the commit conventions.
- Open a pull request against
mainand fill in the PR template. - CI must pass and all review conversations must be resolved before merging.
- PRs are merged with squash merge only. The PR title becomes the commit subject on
main.
main is protected: direct pushes, force pushes and branch deletion are disabled for everyone, including admins.
This project follows Conventional Commits 1.0.0.
<type>(<optional scope>): <subject>
<optional body>
<optional footer(s)>
Types
| Type | Use for |
|---|---|
feat |
A new user-facing feature |
fix |
A bug fix |
docs |
Documentation only (README, CONTRIBUTING, comments) |
style |
Formatting, whitespace; no behavior change |
refactor |
Code change that neither fixes a bug nor adds a feature |
perf |
Performance improvement |
test |
Adding or fixing tests |
build |
Build tooling, dependencies |
ci |
CI configuration (.github/workflows) |
chore |
Repository maintenance that does not fit any type above |
revert |
Reverting a previous commit |
Scopes (optional): activation, ui, metadata, repo.
Rules
- Write in English, in the imperative mood: "add", not "added" or "adds".
- Subject line: at most 72 characters, lowercase first letter, no trailing period.
- Separate the body from the subject with a blank line; explain what and why, not how.
- Mark breaking changes with
!after the type/scope and aBREAKING CHANGE:footer. - Reference issues in the footer:
Closes #12.
Examples
feat(ui): show remaining coupon count on the floating button
fix(activation): wait for MUI loading state to clear before next click
docs: add installation instructions for Violentmonkey
chore(metadata)!: rename script file to payback-helper.user.js
- Title: must follow the same Conventional Commits format (checked by CI).
- Scope: one logical change per PR; keep unrelated refactors separate.
- Description: fill in the template: summary, changes, how you tested it.
- Testing: there is no automated browser test, so describe your manual test on
https://www.payback.de/coupons.
The script uses Semantic Versioning through the @version metadata key. Tampermonkey only offers an update when @version increases, so any PR that changes the script's behavior must bump it:
- MAJOR: breaking change in behavior or a changed
@matchscope - MINOR: new feature
- PATCH: bug fix or metadata-only change
Avoid changing @name or @namespace: userscript managers use them to identify the script. Existing installs pick up the change through auto-update, but installing manually from the link again can create a duplicate script.
node --check payback-helper.user.js