{"id":13702472,"url":"https://github.com/sarumaj/gh-gr","last_synced_at":"2025-10-30T23:15:01.789Z","repository":{"id":197868925,"uuid":"698624657","full_name":"sarumaj/gh-gr","owner":"sarumaj","description":"github-cli extension allowing to manage multiple github repositories at once","archived":false,"fork":false,"pushed_at":"2025-06-04T13:33:29.000Z","size":9004,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-04T20:41:55.833Z","etag":null,"topics":["gh-cli","gh-extension","github-repo","golang"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/sarumaj/gh-gr/v2","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sarumaj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["sarumaj"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["paypal.me/danviddo"],"buy_me_a_coffee":"sarumaj"}},"created_at":"2023-09-30T13:25:40.000Z","updated_at":"2025-06-04T13:32:52.000Z","dependencies_parsed_at":"2023-10-03T05:26:32.354Z","dependency_job_id":"866268f4-9635-42d7-aecc-15635a7e8e73","html_url":"https://github.com/sarumaj/gh-gr","commit_stats":null,"previous_names":["sarumaj/gh-gr"],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/sarumaj/gh-gr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarumaj%2Fgh-gr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarumaj%2Fgh-gr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarumaj%2Fgh-gr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarumaj%2Fgh-gr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sarumaj","download_url":"https://codeload.github.com/sarumaj/gh-gr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarumaj%2Fgh-gr/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260286622,"owners_count":22986623,"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":["gh-cli","gh-extension","github-repo","golang"],"created_at":"2024-08-02T21:00:36.232Z","updated_at":"2025-10-30T23:15:01.772Z","avatar_url":"https://github.com/sarumaj.png","language":"Go","funding_links":["https://github.com/sponsors/sarumaj","paypal.me/danviddo","https://buymeacoffee.com/sarumaj"],"categories":["🆕 Recently Updated","Github"],"sub_categories":[],"readme":"[![test_and_report](https://github.com/sarumaj/gh-gr/actions/workflows/test_and_report.yml/badge.svg)](https://github.com/sarumaj/gh-gr/actions/workflows/test_and_report.yml)\n[![build_and_release](https://github.com/sarumaj/gh-gr/actions/workflows/build_and_release.yml/badge.svg)](https://github.com/sarumaj/gh-gr/actions/workflows/build_and_release.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/sarumaj/gh-gr)](https://goreportcard.com/report/github.com/sarumaj/gh-gr)\n[![Maintainability](https://qlty.sh/gh/sarumaj/projects/gh-gr/maintainability.svg)](https://qlty.sh/gh/sarumaj/projects/gh-gr)\n[![Code Coverage](https://qlty.sh/gh/sarumaj/projects/gh-gr/coverage.svg)](https://qlty.sh/gh/sarumaj/projects/gh-gr)\n[![Go Reference](https://pkg.go.dev/badge/github.com/sarumaj/gh-gr/v2.svg)](https://pkg.go.dev/github.com/sarumaj/gh-gr/v2)\n[![Go version](https://img.shields.io/github/go-mod/go-version/sarumaj/gh-gr?logo=go\u0026label=\u0026labelColor=gray)](https://go.dev)\n[![Release](https://img.shields.io/github/v/release/sarumaj/gh-gr?logo=github)](https://github.com/sarumaj/gh-gr/releases/latest)\n[![Release Date](https://img.shields.io/github/release-date/sarumaj/gh-gr?logo=github)](https://github.com/sarumaj/gh-gr/releases/latest)\n[![Commits since latest release](https://img.shields.io/github/commits-since/sarumaj/gh-gr/latest?logo=github)](https://github.com/sarumaj/gh-gr/releases/latest)\n[![Downloads (all assets, all releases)](https://img.shields.io/github/downloads/sarumaj/gh-gr/total?logo=github)](https://github.com/sarumaj/gh-gr/releases)\n[![Downloads (all assets, latest release)](https://img.shields.io/github/downloads/sarumaj/gh-gr/latest/total?logo=github)](https://github.com/sarumaj/gh-gr/releases/latest)\n\n---\n\n# gh-gr\n\n**gh-gr** is a GitHub repository management tool based on the project [github-repo](https://github.com/CristianHenzel/github-repo) by [Cristian Henzel](https://github.com/CristianHenzel).\n\nSince the original project used a configuration file containing sensitive information, the issue has been addressed by reinventing the tool as an extension to the [github cli (gh)](https://cli.github.com/).\n\n[![gh-gr demo](doc/screenshot.png)](https://youtu.be/LLZ4bcqc_Bk)\n\n## Installation\n\nPrerequisites: [github cli (gh)](https://cli.github.com/)\n\nTo install gr:\n\n```console\n$ gh extension install https://github.com/sarumaj/gh-gr\n```\n\n## Usage\n\n```console\n$ gh gr --help\n\n\u003e gr is a gh cli extension allowing management of multiple repositories at once\n\u003e\n\u003e Usage:\n\u003e   gr [flags]\n\u003e   gr [command]\n\u003e\n\u003e Examples:\n\u003e   gh gr --concurrency 100 --timeout \"20s\" \u003csubcommand\u003e\n\u003e\n\u003e Available Commands:\n\u003e   cleanup     Clean up untracked local repositories\n\u003e   completion  Generate the autocompletion script for the specified shell\n\u003e   edit        Edit configuration\n\u003e   export      Export current configuration to stdout\n\u003e   help        Help about any command\n\u003e   import      Import configuration from stdin or a file\n\u003e   init        Initialize repository mirror\n\u003e   pull        Pull all repositories\n\u003e   push        Push all repositories\n\u003e   remove      Remove current configuration\n\u003e   status      Show status for all repositories\n\u003e   update      Update configuration\n\u003e   version     Display version information\n\u003e   view        Display current configuration\n\u003e\n\u003e Flags:\n\u003e   -c, --concurrency uint   Concurrency for concurrent jobs (default 12)\n\u003e   -h, --help               help for gr\n\u003e   -t, --timeout duration   Set timeout for long running jobs (default 10m0s)\n\u003e\n\u003e Use \"gr [command] --help\" for more information about a command.\n```\n\nFirst, create the configuration:\n\n```console\n$ gh gr init -d SOMEDIR -c 10\n```\n\nor, if you are willing to exclude some repositories, you can use regular expressions:\n\n```console\n$ gh gr init -c 10 -d SOMEDIR -e \".*repo1\" -e \"SOMEORG/repo-.*\" -s\n```\n\nRun `gh gr init --help` or `gh gr help init` to retrieve more information about the init command.\n\nAfter the configuration is created, you can pull all repositories using:\n\n```console\n$ gh gr pull\n```\n\nyou can view the status of the repositories using:\n\n```console\n$ gh gr status\n```\n\nand you can push all repositories using:\n\n```console\n$ gh gr push\n```\n\nAfter creating new repositories on the server or after user data changes, you can update the local configuration using:\n\n```console\n$ gh gr update\n```\n\n## Acknowledgments\n\n- [Cristian Henzel](https://github.com/CristianHenzel)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarumaj%2Fgh-gr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsarumaj%2Fgh-gr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarumaj%2Fgh-gr/lists"}