71 lines
2.8 KiB
Python
71 lines
2.8 KiB
Python
import pandas as pd
|
|
import streamlit as st
|
|
from streamlit_js_eval import streamlit_js_eval
|
|
from settings import *
|
|
from sidebar import show_sidebar
|
|
|
|
def highlight_disabled_col(value):
|
|
return 'background-color: #F0F2F6'
|
|
|
|
if __name__=='__main__':
|
|
|
|
st.set_page_config(
|
|
page_title='DataSaker Version Management',
|
|
layout='wide'
|
|
)
|
|
|
|
tab1, tab2, tab3 = st.tabs(["DataSaker", "Releases", "Recent Deliveries"])
|
|
|
|
with tab1:
|
|
st.header('DataSaker')
|
|
st.write(f"##### {get_datasaker()}")
|
|
|
|
col1, col2 = st.columns([7, 3])
|
|
with col1:
|
|
st.subheader('Service')
|
|
if st.button('Data Reload'):
|
|
git_pull()
|
|
streamlit_js_eval(js_expressions='parent.window.location.reload()')
|
|
|
|
df = pd.DataFrame.from_dict(get_service())
|
|
regex = '^$|^release-[0-9]+.[0-9]+.[0-9]+$'
|
|
prod_regex = '^release-[0-9]+.[0-9]+.[0-9]+$'
|
|
edited_df = st.data_editor(
|
|
df.style.applymap(highlight_disabled_col),
|
|
key='data_editor',
|
|
column_config={
|
|
'type': st.column_config.TextColumn(label='Type', disabled=True),
|
|
'name': st.column_config.TextColumn(label='Name', disabled=True, width='medium'),
|
|
'latest_candidate_version': st.column_config.TextColumn(label='Candidate Latest Version', disabled=True),
|
|
'candidate_version': st.column_config.TextColumn(label='Candidate Version', validate=regex, required=True),
|
|
'release_version': st.column_config.TextColumn(label='Release Version', validate=regex, required=True),
|
|
'product_version': st.column_config.TextColumn(label='Product Version', validate=prod_regex, required=True)
|
|
},
|
|
height=800
|
|
)
|
|
with col2:
|
|
st.text('Edited Rows')
|
|
st.write(st.session_state['data_editor']['edited_rows'])
|
|
|
|
with tab2:
|
|
releases = get_releases()
|
|
for release in releases:
|
|
st.write(f"### {release['name']}")
|
|
st.write(release['html_url'])
|
|
st.write(convert_utc_to_korea_time(release['published_at']))
|
|
st.write(release['body'].replace('#', ''))
|
|
st.divider()
|
|
|
|
with tab3:
|
|
deliveries = get_delivery()
|
|
|
|
for delivery in deliveries:
|
|
st.write(f"#### {delivery['guid']}")
|
|
st.write(f"{convert_utc_to_korea_time(delivery['delivered_at'])}")
|
|
st.write(f"Event: {delivery['event']}")
|
|
st.write(f"Action: {delivery['action']}")
|
|
st.write(f"Delivery ID: {delivery['id']}")
|
|
|
|
st.divider()
|
|
|
|
show_sidebar(df, edited_df) |