GHAWatch is a lightweight Java CLI tool that monitors GitHub Actions workflow runs, jobs, and steps for a given repository, printing real-time updates to stdout — one line per event. It supports:- Workflow run started / completed- Job started / completed- Step started / completed- Includes timestamps, run/job IDs, step number, branch, SHA, status, and message The tool is fault-tolerant, handles GitHub API rate limits, and resumes from where it stopped using a local JSON state file (~/.gha-watch///state.json).--
- Java 17 — stable LTS.
- Maven — simple build/dependency management.
- OkHttp — lightweight HTTP client for GitHub API calls.
- Jackson — fast JSON parsing and DTO mapping.
- SLF4J — clean logging with optional verbose mode.
mvn clean package--
java -jar target/GHAWatch-1.0-SNAPSHOT-jar-with-dependencies.jar [options]
Example: export GITHUB_TOKEN=ghp_xxx java -jar target/GHAWatch-1.0-SNAPSHOT-jar-with-dependencies.jar Anvarjon7/learning-platfrom--interval 5 --verbose --token ghp_xxx--
--state--since-seconds--verbose--
2025-12-01T14:59:25.099487+01:00 | JOB_STARTED | run=19823269680 | job=56790344506 | step=- | branch=main | sha=c42a342 | status=completed | msg="Job started: build"--
- Main — CLI entry point
- GitHubClient — GitHub API wrapper with rate-limit handling
- MonitorEngine — polling loop and event detection
- StateStore — load/save JSON state
- EventEmitter — prints events to stdout
Java 17+ Maven GitHub token (repo or public_repo or actions:read)
🔹 Project Repository: https://github.com/Anvarjon7/GHAWatch
🔹 Release (v1.0.0): https://github.com/Anvarjon7/GHAWatch/releases/tag/v1.0.0
🔹 Monitored Test Repository: https://github.com/Anvarjon7/learning-platfrom