mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-10-23 06:12:19 +00:00
CONTRIBUTING covers dev setup, reproducing all six CI jobs locally, and the house rules a newcomer would otherwise trip over: append-only migrations, config changes needing config.ini.example updates, new docs pages needing an mkdocs nav entry, the ruff pin, and PRs targeting dev. SECURITY routes reports through GitHub private vulnerability reporting rather than an email address, with a 10-day acknowledgement and 30-day assessment window. Scope names what this codebase actually exposes, and explicitly puts the MeshCore protocol, RF-layer attacks, and running the viewer without a password out of scope. Issue forms collect the details every radio bug report needs — version, transport, hardware, install method — and the feature form asks up front whether a proposal spends mesh airtime. Blank issues stay enabled since Discussions is not turned on, so they are the only route for questions. Dependabot covers GitHub Actions weekly, where a stale or compromised action is a real supply-chain risk. pip and npm are grouped and monthly: runtime deps are >= ranges, so version updates are mostly floor bumps, and security fixes arrive through Dependabot alerts regardless.
48 lines
1.5 KiB
YAML
48 lines
1.5 KiB
YAML
name: Feature request
|
|
description: Suggest a new command, service plugin, or capability
|
|
labels: ["enhancement"]
|
|
body:
|
|
- type: markdown
|
|
attributes:
|
|
value: |
|
|
Before filing: if this is specific to your own deployment, a local plugin
|
|
may be a better fit than an upstream change — see
|
|
[docs/local-plugins.md](https://github.com/agessaman/meshcore-bot/blob/main/docs/local-plugins.md).
|
|
|
|
- type: textarea
|
|
id: problem
|
|
attributes:
|
|
label: What problem would this solve?
|
|
description: Describe the situation you are trying to handle, not just the feature.
|
|
validations:
|
|
required: true
|
|
|
|
- type: textarea
|
|
id: proposal
|
|
attributes:
|
|
label: Proposed behavior
|
|
description: What should the bot do? Include example command syntax and replies if relevant.
|
|
validations:
|
|
required: true
|
|
|
|
- type: dropdown
|
|
id: airtime
|
|
attributes:
|
|
label: Does this spend mesh airtime?
|
|
description: >
|
|
Commands and scheduled announcements consume shared, unlicensed spectrum.
|
|
Anything that transmits needs to justify its cost and default conservatively.
|
|
options:
|
|
- "No — web viewer, config, or internal only"
|
|
- "Yes — sends a reply when a user asks for it"
|
|
- "Yes — transmits on a schedule or unprompted"
|
|
- "Not sure"
|
|
validations:
|
|
required: true
|
|
|
|
- type: textarea
|
|
id: alternatives
|
|
attributes:
|
|
label: Alternatives considered
|
|
description: Existing commands, config options, or local plugins you have already tried.
|