forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

allow choosing default branch on UI

Changed files
+24 -5
appview
pages
templates
repo
state
knotserver
+10
appview/pages/templates/repo/new.html
···
class="w-full max-w-md"
/>
<p class="text-sm text-gray-500">All repositories are publicly visible.</p>
</div>
<fieldset class="space-y-3">
···
class="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">
+6 -3
appview/state/signer.go
···
return s.client.Do(req)
}
-
func (s *SignedClient) NewRepo(did, repoName string) (*http.Response, error) {
const (
Method = "PUT"
Endpoint = "/repo/new"
)
body, _ := json.Marshal(map[string]interface{}{
-
"did": did,
-
"name": repoName,
})
req, err := s.newRequest(Method, Endpoint, body)
if err != nil {
···
return s.client.Do(req)
}
+
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,
+
"default_branch": defaultBranch,
})
+
+
fmt.Println(body)
req, err := s.newRequest(Method, Endpoint, body)
if err != nil {
+6 -1
appview/state/state.go
···
return
}
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.")
···
return
}
-
resp, err := client.NewRepo(user.Did, repoName)
if err != nil {
s.pages.Notice(w, "repo", "Failed to create repository on knot server.")
return
···
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.")
···
return
}
+
resp, err := client.NewRepo(user.Did, repoName, defaultBranch)
if err != nil {
s.pages.Notice(w, "repo", "Failed to create repository on knot server.")
return
+2 -1
knotserver/routes.go
···
return
}
if data.DefaultBranch == "" {
-
data.DefaultBranch = "main"
}
did := data.Did
···
return
}
+
log.Println("branch", data.DefaultBranch)
if data.DefaultBranch == "" {
+
data.DefaultBranch = h.c.Repo.MainBranch
}
did := data.Did