Skip to content
main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

gogh

GO GitHub project manager

PkgGoDev Go Report Card Coverage Status Release

Description

gogh is forked from ghq.

$ gogh list
github.com/kyoh86/git-branches
github.com/kyoh86/gogh
github.com/kyoh86/vim-wipeout
github.com/kyoh86-tryouts/bare
github.com/nvim-telescope/telescope.nvim
...

gogh provides a way to organize remote repository clones, like go get does. When you clone a remote repository by gogh get, gogh makes a directory under a specific root directory (by default ~/go/src) using the remote repository URL's host and path. And creating new one by gogh new, gogh make both of a local project and a remote repository.

$ gogh get https://github.com/kyoh86/gogh
# Runs `git clone https://github.com/kyoh86/gogh ~/go/src/github.com/kyoh86/gogh`

You can also list projects (local repositories) (gogh list).

Install

For Golang developers

$ go get github.com/kyoh86/gogh/cmd/gogh

Homebrew/Linuxbrew

$ brew tap kyoh86/tap
$ brew update
$ brew install kyoh86/tap/gogh

Makepkg

$ mkdir -p gogh_build && \
  cd gogh_build && \
  curl -L --silent https://github.com/kyoh86/gogh/releases/latest/download/gogh_PKGBUILD.tar.gz | tar -xvz
$ makepkg -i

Available commands

Show projects

Command Description
gogh list List local projects
gogh repos List remote repositories

Manipulate projects

Command Description
gogh create Create a new project with a remote repository
gogh delete Delete a repository with a remote repository
gogh fork Fork a repository
gogh clone Clone a repository to local

Others

Command Description
gogh roots Manage roots
gogh servers Manage servers
gogh bundle Manage bundle
gogh help Help about any command

Use gogh [command] --help for more information about a command. Or see the manual in usage/gogh.md.

Roots

gogh manages projects under the roots directories.

Seealso: Directory structures

You can change the roots with roots add <path> or roots remove <path> and see all of them by roots list. gogh uses the first one as the default one, create, fork or clone will put a local project under it. If you want to change the default, use roots set-default <path>.

Default: ~/Projects.

Servers

gogh manages respositories in some servers that pairs of a user and a host name. To login in new server or logout, you should use servers login. gogh uses the first server as the default one. When you specify a repository with amonguous user or host, it will be interpolated with a default server.

I.E. when servers are:

  • github.com:
    • user: kyoh86
  • example.com:
    • user: foobar

Amonguas repository names will be interpolated:

Amonguals name Interpolated name
gogh github.com/kyoh86/gogh
foobar/gogh github.com/foobar/gogh

Commands

Manual: usage/gogh.md.

Directory structures

Local projects are placed under gogh.roots with named `host/user/repo.

~/Projects
+-- github.com/
|-- google/
|   +-- go-github/
|-- kyoh86/
|   +-- gogh/
+-- alecthomas/
  +-- kingpin/

LICENSE

MIT License

This software is released under the MIT License, see LICENSE. And this software is based on ghq.