Как получить последние сообщения фиксации в push-уведомлении и проверить, что сообщение начинается с определенного шаблона регулярного выражения?

У меня два вопроса: 1. Попробуйте проанализировать сообщения git commit, но egrep выполняется как отдельная команда. Возвращаемый результат всегда неверен. Допустимое сообщение может быть "a-1"

stage('test') {
        steps {           
            script {
                def result = sh(script: "git log -1 --pretty=%B | egrep '(([a-zA-Z ]+-\\d+[, \t\n]*)+)(.*)'", returnStatus: true)

                if (result == 0) {
                    echo "continuous building..."
                } else {
                    echo "Incorrect commit message prefix. Aborting"
                    exit 1
                }
            }

        }
    }

Результат запуска. Здесь он показывает, что процессор разделил '|' на две команды и выполняются отдельно. Как я могу сделать это обратно в один?

[Microscope_PR-2-I4FUBH4BH2EXP7UKWZIUYPCCCB] Running shell script

+ git log -1 --pretty=%B

+ egrep '(([a-zA-Z ]+-\d+[, \t\n]*)+)(.*)'
  1. Кроме того, перед git push может быть несколько коммитов. Как проверить все коммиты, а не только последний? «git log -1», возвращает только последний коммит, но не все до git push. Пример

    >git commit -a -m "test1"
    >git commit -a -m "test2"
    >git commit -a -m "test3"
    >git push origin HEAD
    

Надеюсь использовать git log или другую команду для получения

    test1
    test2
    test3

person Lazyworm    schedule 27.09.2018    source источник
comment
Вы пробовали вариант --no-pager git?   -  person mpasko256    schedule 28.09.2018
comment
Пробовал, результат тот же.   -  person Lazyworm    schedule 28.09.2018
comment
Не знаете, может ли stackoverflow.com/users/607035/csalazar добавить к этому немного цвета? Заголовок stackoverflow.com/questions/41140255/   -  person Lazyworm    schedule 02.10.2018