Spaces:
Build error
Build error
| import gradio as gr | |
| import requests | |
| # Function to fetch repository details from GitHub | |
| def analyze_github_repo(repo_url): | |
| # Extract the username and repo name from the GitHub URL | |
| if "github.com" not in repo_url: | |
| return "Please provide a valid GitHub repository URL." | |
| parts = repo_url.split('/') | |
| if len(parts) < 5: | |
| return "URL should be in the format: https://github.com/username/repository" | |
| user, repo = parts[3], parts[4] | |
| # GitHub API endpoint to get repository details | |
| api_url = f"https://api.github.com/repos/{user}/{repo}" | |
| response = requests.get(api_url) | |
| # Check if repository exists | |
| if response.status_code == 404: | |
| return "Repository not found." | |
| # Parse the response | |
| data = response.json() | |
| # Extract relevant information | |
| stars = data.get('stargazers_count', 'N/A') | |
| forks = data.get('forks_count', 'N/A') | |
| issues = data.get('open_issues_count', 'N/A') | |
| contributors_url = data.get('contributors_url', None) | |
| # Get number of contributors | |
| contributors = "N/A" | |
| if contributors_url: | |
| contributors_data = requests.get(contributors_url).json() | |
| contributors = len(contributors_data) | |
| # Return the analysis result | |
| result = ( | |
| f"Repository: {repo_url}\n" | |
| f"Stars: {stars}\n" | |
| f"Forks: {forks}\n" | |
| f"Open Issues: {issues}\n" | |
| f"Contributors: {contributors}" | |
| ) | |
| return result | |
| # Gradio interface for the tool | |
| iface = gr.Interface( | |
| fn=analyze_github_repo, | |
| inputs=gr.Textbox(label="Enter GitHub Repository URL", placeholder="https://github.com/username/repository"), | |
| outputs=gr.Textbox(label="Repository Analysis", placeholder="Analysis will be displayed here..."), | |
| title="GitHub Repository Analysis Tool", | |
| description="Enter a GitHub repository URL to get basic analytics including stars, forks, issues, and contributors." | |
| ) | |
| # Launch the app | |
| iface.launch() | |