diff --git a/playbooks/airship-airshipctl-update-github-issues.yaml b/playbooks/airship-airshipctl-update-github-issues.yaml deleted file mode 100644 index 7b8fd1593..000000000 --- a/playbooks/airship-airshipctl-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 5b19182eb..ac502f076 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -49,15 +49,6 @@ nodeset: airship-airshipctl-single-node voting: false -- job: - name: airship-airshipctl-update-github-issues - description: Updates and/or closes related issues on Github on merge - run: playbooks/airship-airshipctl-update-github-issues.yaml - nodeset: airship-airshipctl-single-node - secrets: - - name: github_credentials - secret: airship_airshipctl_airshipit_github_token - - job: name: airship-airshipctl-build-image nodeset: airship-airshipctl-single-node diff --git a/zuul.d/projects.yaml b/zuul.d/projects.yaml index 1e9ac0823..fc4527d81 100644 --- a/zuul.d/projects.yaml +++ b/zuul.d/projects.yaml @@ -61,7 +61,6 @@ promote: jobs: - promote-airship-project-docs: *docs - - airship-airshipctl-update-github-issues tag: jobs: - airship-airshipctl-upload-git-mirror