{"id":14069791,"url":"https://github.com/2KAbhishek/ghpm","last_synced_at":"2025-07-30T06:32:57.596Z","repository":{"id":47175950,"uuid":"247495656","full_name":"2KAbhishek/ghpm","owner":"2KAbhishek","description":"The GitHub Project Manager 👩‍💻⚙","archived":false,"fork":false,"pushed_at":"2023-06-05T00:37:50.000Z","size":130,"stargazers_count":25,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-22T14:11:52.615Z","etag":null,"topics":["github","project-management","shell-script","utility"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/2KAbhishek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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},"funding":{"github":"2kabhishek"}},"created_at":"2020-03-15T15:35:57.000Z","updated_at":"2024-10-20T08:18:56.000Z","dependencies_parsed_at":"2024-08-13T07:25:44.569Z","dependency_job_id":null,"html_url":"https://github.com/2KAbhishek/ghpm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"2KAbhishek/bare-minimum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2KAbhishek%2Fghpm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2KAbhishek%2Fghpm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2KAbhishek%2Fghpm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2KAbhishek%2Fghpm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2KAbhishek","download_url":"https://codeload.github.com/2KAbhishek/ghpm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228102297,"owners_count":17869819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["github","project-management","shell-script","utility"],"created_at":"2024-08-13T07:07:14.222Z","updated_at":"2024-12-04T11:30:53.783Z","avatar_url":"https://github.com/2KAbhishek.png","language":"Shell","funding_links":["https://github.com/sponsors/2kabhishek"],"categories":["Shell"],"sub_categories":[],"readme":"\u003cdiv align = \"center\"\u003e\n\n\u003ch1\u003e\u003ca href=\"https://2kabhishek.github.io/ghpm\"\u003eghpm\u003c/a\u003e\u003c/h1\u003e\n\n\u003ca href=\"https://github.com/2KAbhishek/ghpm/blob/main/LICENSE\"\u003e\n\u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/2kabhishek/ghpm?style=flat\u0026color=eee\u0026label=\"\u003e \u003c/a\u003e\n\n\u003ca href=\"https://github.com/2KAbhishek/ghpm/graphs/contributors\"\u003e\n\u003cimg alt=\"People\" src=\"https://img.shields.io/github/contributors/2kabhishek/ghpm?style=flat\u0026color=ffaaf2\u0026label=People\"\u003e \u003c/a\u003e\n\n\u003ca href=\"https://github.com/2KAbhishek/ghpm/stargazers\"\u003e\n\u003cimg alt=\"Stars\" src=\"https://img.shields.io/github/stars/2kabhishek/ghpm?style=flat\u0026color=98c379\u0026label=Stars\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://github.com/2KAbhishek/ghpm/network/members\"\u003e\n\u003cimg alt=\"Forks\" src=\"https://img.shields.io/github/forks/2kabhishek/ghpm?style=flat\u0026color=66a8e0\u0026label=Forks\"\u003e \u003c/a\u003e\n\n\u003ca href=\"https://github.com/2KAbhishek/ghpm/watchers\"\u003e\n\u003cimg alt=\"Watches\" src=\"https://img.shields.io/github/watchers/2kabhishek/ghpm?style=flat\u0026color=f5d08b\u0026label=Watches\"\u003e \u003c/a\u003e\n\n\u003ca href=\"https://github.com/2KAbhishek/ghpm/pulse\"\u003e\n\u003cimg alt=\"Last Updated\" src=\"https://img.shields.io/github/last-commit/2kabhishek/ghpm?style=flat\u0026color=e06c75\u0026label=\"\u003e \u003c/a\u003e\n\n\u003ch3\u003eThe GitHub Project Manager 🧑‍💻⚙️\u003c/h3\u003e\n\n\u003cfigure\u003e\n  \u003cimg src= \"images/screenshot.png\" alt=\"ghpm Demo\" style=\"width:100%\"\u003e\n  \u003cbr/\u003e\n  \u003cfigcaption\u003eghpm screenshot\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003c/div\u003e\n\n## What is this\n\nghpm is a utility that allows you to manage all your GitHub projects by allowing batch operations.\n\nYou can clone all of your or any other user's repos at once.\n\nYou can use it to push, pull and do any other operation on all your projects at once.\n\n## Inspiration\n\nI have a lot of repos on my GitHub and maintaining them was becoming a pain, also this makes moving my work to a new machine really smooth.\n\n## Prerequisites\n\nBefore you begin, ensure you have met the following requirements:\n\n- You have installed the latest version of `bash`\n- Cloning self repos needs authentication and relies on `gh`, the GitHub cli\n\n## Getting ghpm\n\nTo install ghpm, follow these steps:\n\n```bash\ngit clone https://github.com/2kabhishek/ghpm.git\ncd ghpm\n# Setup symlink make sure target directory is added to PATH\nln -sfnv $PWD/ghpm.sh ~/.local//bin/ghpm\n```\n\n## Using ghpm\n\nAfter symlinking, you can run `ghpm` in your GitHub repos parent directory, or you can pass it in as an argument\n\n```bash\nghpm\n# or\nghpm ~/Projects/GitHub\n```\n\nThis will open up the self guided menu with a list of operations you can perform.\n\n\u003e You can use option 3 to run any command in all your GitHub repos, very useful for push, pull and similar commands.\n\n## How it was built\n\nghpm was built using `bash`\n\n## Challenges faced\n\nFiguring out the GitHub api and authentication was a challenge, I used `gh` to do some heavy lifting.\n\n## What I learned\n\n- Best practices for `bash` scripts\n- Bash functions and how it handles variables\n- Used `awk`, `find`, `xargs` and other useful tools.\n\nHit the ⭐ button if you found this useful.\n\n## More Info\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ca href=\"https://github.com/2KAbhishek/ghpm\"\u003eSource\u003c/a\u003e | \u003ca href=\"https://2kabhishek.github.io/ghpm\"\u003eWebsite\u003c/a\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2KAbhishek%2Fghpm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2KAbhishek%2Fghpm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2KAbhishek%2Fghpm/lists"}