From c13f56e357951d0c23265dc8b8f1ab209cbdf40a Mon Sep 17 00:00:00 2001 From: Travis Semple Date: Wed, 5 Feb 2025 07:12:22 -0800 Subject: [PATCH] Add in automation for the end release date, still need to manually do the start (#1889) --- releases/release_to_zenhub.py | 6 +++--- releases/release_to_zenhub_auth.py | 4 ++-- releases/util.py | 10 ++++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/releases/release_to_zenhub.py b/releases/release_to_zenhub.py index f3c3a838c..461e9fd54 100644 --- a/releases/release_to_zenhub.py +++ b/releases/release_to_zenhub.py @@ -3,13 +3,13 @@ load_dotenv() -auth_issue_ids, _ = get_issues_from_repo('sbc-auth') -pay_issue_ids, release_names = get_issues_from_repo('sbc-pay', latest_release_only=True) +auth_issue_ids, _, _ = get_issues_from_repo('sbc-auth') +pay_issue_ids, release_names, release_dates = get_issues_from_repo('sbc-pay', latest_release_only=True) pay_release_issue_ids = list(set([item for item in pay_issue_ids if item not in auth_issue_ids])) target_release_name = f'Pay Release - {release_names[0]}' release_id = get_workspace_release_for_report(target_release_name) if release_id is None: - release_id = create_release(target_release_name) + release_id = create_release(target_release_name, release_dates[0]) print(f'Zenhub release created id: {release_id} - {target_release_name}') else: print(f'Zenhub release found id: {release_id} - {target_release_name}') diff --git a/releases/release_to_zenhub_auth.py b/releases/release_to_zenhub_auth.py index 807277495..e5362db20 100644 --- a/releases/release_to_zenhub_auth.py +++ b/releases/release_to_zenhub_auth.py @@ -4,11 +4,11 @@ load_dotenv() -auth_release_issue_ids, release_names = get_issues_from_repo('sbc-auth', latest_release_only=True) +auth_release_issue_ids, release_names, release_dates = get_issues_from_repo('sbc-auth', latest_release_only=True) target_release_name = f'Auth Release - {release_names[0]}' release_id = get_workspace_release_for_report(target_release_name) if release_id is None: - release_id = create_release(target_release_name) + release_id = create_release(target_release_name, release_dates[0]) print(f'Zenhub release created id: {release_id} - {target_release_name}') else: print(f'Zenhub release found id: {release_id} - {target_release_name}') diff --git a/releases/util.py b/releases/util.py index dbf7d56da..d2fbe31bb 100644 --- a/releases/util.py +++ b/releases/util.py @@ -8,11 +8,13 @@ def get_issues_from_repo(target, latest_release_only=False): """Get issue ids from repos on github.""" issue_ids = [] release_names = [] + release_dates = [] g = Github(os.getenv("GITHUB_ACCESS_TOKEN")) repository_owner = 'bcgov' repo = g.get_repo(f"{repository_owner}/{target}") for release in repo.get_releases(): release_names.append(release.title) + release_dates.append(release.created_at) for l in release.body.splitlines(): if re.search(r'\d+ -', l): issue_ids.append(re.search(r'\d+ -', l).group(0).replace(' -','')) @@ -25,7 +27,7 @@ def get_issues_from_repo(target, latest_release_only=False): if latest_release_only: break issue_ids = list(set(issue_ids)) - return issue_ids, release_names + return issue_ids, release_names, release_dates def add_issues_to_release(issue_id: int, zenhub_release_hash: str): """Add issues to Zenhub release.""" @@ -85,7 +87,7 @@ def get_workspace_release_for_report(release_name): return nodes[0].get('id') return None -def create_release(release_name): +def create_release(release_name, release_date): """Create release in Zenhub.""" response = requests.post('https://api.zenhub.com/public/graphql', headers={ @@ -98,8 +100,8 @@ def create_release(release_name): "release": { "title": release_name, "description": release_name, - "startOn": "2024-01-01T00:00:00.000Z", - "endOn": "2024-01-02T00:00:00.000Z", + "startOn": "2025-01-01T00:00:00.000Z", + "endOn": release_date.strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z', "repositoryGhIds": [int(os.getenv('ENTITY_GITHUB_REPO_ID'))] } }