{"id":19049606,"url":"https://github.com/crhntr/gitctrl","last_synced_at":"2025-04-17T20:32:20.522Z","repository":{"id":130824592,"uuid":"150926114","full_name":"crhntr/gitctrl","owner":"crhntr","description":"A CLI to Control Many Git Repositories or many of other git stuffs","archived":false,"fork":false,"pushed_at":"2019-08-02T01:42:58.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-09T05:52:53.311Z","etag":null,"topics":[],"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/crhntr.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}},"created_at":"2018-09-30T03:22:40.000Z","updated_at":"2024-06-19T06:21:58.438Z","dependencies_parsed_at":"2023-05-18T23:45:45.090Z","dependency_job_id":null,"html_url":"https://github.com/crhntr/gitctrl","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crhntr%2Fgitctrl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crhntr%2Fgitctrl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crhntr%2Fgitctrl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crhntr%2Fgitctrl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crhntr","download_url":"https://codeload.github.com/crhntr/gitctrl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223764417,"owners_count":17198624,"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":[],"created_at":"2024-11-08T23:11:27.276Z","updated_at":"2024-11-08T23:11:27.768Z","avatar_url":"https://github.com/crhntr.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gitctrl\nSome Scripts to Control Many Git Repositories\n\n## Problems this tool trys to \"Solve\"\n\n### Updating Remote URLs from HTTPs to SSH\n\nMigrating from using HTTP(S) remote servers to using SSH is a good thing (I guess), \nbut with many cloned repos going to every directory and running \n\n```bash\npushd $SOME_REPO\n  git remote -v\n  git remote rm origin\n  git remote add origin git@github.com:crhntr/gitctrl\npopd\n```\ncan take a little time. So I decided to try out a cool looking git library, \n[go-git](https://github.com/src-d/go-git), to try to automate this problem.\n\n### Viewing the Status of Many Repos\n\nI'm not always the best at remembering to commit and push my work. \nI wanted to see what the status of all my repo's were so I could prioritise \nfinishing WIP and push it. So this tool does this. _Also, I haven't written much \nconcurent Go recently so after noticing how long some repos took to return a status\nI decided this was an opertunity to practice using some go routines._\n\n## Usage\n\n### `gitctrl statuses`\n\nGo to some directory and run this command. The tool with walk the filesystem and when \nit finds a directory with a git repo it will print out the status.\n\n### `gitctrl remote-origin-must-ssh`\n\nGo to some directory and run this command. The tool with walk the filesystem and when \nit finds a directory with a git repo that has a remote named ***origin*** and has the prefix\n`https://github.com` it will convert the URL and log the change as follows:\n\n```\nhttps://github.com/crhntr/gitctrl --\u003e git@github.com:crhntr/gitctrl\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrhntr%2Fgitctrl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrhntr%2Fgitctrl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrhntr%2Fgitctrl/lists"}