Capistrano игнорирует файл netrc

У меня есть веб-приложение PHP, которое я использую Capistrano для развертывания. Моя компания перешла от использования локального репозитория git к хранению нашего кода на Github.

Из-за некоторых не зависящих от нас проблем мы не можем использовать SSH для клонирования репозитория Github. Вместо этого мы должны использовать https. Мы настроили пользователя только для чтения в нашей учетной записи Github, чтобы мы могли использовать файл netrc для извлечения из Github через HTTPS без запроса имени пользователя и пароля.

Это работает так, как и ожидалось в командной строке, однако из скрипта Capistrano все равно запрашивает имя пользователя и пароль. Вот мой deploy.rb для моего скрипта Capistrano:

require 'capistrano/php'

set :application, "app"
set :repository,  "https://github.com/mycompany/app.git"
set :deploy_to, "/var/www/html/app"

set :scm, :git
set :deploy_via, :remote_cache
set :copy_exclude, %w(.git)
set :git_enable_submodules, true
default_run_options[:pty] = true
set :use_sudo, true

role :web, "webbox01"
role :app, "webbox01"

Снова, делая git clone https://github.com/mycompany/app.git из командной строки напрямую работает нормально, но в deploy.rb это не получается. Если я вручную введу имя пользователя и пароль пользователя в URL, как это https://rouser:password@github.com/mycompany/app.git скрипт Capistrano работает отлично.

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

Заранее спасибо за любой совет, который вы можете предложить.

1 ответ

Решение

Перейдите на серверы, на которых вы ранее развернули, с помощью capistrano и отредактируйте кэшированный файл git config в общем каталоге capistrano.

общее / кэшируются копирование /.git / конфигурации

Удалите любое оставленное имя пользователя в исходной части, чтобы ваш URL выглядел следующим образом: https://github.com/mycompany/app.git

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