From 9ae2d5188e129c4e3e81d3ee5ef941112232c3cb Mon Sep 17 00:00:00 2001 From: Jeremy Phelps Date: Thu, 13 Jul 2017 11:46:19 -0500 Subject: [PATCH] Add whitelist and admin-list params to gh trigger 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 Signed-off-by: Thanh Ha --- README.md | 45 ++++++++++++++++++++++++++++++++------------- jjb/lf-ci-jobs.yaml | 16 ++++++++++------ jjb/lf-macros.yaml | 19 +++++++++++++++++++ test.template | 6 ++++++ 4 files changed, 67 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 40289bcc..8e76eed5 100644 --- 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 . 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 . 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 diff --git a/jjb/lf-ci-jobs.yaml b/jjb/lf-ci-jobs.yaml index a221135c..bce59853 100644 --- a/jjb/lf-ci-jobs.yaml +++ b/jjb/lf-ci-jobs.yaml @@ -231,15 +231,15 @@ - 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' @@ -267,10 +267,14 @@ 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: + - '' diff --git a/jjb/lf-macros.yaml b/jjb/lf-macros.yaml index d5cc05b7..b3e0222d 100644 --- a/jjb/lf-macros.yaml +++ b/jjb/lf-macros.yaml @@ -311,6 +311,25 @@ 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 # ############ diff --git a/test.template b/test.template index 898f43e4..78a7c89f 100644 --- a/test.template +++ b/test.template @@ -11,6 +11,12 @@ 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 -- 2.16.6