English · Português
Security fixes are applied to the default development branch (main) and released as tagged versions when appropriate. Use the latest release or main for the most up-to-date fixes.
If you discover a security issue in this repository (code, scripts, or documented install paths):
- Prefer GitHub Security Advisories (private report to maintainers), if enabled on the repo.
- Alternatively, contact the maintainers through the contact options listed in
pyproject.toml(authors / project metadata) or via an issue without including exploit details publicly until fixed.
Please include: affected component, steps to reproduce, and impact assessment when possible.
Do not open a public issue with exploit details before a fix is coordinated.
This project is open source (AGPL-3.0). The following must never be committed, pasted into issues/PRs, or embedded in documentation as real values:
- API keys (OpenAI, Groq, OpenRouter, Anthropic, cloud providers, etc.)
- Passwords, tokens, OAuth secrets, private SSH keys, or
.pem/ certificate private material - Contents of local tool auth files (e.g. OpenCode / IDE credential stores under your home directory)
- Personal or institutional credentials
Use instead:
- Environment variables (e.g. load from a local
.envthat is gitignored — see.gitignore) - Placeholders in docs:
your_api_key_here,export MY_API_KEY=...without real values - GitHub Encrypted Secrets for CI only
If you accidentally committed a secret:
- Revoke/rotate the credential immediately at the provider.
- Remove it from git history if it was ever pushed (e.g.
git filter-repoor GitHub support) — a new commit alone is not enough if history is public.
- Lockfile
uv.lockis committed for reproducible installs. - Prefer
uv add/uv syncover ad-hocpip installin documentation for this repo. - When Dependabot reports a vulnerable package, update both the active
pyproject.tomland allpyproject_*.tomlplatform templates if the dependency is declared there, then regenerateuv.lock. - If a patched package version conflicts with an unused dependency, prefer removing the unused dependency over keeping a vulnerable transitive constraint.
Recommended verification after dependency security updates:
uv lock --check
uv sync
uv pip check
uv run pytest tests/ -qVersões suportadas: correções de segurança entram em main e em releases quando fizer sentido. Use a versão mais recente.
Reportar vulnerabilidade: use Security Advisories no GitHub ou contacto dos autores em pyproject.toml. Não divulgar publicamente detalhes de exploração antes de coordenação com os mantenedores.
Segredos: nunca commitar chaves de API, palavras-passe, tokens ou ficheiros de autenticação locais (ex.: credenciais de ferramentas no diretório home). O projeto é AGPL e público — trate qualquer chave como comprometida se tiver sido exposta e rode-a no fornecedor.
Se expuser uma chave por engano: revogue-a de imediato e limpe o histórico do Git se já tiver sido enviado para o remoto.
Dependabot: quando houver alerta de pacote vulnerável, atualize o pyproject.toml ativo e todos os templates pyproject_*.toml que declaram a dependência, regenere o uv.lock, rode uv pip check e os testes relevantes. Se a versão corrigida conflitar com uma dependência sem uso no código, remova a dependência sem uso em vez de manter a restrição vulnerável.
Consulte também CONTRIBUTING.md.