stderr: fatal: не удалось найти удаленный ref $GERRIT_REFSPEC

До того, как кто-то меня застрелит... Я просмотрел все сообщения, в которых есть эта ошибка, но они, похоже, возникают из-за другой проблемы, я не смог получить никакой существенной информации. Ниже приведены ошибки, с которыми я сталкиваюсь в журнале опроса git...

  1. Я не имею понятия об ошибке № 1, пожалуйста, предоставьте вводные данные

  2. Для этого я прочитал другие вопросы, которые $GERRIT_REFSPEC заполняется динамически, когда есть триггер gerrit, но я не понимаю, почему я продолжаю видеть это в журнале опроса git. Как я могу это исправить?


Сообщения об ошибках:

  1. ОШИБКА: проблема с извлечением из источника / источника - может быть недоступна. Продолжая в любом случае

  2. hudson.plugins.git.GitException: Команда "/usr/bin/git fetch -t ssh://company.com:29418/platform/vendor/proprietary/mla.git $GERRIT_REFSPEC" вернула код состояния 128: stdout: stderr: Неустранимый: Не удалось найти удаленный реф $GERRIT_REFSPEC

4 ответа

  • Перейдите на страницу "Конфигурация задания" и выполните поиск, чтобы установить флажок " Эта сборка параметризирована"
  • Затем установите имя в GERRIT_REFSPEC
  • и значение по умолчанию для refs/глав / мастер.

Мне потребовалось некоторое время, чтобы найти, как добавить этот строковый параметр, упомянутый в руководстве к плагину Gerrit Trigger. Я использую Jenkins 1.567 с Gerrit Trigger 2.11.1.

По состоянию на май 2016 года эта ошибка может быть результатом исправления для SECURITY-170, представленного в Jenkins 2.3 или 1.651.2.

Из вики:

В сообщении по безопасности в мае 2016 года было объявлено об уязвимости (SECURITY-170 / CVE-2016-3721), в результате которой злоумышленники могут потенциально использовать тот факт, что некоторые плагины Jenkins позволяют определять произвольные параметры сборки, которые, в свою очередь, внедряются в среду сборки.,

Исправление для этой проблемы, которая впервые была включена в версии Jenkins 1.651.2 и Jenkins 2.3, означает, что только параметры сборки, которые были явно определены в конфигурации задания, будут доступны по умолчанию во время сборки. Любые другие произвольные параметры, добавленные в сборку с помощью плагинов, будут недоступны по умолчанию.

Поскольку существует ряд плагинов, которые полагаются на поведение в старых версиях Jenkins, обновление до 1.651.2 или 2.3 означает, что некоторые варианты сборки могут быть нарушены.

Одним из затронутых плагинов является Gerrit Trigger. Проблема, которую вы должны следить за обновлениями, здесь.

Тем не менее, обратите внимание, что решение Rado для определения GERRIT_REFSPEC Параметр вручную в конфигурации сборки может временно решить эту проблему, если вы строите только одну ветку от Gerrit.


Обходной путь доступен путем добавления следующего JAVA_ARGS в /etc/default/jenkins в Ubuntu.

JAVA_ARGS="$JAVA_ARGS -Dhudson.model.ParametersAction.keepUndefinedParameters=true"

Вы также можете добавить, какие переменные должны быть разрешены

JAVA_ARGS="$JAVA_ARGS -Dhudson.model.ParametersAction.safeParameters=GERRIT_REFSPEC,GERRIT_BRANCH

Похоже, вы запускали сборку Jenkins Gerrit Trigger вручную? На странице запуска написано:

Using "Build Now"
[..]
Add a String parameter called GERRIT_REFSPEC with the default value refs/heads/master

https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger

После решения этой проблемы, если Jenkins все еще не извлекает последнюю версию кода (без слияния), необходимо добавить дополнительные действия -> Стратегия выбора сборки -> Gerrit Trigger

Ссылка: Спасибо Фабиану

введите описание изображения здесь

Другие вопросы по тегам