allow choosing default branch on UI
@@ -16,6 +16,16 @@ requiredclass="w-full max-w-md"/><p class="text-sm text-gray-500">All repositories are publicly visible.</p>++ <label for="name" class="block uppercase font-bold text-sm">Default branch</label>+ <input+ type="text"+ id="branch"+ name="branch"+ required+ class="w-full max-w-md"+ />+ <p class="text-sm text-gray-500">The default branch is <span class="font-bold">main</span></p></div><fieldset class="space-y-3">
MODIFIED
appview/state/signer.go
MODIFIED
appview/state/signer.go
@@ -77,16 +77,19 @@return s.client.Do(req)}-func (s *SignedClient) NewRepo(did, repoName string) (*http.Response, error) {+func (s *SignedClient) NewRepo(did, repoName, defaultBranch string) (*http.Response, error) {const (Method = "PUT"Endpoint = "/repo/new")body, _ := json.Marshal(map[string]interface{}{- "did": did,- "name": repoName,+ "did": did,+ "name": repoName,+ "default_branch": defaultBranch,})++ fmt.Println(body)req, err := s.newRequest(Method, Endpoint, body)if err != nil {
MODIFIED
appview/state/state.go
MODIFIED
appview/state/state.go
@@ -508,6 +508,11 @@ s.pages.Notice(w, "repo", "Invalid repo name.")return}+ defaultBranch := r.FormValue("branch")+ if defaultBranch == "" {+ defaultBranch = "main"+ }+ok, err := s.enforcer.E.Enforce(user.Did, domain, domain, "repo:create")if err != nil || !ok {s.pages.Notice(w, "repo", "You do not have permission to create a repo in this knot.")@@ -526,7 +531,7 @@ s.pages.Notice(w, "repo", "Failed to connect to knot server.")return}- resp, err := client.NewRepo(user.Did, repoName)+ resp, err := client.NewRepo(user.Did, repoName, defaultBranch)if err != nil {s.pages.Notice(w, "repo", "Failed to create repository on knot server.")return
MODIFIED
knotserver/routes.go
MODIFIED
knotserver/routes.go
@@ -505,8 +505,9 @@ writeError(w, "invalid request body", http.StatusBadRequest)return}+ log.Println("branch", data.DefaultBranch)if data.DefaultBranch == "" {- data.DefaultBranch = "main"+ data.DefaultBranch = h.c.Repo.MainBranch}did := data.Did