{"id":50718591,"url":"https://github.com/vishalyadav0987/github-user-activity-cli","last_synced_at":"2026-06-09T21:30:27.010Z","repository":{"id":354123642,"uuid":"1222208491","full_name":"vishalyadav0987/github-user-activity-cli","owner":"vishalyadav0987","description":"https://roadmap.sh/projects/github-user-activity/solutions?u=69e11c4635198b31d63d8f6d","archived":false,"fork":false,"pushed_at":"2026-04-27T07:45:56.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-27T09:20:03.982Z","etag":null,"topics":["cli-tool","ddd-architecture","github","github-api","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vishalyadav0987.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-27T06:30:52.000Z","updated_at":"2026-04-27T07:51:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vishalyadav0987/github-user-activity-cli","commit_stats":null,"previous_names":["vishalyadav0987/github-user-activity-cli"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/vishalyadav0987/github-user-activity-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalyadav0987%2Fgithub-user-activity-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalyadav0987%2Fgithub-user-activity-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalyadav0987%2Fgithub-user-activity-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalyadav0987%2Fgithub-user-activity-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vishalyadav0987","download_url":"https://codeload.github.com/vishalyadav0987/github-user-activity-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vishalyadav0987%2Fgithub-user-activity-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34127342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-tool","ddd-architecture","github","github-api","golang"],"created_at":"2026-06-09T21:30:26.078Z","updated_at":"2026-06-09T21:30:27.003Z","avatar_url":"https://github.com/vishalyadav0987.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🐙 GitHub Activity CLI (Golang)\n\n🔗 **Project URL:**\nhttps://roadmap.sh/projects/github-user-activity\n\n---\n\nA lightweight and efficient **Command Line Interface (CLI)** application built in **Go (Golang)** to fetch and display a GitHub user's recent activity directly in the terminal.\n\n---\n\n## 🚀 Features\n\n* 👤 Fetch GitHub user activity using username\n* 📡 Uses GitHub public API (no authentication required)\n* 🧾 Clean and readable terminal output\n* 🔄 Supports multiple event types (Push, Issues, Stars, etc.)\n* ⚡ Fast and lightweight CLI tool\n* ❌ Graceful error handling (invalid user, API failure, etc.)\n* 🧠 Clean Architecture (Domain + Application + Infrastructure)\n\n---\n\n## 📁 Project Structure\n\n\n```\ngithub-user-activity\n├─ README.md\n├─ cmd\n│  └─ github-user-activity\n│     └─ main.go\n├─ go.mod\n├─ interfaces\n│  └─ cli\n│     ├─ handler.go\n│     ├─ output.go\n│     └─ parser.go\n└─ internal\n   ├─ application\n   │  └─ github-activity\n   │     └─ service.go\n   ├─ config\n   ├─ domain\n   │  └─ github-activity\n   │     ├─ entity.go\n   │     └─ errors.go\n   └─ infrastructure\n      ├─ client\n      │  └─ github_client.go\n      └─ github-activity\n         └─ service_implementation.go\n\n\n```\n\n---\n\n## ⚙️ Installation\n\n### 1. Clone repo\n\n```bash\ngit clone https://github.com/vishalyadav0987/github-activity-cli.git\ncd github-activity-cli\n```\n\n---\n\n### 2. Build binary\n\n```bash\ngo build -o github-activity cmd/github-activity/main.go\n```\n\n---\n\n### 3. Make it global (Mac/Linux)\n\n```bash\nsudo mv github-activity /usr/local/bin/\n```\n\n---\n\n## 🧪 Usage\n\n### ▶️ Fetch GitHub Activity\n\n```bash\ngithub-activity \u003cusername\u003e\n```\n\n---\n\n### 📌 Example\n\n```bash\ngithub-activity vishalyadav0987\n```\n\n---\n\n## 🖥️ Example Output\n\n```\n- Pushed commits to vishalyadav0987/github-user-activity-cli\n- Did CreateEvent on vishalyadav0987/github-user-activity-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/task-tracker-cli\n- Did CreateEvent on vishalyadav0987/task-tracker-cli\n- Pushed commits to vishalyadav0987/vishalyadav0987\n- Pushed commits to vishalyadav0987/vishalyadav0987\n- Pushed commits to vishalyadav0987/go-auth-ddd\n- Pushed commits to vishalyadav0987/go-auth-ddd\n- Did CreateEvent on vishalyadav0987/go-auth-ddd\n```\n\n---\n\n## ⚠️ Error Handling\n\n* ❌ Invalid username → \"user not found\"\n* ❌ API failure → \"failed to fetch data\"\n* ❌ No activity → \"no recent activity found\"\n* ❌ Rate limit exceeded → \"github api rate limit exceeded\"\n\n---\n\n## 🧠 Tech Stack\n\n* Go (Golang)\n* GitHub REST API\n* Clean Architecture (DDD inspired)\n* CLI Interface\n* Net/http package (no external libraries)\n\n---\n\n## 🏗️ Architecture Highlights\n\n* 🔹 Domain-driven structure\n* 🔹 Dependency Injection (manual)\n* 🔹 Interface-based design\n* 🔹 Separation of concerns (CLI / Service / Infra)\n\n---\n\n## 🔥 Future Improvements\n\n* 🎯 Add caching for repeated users\n* ⏱️ Add rate limit handling \u0026 retry logic\n* 🎨 Colored and formatted CLI output\n* 📊 Group events by type (Push / Star / Issue)\n* 🔐 GitHub token support for higher API limits\n* 🧪 Unit tests with mocked GitHub client\n\n---\n\n## 👨‍💻 Author\n\n**Vishal Yadav**\n\n---\n\n## ⭐ If you like this project\n\nGive it a ⭐ on GitHub! 🚀\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvishalyadav0987%2Fgithub-user-activity-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvishalyadav0987%2Fgithub-user-activity-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvishalyadav0987%2Fgithub-user-activity-cli/lists"}