{"id":23326214,"url":"https://github.com/nirokay/gitman","last_synced_at":"2026-04-30T14:37:25.418Z","repository":{"id":64637877,"uuid":"576847413","full_name":"nirokay/gitman","owner":"nirokay","description":"A cross-platform git repository manager. Easily keep track of your cloned repositories.","archived":false,"fork":false,"pushed_at":"2025-06-23T09:15:54.000Z","size":287,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-23T10:26:26.544Z","etag":null,"topics":["git","manager","multithread-download","nim","nim-lang","repository-management","repository-manager"],"latest_commit_sha":null,"homepage":"","language":"Nim","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/nirokay.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","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":"2022-12-11T07:05:00.000Z","updated_at":"2025-06-23T09:15:57.000Z","dependencies_parsed_at":"2022-12-12T10:08:39.511Z","dependency_job_id":"24a7a5d5-e4d8-4152-baca-5dee60003836","html_url":"https://github.com/nirokay/gitman","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/nirokay/gitman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fgitman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fgitman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fgitman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fgitman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nirokay","download_url":"https://codeload.github.com/nirokay/gitman/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirokay%2Fgitman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32468009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"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":["git","manager","multithread-download","nim","nim-lang","repository-management","repository-manager"],"created_at":"2024-12-20T19:15:09.922Z","updated_at":"2026-04-30T14:37:25.413Z","avatar_url":"https://github.com/nirokay.png","language":"Nim","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gitman - Git Repository Manager\n\nHave you been cloning git repositories left and right? Do you wish to keep them automatically up-to date, run automated scripts on them?\n\ngitman is a cross-platform manager for git repositories, that are located inside a single directory or are symlinked to it.\n\n## Usage\n\n### Arguments\n\n* `clone [url: string]`: Clones one or more git repositories to the git repository directory. (urls separated by spaces)\n\n  **Example:** `gitman clone https://github.com/nirokay/gitman https://github.com/nirokay/nirokay`\n\n* `pull`: Pulls every repository's changes, or only the ones which names are provided synchronously.\n\n  **Examples:** `gitman pull` (pulls all repos), `gitman pull gitman nirokay` (only pulls gitman and nirokay repo)\n\n* `async-pull`: Pulls every repository's changes, or only the ones which names are provided asynchronously.\n\n  **Examples:** `gitman async-pull` (pulls all repos), `gitman async-pull gitman nirokay` (only pulls gitman and nirokay repo)\n\n* `help`: Displays a help message.\n\n* `version`: Displays version and compilation information.\n\n* `remove [dir: string]`: Removes the specified directory inside the git-repo directory. Can accept multiple directories to remove.\n\n  **Example:** `gitman remove nirokay gitman`\n\n* `list`: Lists all git repositories.\n\n* `install`: Executes installation commands specified in the installation json file (default: `$GITMAN_REPOS_LOCATION/.gitman-install.json`).\n\n  **Example:** `gitman install` (executes install instructions on every repository)\n\n* `edit-install`: Edits the installation json-file. Uses the `EDITOR` environment variable for the editor.\n\n  **Example:** `gitman edit-install` (opens the file in your editor)\n\nSome commands may also have aliases, see `help` for more information.\n\n### Automatic installation\n\ngitman supports automatic installations with `gitman install` for specified repositories (installation instructions by default in\n`$GITMAN_REPOS_LOCATION/.gitman-install.json`).\n\nThis is the JSON format `[repositoryName: string] -\u003e [shellCommandToExecute: string]`:\n\n```json\n{\n    \"gitman\": \"nimble build -d:release \u0026\u0026 nimble install\",\n    \"nirokay\": \"echo -e \\\"Imagine this is something useful\\!\\\"\"\n}\n```\n\nThis will automatically `cd` into every directory and execute the command, the instructions above would install gitman, when the gitman\nrepository is cloned to `$GITMAN_REPOS_LOCATION/gitman/`.\n\nOf course you can use this feature for other things, such as running scripts, validating files, etc. - Anything you want to have automated!\n\n## Installation\n\nYou will need to have [Nim](https://nim-lang.org) installed, as well as its package-manager nimble.\n\n**Note:**\n\nIf you are using `nimble install`, make sure the nimble/bin directory is in your path (default: `~/.nimble/bin/`)!\n\n### nimble\n\n`nimble install gitman`\n\n### Compiling manually from source\n\nClone the repository and run `nimble build -d:release` to compile or `nimble install` to compile and install it to the nimble/bin directory.\n\nYou can also set some compile-time flags to customise your the program to your liking.\n\n**List of compile-time flags:**\n\n* `environmentVariable` (default: `GITMAN_REPOS_LOCATION`)\n\n  This sets the environment variable the program uses.\n\n* `gitmanInstallFile` (default: `.gitman-install.json`)\n\n  Changes the installation json-file name.\n\n**Usage:**\n\nWhen compiling add the `-d:` flag. For example:\n\n* `nimble build -d:environmentVariable:NEW_ENV_VARIABLE`\n* `nimble build -d:gitmanInstallFile:new_file_name.json`\n* `nimble build -d:environmentVariable:NEW_ENV_VARIABLE -d:gitmanInstallFile:new_file_name.json`\n\n## Configuration\n\nThere are no configuration files for this program (anymore). You can set a custom git directory by changing the `GITMAN_REPOS_LOCATION` environment variable.\n\n**Example (Linux):**\n\n```bash\nexport GITMAN_REPOS_LOCATION=\"$HOME/Git\"\n```\n\n**Note:**\n\nThis will only be available for the current session. Consider putting the string above into your profile/shell rc file.\n\n## Autocompletions\n\n**Supported shells:**\n\n* [ZSH](./shell-completions/gitman_complete.zsh.sh)\n\n## Changes\n\nSee [Changes](CHANGES.md) document.\n\n## Supported Operating Systems\n\nAny operating system that is supported by the [nim programming language](https://nim-lang.org) should be supported.\n\nThis program was tested on GNU/Linux (OpenSUSE, Ubuntu, Manjaro) and Windows 10 (64 bit).\n\n## Dependencies\n\n* [git](https://git-scm.com/)\n* [Nim](https://nim-lang.org) (not required to run the binary, only for compiling and installing through nimble)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirokay%2Fgitman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnirokay%2Fgitman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirokay%2Fgitman/lists"}