AccioINTERN / app.py
trexhere's picture
Update app.py
da2c1fb verified
raw
history blame contribute delete
No virus
1.51 kB
import gradio as gr
import requests
import os
def invite_user(username):
GITHUB_TOKEN = os.getenv('GITHUB_TOKEN')
GITHUB_ORG = os.getenv('GITHUB_ORG')
headers = {
'Authorization': f'token {GITHUB_TOKEN}',
'Accept': 'application/vnd.github.v3+json',
}
# Step 1: Fetch the user ID based on the username
user_response = requests.get(
f'https://api.github.com/users/{username}',
headers=headers
)
if user_response.status_code != 200:
return f'Error fetching user ID: {user_response.json().get("message", "Unknown error")}'
user_id = user_response.json().get('id')
if not user_id:
return 'Error: Could not retrieve user ID'
# Step 2: Send the invitation using the user ID
invite_response = requests.post(
f'https://api.github.com/orgs/{GITHUB_ORG}/invitations',
headers=headers,
json={'invitee_id': user_id}
)
if invite_response.status_code == 201:
return f'Invitation sent to {username}'
else:
return f'Error: {invite_response.json().get("message", "Unknown error")}'
with gr.Blocks() as iface:
gr.Markdown("# Join AccioINTERN")
with gr.Row():
username_input = gr.Textbox(label="GitHub Username")
response_output = gr.Textbox(label="Response", interactive=False)
submit_btn = gr.Button("Get Invitation")
submit_btn.click(fn=invite_user, inputs=username_input, outputs=response_output)
iface.launch()