From f007025cedcfd1b24a3cb8d2c14d063c58035a6c Mon Sep 17 00:00:00 2001 From: elsid Date: Thu, 9 Dec 2021 21:05:55 +0100 Subject: [PATCH] Add job ID to discord notification To easily track down where it comes from. --- scripts/find_missing_merge_requests.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/find_missing_merge_requests.py b/scripts/find_missing_merge_requests.py index be54750098..1cca15c03b 100755 --- a/scripts/find_missing_merge_requests.py +++ b/scripts/find_missing_merge_requests.py @@ -14,6 +14,8 @@ import urllib.parse help='Path to text file with Gitlab token.') @click.option('--project_id', type=int, default=7107382, help='Gitlab project id.') +@click.option('--job_id', type=int, default=os.getenv('CI_JOB_ID'), + help='Gitlab job id.') @click.option('--host', type=str, default='gitlab.com', help='Gitlab host.') @click.option('--workers', type=int, default=10, @@ -28,7 +30,7 @@ import urllib.parse help='Number of merge requests per page.') @click.option('--ignored_mrs_path', type=str, help='Path to a list of ignored MRs.') -def main(token_path, project_id, host, workers, target_branch, begin_page, end_page, per_page, ignored_mrs_path): +def main(token_path, project_id, job_id, host, workers, target_branch, begin_page, end_page, per_page, ignored_mrs_path): headers = make_headers(token_path) base_url = f'https://{host}/api/v4/projects/{project_id}/' discord_webhook_url = os.getenv('DISCORD_WEBHOOK_URL') @@ -67,7 +69,8 @@ def main(token_path, project_id, host, workers, target_branch, begin_page, end_p if discord_webhook_url is not None and missing_mrs: project_web_url = parse_gitlab_response(requests.get(url=base_url, headers=headers))['web_url'] + '/' discord_message = format_discord_message(missing=missing, filtered=filtered, target_branch=target_branch, - project_web_url=project_web_url, missing_mrs=missing_mrs) + project_web_url=project_web_url, missing_mrs=missing_mrs, + job_id=job_id) print('Sending Discord notification...') print(discord_message) discord_webhook.DiscordWebhook(url=discord_webhook_url, content=discord_message, rate_limit_retry=True).execute() @@ -75,10 +78,11 @@ def main(token_path, project_id, host, workers, target_branch, begin_page, end_p exit(-1) -def format_discord_message(missing, filtered, target_branch, project_web_url, missing_mrs): +def format_discord_message(missing, filtered, target_branch, project_web_url, missing_mrs, job_id): target_branch = format_link(target_branch, urllib.parse.urljoin(project_web_url, f'-/tree/{target_branch}')) + job = f' by job ' + format_link(job_id, urllib.parse.urljoin(project_web_url, f'-/jobs/{job_id}')) if job_id else '' return ( - f'Found {missing} missing MRs out of {filtered} from {target_branch} target branch:\n' + f'Found {missing} missing MRs out of {filtered} from {target_branch} target branch{job}:\n' + '\n'.join(format_missing_mr_message(v, project_web_url) for v in missing_mrs) )