GitHub Webhook: учетные данные не кэшируются для www-data - PullRequest
0 голосов
/ 07 мая 2020

Я прочитал эту ветку для правильной настройки кеширования учетных данных.

Все работает без сбоев, пока я не почувствовал необходимость настроить GitHub Webhook .

Итак, я поместил сценарий в папку /bash_scripts/.., которая правильно назначена для www-data рекурсивно.

ls -l вывод:

drwxr-xr-x   2 www-data root  4096 May  7 01:31 bash_scripts

И это содержимое одного из bash скриптов для выполнения pull

#!/bin/bash
cd /var/www/beta && git pull origin master

Затем у меня есть PHP конечная точка, вызывающая shell_execute в приведенном выше сценарии:

PHP> shell_exec('/bash_scripts/beta-github-hook.sh');

И я бился головой около часа, пытаясь выяснить, почему это не выполнялось. Причина?

Учетные данные для Репозиторий GitHub доступ не сохраняется для пользователя www-data. Это команда, которую я использовал для репликации shell_exec на терминале, чтобы получить вывод проблемы:

root@vps806928:/# su --shell /bash_scripts/beta-github-hook.sh www-data
Username for 'https://github.com':

С другой стороны, если я выполню сценарий как root , git использует сохраненные учетные данные:

root@vps806928:/# /bash_scripts/beta-github-hook.sh
From https://github.com/redacted
 * branch            master     -> FETCH_HEAD
Already up to date.
root@vps806928:/#

Как я могу сделать Git сохранить учетные данные для www-data?

EDIT

Единственный обходной путь, который я нашел, - это отредактировать сценарий bash и явно записать пароль для репозитория, из которого нужно извлечь:

git pull https://user:passwd@github.com/user/repo.git master

Хотя это обходной путь, я все еще ищу ответ на проблему под вопросом.

...