Получить учетные данные Дженкинс работы в Groovy - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь извлечь имя пользователя и пароль в скрипте jenkins groovy, который инициировал сборку.Мне нужны эти детали, чтобы оставлять комментарии к jira от моего имени.Например, если я войду в jenkins и начну работу, то мои учетные данные должны быть использованы для публикации комментария на jira. Я перепробовал много сообщений, но не нашел ничего, связанного с моим требованием.Любая помощь будет оценена ..

1 Ответ

0 голосов
/ 26 октября 2018

после нескольких секунд поиска в Google, я нашел этот скрипт, официально опубликованный cloudbees .

Итак, следующим образом:

Jenkins.instance.getAllItems(Job).each{

  def jobBuilds=it.getBuilds()

    //for each of such jobs we can get all the builds (or you can limit the number at your convenience)
    jobBuilds.each { build ->
      def runningSince = groovy.time.TimeCategory.minus( new Date(), build.getTime() )
      def currentStatus = build.buildStatusSummary.message
      def cause = build.getCauses()[0] //we keep the first cause
      //This is a simple case where we want to get information on the cause if the build was 
      //triggered by an user
      def user = cause instanceof Cause.UserIdCause? cause.getUserId():""
      //This is an easy way to show the information on screen but can be changed at convenience
      println "Build: ${build} | Since: ${runningSince} | Status: ${currentStatus} | Cause: ${cause} | User: ${user}" 

      // You can get all the information available for build parameters.
      def parameters = build.getAction(ParametersAction)?.parameters
      parameters.each {
        println "Type: ${it.class} Name: ${it.name}, Value: ${it.dump()}" 

        }
    }
}

Вы получите идентификатор пользователя, запустившего задание, наверняка вы не сможете получить его учетные данные, по крайней мере, не в текстовом формате.

Маленькое объяснение

//to get all jobs
Jenkins.instance.getAllItems(Job)
{...}
//get builds per job
def jobBuilds=it.getBuilds()
//get build cause
def cause = build.getCauses()[0] //we keep the first cause
//if triggered by an user get id, otherwise empty string
def user = cause instanceof Cause.UserIdCause? cause.getUserId():""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...