Skip to content
This repository has been archived by the owner on Oct 13, 2023. It is now read-only.

[config:read-releases] Fetch exact branch #803

Merged
merged 2 commits into from
Jul 27, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
15 changes: 13 additions & 2 deletions doozerlib/cli/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1535,8 +1535,19 @@ def get_releases(runtime) -> dict:

owner = runtime.data_path.split('/')[-2]
api = GhApi(owner=owner, repo='ocp-build-data', token=github_token)
files = api.list_files(branch=runtime.group_commitish)
releases_yaml = files.get('releases.yml')
commitish = runtime.group_commitish

# TODO: this assumes commitish is a branch it doesn't work for tags/shasum. fix it
# api.git.get_ref(shasum) doesn't work
ref = api.git.get_ref(f'heads/{commitish}')
tree = api.git.get_tree(ref.object.sha).tree
releases_file, releases_yaml = 'releases.yml', None
for f in tree:
if f.path == releases_file:
releases_yaml = f
thegreyd marked this conversation as resolved.
Show resolved Hide resolved
if not releases_yaml:
raise DoozerFatalError(f'Cannot find {releases_file} in {runtime.group_commitish}')

blob = api.git.get_blob(file_sha=releases_yaml['sha'])
return yaml.safe_load(base64.b64decode(blob['content']))

Expand Down