From 25ad182f32650d68217c0a8e64b10095b78b68cf Mon Sep 17 00:00:00 2001 From: "siraj.yasin" Date: Thu, 29 Apr 2021 17:26:19 +0000 Subject: [PATCH] Disable update github issue job. * BOT will be configured to listen for treasuremap repo changes and add/update comments and issues status ( close ) as applicable. Change-Id: I2e2070461e60fc75dd2066432c4f5cd48023c5e3 --- ...ship-treasuremap-update-github-issues.yaml | 34 -------- playbooks/files/update_github_issues.py | 82 ------------------- zuul.d/jobs.yaml | 9 -- zuul.d/projects.yaml | 3 - zuul.d/secrets.yaml | 15 ---- 5 files changed, 143 deletions(-) delete mode 100644 playbooks/airship-treasuremap-update-github-issues.yaml delete mode 100755 playbooks/files/update_github_issues.py diff --git a/playbooks/airship-treasuremap-update-github-issues.yaml b/playbooks/airship-treasuremap-update-github-issues.yaml deleted file mode 100644 index 7b8fd1593..000000000 --- a/playbooks/airship-treasuremap-update-github-issues.yaml +++ /dev/null @@ -1,34 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- hosts: primary - tasks: - - name: Install python setuptools - package: - name: - - python3-pip - - python3-setuptools - state: present - become: yes - - - name: Install script dependencies - pip: - name: - - PyGithub==1.46 - executable: pip3 - - name: Run python script - script: > - update_github_issues.py "{{ github_credentials.token }}" \ - "{{ zuul.message | b64decode }}" \ - "{{ zuul.change_url }}" - args: - executable: python3 diff --git a/playbooks/files/update_github_issues.py b/playbooks/files/update_github_issues.py deleted file mode 100755 index cde7e0d4b..000000000 --- a/playbooks/files/update_github_issues.py +++ /dev/null @@ -1,82 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import logging -import re -import sys - -import github - -GH_TOKEN = sys.argv[1] -ZUUL_MESSAGE = sys.argv[2] -GERRIT_URL = sys.argv[3] -REPO_NAME = 'airshipit/airshipctl' -PROCESS_LABELS = ['wip', 'ready for review', 'triage', 'blocked'] - - -def construct_issue_list(match_list: list) -> set: - new_list = [] - for _issue in match_list: - try: - new_list.append(int(_issue)) - except ValueError: - logging.warning(f'Value {_issue} could not be converted to `int` type') - return set(new_list) - - -def parse_issue_number(commit_msg: str) -> dict: - # Searches for Relates-To or Closes tags first to match and return - logging.debug(f'Parsing commit message: {commit_msg}') - related = re.findall(r'(?<=Relates-To: #)([0-9]+?)(?=\n)', commit_msg) - logging.debug(f'Captured related issues: {related}') - closes = re.findall(r'(?<=Closes: #)([0-9]+?)(?=\n)', commit_msg) - logging.debug(f'Captured closes issues: {closes}') - if related or closes: - return { - 'related': construct_issue_list(related), - 'closes': construct_issue_list(closes) - } - # If no Relates-To or Closes tags are defined, find legacy [#X] style tags - logging.debug('Falling back to legacy tags') - legacy_matches = re.findall(r'(?<=\[#)([0-9]+?)(?=\])', commit_msg) - logging.debug(f'Captured legacy issues: {legacy_matches}') - if not legacy_matches: - return {} - return { - 'related': construct_issue_list(legacy_matches) - } - - -def remove_duplicated_issue_numbers(issue_dict: dict) -> dict: - if 'closes' in issue_dict: - issue_dict['related'] = [x for x in issue_dict.get('related', []) if x not in issue_dict['closes']] - return issue_dict - - -if __name__ == '__main__': - issue_number_dict = parse_issue_number(ZUUL_MESSAGE) - issue_number_dict = remove_duplicated_issue_numbers(issue_number_dict) - gh = github.Github(GH_TOKEN) - repo = gh.get_repo(REPO_NAME) - for key, issue_list in issue_number_dict.items(): - for issue_number in issue_list: - issue = repo.get_issue(number=issue_number) - comment_msg = '' - link_exists = False - if key == 'closes': - issue.create_comment(f'The [Change]({GERRIT_URL}) that closes this issue was merged.') - for label in PROCESS_LABELS: - try: - issue.remove_from_labels(label) - except github.GithubException: - pass - else: - issue.create_comment(f'A [Related Change]({GERRIT_URL} was merged. This issue may be ready to close.') diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 86a102bde..be1ed2ba5 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -10,15 +10,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -- job: - name: airship-treasuremap-update-github-issues - description: Updates and/or closes related issues on Github on merge - run: playbooks/airship-treasuremap-update-github-issues.yaml - nodeset: airship-treasuremap-single-node - secrets: - - name: github_credentials - secret: airship_treasuremap_airshipit_github_token - - job: name: airship-treasuremap-validate-site-docs timeout: 5400 diff --git a/zuul.d/projects.yaml b/zuul.d/projects.yaml index 92d40ee00..3b9789b30 100644 --- a/zuul.d/projects.yaml +++ b/zuul.d/projects.yaml @@ -30,9 +30,6 @@ post: jobs: - treasuremap-upload-git-mirror - promote: - jobs: - - airship-treasuremap-update-github-issues tag: jobs: - treasuremap-upload-git-mirror diff --git a/zuul.d/secrets.yaml b/zuul.d/secrets.yaml index 0e8ba1e7a..a5ef6100f 100644 --- a/zuul.d/secrets.yaml +++ b/zuul.d/secrets.yaml @@ -57,18 +57,3 @@ EjON6sxnRPCkcekmpUGqD/IXFYV/qxdvfnoDdVW5M2SZWzsHdMoJdBhL53FFaYDyPxTaR 4+kMmn8VTejOT2zQfny3zBoxMt30hYsAjHfDS62lxYJL/404uShhAi+1bpnyy+uxU39nQ v3QSn8NtjBdh/WKptpsma1yZEHKAJJjfU9pmSrFHBfvokOmvTygjIC2uxP0ppo= - -- secret: - name: airship_treasuremap_airshipit_github_token - data: - token: !encrypted/pkcs1-oaep - - HfAe26Qs2v8ezEsRe+cfrfHloleRHQY6aj+e4OvEKEJoxXi9Ok/slZOX1MMIPa9s9Ax3v - XFU4CPtUCfGUlYBlWtYTtr5vFtj+8i2BnbhUyEMzw/ZtzLEOFBKyV1nOvRmc3yAjHfLYy - F/gU+ezmhwCYHb6qCgKWqX4gngdIB0AOL3v5hyPN0S9skuxhTZP8rbyIUVSC/ZxWNy6y0 - sGHXZHm/JfqaSH1zwsP4X/AGVBsXtmI8R3TCJE2bgn8aP5MAeV4hWD1AuO/+cqWtF7F+u - n1WNWP5C2ZujYcx/eqf/wh69pBCXwUaawbiT5IZSW1EG8kCy43038qzmbFmtbNODOfvcy - pEGYlOihhxTSIj9cslu+frV1cAsbiV8h8X6/7a4+z2gT96y2h58vTCMnkpUa2UUIuXUzT - kaUG+pTQZS0Tn1UbDGOrV2ANiIYbYzTeRqwXmwRukor+iUg/0pCiI1x8Hj2eA8l+oq4G8 - EjjvYG6mXvOHQzz4sjJ3DLlOZLmkuDkvNft2ySLad93j78Hqs+YXrtv9r8o8txKGq52+j - TBmIUsB5MSYHRlS/GRmnCHH4CoKdXVzBNaxNge6HsNTUkanXQ5jQ1D4aN/h/rTC8Uv8tm - gOU85V71LEjayJ0X2bYkLwVcLcboC0Gf53IBfQyleVykiPfPUNNHFONyS/PgRY=