import os import gradio as gr import requests from dotenv import load_dotenv # Load API key from .env file load_dotenv() github_api_key = os.getenv("GITHUB_API_KEY") # Ensure API key is available if not github_api_key: raise ValueError("GitHub API key is missing. Check your .env file.") # Define a function to fetch GitHub user details def get_github_user(username): url = f"https://api.github.com/users/{username}" headers = {"Authorization": f"token {github_api_key}"} response = requests.get(url, headers=headers) if response.status_code == 200: data = response.json() return f"User: {data['login']}\nName: {data.get('name', 'N/A')}\nPublic Repos: {data['public_repos']}\nFollowers: {data['followers']}" else: return f"Error: {response.status_code} - {response.json().get('message', 'Unknown error')}" # Create Gradio UI iface = gr.Interface( fn=get_github_user, inputs=gr.Textbox(label="GitHub Username", placeholder="Enter GitHub username"), outputs="text", title="GitHub User Info Fetcher", description="Enter a GitHub username to fetch profile details.", ) # Launch the app if __name__ == "__main__": iface.launch()