Skip to main content

Release

oca-port-jarsa

oca-port-jarsa is a Jarsa-maintained fork of the original oca-port tool.

It is designed for enterprise Odoo migrations using both GitHub and GitLab repositories, with automatic platform detection, GitLab Merge Request support and native integration with pre-commit-vauxoo.


Key Features

  • Automatic SCM detection (GitHub / GitLab) using remote URL
  • Native GitLab Merge Request lookup (gitlab.com and self-hosted)
  • Native GitHub Pull Request lookup
  • Automatic hook selection:
    • pre-commit for GitHub projects
    • pre-commit-vauxoo for GitLab projects
  • Automatic hook installation for GitLab using pre-commit-vauxoo --install
  • Multiple GitLab instances supported (per-domain tokens)
  • pipx-ready installation
  • CI/CD friendly
  • JSON output compatible with original oca-port

Platform Auto Detection

The platform is automatically detected using the target remote URL:

Remote URL contains Platform
github GitHub
gitlab GitLab
(no github keyword) GitLab (default for self-hosted)

Manual override is also available:

oca-port-jarsa --platform gitlab ...
oca-port-jarsa --platform github ...

Installation

Using pipx (recommended)

pipx install oca-port-jarsa

Development installation

git clone https://github.com/Jarsa/oca-port-jarsa.git
cd oca-port-jarsa
pipx install .

Authentication Setup

GitHub Token

Used only when operating on GitHub repositories.

export GITHUB_TOKEN=ghp_xxxxxxxxx

GitLab Tokens (multi-instance support)

oca-port-jarsa supports multiple GitLab instances using domain-based environment variables.

Define tokens in your shell:

export GITLAB_TOKEN_GITLAB_COM="xxxx"
export GITLAB_TOKEN_GIT_JARSA_COM="xxxx"
export GITLAB_TOKEN_GIT_VAUXOO_COM="xxxx"

Naming rule:

GITLAB_TOKEN_<DOMAIN>

Where:

https://git.jarsa.com  -> GITLAB_TOKEN_GIT_JARSA_COM
https://git.vauxoo.com -> GITLAB_TOKEN_GIT_VAUXOO_COM
https://gitlab.com     -> GITLAB_TOKEN_GITLAB_COM

Usage

Basic syntax

oca-port-jarsa <source> <target> <module_path> [options]

Example — Migration preview (dry run)

oca-port-jarsa origin/16.0 origin/18.0 stock_move_auto_assign --dry-run --verbose

Execute migration

oca-port-jarsa origin/16.0 origin/18.0 stock_move_auto_assign

Custom destination branch

oca-port-jarsa origin/16.0 origin/18.0 stock_move_auto_assign \
--destination jarsa-dev/18.0-mig-stock_move_auto_assign

Using subfolder modules

oca-port-jarsa origin/main origin/18.0-mig \
--source-version=16.0 \
--target-version=18.0 \
./addons/custom/MY_MODULE \
--destination jarsa-dev/18.0-mig-MY_MODULE

Hook Execution Behavior

GitHub projects

Uses the standard pre-commit workflow:

pre-commit install
pre-commit run

GitLab projects

Uses Vauxoo workflow:

pre-commit-vauxoo --install
pre-commit-vauxoo

Existing PR / MR Detection

GitHub

Automatically searches existing Pull Requests using GitHub API.

GitLab

Automatically searches open Merge Requests:

  • Target branch match
  • Module name match
  • Supports gitlab.com and self-hosted instances

Migration Mode

Exit codes:

Code Meaning
100 Addon can be migrated
110 PRs / commits available for porting

JSON Output API Mode

import json
import oca_port

app = oca_port.App(
    source="origin/16.0",
    target="origin/18.0",
    addon_path="stock_move_auto_assign",
    repo_path="/home/odoo/repos/stock-logistics-warehouse",
    output="json",
    fetch=True,
    github_token="<GITHUB_TOKEN>",
)

result = app.run()
data = json.loads(result)

print(data)

Release Flow

git tag v1.0.0
git push origin v1.0.0

Origin

Based on the original OCA tool: https://github.com/OCA/oca-port

Maintained by Jarsa Sistemas.

Release files for oca-port-jarsa 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oca-port-jarsa 1.0.2
File Size Uploaded
oca_port_jarsa-1.0.2.tar.gz 50.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oca-port-jarsa 1.0.2
File Interpreter ABI Platform
oca_port_jarsa-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 107.0 kB

Release files / oca_port_jarsa-1.0.2.tar.gz

Download URL oca_port_jarsa-1.0.2.tar.gz
Size 50.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d0e248b66dfcf160d109fa0cb82dc1f484360e85f0ab1c13235493d2b8dc4c08
BLAKE2b-256 checksum
How to use checksums
b456ac7df2b66e86dd2843b02f4570746f3a9697ee2d2c7ed152320aa8ddf928
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 4, 2026.

Transparency log

Release files / oca_port_jarsa-1.0.2-py3-none-any.whl

Download URL oca_port_jarsa-1.0.2-py3-none-any.whl
Size 56.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6330b6aac98cb2c3a1bee2adaa2fb04eb93cba38b387dcce077b7686ee4db1f8
BLAKE2b-256 checksum
How to use checksums
8620d528ec60e2d4448f725e604bbd6be1e282604122e9c1c6ed901516217fb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page