Saltar al contenido

Jenkins Pipeline currentBuild.changeSets y recuperación de correos electrónicos por repositorio

Solución:

Vea más aquí: Cómo obtener la dirección de correo electrónico del usuario actual de Jenkins para usar en un script maravilloso

echo 'author email:' + change.author.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress()

Pero requería deshabilitar la caja de arena maravillosa 🙁

Posiblemente la solución haya sido agregar esto a Bibliotecas compartidas Jenkins Pipeline: https://jenkins.io/doc/book/pipeline/shared-libraries/

Como esto:

$ cat GetUserEmail.groovy 
#!/usr/bin/groovy

def call(body) {
    def config = [:]
    body.resolveStrategy = Closure.DELEGATE_FIRST
    body.delegate = config
    body()

    def User = config.get('user')
    return User.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress()
}

Y usa así:

def changeSet = script.currentBuild.changeSets[0];
Set authors = [];
if (changeSet != null) {
    for (change in changeSet.items) {
        authors.add(GetUserEmail{user=change.author})
    }
}

Puede obtener el nombre del autor y luego usarlo como ejemplo en un registro de correo o algo así:

def author = ""
def changeSet = currentBuild.rawBuild.changeSets               
for (int i = 0; i < changeSet.size(); i++) 
{
   def entries = changeSet[i].items;
   for (int i = 0; i < changeSet.size(); i++) 
            {
                       def entries = changeSet[i].items;
                       def entry = entries[0]
                       author += "${entry.author}"
            } 
 }
 print author;
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *