gotit
gotit copied to clipboard
Help You Got It (golang dependencies)
Gotit
Help You Got It (golang dependencies)
中文文档
Gotit is a Golang package cache proxy, proudly powered by betproxy.
Just change the proxy settings of your package management tool to Gotit, and Gotit will automatically pull, cache and update all dependencies for you.
Features
- Faster Pulling is very fast when hitting the cache.
- Reliable Gotit can continue working on the cache after disconnecting or deleting the origin repository.
- Transparency In theory, Gotit can work with all Go package management tools. (needs to skip HTTPS certificate verification)
Deployment
Requirements
Make sure the git
and go
executable is on your PATH
variable.
Installation
go get github.com/faceair/gotit
Run
Run Gotit on port 8080
$GOPATH/bin/gotit -port 8080
Run gotit
directly see help for other commands. Gotit use system GOPATH
to save dependencies by default.
CI or individual use direct trust certificate (recommended)
# Import environment variables and certificates
export HTTPS_PROXY=http://127.0.0.1:3128
curl -o /usr/local/share/ca-certificates/gotit.crt http://127.0.0.1:3128/ssl && update-ca-certificates
# Normal use
go get -v github.com/golang/dep/cmd/dep
go get -v github.com/axw/gocov/gocov
go get -v github.com/AlekSi/gocov-xml
go get -v golang.org/x/lint/golint
dep ensure -v
go mod download
glide install -v
# Delete the certificate after the build
rm /usr/local/share/ca-certificates/gotit.crt && update-ca-certificates
Configure dependency management tool
If you are concerned about the security of importing certificates, you can try to bypass the HTTPS verification of the package management tool.
dep
dep don't support skip HTTPS certificate verification, we need patch dep. You can build it yourself in this fork repository or download modified binary files.
Then set HTTPS_PROXY to Gotit address
HTTPS_PROXY=http://127.0.0.1:8080 dep ensure -v
or
export HTTPS_PROXY=http://127.0.0.1:8080
dep ensure -v
glide
glide also need a patch, download binary directly.
HTTPS_PROXY=http://127.0.0.1:8080 glide install
go get
HTTPS_PROXY=http://127.0.0.1:8080 GIT_SSL_NO_VERIFY=true go get -v -insecure github.com/faceair/gotit
FAQ
- When does Gotit update the repository?
After the client pulls the code, Gotit checks the repository for updates. So if you do not update to the latest version at a time, you can wait and try again.
- What is the difference between Gotit and the forward proxy with cache?
Pull code in git http protocol is a post request, it cannot be cached.