From 48c5cfa89a1d64fbe0d0923bf0e729292fce000d Mon Sep 17 00:00:00 2001 From: James Pace Date: Thu, 4 Jan 2024 19:55:42 -0500 Subject: [PATCH] Add more metadata to request. --- README.md | 3 +++ j7s_branch_trigger/j7s_branch_trigger.py | 17 ++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6072231..ffb6f53 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,9 @@ which are checked at start up. branches of concern, for specific branch use '^refs/heads/branch$' * `J7S_LOOPTIME` - Default: 1.0 minutes between checks of the state of of the repo +* `J7S_ORG_NAME` - Default: "" the name of the org the repo is in in gitea. + Is addeded to the sent request. * `J7S_REPO_NAME` - Default: "" the repo name which will be added to the data posted to the event. Normally the thing right before .git in the clone url. +* `J7S_JOB_NAME` = Default: "" name for this trigger. Added to the sent request. diff --git a/j7s_branch_trigger/j7s_branch_trigger.py b/j7s_branch_trigger/j7s_branch_trigger.py index 9025a26..d73a3db 100644 --- a/j7s_branch_trigger/j7s_branch_trigger.py +++ b/j7s_branch_trigger/j7s_branch_trigger.py @@ -25,9 +25,9 @@ import logging def main(): logging.basicConfig(level=logging.DEBUG) logging.debug('Starting up....') - (repo, url, data_file, pattern, loop_time, repo_name) = get_config() + (repo, url, data_file, pattern, loop_time, repo_name, org_name, job_name) = get_config() def job(): - loop(repo, pattern, url, data_file, repo_name) + loop(repo, pattern, url, data_file, repo_name, org_name, job_name) schedule.every(loop_time).minutes.do(job) logging.debug('Doing initial run.') schedule.run_all() @@ -36,14 +36,14 @@ def main(): schedule.run_pending() time.sleep(1) -def loop(repo, pattern, request_url, data_file, repo_name): +def loop(repo, pattern, request_url, data_file, repo_name, org_name, job_name): logging.debug('Looking at {} for {}.'.format(repo, pattern)) all_branches = git_ls(repo) logging.debug('All branches: {}'.format(all_branches)) concerned_branches = find_concerned_branches(all_branches, pattern) logging.debug('Concerned branches for {}: {}'.format(pattern, concerned_branches)) last_time = load_last_time(data_file) - compare_branches(last_time, concerned_branches, request_url, repo_name) + compare_branches(last_time, concerned_branches, request_url, repo_name, org_name, job_name) save_this_time(data_file, concerned_branches) def git_ls(repo): @@ -82,13 +82,13 @@ def save_this_time(file_name, this_time): with open(file_name, 'w') as f: json.dump(this_time, f) -def compare_branches(last_time, this_time, url, repo_name): +def compare_branches(last_time, this_time, url, repo_name, org_name, job_name): for branch in this_time.keys(): my_hash = this_time[branch] last_hash = last_time.get(branch, None) if my_hash != last_hash: logging.debug('Branch {} has new hash.'.format(branch)) - r = requests.post(url, json={"sha": my_hash, "repo_name": repo_name}) + r = requests.post(url, json={"sha": my_hash, "repo_name": repo_name, "org_name": org_name, "job_name": job_name}) if r.status_code == 200 or r.status_code == 202: logging.debug("Request ok!") else: @@ -101,8 +101,11 @@ def get_config(): raise Exception('Missing J7S_REPO OR J7S_URL.') # the part right before .git in gitea clone url repo_name = os.environ.get('J7S_REPO_NAME', "") + # the gitea org the repo lives in. + org_name = os.environ.get('J7S_ORG_NAME', "") + job_name = os.environ.get('J7S_JOB_NAME', "") data_file = os.environ.get('J7S_HISTORY_FILE', '/tmp/branch-history.json') pattern = os.environ.get('J7S_PATTERN', '^HEAD$') loop_time = float(os.environ.get('J7S_LOOPTIME', 1.0)) - return (repo, url, data_file, pattern, loop_time, repo_name) + return (repo, url, data_file, pattern, loop_time, repo_name, org_name, job_name)