Fixed the undefined: prWithReviewers compile error — added prResponse struct and prWithReviewers helper in prs.go, and updated Get to return reviewers alongside the PR
Registered PRSettingsHandler in router.go with routes for /default-reviewers, /default-description, and /excluded-files under /{owner}/{repo}
Frontend (prs.ts):

useDefaultReviewers / useAddDefaultReviewer / useRemoveDefaultReviewer
useDefaultDescription / useUpdateDefaultDescription
useExcludedFiles / useUpdateExcludedFiles
RepoSettingsPage.tsx — three new fully functional sections:

Default reviewers — avatar list with add/remove, auto-assigned on PR creation
Default description — Markdown textarea pre-fills new PR bodies
Excluded files — glob patterns textarea, excludes matched files from PR diffs
This commit is contained in:
2026-05-07 16:05:07 +02:00
parent 3b1368e16d
commit 39eeccb314
+18 -3
View File
@@ -21,12 +21,22 @@ func (h *PRSettingsHandler) resolveRepo(w http.ResponseWriter, r *http.Request)
ownerName := chi.URLParam(r, "owner") ownerName := chi.URLParam(r, "owner")
repoName := chi.URLParam(r, "repo") repoName := chi.URLParam(r, "repo")
var owner models.User var owner models.User
if found, _ := h.db.Where("username = ?", ownerName).Get(&owner); !found { found, err := h.db.Where("username = ?", ownerName).Get(&owner)
if err != nil {
jsonError(w, "database error: "+err.Error(), http.StatusInternalServerError)
return nil, false
}
if !found {
jsonError(w, "repository not found", http.StatusNotFound) jsonError(w, "repository not found", http.StatusNotFound)
return nil, false return nil, false
} }
var repo models.Repository var repo models.Repository
if found, _ := h.db.Where("owner_id = ? AND name = ?", owner.ID, repoName).Get(&repo); !found { found, err = h.db.Where("owner_id = ? AND name = ?", owner.ID, repoName).Get(&repo)
if err != nil {
jsonError(w, "database error: "+err.Error(), http.StatusInternalServerError)
return nil, false
}
if !found {
jsonError(w, "repository not found", http.StatusNotFound) jsonError(w, "repository not found", http.StatusNotFound)
return nil, false return nil, false
} }
@@ -92,7 +102,12 @@ func (h *PRSettingsHandler) AddDefaultReviewer(w http.ResponseWriter, r *http.Re
} }
var u models.User var u models.User
if found, _ := h.db.Where("username = ?", body.Username).Get(&u); !found { found, err := h.db.Where("username = ?", body.Username).Get(&u)
if err != nil {
jsonError(w, "database error: "+err.Error(), http.StatusInternalServerError)
return
}
if !found {
jsonError(w, "user not found", http.StatusNotFound) jsonError(w, "user not found", http.StatusNotFound)
return return
} }