Skip to content

Instantly share code, notes, and snippets.

@thegreyd
Forked from joepvd/review-release-config
Created April 17, 2023 15:57
Show Gist options
  • Save thegreyd/4c13e948f6decacf9af528669e9a2f54 to your computer and use it in GitHub Desktop.
Save thegreyd/4c13e948f6decacf9af528669e9a2f54 to your computer and use it in GitHub Desktop.
Review release configuration
#!/usr/bin/env python
import requests
from ruamel import yaml
import sys
versions = ["4.10", "4.11", "4.12", "4.13", "4.14"]
def get_data():
stream_permits = {}
group_info = {}
for version in versions:
releases = requests.get(f'https://raw.githubusercontent.com/openshift/ocp-build-data/openshift-{version}/releases.yml').text
content = yaml.safe_load(releases)
stream_permits[version] = content['releases']['stream']['assembly']['permits']
group = requests.get(f'https://raw.githubusercontent.com/openshift/ocp-build-data/openshift-{version}/group.yml').text
group_info[version] = yaml.safe_load(group)
return stream_permits, group_info
def get_permits():
permits_overview = {}
for version in stream_permits:
for permit in stream_permits[version]:
code = permit['code']
component = permit['component']
if not code in permits_overview:
permits_overview[code] = {}
if not component in permits_overview[code]:
permits_overview[code][component] = []
permits_overview[code][component].append(version)
return permits_overview
def get_frozen():
frozen = {}
for version in group_info:
freeze = group_info[version]["freeze_automation"]
if not freeze in frozen:
frozen[freeze] = []
frozen[freeze].append(version)
return frozen
def get_golang_requirements():
golang = {}
for version in group_info:
check = group_info[version]['check_golang_versions']
if not check in golang:
golang[check] = []
golang[check].append(version)
return golang
def get_threshold():
threshold = {}
for version in group_info:
hours = group_info[version]['scan_freshness']['threshold_hours']
if not hours in threshold:
threshold[hours] = []
threshold[hours].append(version)
return threshold
stream_permits, group_info = get_data()
overview = {}
overview['stream_permits'] = get_permits()
overview['freeze_automation'] = get_frozen()
overview['check_golang_versions'] = get_golang_requirements()
overview['scan_freshness.threshold_hours'] = get_threshold()
yaml.dump(overview, sys.stdout)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment