Gitlab runner Запрашиваемая ошибка URL: 403

В настоящее время я использую gitlab.com(а не локальную установку) с их многоканальным интегратором CI. Это отлично работает на одном из моих проектов, но не работает для другого.

Я использую 2012R2 для своего хоста с MSBuild версии 14.0.23107.0. Я знаю, что приведенная ниже ошибка показывает 403, которая является сообщением об отказе в доступе. Моя проблема заключается в том, чтобы изменить настройку разрешения.

Сообщение об ошибке:

Работа с gitlab-ci-multi-runner 1.5.3 (fb49c47) Использование оболочки исполнитель... Запуск на WIN-E0ORPCQUFHS...

Извлечение изменений...

Теперь HEAD находится на удаленном файловом сервере версии 6a70d96: доступ запрещен: не удалось получить доступ 'https://gitlab-ci-token:[email protected]/##REDACTED##/ADInactiveObjectCleanup.git/': Ошибка запрашиваемого URL: 403 Проверка 60ea1410 как Производство...

фатальный: ссылка не является деревом: 60ea1410dd7586f6ed9535d058f07c5bea2ba9c7 ОШИБКА: Ошибка сборки: выход статус 128

Файл gitlab-ci.yml:

variables:
  Solution: ADInactiveObjectCleanup.sln

before_script:
  #- "echo off"
  #- 'call "%VS120COMNTOOLS%\vsvars32.bat"'
  ## output environment variables (usefull for debugging, propably not what you want to do if your ci server is public)
  #- echo.
  #- set
  #- echo.

stages:
  - build
  #- test
  #- deploy

build:
  stage: build
  script:
  - echo building...
  - '"%ProgramFiles(x86)%\MSBuild\14.0\Bin\msbuild.exe" "%Solution%" /p:Configuration=Release'
  except:
  #- tags

Ответ 1

Чтобы решить эту проблему, мне пришлось добавить себя в качестве участника проекта. Это частное репо. Я не уверен, что это привело к тому, что бегун потерпел неудачу с другой настройкой разрешения или нет, но это очень возможно.

Эта помощь статья в gitlab описывает эту проблему.

При наличии новой модели разрешения могут быть случаи, когда сборка не удастся. Это, скорее всего, потому, что ваш проект пытается доступ к другим источникам проекта, и у вас нет соответствующих разрешения. В журнале построения найдите информацию о 403 или запрещенных сообщений доступа.

В качестве администратора вы можете проверить, что пользователь является членом группы или проекта, к которому они стремятся получить доступ. to, и вы можете олицетворять пользователя, чтобы повторить неудачную сборку в чтобы убедиться, что все правильно.

На странице проекта щелкните шестеренку настроек и выберите участников. Добавьте себя (или пользовательские сборки) в качестве участника проекта. Я использовал роль "Мастер", но, исходя из этого документа, вы, вероятно, можете использовать роль "Репортер" как минимум. Роль репортера - это наименьшая привилегия, которая все еще имеет доступ к "Pull project code". Это удалило мою ошибку 403 и позволило мне продолжить.

Ответ 2

Похоже, вам нужно добавить команду add cd, чтобы напечатать текущий каталог в вашем before_script. Затем исправьте права доступа для доступа к родительскому элементу этой папки. Если вы установили свой gitlab runner на c:\glrunner, вероятно, вам нужно исправить разрешение c:\glrunner\builds.

Вторая проблема заключается в том, что вам может потребоваться принудительно установить новый клон git, удалив папку builds.

Возможно, вы захотите изменить учетные данные для входа в службу запуска gitlab на gitlabuser, которая должна быть учетной записью без прав администратора, которая может иметь меньше привилегий, чем учетная запись LOCAL SYSTEM, которую использует ваш исполнитель gitlab по умолчанию.

Если вы хотите знать, кто вошел в систему, добавьте set в ваш before_script, и вы получите дамп переменной среды. Из этого вы можете увидеть, какая учетная запись вошла в систему, где находится ее USERPROFILE и другие вещи.

Ответ 3

Я также столкнулся с этой проблемой

fatal: unable to access 'http://gitlab-ci-token:xxxx.git':The Requested URL returned error:403
ERROR: Job Failed: command terminated with exit code 1

но кажется, что причина вышеуказанного ответа не та, потому что моя учетная запись является администратором, ci job извлекает проект и сообщает об ошибке 403, поскольку учетная запись администратора не является участником проекта, добавленным в качестве проекта Участники больше не будут сообщать об этой ошибке.

ci_build_permissions