Spaces:
Running
Running
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() | |