Add whitelist and admin-list params to gh trigger 31/5531/38
authorJeremy Phelps <jphelps@linuxfoundation.org>
Thu, 13 Jul 2017 16:46:19 +0000 (11:46 -0500)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Wed, 19 Jul 2017 14:29:22 +0000 (10:29 -0400)
This enables users in the white list to trigger any job
that uses the lf-infra-github-trigger macro.
In addition you can set users in the admin-list to have
admin rights on a pr.

Change-Id: Ib69095008780e8ba3a752aaeb498e7d6f8582cb5
JIRA: RELENG-174
Signed-off-by: Jeremy Phelps <jphelps@linuxfoundation.org>
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
README.md
jjb/lf-ci-jobs.yaml
jjb/lf-macros.yaml
test.template

index 40289bc..8e76eed 100644 (file)
--- a/README.md
+++ b/README.md
@@ -70,27 +70,40 @@ versioned git tags.
 
 ## Parameters stored in defaults.yaml
 
-Configure the following parameters in the ci-management repo's defaults.yaml
-file.
+Configure the following parameters in the ci-management repo's
+defaults.yaml file.
 
-**gerrit-server-name**: The name of the Gerrit Server as defined in Gerrit
-Trigger global configuration.
+**gerrit-server-name**: The name of the Gerrit Server as defined
+in Gerrit Trigger global configuration.
 
-**jenkins-ssh-credential**: The name of the Jenkins Credential to use for ssh
-connections.
+**jenkins-ssh-credential**: The name of the Jenkins Credential to
+use for ssh connections.
 
-If you are using GitHub then configure the following parameters in defaults.yaml
+If you are using GitHub then configure the following parameters
+in defaults.yaml
 
 **git-url**: Set this to the base URL of your GitHub repo. In
-general this should be <https://github.com>. If you are using GitHub
-Enterprise, or some other GitHub-style system, then it should be
-whatever your installation base URL is.
+general this should be <https://github.com>. If you are using
+GitHub Enterprise, or some other GitHub-style system, then it
+should be whatever your installation base URL is.
 
-**git-clone-url**: This is the clone prefix used by GitHub jobs. Set this to
-either the same thing as **git-url** or the
+**git-clone-url**: This is the clone prefix used by GitHub jobs.
+Set this to either the same thing as **git-url** or the
 'git@github.com:' including the trailing ':'
 
-**github-org**: The name of the GitHub organization.
+**github-org**: The name of the GitHub organization interpolated
+into the scm config.
+
+**github_pr_org**: The name of the GitHub organization. All members
+of this organization will be able to trigger any job using the
+`lf-infra-github-pr` macro.
+
+**github_pr_whitelist**: List of GitHub members you wish to be able to
+trigger any job that uses the `lf-infra-github-pr-trigger` macro.
+
+**github_pr_admin_list**: List of GitHub members that will have admin
+privileges on any job using the `lf-infra-github-pr-trigger`
+macro.
 
 defaults.yaml:
 
@@ -102,6 +115,12 @@ defaults.yaml:
     jenkins-ssh-credential: opendaylight-jenkins-ssh
     gerrit-server-name: OpenDaylight
     github-org: lfit
+    github_pr_whitelist:
+      - jpwku
+      - tykeal
+      - zxiiro
+    github_pr_admin_list:
+      - tykeal
 ```
 
 ## Config File Management
index a221135..bce5985 100644 (file)
       - github
       - pollscm:
           cron: ''
-      - github-pull-request:
+      - lf-infra-github-pr-trigger:
           trigger-phrase: '^remerge$'
           only-trigger-phrase: true
           status-context: 'JJB Merge'
           permit-all: false
           github-hooks: true
-          auto-close-on-fail: false
-          org-list:
-            - '{github-org}'
+          github-org: '{github-org}'
+          github_pr_whitelist: '{obj:github_pr_whitelist}'
+          github_pr_admin_list: '{obj:github_pr_admin_list}'
 
 - job-template:
     name: '{project-name}-jjb-verify'
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     triggers:
-      - github-pull-request:
+      - lf-infra-github-pr-trigger:
           trigger-phrase: '^recheck$'
           only-trigger-phrase: false
           status-context: 'JJB Verify'
           permit-all: true
           github-hooks: true
-          auto-close-on-fail: false
+          github-org: ''
+          github_pr_whitelist:
+            - ''
+          github_pr_admin_list:
+            - ''
index d5cc05b..b3e0222 100644 (file)
             recursive: '{submodule-recursive}'
           choosing-strategy: '{choosing-strategy}'
 
+############
+# TRIGGERS #
+############
+
+- trigger:
+    name: lf-infra-github-pr-trigger
+    triggers:
+      - github-pull-request:
+          trigger-phrase: '{trigger-phrase}'
+          only-trigger-phrase: '{only-trigger-phrase}'
+          status-context: '{status-context}'
+          permit-all: '{permit-all}'
+          github-hooks: '{github-hooks}'
+          auto-close-on-fail: false
+          org-list:
+            - '{github-org}'
+          white-list: '{obj:github_pr_whitelist}'
+          admin-list: '{obj:github_pr_admin_list}'
+
 ############
 # WRAPPERS #
 ############
index 898f43e..78a7c89 100644 (file)
     git-url: https://github.com
     git-clone-url: 'git@github.com:'
     github-org: example-org
+    github_pr_whitelist:
+      - jpwku
+      - tykeal
+      - zxiiro
+    github_pr_admin_list:
+      - tykeal
 
     # Common test config
     project: releng/ciman