Перейти к содержанию

Ссылки на репозитории и локальные каталоги

Такие ссылки используются в поле developing_project, в списке dependencies, в odoo_git_link и в параметре --init.

Три способа указать источник кода

Способ Пример Когда уместно
HTTPS https://github.com/org/repo.git Публичные репозитории, машины без SSH-ключа
SSH git@github.com:org/repo.git Повседневная работа, приватные репозитории
Локальный каталог file:///home/user/my_addons Код только на диске, без удалённого git

После адреса через пробел можно указать ветку и при необходимости коммит:

git@github.com:org/odoo.git 19.0
git@github.com:org/odoo.git 19.0 a1b2c3d4e5f6789abcdef0123456789abcdef012

Почему у file:// три слэша подряд

Адрес файла в нотации URL устроен так: схема, двоеточие, два слэша, затем путь.

  • file:// — схема «файл на диске» (два слэша после двоеточия — норма для URL).
  • На Linux и macOS абсолютный путь начинается с /.
  • В итоге получается file:// + /home/user/project = file:///home/user/projectтри слэша подряд.

Это не опечатка. Запись file://home/user без третьего слэша для абсолютного пути на Unix неверна.

В подсистеме WSL на Windows для каталогов внутри Linux используйте тот же вид: file:///home/user/....

Как odpm обрабатывает ссылку

Тип Действие odpm
HTTPS, SSH, git@ Клонирование в каталог ODOO_PROJECTS_DIR из .env, затем выбор ветки/коммита по правилам фиксации версий
file:// Клонирования нет — используется каталог как есть по указанному пути

Для file:// в файле фиксации версий записывается отпечаток содержимого каталога, а не хеш git — для общей сборки надёжнее удалённый репозиторий.

${VAR} в ссылках manifest

В odpm.json и в developing_project можно писать пути и хосты через переменные, чтобы один manifest в git подходил разным машинам:

"odoo_git_link": "file://${ODOO_PLATFORM_DIR}",
"dependencies": ["file://${OCA_WEB_PATH}"],
"developing_project": "file://${DEVELOPING_PROJECT_DIR}"

Значения задают в project .env или в окружении процесса (CI). После раскрытия odpm работает с обычной ссылкой file:// или git URL. Подробнее: odpm.json, переменные .env.

Где указывать в конфигурации

  • Разрабатываемый проект: --init <ссылка> или developing_project в user_settings.json.
  • Платформа Odoo: odoo_git_link в odpm.json или --odoo-git-link при инициализации.
  • Зависимости: массив dependencies в odpm.json.

Практические советы

  • Для команды в общем git храните адреса удалённых репозиториев, а не file://.
  • file:// — для локальной работы, монорепозитория или кода без публикации на сервер.
  • Для приватного GitHub/GitLab настройте SSH (~/.ssh/config); переменная PATH_TO_SSH_KEY в .env — только если стандартный SSH недоступен (часто на машине сборки).