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()