Require git proof before prune deletes a branch
A merged or closed PR no longer authorises a delete on its own: HEAD must be contained in the PR's head commit or in origin/<branch>, otherwise the worktree goes and the branch stays. Branch deletion runs `git branch -d` first and falls back to -D only for a proven branch. Reword the cherry check to say patches reached the default branch's history, print the verdict --keep-branches will actually perform, and warn when a PR listing hits the pagination cap instead of reading it as "no PR".
This commit is contained in:
@@ -290,6 +290,30 @@ func TestListPRsPaginates(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// A listing that fills every page is truncated: the caller must be told rather
|
||||
// than treating a partial view as the whole repo.
|
||||
func TestListPRsReportsTruncation(t *testing.T) {
|
||||
mux := http.NewServeMux()
|
||||
mux.HandleFunc("/api/v1/repos/unkin/repo/pulls", func(w http.ResponseWriter, r *http.Request) {
|
||||
full := make([]string, 0, prPageSize)
|
||||
for i := 0; i < prPageSize; i++ {
|
||||
full = append(full, fmt.Sprintf(`{"number":%s,"state":"open"}`, r.URL.Query().Get("page")))
|
||||
}
|
||||
_, _ = io.WriteString(w, "["+strings.Join(full, ",")+"]")
|
||||
})
|
||||
srv := httptest.NewServer(mux)
|
||||
defer srv.Close()
|
||||
|
||||
c := &GiteaClient{BaseURL: srv.URL, HTTP: srv.Client()}
|
||||
prs, err := c.ListPRs("unkin/repo", "all")
|
||||
if !errors.Is(err, ErrPRListTruncated) {
|
||||
t.Fatalf("ListPRs err = %v, want ErrPRListTruncated", err)
|
||||
}
|
||||
if len(prs) != maxPRPages*prPageSize {
|
||||
t.Errorf("got %d PRs, want %d", len(prs), maxPRPages*prPageSize)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGiteaAPIError(t *testing.T) {
|
||||
mux := http.NewServeMux()
|
||||
mux.HandleFunc("/api/v1/repos/unkin/repo/pulls", func(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
Reference in New Issue
Block a user