Git: Как заставить пользователя сделать пуш в ловушке после получения? - PullRequest
0 голосов
/ 21 декабря 2011

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

Как получить пользователя, чтобы я мог предотвратить сборку Git при слиянии hudson?

Iпробовал ниже, но $ user не был установлен:

$user = ENV['USER']

1 Ответ

1 голос
/ 21 декабря 2011

Ну, если вы используете ssh для подключения, вы можете использовать $ USER, так как это похоже на работу. Если это не работает на вашем ssh, просто запустите «ssh someuser @ your-git-address env», чтобы получить список переменных среды, так как все они будут работать.

Мой сценарий, запрещающий пользователям выдвигать изменения в мастер (НО теперь мне нужно выяснить, как они могут это исправить, чтобы они могли чистить и извлекать свои изменения из мастера, но перемещая свои изменения в другую ветку или то) ...

#!/bin/sh
# <oldrev> <newrev> <refname>
# update a blame tree
while read oldrev newrev ref
do
    echo "STARTING [$oldrev $newrev $ref]"

if [ $ref == "refs/heads/master" ] && [ $USER != "hudson" ]
then
    echo "YOU CANNOT COMMIT STUFF TO MASTER BRANCH"
    echo "TO CORRECT THIS run"
    echo "git reset --soft HEAD^"
    echo "git branch -c <branch name> then run"
    echo "git push <reponame> <branch name>"
    echo "and hudson will take and push to master IF it passes the tests"
    exit 1;
else
    echo "This is hudson, allowing commit to master"
fi

done

аналогичный ответ здесь, но с двумя сценариями ..

Как я могу помешать себе совершить переход в основную ветку в git?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...