Как получить ТОЛЬКО разблокированную электронную почту автора git commit - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужно отправить уведомление от jenkins по электронной почте авторам git commit.

Чтобы получить авторов git commit, я использовал скрипт sh:

git_emails = sh ( 
          script: "git log --format='%cE%n%aE%n%gE' ${gitLogCommand} | sort -u", 
          returnStdout: true 
        ).trim()

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

Кто-нибудь есть идеи, как это сделать!Спасибо.

Редактировать: Заблокировать пользователя от Gitlab

enter image description here

1 Ответ

0 голосов
/ 13 ноября 2018
  • Перейдите сюда (или, скорее, эквивалентные настройки на вашем личном GitLab: Настройки пользователя> Токены доступа) и сгенерируйте токен доступа с разрешением read_user.Обязательно скопируйте его, иначе вы его больше не увидите (и вам придется создать новый).

  • Вы можете выполнить эту команду:

    curl -H "Private-Token: $token" "https://gitlab.com/api/v4/users/?username=$username"
    

    где $token - созданный вами токен, а $username имя пользователя GitLab, которое вы хотите проверить.(Опять же, вам, вероятно, потребуется изменить URL-адрес в соответствии с тем, где находится ваш GitLab, я не думаю, что вы говорите о gitlab.com здесь.) Вы также можете выполнять поиск по электронной почте, используя search=$email вместо username=$username.

    Вы получите JSON.Одним из полей является state, которое может быть active или blocked.Вы можете использовать утилиту jq или любой более высокий язык программирования, чтобы проанализировать JSON и найти значение поля state.

    В качестве альтернативы, вы можете добавить &active=true;таким образом, вы получите пользователя, если он разблокирован, или пустой массив ([]), если заблокирован.Это было бы легче протестировать в bash, так как вам просто нужно увидеть, равен ли результат "[]" или нет.(Вы также можете выполнить обратный тест с &blocked=true, чтобы вернуть пользователя (ей) только в случае его блокировки.)

Соответствующую документацию можно найти здесь .

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