Add task summaries, closed-task search and a summary turn before discard
This commit is contained in:
@@ -81,7 +81,7 @@ func (m *Manager) Merge(ctx context.Context, task api.Task, project api.Project,
|
||||
default:
|
||||
err := m.store.QueueMerge(ctx, task.Id, user.Login)
|
||||
if errors.Is(err, store.ErrNotFound) {
|
||||
return api.Task{}, fmt.Errorf("%w: task %s is closed or already waiting to merge", ErrConflict, task.Id)
|
||||
return api.Task{}, fmt.Errorf("%w: task %s is closed, being discarded or already waiting to merge", ErrConflict, task.Id)
|
||||
}
|
||||
if err != nil {
|
||||
return api.Task{}, err
|
||||
@@ -97,12 +97,15 @@ func (m *Manager) startMerge(ctx context.Context, task api.Task, project api.Pro
|
||||
}
|
||||
|
||||
err = m.store.SetMergingBy(ctx, task.Id, user.Login)
|
||||
if errors.Is(err, store.ErrNotFound) {
|
||||
return fmt.Errorf("%w: task %s is being discarded", ErrConflict, task.Id)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
m.mergeHolders[project.Id] = task.Id
|
||||
|
||||
prompt := mergeInPrompt(project.DefaultBranch) + fmt.Sprintf(" When this turn ends, byre squashes this branch onto %s and pushes it; if you stop, call stop_merge first so it doesn't.", project.DefaultBranch)
|
||||
prompt := mergeInPrompt(project.DefaultBranch) + fmt.Sprintf(" When this turn ends, byre squashes this branch onto %s and pushes it; if you stop, call stop_merge first so it doesn't. ", project.DefaultBranch) + summaryRequest
|
||||
_, err = m.sendMergeIn(ctx, task, user, prompt)
|
||||
if err != nil {
|
||||
m.takeMerge(task.Id)
|
||||
@@ -343,19 +346,6 @@ func squashMessage(title string, coAuthors []api.Participant) string {
|
||||
return title + "\n\n" + strings.Join(trailers, "\n")
|
||||
}
|
||||
|
||||
func (m *Manager) Discard(ctx context.Context, task api.Task, project api.Project, actor string) (api.Task, error) {
|
||||
err := m.RemoveTask(ctx, task, project, actor)
|
||||
if err != nil {
|
||||
return api.Task{}, err
|
||||
}
|
||||
t, err := m.store.DiscardTask(ctx, task.Id, actor)
|
||||
if err != nil {
|
||||
return api.Task{}, err
|
||||
}
|
||||
go m.releaseMerge(project.Id, task.Id)
|
||||
return t, nil
|
||||
}
|
||||
|
||||
func (m *Manager) RemoveTask(ctx context.Context, task api.Task, project api.Project, actor string) error {
|
||||
err := m.StopTask(ctx, task.Id, actor)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user