RepoWatch is a command-line application designed to monitor and display the recent activity of any GitHub user.
It fetches and summarizes the latest GitHub events for a specified user, such as pushes, repository creations, pull requests, and more.
- Fetch Recent Events: Retrieve the most recent activities of any GitHub user.
- Event Summary: Provides a summary of different types of activities including push events, repository creations, pull requests, issues, and more.
- Customizable Event Limit: Users can specify how many recent events to display using a command-line argument.
- Java 11 or higher
- Maven (optional, if you plan to build the project using Maven)
GitHub limits the number of unauthenticated API requests.
To avoid rate limiting and ensure smooth usage, you must set a Personal Access Token (PAT).
- Go to your GitHub Developer Settings.
- Create a Fine-grained personal access token with public repository read access.
- Copy the token.
Before running the application, set the token as an environment variable:
On Linux / Mac / Gitpod / Codespaces:
export GITHUB_TOKEN=your_token_hereOn Windows (Powershell):
$env:GITHUB_TOKEN="your_token_here"-
Clone the repository:
git clone https://github.com/Deeperr0/RepoWatch.git
-
Navigate to the project directory:
cd RepoWatch -
Compile the project:
mvn compile
You can run the application directly using Maven with the following command:
mvn exec:java -Dexec.mainClass="org.example.Main" -Dexec.args="<GitHub-username>"By default, this command shows the last 6 events in the user's activity.
You can specify the number of events to display (up to 100) using:
mvn exec:java -Dexec.mainClass="org.example.Main" -Dexec.args="<GitHub-username> --limit <number-of-events>"You can also package the application into a single executable .jar file:
-
Build the project:
mvn clean package
-
Run the application:
java -jar target/repowatch.jar <GitHub-username> [--limit <number-of-events>]
(Replace the .jar filename if your Maven pom.xml produces a different name.)
This project idea was inspired by roadmap.sh.