build_scripts
major refactor, changing to v1.0.0examples
fix: tests + refinementsfsrepack
fix: numerous fixesgomod
fix: numerous fixesinternal
fix: tests + refinementsplugin
fix: modern pseudo versioningsemver
fix: modern pseudo versioning.gitignore
feat-4 | moved to zerologcircle-test.sh
Helper stuffgo.mod
fix: tests + refinementsgo.sum
fix: tests + refinementsLICENSE
Helper stuffmiddleware_test.go
feat-1 | vim fixmiddleware.go
fix: tests + refinementsmod_info.go
fix: numerous fixesmodule.go
major refactor, changing to v1.0.0plugin.go
major refactor, changing to v1.0.0README.md
gitlab plugin pseudo versionsrouter.go
major refactor, changing to v1.0.0tree_test.go
major refactor, changing to v1.0.0tree.go
fix: numerous fixesGoProxy middleware
Middleware for go modules proxy, inspired by https://github.com/goproxyio/goproxy
Usage
How to set up a middleware:
- Initiate router:
r, err := goproxy.NewRouter() - Add needed handlers via
for example:
err := r.AddRoute(plugin)this library currently supportsregular, err := vcs.NewPlugin(cacheDir) if err != nil { log.Fatal(err) } if err := r.AddRoute("", regular); err != nil { log.Fatal(err) }vcswhich is pretty much like regulargo get(regularin the example),gitlabwhich works upon gitlab's v4 API and delegation to another go proxy, seesource/... - Generate middleware:
Now you can use it in your HTTP server See
var m http.Handler = goproxy.Middleware(r)examples/goproxyfor details
Example
There's an example which supports regular go get-like module retrieval and gitlab.
- Build it:
go build ./examples/goproxy - Start it:
./goproxy -cache-dir . -gitlab https://gitlab.com/api/v4 -listen 0.0.0.0:8081 - Set up environment:
Remember, you must generate gitlab private token first otherwise gitlab may reject your requests
export GO111MODULE=on export GOPROXY=http://<gitlab private token>@localhost:8081