проблема в использовании вложенного репозитория git в jenkins - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю два локальных репозитория git. в первый репозиторий я положил свой Jenkinsfile. в моем файле Jenkins я использую второй репозиторий git. Теперь проблема в том, что когда я хочу получить имя автора второго репозитория для какой-либо цели, он использует первый репозиторий, содержащий Jenkinsfile. как я могу исправить эту проблему? Я хочу получить имя автора второго репозитория, который находится в jenkinsfile.

enter image description here

1 Ответ

0 голосов
/ 30 сентября 2019

Git-репозитории почти всегда имеют более одного автора. Иногда оригинальный автор имеет наибольшее количество коммитов, и вы можете искать автора таким способом.

Один из способов сделать это - использовать команду :

git log --format='%aN <%aE>' | awk '{arr[$0]++} END{for (i in arr){print arr[i], i;}}' | sort -rn | cut -f2- | head -1

Эта команда получает авторов, сортирует их по количеству коммитов, а затем выводит первый результат.

Вы можете добавить его в свой файл Jenkins в блоке sh.

pipeline {
  stages {
    stage("Checkout") {
      steps {
        git([url: 'xxxxxxxxxx.git', branch: "master"])
        sh 'cd xxxxxxxxx.git'
        sh 'git log --format=\'%aN <%aE>\' | awk \'{arr[$0]++} END{for (i in arr){print arr[i], i;}}\' | sort -rn | cut -f2- | head -1 >author.txt'
        sh 'cat author.txt'
      }
    }
  }
}

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