odoo-readme-bot
Automatically detects outdated README files in Odoo custom module repositories and regenerates them using the Claude API. Designed to run as a scheduled GitLab CI job (once per day) on client repositories managed by Jarsa.
Features
- SHA-based tracking — only processes modules that changed since the last documented commit
- Two-model cost optimization — Claude Haiku decides if update is needed, Claude Sonnet generates
- Bilingual output — technical English + functional Spanish per module
- CI-friendly — exit code 42 when READMEs were updated, enabling downstream steps
- Dry-run mode — analyze without writing files or pushing
Installation
pip install odoo-readme-bot
Usage
export ANTHROPIC_API_KEY="sk-ant-..."
# From any Odoo client repo root:
odoo-readme-bot run
# Dry run (no writes, no git ops):
odoo-readme-bot run --dry-run
# Force update all modules:
odoo-readme-bot run --force
# Single module only:
odoo-readme-bot run --module path/to/module_name
GitLab CI Integration
auto-update-readme:
stage: auto-docs
image: python:3.11-slim
script:
- pip install odoo-readme-bot -q
- odoo-readme-bot run
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
allow_failure: true
Required CI/CD variables:
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Claude API key (protected, masked) |
GITLAB_TOKEN |
Token with write_repository scope (protected, masked) |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success, no changes needed |
| 42 | Success, one or more READMEs updated and pushed |
| 1 | Unrecoverable error |
License
MIT — Jarsa
Release files for odoo-readme-bot 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odoo_readme_bot-1.2.2.tar.gz | 32.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_readme_bot-1.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.4 kB
Release files / odoo_readme_bot-1.2.2.tar.gz
| Download URL | odoo_readme_bot-1.2.2.tar.gz |
|---|---|
| Size | 32.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
41429c6852822fc7fbd77bcd3df954cee61e4d83b50af67fc828fad991a7890f
|
|
BLAKE2b-256 checksum How to use checksums |
4693efb8f3ab17971aadeb8b2d2bb839b47c20d0e82b1699737a7c95a3411588
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.
Transparency logRelease files / odoo_readme_bot-1.2.2-py3-none-any.whl
| Download URL | odoo_readme_bot-1.2.2-py3-none-any.whl |
|---|---|
| Size | 24.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be13809bbad47375c2239920c03de974ab7de9d15fc0bcdf39c7847a1a2510ec
|
|
BLAKE2b-256 checksum How to use checksums |
088a44ffb1c15982333148e6949e8257740175d7356baadedb5799ef8e5c39b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.
Transparency log