This project is a Streamlit application that provides detailed statistics and information about a specified GitHub repository. It leverages the GitHub API to fetch data and uses Plotly for interactive visualizations. The application is organized into multiple tabs for easy navigation and a comprehensive view of repository metrics.
- Repository Overview: General information about the repository.
- Issues Information: Detailed statistics and insights about the issues in the repository.
- Pull Requests Information: Detailed statistics and insights about the pull requests in the repository.
To set up the environment using conda, create the environment from the env.yml file:
conda env create -f env.yml
conda activate github-statisticYou can also run the application using Docker. First, build the Docker image:
docker build -t github-statistics-dashboard .Then, run the Docker container:
docker run -p 8501:8501 github-statistics-dashboardIf you prefer to use pip, install the dependencies using:
pip install -r requirements.txtTo start the Streamlit application, run the following command:
streamlit run src/main.pyIf using Docker, the application will be accessible at http://localhost:8501 once the container is running.
The entry point of the application. It sets up authentication, retrieves the specified repository, and configures the Streamlit app with multiple tabs for different views.
Displays introductory information about the repository, including the full name of the repository.
Provides detailed statistics and insights about the issues in the repository, organized into the following sub-sections:
- Labeled vs Unlabeled Issues
- Commented vs Uncommented Issues
- Assigned vs Unassigned Issues
- Recent Issues
- Milestones
- Pull Requests
- Locked Issues
- Comments
- Events
Displays detailed information about the pull requests in the repository, including:
- Number
- Title
- State
- Updated At
- User
- Head SHA
- Body
- Merge Commit SHA
- Merged At
- Changed Files
Provides comprehensive information about the repository, organized into the following sub-sections:
- General
- Stargazers
- Languages
- Topics
- Contents
- Branches
- Labels
- Top 10 Labels
- All Labels
- Milestones
- Titles
- Due Dates
- Closed Issues
Ensure you have the following environment variables set up in a config.py file:
GITHUB_REPO: The full name of the GitHub repository (e.g.,username/repo).GITHUB_TOKEN: Your GitHub personal access token.