Skip to content

Addons

oops-addons-add

Usage:

oops-addons-add [OPTIONS] ADDONS_LIST

Options:

Name Type Description Default
--no-commit boolean If set, created symlinks will not be committed. False
--help boolean Show this message and exit. False

Examples:

Add mass_editing and web_notify from any tracked submodule:

oops-addons-add mass_editing,web_notify

Stage the symlinks without committing:

oops-addons-add sale_management --no-commit

oops-addons-compare

Compare a provided addon list against the local root addons.

Prints addons missing locally (prefixed with -) and extra local addons not in the list (prefixed with +). With --delete, extra local symlinks are removed.

Usage:

oops-addons-compare [OPTIONS] ADDONS_LIST

Options:

Name Type Description Default
--delete boolean Remove extra local symlinks not in the provided list. False
--no-commit boolean Do not commit changes False
--help boolean Show this message and exit. False

Examples:

Check which addons from a list are missing or extra in the repo root:

oops-addons-compare "sale,purchase,account"

Remove extra local symlinks not in the provided list:

oops-addons-compare "sale,purchase" --delete

Compare against a file and skip the commit:

oops-addons-compare "$(cat addons.txt)" --delete --no-commit

oops-addons-download

Download and extract addons from a GitHub repository branch.

Fetches the branch as a ZIP archive, extracts addon directories into the working directory, and adds them to .gitignore (unless --no-exclude is passed). A GitHub token can be provided via --token or the TOKEN / GH_TOKEN / GITHUB_TOKEN environment variables.

Usage:

oops-addons-download [OPTIONS] URL BRANCH

Options:

Name Type Description Default
--token text N/A None
--addons text List of addons separated by commas None
--exclude / --no-exclude boolean N/A True
--help boolean Show this message and exit. False

Examples:

Download all addons from a branch:

oops-addons-download https://github.com/OCA/server-ux.git 18.0

Download only specific addons:

oops-addons-download https://github.com/OCA/server-ux.git 18.0 --addons mass_editing

Use a GitHub token for private repositories:

oops-addons-download https://github.com/OCA/server-ux.git 18.0 --token $GH_TOKEN

oops-addons-list

List all addons discovered across submodules with their metadata.

Displays a table with addon name, symlink flag, submodule, upstream branch, PR flag, version, and author. Output can be formatted as text, JSON, or CSV.

Usage:

oops-addons-list [OPTIONS]

Options:

Name Type Description Default
--format choice (text | json | csv) Output format text
--init / --no-init boolean Run 'git submodule update --init' for submodules whose path is missing on disk False
--name, -n text Limit to these submodule names (as in .gitmodules) None
--symlinks-only boolean Show only addons that are symlinked at the repo root False
--all boolean List all addons, including those not in submodules (i.e. in the root of the repo) False
--help boolean Show this message and exit. False

Examples:

Display the addon table:

oops-addons-list

Export as JSON for scripting:

oops-addons-list --format json

Limit to a single submodule:

oops-addons-list -n apikcloud/apik-addons

oops-addons-materialize

Replace addon symlinks with a real copy of the addon directory.

Useful when you need to modify a third-party addon locally. The symlink is removed and its target directory is copied in place. Only symlinks are processed; real directories are skipped.

Usage:

oops-addons-materialize [OPTIONS] ADDONS

Options:

Name Type Description Default
--dry-run boolean Show what would happen, do nothing. False
--no-commit boolean Do not commit changes False
--help boolean Show this message and exit. False

Examples:

Preview what would be copied without making changes:

oops-addons-materialize my_addon --dry-run

Replace a symlink with a real directory and commit:

oops-addons-materialize my_addon

oops-addons-diff

Show modified Odoo addons between a base ref and HEAD.

By default compares against the latest tag, or the penultimate tag when HEAD is already at the latest tag. The base can be overridden with --tag, --ref, or --commits. With --save, writes a migration script file.

Usage:

oops-addons-diff [OPTIONS]

Options:

Name Type Description Default
--tag text Compare against this specific tag. None
--ref text Compare against any ref or SHA. None
--commits integer Compare against HEAD~N. None
-s, --save boolean Write the command in the migration file. False
--no-commit boolean Do not commit changes False
--help boolean Show this message and exit. False

Examples:

Show modified addons since the latest tag:

oops-addons-diff

Compare against a specific tag:

oops-addons-diff --tag v1.2.0

Compare against the last 5 commits:

oops-addons-diff --commits 5

Write the migration script to migrate.sh and commit:

oops-addons-diff --save

Write the migration script without committing:

oops-addons-diff --save --no-commit