+10
appview/pages/templates/repo/new.html
+10
appview/pages/templates/repo/new.html
···
16
class="w-full max-w-md"
17
/>
18
<p class="text-sm text-gray-500">All repositories are publicly visible.</p>
19
+
20
+
<label for="name" class="block uppercase font-bold text-sm">Default branch</label>
21
+
<input
22
+
type="text"
23
+
id="branch"
24
+
name="branch"
25
+
required
26
+
class="w-full max-w-md"
27
+
/>
28
+
<p class="text-sm text-gray-500">The default branch is <span class="font-bold">main</span></p>
29
</div>
30
31
<fieldset class="space-y-3">
+6
-3
appview/state/signer.go
+6
-3
appview/state/signer.go
···
77
return s.client.Do(req)
78
}
79
80
-
func (s *SignedClient) NewRepo(did, repoName string) (*http.Response, error) {
81
const (
82
Method = "PUT"
83
Endpoint = "/repo/new"
84
)
85
86
body, _ := json.Marshal(map[string]interface{}{
87
-
"did": did,
88
-
"name": repoName,
89
})
90
91
req, err := s.newRequest(Method, Endpoint, body)
92
if err != nil {
···
77
return s.client.Do(req)
78
}
79
80
+
func (s *SignedClient) NewRepo(did, repoName, defaultBranch string) (*http.Response, error) {
81
const (
82
Method = "PUT"
83
Endpoint = "/repo/new"
84
)
85
86
body, _ := json.Marshal(map[string]interface{}{
87
+
"did": did,
88
+
"name": repoName,
89
+
"default_branch": defaultBranch,
90
})
91
+
92
+
fmt.Println(body)
93
94
req, err := s.newRequest(Method, Endpoint, body)
95
if err != nil {
+6
-1
appview/state/state.go
+6
-1
appview/state/state.go
···
508
return
509
}
510
511
ok, err := s.enforcer.E.Enforce(user.Did, domain, domain, "repo:create")
512
if err != nil || !ok {
513
s.pages.Notice(w, "repo", "You do not have permission to create a repo in this knot.")
···
526
return
527
}
528
529
-
resp, err := client.NewRepo(user.Did, repoName)
530
if err != nil {
531
s.pages.Notice(w, "repo", "Failed to create repository on knot server.")
532
return
···
508
return
509
}
510
511
+
defaultBranch := r.FormValue("branch")
512
+
if defaultBranch == "" {
513
+
defaultBranch = "main"
514
+
}
515
+
516
ok, err := s.enforcer.E.Enforce(user.Did, domain, domain, "repo:create")
517
if err != nil || !ok {
518
s.pages.Notice(w, "repo", "You do not have permission to create a repo in this knot.")
···
531
return
532
}
533
534
+
resp, err := client.NewRepo(user.Did, repoName, defaultBranch)
535
if err != nil {
536
s.pages.Notice(w, "repo", "Failed to create repository on knot server.")
537
return
+2
-1
knotserver/routes.go
+2
-1
knotserver/routes.go