{"id":15435964,"url":"https://github.com/uetchy/gst","last_synced_at":"2025-04-19T18:23:01.149Z","repository":{"id":1093106,"uuid":"38152335","full_name":"uetchy/gst","owner":"uetchy","description":"👻 Supercharge your ghq workflow.","archived":false,"fork":false,"pushed_at":"2023-02-24T11:20:58.000Z","size":490,"stargazers_count":47,"open_issues_count":5,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-24T02:11:34.942Z","etag":null,"topics":["cli-app","ghq","git"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uetchy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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},"funding":{"github":["uetchy"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2015-06-27T08:01:43.000Z","updated_at":"2025-02-04T06:26:12.000Z","dependencies_parsed_at":"2023-07-05T18:02:16.081Z","dependency_job_id":null,"html_url":"https://github.com/uetchy/gst","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uetchy%2Fgst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uetchy%2Fgst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uetchy%2Fgst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uetchy%2Fgst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uetchy","download_url":"https://codeload.github.com/uetchy/gst/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241552045,"owners_count":19981074,"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":["cli-app","ghq","git"],"created_at":"2024-10-01T18:47:13.385Z","updated_at":"2025-03-02T18:32:31.627Z","avatar_url":"https://github.com/uetchy.png","language":"Go","funding_links":["https://github.com/sponsors/uetchy"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n \u003ch1\u003egst 👻\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/uetchy/gst/master/assets/screen.gif\"/\u003e\u003c/p\u003e\n\n[![Actions Status: release](https://github.com/uetchy/gst/workflows/goreleaser/badge.svg)](https://github.com/uetchy/gst/actions?query=goreleaser)\n[![sake.sh badge](https://sake.sh/uetchy/badge.svg)](https://sake.sh/uetchy)\n\n**gst** is a simple toolbox that offers additional commands (`list`, `new`, `rm`, `doctor`, `update`, `fetch`) for [ghq](https://github.com/x-motemen/ghq).\n\nSee [Quick Install](https://github.com/uetchy/gst#quick-install) for the installation guide.\n\n## Usage\n\n### `gst list` or `gst`\n\nList **uncommitted changes** and **unpushed commits** within all repositories.\n\n```bash\n$ gst\n/Users/uetchy/Repos/src/github.com/uetchy/gst (11 minutes ago)\nuncommitted changes\n M .travis.yml\n M README.md\n\n/Users/uetchy/Repos/src/github.com/uetchy/qiita-takeout (9 hours ago)\nunpushed commits\n409849d returns Promise.reject\n```\n\nwith `--short` or `-s` option:\n\n```bash\n$ gst --short\n/Users/uetchy/Repos/src/github.com/uetchy/ferret\n/Users/uetchy/Repos/src/github.com/uetchy/gst\n```\n\n### new\n\nCreate a new git repository.\n\nBefore start using `new` and `rm` command, You **must** set `github.user` in gitconfig to your GitHub username: `git config --global github.user \u003cuser\u003e`.\n\n```bash\n$ gst new epic-project\n/Users/uetchy/Repos/src/github.com/uetchy/epic-project\n$ gst new epic-team/epic-project\n/Users/uetchy/Repos/src/github.com/epic-team/epic-project\n```\n\nWith `cd`, you can jump to the created project quickly:\n\n```bash\ncd $(gst new epic-project)\n```\n\nIt's also good for having a handy alias for this workflow:\n\n```bash\nnewrepo() {\n  cd $(gst new ${1})\n}\n```\n\n### rm\n\nRemove a git repository. It also removes the containing directory if the deleted repository was the sole repository the parent directory had.\n\n```bash\n$ gst rm retired-project\nRemove? /Users/uetchy/Repos/src/github.com/uetchy/retired-project [Y/n]\nRemoved /Users/uetchy/Repos/src/github.com/uetchy/retired-project\nRemoved /Users/uetchy/Repos/src/github.com/uetchy\n```\n\n### doctor\n\nHealth-check over all repositories.\n\n```bash\n$ gst doctor\n[bitbucket.org/uetchy/scent] git remote origin has changed:\n   Expected:   github.com/uetchy/google-cloud-vision-raspi-sample\n   Actual:       bitbucket.org/uetchy/scent\n```\n\n### update\n\n`git pull` to all repositories.\n\n```bash\n$ gst update\n/Users/uetchy/Repos/src/github.com/uetchy/gst\nAlready up-to-date.\n```\n\n### fetch\n\n`git fetch --tags --prune` to all repositories.\n\n```bash\n$ gst fetch\n/Users/uetchy/Repos/src/github.com/uetchy/gst\n * [new branch]      dev        -\u003e origin/dev\n - [deleted]         (none)     -\u003e origin/test\n * [new tag]         v1.0.0     -\u003e v1.0.0\n```\n\n## Quick Install\n\nSee [releases](https://github.com/uetchy/gst/releases/latest).\n\n\u003c!-- START mdmod {match: /v\\d+?\\.\\d+?\\.\\d+?/g, replace: () =\u003e version} --\u003e\n\nmacOS:\n\n```bash\nbrew tap sake.sh/uetchy https://sake.sh/uetchy\nbrew install gst\n```\n\nLinux:\n\n```bash\ncurl -L https://github.com/uetchy/gst/releases/download/v5.0.5/gst_linux_amd64 \u003e /usr/local/bin/gst\nchmod +x /usr/local/bin/gst\n```\n\n\u003c!-- END mdmod --\u003e\n\n### Run as Docker container\n\nYou can take a glance at what `gst` do before installing the actual binary by running the containerized Docker image.\n\n```bash\nalias gst=\"docker run --rm -v \\$(ghq root):/ghq -it uetchy/gst\"\ngst --help\ngst list\n```\n\n### Pre-release build\n\nmacOS:\n\n```bash\ncurl -L https://github.com/uetchy/gst/releases/download/pre-release/gst_darwin_amd64 \u003e /usr/local/bin/gst\nchmod +x /usr/local/bin/gst\n```\n\nLinux:\n\n```bash\ncurl -L https://github.com/uetchy/gst/releases/download/pre-release/gst_linux_amd64 \u003e /usr/local/bin/gst\nchmod +x /usr/local/bin/gst\n```\n\n### Head build\n\n```bash\ngo get github.com/uetchy/gst\n```\n\n## Development\n\nPRs are welcome.\n\n```bash\ngo build\n./gst\n```\n\n### Test\n\nDocker is required to run tests.\n\n```bash\nmake test\n```\n\n## Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://uechi.io\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/431808?v=4\" width=\"100px;\" alt=\"Yasuaki Uechi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYasuaki Uechi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/uetchy/gst/commits?author=uetchy\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/uetchy/gst/commits?author=uetchy\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/sinshutu\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/7629220?v=4\" width=\"100px;\" alt=\"NaotoSuzuki\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNaotoSuzuki\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/uetchy/gst/commits?author=sinshutu\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuetchy%2Fgst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuetchy%2Fgst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuetchy%2Fgst/lists"}