Не удается запустить конвейер Gitlab-CI из SVN> переведенной ветви Git [Subgit]

#svn #gitlab-ci #pipeline #gitlab-ci-runner #subgit

#svn #gitlab-ci #конвейер #gitlab-ci-runner #subgit

Вопрос:

Мы используем Subgit для создания одностороннего зеркала из Subversion> Gitlab. Это работает отлично. У нас также есть несколько ветвей в этом репозитории, и мы можем вручную запустить конвейер gitlab из любой из этих ветвей.

Когда мы создаем новую ветку в Subversion, она переводится без проблем. Однако, когда мы пытаемся вручную запустить конвейер gitlab из этой недавно созданной ветви, он не отображается в списке ветвей. Если мы попробуем это с помощью Gitlab API, мы получим следующий ответ: {"message":{"base":["Reference not found"]}}

Новая ветвь является ответвлением основной ветви и содержит файл .gitlab-ci.yml. Что касается бегуна gitlab-ci / gitlab, ветка не существует. Однако в репозитории я вижу это, и он отлично обновляется при новом коммите. Я совершенно потерян, поскольку, насколько я знаю, если есть ветка, gitlab должен иметь возможность запускать конвейер из этой ветки.

Надеюсь, кто-нибудь сможет указать мне правильное направление. Любые идеи о том, почему это приветствуется.

Ответ №1:

Я инженер поддержки инструментов SubGit, я был бы рад помочь вам решить эту проблему, но она выглядит сложной, и для поиска причины и решения требуется расследование. Однако нам нужно будет проверить журналы SubGit, чтобы найти причину, поэтому я предлагаю открыть заявку на нашем форуме поддержки support.tmatesoft.com и загрузите все журналы SubGit из затронутого репозитория. Кроме того, вы можете отправить электронное письмо с журналами на support@subgit.com .

Ответ №2:

Это может быть связано с проблемой разрешения.

Если файлы, которые создает или изменяет SubGit, не могут быть прочитаны gitaly, вы столкнетесь с проблемами. Убедитесь, что вы запускаете SubGit от имени того же пользователя, что и gitaly (обычно ‘git’), и исправьте все проблемы с разрешениями.

Как только это будет сделано, запустите это в консоли Gitlab rails:

project = Project.find(<ID OF PROJECT>)

project.repository.branch_names (ваша ветвь не должна быть видна в выводе этой команды)

project.repository.expire_branches_cache
project.repository.branch_names (теперь ваша ветвь должна быть видна в выводе этой команды)