1

У меня есть скрипт автоматической сборки для моего сервера сборки, который собирает приложения для Android. В рамках этого процесса сборки мне нужно извлечь текущие источники из репозитория, чтобы сделать релиз, и выполнить команду push в конце процесса сборки, чтобы обновить репозиторий с файлами, которые были изменены в процессе сборки сборкой. сервер.

Поэтому я должен построить следующий скрипт bash:

#!/bin/bash
clear
echo "Start of Pull command"
git pull
echo "End of Pull command"
echo "Start of incrementedRelease build"
gradle incrementedRelease
echo "End of incrementedRelease build"
echo "Start of Commit command"
git commit -a -m "======================== Commit to change Manifest Version ======================"
echo "End of Commit command"
echo "Start of Push command"
git push
echo "End of Push command"

Проблема в командах git push и git pull , git запрашивает пароль.

Теперь я попытался запустить эту команду, чтобы создать хранилище паролей, прежде чем вводить пароль для git.

  sudo git config --global credential.helper store

с командой sudo и без нее, но в следующий раз, когда я запускаю скрипт, он все равно запрашивает у меня пароль.

Может кто-нибудь сказать мне, как я могу сохранить пароль git, чтобы меня не запрашивали для каждой команды pull или push? желательно взять его из файла, а не использовать ssh, потому что у меня нет доступа к git-серверу для генерации ключей там ..

ОБНОВЛЕНИЕ: это папка, которую я имею в домашней папке пользователя:

Заранее спасибо.

2 ответа2

2

Установка опции конфигурации credential.helper для store должна определенно делать то, что вы просите. Вам все равно придется ввести свое имя пользователя и пароль хотя бы один раз, чтобы git-credential-store сохранил его в файле (по умолчанию ~/.git-credentials ), но тогда вам это больше не нужно.

Обратите внимание, что файл, хранящий ваши учетные данные, не будет зашифрован, и любой, кому удастся прочитать его, получит права пользователя на хранилище, поэтому может быть хорошей идеей установить пользователя только для чтения, особенно для этого, а не устанавливать глобально опция конфигурации credential.helper для store .

Если вы используете веб-интерфейс для своего хранилища (Github, Bitbucket, Gitlab и т.д.), У вас также может быть (предпочтительно, imho) возможность настроить SSH-ключ развертывания через настройки хранилища, чтобы обеспечить безопасный доступ только для чтения. доступ.

0

Предполагая, что вы работаете в Linux: В этом руководстве описывается, как установить ssh-соединение с удаленным сервером без ввода пароля.

Если вы выполните эти шаги, git больше не будет запрашивать ваши учетные данные.

Кроме того, вы сможете ssh из командной строки на ваш сервер без пароля.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .