diff --git a/.groovylintrc.json b/.groovylintrc.json
new file mode 100644
index 0000000000000000000000000000000000000000..80e91ed612a9efd350b43ae1c1dc86f498f26f27
--- /dev/null
+++ b/.groovylintrc.json
@@ -0,0 +1,20 @@
+{
+    "extends": "recommended",
+    "rules": {
+        "CompileStatic": {
+            "enabled": false
+        },
+        "DuplicateStringLiteral": {
+            "enabled": false
+        },
+        "LineLength": {
+            "enabled": false
+        },
+        "MethodReturnTypeRequired": {
+            "enabled": false
+        },
+        "NoDef": {
+            "enabled": false
+        }
+    }
+}
\ No newline at end of file
diff --git a/dawn-cli/dev b/dawn-cli/dev
index ef9ef92ce9be6f33f02c093649cd05e4be9fb79a..e9a4d1f782c4c751257c93e431b3070093b1eced 100644
--- a/dawn-cli/dev
+++ b/dawn-cli/dev
@@ -1,61 +1,58 @@
 pipeline {
-  agent {label "node3"}
-  tools {
+    agent { label 'node3' }
+    tools {
         go 'go-1.16'
-  }
-  stages {
-
-    stage('notify') {
-        steps {
-            script {
-              slack_send_start()
-          }
-        }
     }
-      
-    stage('build new dawn-cli') {
-        steps {
-            git branch: 'main',
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build new dawn-cli') {
+            steps {
+                git branch: 'main',
                 credentialsId: 'tucker-gitlab-login',
                 url: 'https://gitlab.cs.umd.edu/dawn/go-backend/dawn-cli'
 
-            sh """
-                go build 
+                sh '''
+                go build
                 sudo cp dawn-cli /usr/local/bin/dawn-cli
-            """
+            '''
+            }
         }
-    }
 
-    
-    stage('cleanup old images') {
-        steps {
-            sh '''
+        stage('cleanup old images') {
+            steps {
+                sh '''
                 docker rmi $(docker images | grep "dawn/.*-test" | awk '{print $3}') --force || true
                 docker rmi $(docker images | grep "<none>" | awk '{print $3}') --force || true
             '''
+            }
         }
-    }
-        
-    stage('build new dawn-cli image') {
-        steps {
-            sh '''
+
+        stage('build new dawn-cli image') {
+            steps {
+                sh '''
                 docker build -t dawn/dawn-cli .
             '''
+            }
         }
     }
-   
-  }
 
-  post {
-      success {
-          script {
-              slack_send_success()
-          }
-      }
-      failure {
-          script {
-              slack_send_failure()
-          }
-      }
-  }
-}
\ No newline at end of file
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
+        }
+    }
+}
diff --git a/dawn-cli/staging b/dawn-cli/staging
index aa3c5a5cfa32bdadf5a2d43f46e8a3048b3f5381..62636088e6a309c4278cc1ba9041b97b70171d66 100644
--- a/dawn-cli/staging
+++ b/dawn-cli/staging
@@ -1,61 +1,58 @@
 pipeline {
-  agent {label "node2"}
-  tools {
+    agent { label 'node2' }
+    tools {
         go 'go-1.16'
-  }
-  stages {
-      
-    stage('build new dawn-cli') {
-        steps {
-            git branch: 'main',
+    }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build new dawn-cli') {
+            steps {
+                git branch: 'main',
                 credentialsId: 'tucker-gitlab-login',
                 url: 'https://gitlab.cs.umd.edu/dawn/go-backend/dawn-cli'
 
-            sh """
-                go build 
+                sh '''
+                go build
                 sudo cp dawn-cli /usr/local/bin/dawn-cli
-            """
+            '''
+            }
         }
-    }
 
-    
-    stage('cleanup old images') {
-        steps {
-            sh '''
+        stage('cleanup old images') {
+            steps {
+                sh '''
                 docker rmi $(docker images | grep "dawn/.*-test" | awk '{print $3}') --force || true
                 docker rmi $(docker images | grep "<none>" | awk '{print $3}') --force || true
             '''
+            }
         }
-    }
-    
-    // stage('cleanup old images') {
-    //     steps {
-    //         sh '''
-    //             docker image prune --filter "until=168h" --filter "label!=latest" || true
-    //         '''
-    //         sh '''
-    //             docker rmi $(docker images | grep 'dev-test') || true
-    //         '''
-    //     }
-    // }
 
-        
-    stage('build new dawn-cli image') {
-        steps {
-            sh '''
+        stage('build new dawn-cli image') {
+            steps {
+                sh '''
                 docker build -t dawn/dawn-cli .
             '''
+            }
         }
     }
 
-            
-    // stage('redeploy') {
-    //     steps {
-    //         sh """
-    //             dawn-cli deploy
-    //         """
-    //     }
-    // }
-   
-  }
-}
\ No newline at end of file
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
+        }
+    }
+}
diff --git a/dawn-client/dev b/dawn-client/dev
index 076bb426c0426ccd0e226f0d963fb31552ddf0a2..539a8804646d77bff527cfeffe3fccf2c76924f2 100644
--- a/dawn-client/dev
+++ b/dawn-client/dev
@@ -1,36 +1,51 @@
 pipeline {
-  agent {label "node3"}
-  tools {nodejs "node"}
-  stages {
-      
-    stage('build') {
-        steps {
-            sh """
+    agent { label 'node3' }
+    tools { nodejs 'node' }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+        stage('build') {
+            steps {
+                sh '''
                 npm i
                 npm run build:dev
-            """
+            '''
+            }
         }
-    }
 
-    
-    stage('copy build') {
-        steps {
-            sh '''
+        stage('copy build') {
+            steps {
+                sh '''
                 sudo rm -rf /var/www/dawn_dev/build
                 sudo cp -r build /var/www/dawn_dev
             '''
+            }
         }
-    }
-    
 
-    
-    stage('restart nginx') {
-        steps {
-            sh '''
+        stage('restart nginx') {
+            steps {
+                sh '''
                 sudo service nginx restart
             '''
+            }
+        }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
         }
     }
-   
-  }
-}
\ No newline at end of file
+}
diff --git a/dawn-client/staging b/dawn-client/staging
index ff9fc93a765888ea44ab0d5cab47947b7433c63e..215f9f946934afc273bb4be0cccfecf57366aac2 100644
--- a/dawn-client/staging
+++ b/dawn-client/staging
@@ -1,40 +1,56 @@
 pipeline {
-  agent {label "node2"}
-  tools {nodejs "node"}
-  stages {
-      
-    stage('build') {
-        steps {
-            git branch: 'staging',
+    agent { label 'node2' }
+    tools { nodejs 'node' }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build') {
+            steps {
+                git branch: 'staging',
                 credentialsId: 'tucker-gitlab-login',
                 url: 'https://gitlab.cs.umd.edu/dawn/dawn-client'
 
-            sh """
+                sh '''
                 npm i
                 npm run build:staging
-            """
+            '''
+            }
         }
-    }
 
-    
-    stage('copy build') {
-        steps {
-            sh '''
+        stage('copy build') {
+            steps {
+                sh '''
                 sudo rm -rf /var/www/dawn_staging/build
                 sudo cp -r build /var/www/dawn_staging/build
             '''
+            }
         }
-    }
-    
 
-    
-    stage('restart nginx') {
-        steps {
-            sh '''
+        stage('restart nginx') {
+            steps {
+                sh '''
                 sudo service nginx restart
             '''
+            }
+        }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
         }
     }
-   
-  }
-}
\ No newline at end of file
+}
diff --git a/dawn-manager/dev b/dawn-manager/dev
index e5993cf58f8cf30aef740ac15a553d58116d81dc..23a213a9a2b829651a5e595d8d4fcc452615c88c 100644
--- a/dawn-manager/dev
+++ b/dawn-manager/dev
@@ -1,41 +1,57 @@
 pipeline {
-  agent {label "master"}
-  tools {nodejs "node"}
-  stages {
-      
-    stage('build') {
-        steps {
-            git branch: 'main',
+    agent { label 'master' }
+    tools { nodejs 'node' }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build') {
+            steps {
+                git branch: 'main',
                 credentialsId: 'tucker-gitlab-login',
-                url: "https://gitlab.cs.umd.edu/dawn/go-backend/dawn-manager.git"
+                url: 'https://gitlab.cs.umd.edu/dawn/go-backend/dawn-manager.git'
 
-            sh """
+                sh '''
                 npm i
                 npm run build
-            """
+            '''
+            }
         }
-    }
 
-    
-    stage('copy build') {
-        steps {
-            sh '''
+        stage('copy build') {
+            steps {
+                sh '''
                 sudo rm -rf /var/www/dawn_dev/_admin
                 sudo mkdir /var/www/dawn_dev/_admin
                 sudo cp -r build/* /var/www/dawn_dev/_admin
             '''
+            }
         }
-    }
-    
 
-    
-    stage('restart nginx') {
-        steps {
-            sh '''
+        stage('restart nginx') {
+            steps {
+                sh '''
                 sudo service nginx restart
             '''
+            }
+        }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
         }
     }
-   
-  }
 }
diff --git a/dawn-manager/staging b/dawn-manager/staging
index 6c538462a923f6ec753c28351aee2c22c909b455..9b0fab47144d93b8137832df8468d136bf80c904 100644
--- a/dawn-manager/staging
+++ b/dawn-manager/staging
@@ -1,41 +1,57 @@
 pipeline {
-  agent {label "node2"}
-  tools {nodejs "node"}
-  stages {
-      
-    stage('build') {
-        steps {
-            git branch: 'main',
+    agent { label 'node2' }
+    tools { nodejs 'node' }
+    stages {
+        stage('notify') {
+            steps {
+                script {
+                    slack_send_start()
+                }
+            }
+        }
+
+        stage('build') {
+            steps {
+                git branch: 'main',
                 credentialsId: 'tucker-gitlab-login',
-                url: "https://gitlab.cs.umd.edu/dawn/go-backend/dawn-manager.git"
+                url: 'https://gitlab.cs.umd.edu/dawn/go-backend/dawn-manager.git'
 
-            sh """
+                sh '''
                 npm i
                 npm run build-staging
-            """
+            '''
+            }
         }
-    }
 
-    
-    stage('copy build') {
-        steps {
-            sh '''
+        stage('copy build') {
+            steps {
+                sh '''
                 sudo rm -rf /var/www/dawn_staging/_admin
                 sudo mkdir /var/www/dawn_staging/_admin
                 sudo cp -r build/* /var/www/dawn_staging/_admin
             '''
+            }
         }
-    }
-    
 
-    
-    stage('restart nginx') {
-        steps {
-            sh '''
+        stage('restart nginx') {
+            steps {
+                sh '''
                 sudo service nginx restart
             '''
+            }
+        }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
         }
     }
-   
-  }
 }
diff --git a/vars/backendDevServicePipeline.groovy b/vars/backendDevServicePipeline.groovy
index 9ee438d4b224442ee6cd3c1ea806e8d30a745847..0b18fa0790c2f7d1100949eb948ed1afcd3e2d04 100644
--- a/vars/backendDevServicePipeline.groovy
+++ b/vars/backendDevServicePipeline.groovy
@@ -1,61 +1,81 @@
 def call(String serviceName) {
-  pipeline {
-  agent {
-    node {
-      label "node3"
-      customWorkspace "${serviceName}"
-    } 
-  }
-  tools {
-    go 'go-1.16'
-  }
-  stages {
-    stage('test') {
-      steps {
-        sh """
+    pipeline {
+        agent {
+            node {
+                label 'node3'
+                customWorkspace "${serviceName}"
+            }
+        }
+        tools {
+            go 'go-1.16'
+        }
+        stages {
+            stage('notify') {
+                steps {
+                    script {
+                        slack_send_start()
+                    }
+                }
+            }
+            stage('test') {
+                steps {
+                    sh '''
             dawn-cli test
-        """ 
-      }
-    }
+        '''
+                }
+            }
 
-    stage('build') {
-      steps {
-        sh """
+            stage('build') {
+                steps {
+                    sh '''
             dawn-cli build-image -p . -e dev
-        """ 
-      }
-    }
+        '''
+                }
+            }
 
-    stage('update backend services') {
-      steps {
-        sh '''
+            stage('update backend services') {
+                steps {
+                    sh '''
             curl -o docker-compose-dev.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/docker-compose-staging.yml/raw?ref=main"
             curl -o shared-compose.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/shread-compose.yml/raw?ref=main"
             curl -o prometheus.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/prometheus.yml/raw?ref=main"
             curl -o prometheus.rules.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/prometheus.rules.yml/raw?ref=main"
             curl -o rabbitmq.conf --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/rabbitmq.conf/raw?ref=main"
-            
+
             mkdir elk_config || true
             curl -o logstash-compose.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/logstash-compose.conf/raw?ref=main"
             curl -o elk_config/elasticsearch.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/elk_config%2Felasticsearch.yml/raw?ref=main"
             curl -o elk_config/filebeat.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/elk_config%2Ffilebeat.yml/raw?ref=main"
         '''
-        sh "dawn-cli update -s ${serviceName} -e dev"
-      }
-    }
+                    sh "dawn-cli update -s ${serviceName} -e dev"
+                }
+            }
 
-    stage('cleanup') {
-        steps {
-            sh '''
+            stage('cleanup') {
+                steps {
+                    sh '''
                 docker rmi $(docker images | grep "dawn/.*-test" | awk '{print $3}') --force || true
             '''
+                }
+            }
+        }
+    //   post {
+    //         always {
+    //               cobertura autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/coverage.xml', enableNewApi: true, failUnhealthy: false, failUnstable: false, lineCoverageTargets: '80, 40, 60', maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false
+    //         }
+    //     }
+    }
+
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
         }
     }
-  }
-//   post {
-//         always {
-//               cobertura autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/coverage.xml', enableNewApi: true, failUnhealthy: false, failUnstable: false, lineCoverageTargets: '80, 40, 60', maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false
-//         }
-//     }
 }
-}
\ No newline at end of file
diff --git a/vars/backendStagingServicePipeline.groovy b/vars/backendStagingServicePipeline.groovy
index 62517b919b47e90e508cc695e726651b7845ff29..ce1302e4fea8ad21d32c60c03ddc2925e18457b3 100644
--- a/vars/backendStagingServicePipeline.groovy
+++ b/vars/backendStagingServicePipeline.groovy
@@ -1,69 +1,88 @@
 def call(String repo, String branch, String serviceName) {
     pipeline {
-  agent { label 'node2' }
-  tools {
-        go 'go-1.16'
-  }
-  options {
-    buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '5', daysToKeepStr: '', numToKeepStr: '5')
-  }
-  stages {
-      
-  stage('checkout') {
-        steps {
-            git branch: branch,
+        agent { label 'node2' }
+        tools {
+            go 'go-1.16'
+        }
+        options {
+            buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '5', daysToKeepStr: '', numToKeepStr: '5')
+        }
+        stages {
+            stage('checkout') {
+                steps {
+                    git branch: branch,
                 credentialsId: 'tucker-gitlab-login',
                 url: repo
-        }
-    }
-     
-    stage('test') {
-      steps {
-        sh """
+                }
+            }
+
+            stage('notify') {
+                steps {
+                    script {
+                        slack_send_start()
+                    }
+                }
+            }
+
+            stage('test') {
+                steps {
+                    sh '''
             dawn-cli test
-        """ 
-      }
-    }
+        '''
+                }
+            }
 
-    stage('build') {
-      steps {
-        sh """
+            stage('build') {
+                steps {
+                    sh '''
             dawn-cli build-image -p . -e staging
-        """ 
-      }
-    }
+        '''
+                }
+            }
 
-    stage('update backend services') {
-      steps {
-        sh '''
+            stage('update backend services') {
+                steps {
+                    sh '''
             curl -o docker-compose-dev.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/docker-compose-staging.yml/raw?ref=main"
             curl -o shared-compose.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/shread-compose.yml/raw?ref=main"
             curl -o prometheus.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/prometheus.yml/raw?ref=main"
             curl -o prometheus.rules.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/prometheus.rules.yml/raw?ref=main"
             curl -o rabbitmq.conf --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/rabbitmq.conf/raw?ref=main"
-            
+
             mkdir elk_config || true
             curl -o logstash-compose.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/logstash-compose.conf/raw?ref=main"
             curl -o elk_config/elasticsearch.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/elk_config%2Felasticsearch.yml/raw?ref=main"
             curl -o elk_config/filebeat.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/elk_config%2Ffilebeat.yml/raw?ref=main"
         '''
-        sh "dawn-cli update -s ${serviceName} -e staging -d dawn-server"
-      }
-    }
+                    sh "dawn-cli update -s ${serviceName} -e staging -d dawn-server"
+                }
+            }
 
-    stage('cleanup') {
-        steps {
-            sh '''
+            stage('cleanup') {
+                steps {
+                    sh '''
                 docker rmi $(docker images | grep "dawn/.*-test" | awk '{print $3}') --force || true
             '''
+                }
+            }
         }
+    // post {
+    //       always {
+    //             cobertura autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/coverage.xml', enableNewApi: true, failUnhealthy: false, failUnstable: false, lineCoverageTargets: '80, 40, 60', maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false
+    //       }
+    //   }
     }
 
-  }
-  // post {
-  //       always {
-  //             cobertura autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/coverage.xml', enableNewApi: true, failUnhealthy: false, failUnstable: false, lineCoverageTargets: '80, 40, 60', maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false
-  //       }
-  //   }
+    post {
+        success {
+            script {
+                slack_send_success()
+            }
+        }
+        failure {
+            script {
+                slack_send_failure()
+            }
+        }
+    }
 }
-}
\ No newline at end of file
diff --git a/vars/slack_send_failure.groovy b/vars/slack_send_failure.groovy
index d6720b8675d06f969bc427d20b53242a21da1112..a63b09ddf06f596eff4748399cd9fdf74f3e69e8 100644
--- a/vars/slack_send_failure.groovy
+++ b/vars/slack_send_failure.groovy
@@ -1,4 +1,3 @@
 def call() {
-    BUILD_TRIGGERED_BY = "${currentBuild.getBuildCauses()[0].shortDescription} / ${currentBuild.getBuildCauses()[0].userId}"
     slackSend(channel: "ci", color: "danger", message: "${JOB_NAME}-#${BUILD_NUMBER}-${GIT_BRANCH} failed after ${currentBuild.durationString} (<${BUILD_URL}|Open>)")
 }
diff --git a/vars/slack_send_start.groovy b/vars/slack_send_start.groovy
index 2343a184c8bab4bb5333bb9f3bc1bd67a38d28b9..baf9322a3cee236c22e1be27c8520aefb20e1840 100644
--- a/vars/slack_send_start.groovy
+++ b/vars/slack_send_start.groovy
@@ -1,4 +1,4 @@
 def call() {
-    BUILD_TRIGGERED_BY = "${currentBuild.getBuildCauses()[0].shortDescription} / ${currentBuild.getBuildCauses()[0].userId}"
+    BUILD_TRIGGERED_BY = "${currentBuild.getBuildCauses()[0].userId}"
     slackSend(channel: "ci", message: "${JOB_NAME}-#${BUILD_NUMBER}-${GIT_BRANCH} triggered by ${BUILD_TRIGGERED_BY} (<${BUILD_URL}|Open>)")
 }
diff --git a/vars/slack_send_success.groovy b/vars/slack_send_success.groovy
index 26927b013a6c405634d7323c756240e346495790..9240fd1a6d8af42048b460e01807f2e28b0dcb5b 100644
--- a/vars/slack_send_success.groovy
+++ b/vars/slack_send_success.groovy
@@ -1,4 +1,3 @@
 def call() {
-    BUILD_TRIGGERED_BY = "${currentBuild.getBuildCauses()[0].shortDescription} / ${currentBuild.getBuildCauses()[0].userId}"
     slackSend(channel: "ci", color: "good", message: "${JOB_NAME}-#${BUILD_NUMBER}-${GIT_BRANCH} success after ${currentBuild.durationString} (<${BUILD_URL}|Open>)")
 }