Add git config
This commit is contained in:
@@ -3,8 +3,6 @@ from git import Repo
|
|||||||
|
|
||||||
repo = Repo('.')
|
repo = Repo('.')
|
||||||
file_path = './version.json'
|
file_path = './version.json'
|
||||||
repo.config_writer().set_value('user', 'name', 'dsk-minchulahn').release()
|
|
||||||
repo.config_writer().set_value('user', 'email', 'minchulahn@ex-em.com').release()
|
|
||||||
api_url = 'https://api.github.com/repos/cloudmoa/sample-app/releases'
|
api_url = 'https://api.github.com/repos/cloudmoa/sample-app/releases'
|
||||||
github_token = os.environ.get('GITHUB_TOKEN')
|
github_token = os.environ.get('GITHUB_TOKEN')
|
||||||
|
|
||||||
@@ -25,6 +23,14 @@ def get_github_releases():
|
|||||||
releases = requests.get(api_url, headers=headers).json()
|
releases = requests.get(api_url, headers=headers).json()
|
||||||
return releases
|
return releases
|
||||||
|
|
||||||
|
def get_user_name_list():
|
||||||
|
users = ['', 'dsk-minchulahn', 'Ose-Exem', 'deukjin', 'pparkssi3']
|
||||||
|
return users
|
||||||
|
|
||||||
|
def set_git_config(username):
|
||||||
|
repo.config_writer().set_value('user', 'name', username).release()
|
||||||
|
repo.config_writer().set_value('user', 'email', 'minchulahn@ex-em.com').release()
|
||||||
|
|
||||||
def diff():
|
def diff():
|
||||||
if len(repo.index.diff(repo.head.commit)) > 0:
|
if len(repo.index.diff(repo.head.commit)) > 0:
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -4,6 +4,11 @@ from streamlit_js_eval import streamlit_js_eval
|
|||||||
from settings import *
|
from settings import *
|
||||||
from logger import logger
|
from logger import logger
|
||||||
|
|
||||||
|
if 'push_button_disabled' not in st.session_state:
|
||||||
|
st.session_state.push_button_disabled = True
|
||||||
|
if 'release_button_disabled' not in st.session_state:
|
||||||
|
st.session_state.release_button_disabled = True
|
||||||
|
|
||||||
def set_extended_description(edited_df):
|
def set_extended_description(edited_df):
|
||||||
json_edited_df = json.loads(edited_df.to_json(orient='records'))
|
json_edited_df = json.loads(edited_df.to_json(orient='records'))
|
||||||
extended_description_value = []
|
extended_description_value = []
|
||||||
@@ -30,24 +35,31 @@ def show_sidebar(df, edited_df):
|
|||||||
with st.sidebar:
|
with st.sidebar:
|
||||||
st.subheader('Git Push')
|
st.subheader('Git Push')
|
||||||
with st.expander('Git Push'):
|
with st.expander('Git Push'):
|
||||||
|
selected_user_name = st.selectbox('User Name', get_user_name_list())
|
||||||
commit_message = st.text_input('Commit Message', value='Update version.json')
|
commit_message = st.text_input('Commit Message', value='Update version.json')
|
||||||
extended_description = st.text_area('Extended description', value=set_extended_description(edited_df), height=200)
|
extended_description = st.text_area('Extended description', value=set_extended_description(edited_df), height=200)
|
||||||
|
|
||||||
if st.button(key='push', label='Commit changes'):
|
if selected_user_name and commit_message:
|
||||||
if commit_message:
|
st.session_state.push_button_disabled = False
|
||||||
|
else:
|
||||||
|
st.session_state.push_button_disabled = True
|
||||||
|
|
||||||
|
if st.button(key='push', label='Commit changes', disabled=st.session_state.push_button_disabled):
|
||||||
|
if selected_user_name and commit_message:
|
||||||
if diff_remote_head():
|
if diff_remote_head():
|
||||||
if df.equals(edited_df):
|
if df.equals(edited_df):
|
||||||
logger.warning('Git Push - No changes have been made')
|
logger.warning(f'Git Push - No changes have been made | {selected_user_name}')
|
||||||
st.warning('No changes have been made', icon='⚠️')
|
st.warning('No changes have been made', icon='⚠️')
|
||||||
else:
|
else:
|
||||||
|
set_git_config(selected_user_name)
|
||||||
set_version_json(edited_df)
|
set_version_json(edited_df)
|
||||||
git_push(commit_message, extended_description)
|
git_push(commit_message, extended_description)
|
||||||
logger.info('Git Push - Success')
|
logger.info(f'Git Push - Success | {selected_user_name}')
|
||||||
st.success('Success', icon='✅')
|
st.success('Success', icon='✅')
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
streamlit_js_eval(js_expressions='parent.window.location.reload()')
|
streamlit_js_eval(js_expressions='parent.window.location.reload()')
|
||||||
else:
|
else:
|
||||||
logger.error('Git Push - Updates were rejected because the tip of your current branch is behind')
|
logger.error(f'Git Push - Updates were rejected because the tip of your current branch is behind | {selected_user_name}')
|
||||||
st.error('Updates were rejected because the tip of your current branch is behind', icon='🚨')
|
st.error('Updates were rejected because the tip of your current branch is behind', icon='🚨')
|
||||||
|
|
||||||
st.divider()
|
st.divider()
|
||||||
@@ -55,7 +67,7 @@ def show_sidebar(df, edited_df):
|
|||||||
st.subheader('Draft a new release')
|
st.subheader('Draft a new release')
|
||||||
with st.expander('Draft a new release'):
|
with st.expander('Draft a new release'):
|
||||||
tags = [tag.name for tag in get_tags()]
|
tags = [tag.name for tag in get_tags()]
|
||||||
tags.insert(0, "")
|
tags.insert(0, '')
|
||||||
new_tag = st.text_input('Create a new tag')
|
new_tag = st.text_input('Create a new tag')
|
||||||
|
|
||||||
if new_tag:
|
if new_tag:
|
||||||
@@ -68,17 +80,23 @@ def show_sidebar(df, edited_df):
|
|||||||
release_title = st.text_input('Release title', value=selected_tag)
|
release_title = st.text_input('Release title', value=selected_tag)
|
||||||
release_describe = st.text_area('Describe this release', value='## Production에 변경된 Version')
|
release_describe = st.text_area('Describe this release', value='## Production에 변경된 Version')
|
||||||
|
|
||||||
if st.button(key='release', label='Publish release'):
|
if selected_tag and release_title and release_describe:
|
||||||
response = publish_release(selected_tag, release_title, release_describe)
|
st.session_state.release_button_disabled = False
|
||||||
|
else:
|
||||||
|
st.session_state.release_button_disabled = True
|
||||||
|
|
||||||
if response.status_code == 201:
|
if st.button(key='release', label='Publish release', disabled=st.session_state.release_button_disabled):
|
||||||
logger.info('Publish Release - Release created successfully')
|
if selected_tag and release_title and release_describe:
|
||||||
st.success('Release created successfully', icon='✅')
|
response = publish_release(selected_tag, release_title, release_describe)
|
||||||
git_pull()
|
|
||||||
streamlit_js_eval(js_expressions='parent.window.location.reload()')
|
if response.status_code == 201:
|
||||||
else:
|
logger.info(f'Publish Release - Release created successfully | {selected_user_name}')
|
||||||
logger.error(f'Publish Release - Failed to create release. Status code: {response.status_code}')
|
st.success('Release created successfully', icon='✅')
|
||||||
logger.error(f'Response: {response.text}')
|
git_pull()
|
||||||
st.error(f'Failed to create release. Status code: {response.status_code}\n\n Response: {response.text}', icon='🚨')
|
streamlit_js_eval(js_expressions='parent.window.location.reload()')
|
||||||
|
else:
|
||||||
|
logger.error(f'Publish Release - Failed to create release. Status code: {response.status_code}')
|
||||||
|
logger.error(f'Response: {response.text} | {selected_user_name}')
|
||||||
|
st.error(f'Failed to create release. Status code: {response.status_code}\n\n Response: {response.text}', icon='🚨')
|
||||||
|
|
||||||
st.divider()
|
st.divider()
|
||||||
Reference in New Issue
Block a user