Something went wrong. Try again.
Monorepo for Tangled
Something went wrong. Try again.
1.0 kB · 49 lines
Go
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package xrpc
import ( "net/http" "strconv"
"tangled.org/core/knotserver/git" "tangled.org/core/types" xrpcerr "tangled.org/core/xrpc/errors")
func (x *Xrpc) RepoBranches(w http.ResponseWriter, r *http.Request) { repo := r.URL.Query().Get("repo") repoPath, err := x.parseRepoParam(repo) if err != nil { writeError(w, err.(xrpcerr.XrpcError), http.StatusBadRequest) return }
// default limit := 50 offset := 0
if l, err := strconv.Atoi(r.URL.Query().Get("limit")); err == nil && l > 0 && l <= 100 { limit = l }
if o, err := strconv.Atoi(r.URL.Query().Get("cursor")); err == nil && o > 0 { offset = o }
gr, err := git.PlainOpen(repoPath) if err != nil { writeError(w, xrpcerr.RepoNotFoundError, http.StatusNoContent) return }
branches, _ := gr.Branches(&git.BranchesOptions{ Limit: limit, Offset: offset, })
// Create response using existing types.RepoBranchesResponse response := types.RepoBranchesResponse{ Branches: branches, }
x.writeJson(w, response)}