Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

AaronO/go-git-http

Repository files navigation

go-git-http

Build Status

A Smart Git Http server library in Go (golang)

Example

package main
import (
 "log"
 "net/http"
 "github.com/AaronO/go-git-http"
)
func main() {
 // Get git handler to serve a directory of repos
 git := githttp.New("/Users/aaron/git")
 // Attach handler to http server
 http.Handle("/", git)
 // Start HTTP server
 err := http.ListenAndServe(":8080", nil)
 if err != nil {
 log.Fatal("ListenAndServe: ", err)
 }
}

Authentication example

package main
import (
 "log"
 "net/http"
 "github.com/AaronO/go-git-http"
 "github.com/AaronO/go-git-http/auth"
)
func main() {
 // Get git handler to serve a directory of repos
 git := githttp.New("/Users/aaron/git")
 // Build an authentication middleware based on a function
 authenticator := auth.Authenticator(func(info auth.AuthInfo) (bool, error) {
 // Disallow Pushes (making git server pull only)
 if info.Push {
 return false, nil
 }
 // Typically this would be a database lookup
 if info.Username == "admin" && info.Password == "password" {
 return true, nil
 }
 return false, nil
 })
 // Attach handler to http server
 // wrap authenticator around git handler
 http.Handle("/", authenticator(git))
 // Start HTTP server
 err := http.ListenAndServe(":8080", nil)
 if err != nil {
 log.Fatal("ListenAndServe: ", err)
 }
}

About

A Smart Git Http server library in Go (golang)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

AltStyle によって変換されたページ (->オリジナル) /