Skip to main content
Source Control

Connect GitLab to Odoo via OEC.sh

Wire GitLab (cloud or self-hosted) into your Odoo deploys.

Available on the Free for GitLab Cloud, Pro for self-hosted plan.

What this integration does

OEC.sh integrates with both GitLab Cloud and self-hosted GitLab. Push events from any GitLab instance trigger deploys, and OEC.sh posts pipeline statuses back so your merge request widget shows green. Self-hosted GitLab is supported on the Pro plan and above, which is why we see it most often in regulated industries.

The integration is configured from your OEC.sh project settings. If you have not created an account yet, you can start free and connect GitLab in under five minutes. Compare OEC.sh against the hosted Odoo.sh option if you are still deciding where to run Odoo.

Common use cases

1

Teams running self-hosted GitLab inside a private network or VPC who still want managed Odoo deploys

2

Regulated industries (healthcare, finance, public sector) where source code cannot live on github.com

3

Auto-deploy from GitLab CI pipelines using the OEC.sh Public API and a personal access token

4

Post deploy URLs and status back into the merge request widget for faster code review

How to set it up

Five steps, end to end. Most teams finish in under five minutes.

  1. 1
    For GitLab Cloud, open OEC.sh Settings, then Integrations, then Connect GitLab and complete OAuth
  2. 2
    For self-hosted GitLab, generate a Personal Access Token with api scope inside your GitLab instance
  3. 3
    In OEC.sh, choose 'Self-hosted GitLab', enter your instance URL, and paste the PAT
  4. 4
    Select the project, then map branches to environments (for example main to production)
  5. 5
    Add a CI job that calls the OEC.sh Public API on every successful pipeline, or rely on the push webhook

Example payload

Here is the exact format OEC.sh sends (or that you would send to OEC.sh, in the case of GitHub Actions, GitLab CI, Bitbucket Pipelines, and n8n).

deploy_oecsh:
stage: deploy
image: curlimages/curl:latest
only:
- main
script:
- |
curl -X POST https://api.oec.sh/v1/projects/$OECSH_PROJECT_ID/deploy \
-H "Authorization: Bearer $OECSH_API_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"environment\": \"production\",
\"commit\": \"$CI_COMMIT_SHA\",
\"branch\": \"$CI_COMMIT_REF_NAME\"
}"

For a full walkthrough including merge request previews and rollback, read our Odoo on GitLab CI/CD guide.

Plan availability

GitLab Cloud OAuth works on Free ($0/mo). Self-hosted GitLab connections (Personal Access Token + custom instance URL) require Pro ($39/mo) and above.

See full pricing

Frequently Asked Questions

No. GitLab Free works fine for the OAuth integration. Self-hosted GitLab works on any GitLab edition (CE or EE) as long as you can generate a Personal Access Token.
For GitLab Cloud, OEC.sh uses standard GitLab OAuth. For self-hosted GitLab, you generate a Personal Access Token with the api scope inside your instance and paste it into OEC.sh, along with the instance URL.
Yes. The commit status message, PR comment text, and deploy URL format are all configurable per repository under Settings, Integrations, GitLab. You can also disable status posting if you only want OEC.sh to listen for push events.
GitLab Cloud OAuth works on Free ($0/mo). Self-hosted GitLab connections (Personal Access Token + custom instance URL) require Pro ($39/mo) and above.
Yes. OEC.sh supports self-hosted GitLab on the Pro plan ($39/mo) and above. You provide your instance URL and a Personal Access Token with the api scope, and OEC.sh will reach your GitLab over the public internet or a configured private network. Your repository code is cloned into the build environment at deploy time and never persisted on our control plane beyond what the build needs.

Wire GitLab into your Odoo deploys today

Free tier included. No credit card required. Connect in under five minutes.