{"id":29921999,"url":"https://github.com/tuvimen/gitman","last_synced_at":"2026-04-10T22:45:18.059Z","repository":{"id":297263204,"uuid":"990054135","full_name":"TUVIMEN/gitman","owner":"TUVIMEN","description":"Personal collection of scripts for managing multiple git remotes","archived":false,"fork":false,"pushed_at":"2025-06-11T16:38:08.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-10T22:44:44.151Z","etag":null,"topics":["bash","git","git-remotes-management"],"latest_commit_sha":null,"homepage":null,"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/TUVIMEN.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,"zenodo":null}},"created_at":"2025-05-25T12:07:39.000Z","updated_at":"2025-06-11T16:38:12.000Z","dependencies_parsed_at":"2025-06-08T06:18:17.011Z","dependency_job_id":null,"html_url":"https://github.com/TUVIMEN/gitman","commit_stats":null,"previous_names":["tuvimen/gitman"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TUVIMEN/gitman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUVIMEN%2Fgitman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUVIMEN%2Fgitman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUVIMEN%2Fgitman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUVIMEN%2Fgitman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TUVIMEN","download_url":"https://codeload.github.com/TUVIMEN/gitman/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUVIMEN%2Fgitman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31662169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"ssl_error","status_checked_at":"2026-04-10T17:19:13.364Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bash","git","git-remotes-management"],"created_at":"2025-08-02T08:44:47.154Z","updated_at":"2026-04-10T22:45:18.041Z","avatar_url":"https://github.com/TUVIMEN.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gitman\n\nMy personal script for managing multiple git remotes like [gitolite](https://wiki.archlinux.org/title/Gitolite) or [github](https://github.com).\n\n`gitman` script creates a registry of repositories in `~/.cache/gitman`, where it stores first and last commit hash, tags, description, path, and list of remotes.\n\nWhile working on this script i came up with name `gitman`, searching through github to my dismay I've discovered that there already are popular projects with that name, since they are of no use to me i didn't change the name.\n\n## Adding scripts managing remotes\n\n`gitman-github` and `gitman-gitolite` are external script that can be added to registry as aliases.\n\n```bash\ngitman remote github ~/.local/bin/gitman-github\ngitman remote home ~/.local/bin/gitman-gitolite\n```\n\n`gitman-github` requires [github-cli](https://cli.github.com/)\n\n## Environment variables\n\n`gitman` needs\n\n```bash\nexport GITMAN_OWNER='hexderm'\n```\n\n`gitman-gitolite` needs\n\n```bash\nexport GITMAN_GITOLITE_REPO=\"/home/hexderm/git/gitolite-admin\"\n```\n\n`gitman-github` needs\n\n```bash\nexport GITMAN_GITHUB_USER=\"TUVIMEN\"\n```\n\n## Adding repositories\n\nAfter creating a local repository you can add it to registry\n\n```bash\ngitman add\n```\n\nYou can specify or change tags and description associated with it\n\n```bash\ngitman add -d 'description' -t 'tag1|tag2' -t tag3\ngitman add -d 'other description' -t tag4 -t -tag1 # removes tag1 and adds tag4\n```\n\nHaving repository in registry you can add managed remotes\n\n```bash\ngitman radd home github\n```\n\nWhen having managed remotes you can again add it to registry to update remotes\n\n```bash\ngitman add\n```\n\nThis will create and push repositories to gitolite and github while changing tags and description\n\n## pushing changes/renaming/deleting\n\nYou can push changes to all repositories by running\n\n```bash\nfor i in $(git remote); do git push \"$i\"; done\n```\n\nor simply\n\n```bash\ngitman push\n```\n\nYou can rename repository by running\n\n```bash\ngitman move new-name\n```\n\nIt can also be deleted\n\n```bash\ngitman delete\ngitman delete -f # remove without prompt\n```\n\n## Searching the registry\n\n`gitman` provides extensive searching capabilities. You can search by specifying extended regex for 9 options - `path`, `description`, `tags`, `remote-name`, `remote-path`, `rmeote-date`, `firstcommit`, `lastcommit`, `lastchange`. Output can also be changed by the same options, but beginning with `--o-`.\n\n Get descriptions of all repositories\n```bash\ngitman get --o-description\n```\nGet path and remote path of repositories that are in projects directory and were modified in 2025-03\n\n```bash\ngitman get --path '/projects/' --lastchange '^2025-03-' --o-path --o-remote-path\n```\nDump the registry\n\n```bash\ngitman get\n```\n\n## Help\n\nYou can read about all available subcommands and options by running\n\n```bash\ngitman help\n```\n\nSubcommands also have their own help messages\n\n```bash\ngitman add --help\ngitman delete --help\ngitman remote --help\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuvimen%2Fgitman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftuvimen%2Fgitman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftuvimen%2Fgitman/lists"}