Offer "After review" in the Merge dialog while a review runs
This commit is contained in:
@@ -415,8 +415,24 @@ func (s *Server) MergeTask(w http.ResponseWriter, r *http.Request, taskID string
|
||||
return
|
||||
}
|
||||
|
||||
if req.Target != nil && *req.Target == api.MergeTargetParent {
|
||||
t, err = s.agents.MergeIntoParent(r.Context(), t, u)
|
||||
if req.Target != nil && !req.Target.Valid() {
|
||||
writeError(w, http.StatusBadRequest, fmt.Errorf("unknown target %q", *req.Target))
|
||||
return
|
||||
}
|
||||
if req.AfterReview != nil && *req.AfterReview {
|
||||
target := api.MergeTargetMain
|
||||
if req.Target != nil {
|
||||
target = *req.Target
|
||||
}
|
||||
title := ""
|
||||
if target == api.MergeTargetMain {
|
||||
if req.MergeTitle == nil {
|
||||
writeError(w, http.StatusBadRequest, errors.New("merge_title is required to merge into the default branch"))
|
||||
return
|
||||
}
|
||||
title = *req.MergeTitle
|
||||
}
|
||||
t, err = s.agents.MergeAfterReview(r.Context(), t, u, target, title)
|
||||
if err != nil {
|
||||
writeAgentError(w, err)
|
||||
return
|
||||
@@ -424,8 +440,13 @@ func (s *Server) MergeTask(w http.ResponseWriter, r *http.Request, taskID string
|
||||
writeJSON(w, http.StatusAccepted, t)
|
||||
return
|
||||
}
|
||||
if req.Target != nil && !req.Target.Valid() {
|
||||
writeError(w, http.StatusBadRequest, fmt.Errorf("unknown target %q", *req.Target))
|
||||
if req.Target != nil && *req.Target == api.MergeTargetParent {
|
||||
t, err = s.agents.MergeIntoParent(r.Context(), t, u)
|
||||
if err != nil {
|
||||
writeAgentError(w, err)
|
||||
return
|
||||
}
|
||||
writeJSON(w, http.StatusAccepted, t)
|
||||
return
|
||||
}
|
||||
if req.MergeTitle == nil {
|
||||
@@ -441,6 +462,20 @@ func (s *Server) MergeTask(w http.ResponseWriter, r *http.Request, taskID string
|
||||
writeJSON(w, http.StatusAccepted, t)
|
||||
}
|
||||
|
||||
func (s *Server) CancelMergeAfterReview(w http.ResponseWriter, r *http.Request, taskID string) {
|
||||
err := s.store.CancelMergeAfterReview(r.Context(), taskID, actor(r))
|
||||
if err != nil {
|
||||
writeStoreError(w, err)
|
||||
return
|
||||
}
|
||||
t, err := s.store.GetTask(r.Context(), taskID)
|
||||
if err != nil {
|
||||
writeStoreError(w, err)
|
||||
return
|
||||
}
|
||||
writeJSON(w, http.StatusOK, t)
|
||||
}
|
||||
|
||||
func (s *Server) MergeIn(w http.ResponseWriter, r *http.Request, taskID string) {
|
||||
t, p, ok := s.activeTask(w, r, taskID)
|
||||
if !ok {
|
||||
|
||||
Reference in New Issue
Block a user