diff --git a/ingestion/internal/capture/ports.go b/ingestion/internal/capture/ports.go index 58a7d52..b2c312e 100644 --- a/ingestion/internal/capture/ports.go +++ b/ingestion/internal/capture/ports.go @@ -63,7 +63,9 @@ type IssueRef struct { // scopes to owner "mathias"; the port deliberately omits owner. type IssueTracker interface { CreateIssue(ctx context.Context, repo, title, body string) (IssueRef, error) - CloseIssue(ctx context.Context, repo string, number int) (IssueRef, error) + // CloseIssue closes an issue, optionally posting a closing comment + // first (empty comment ⇒ close only). + CloseIssue(ctx context.Context, repo string, number int, comment string) (IssueRef, error) CommentIssue(ctx context.Context, repo string, number int, body string) (IssueRef, error) } diff --git a/ingestion/internal/capture/service.go b/ingestion/internal/capture/service.go index 132e537..af893ce 100644 --- a/ingestion/internal/capture/service.go +++ b/ingestion/internal/capture/service.go @@ -222,7 +222,7 @@ func (s *Service) persistTicket(ctx context.Context, tk Ticket) (TicketResult, e case "create": ref, err = s.issues.CreateIssue(ctx, tk.Repo, tk.Title, tk.Body) case "close": - ref, err = s.issues.CloseIssue(ctx, tk.Repo, tk.Number) + ref, err = s.issues.CloseIssue(ctx, tk.Repo, tk.Number, tk.Body) case "comment": ref, err = s.issues.CommentIssue(ctx, tk.Repo, tk.Number, tk.Body) } diff --git a/ingestion/internal/capture/service_test.go b/ingestion/internal/capture/service_test.go index c1608c5..b57df0a 100644 --- a/ingestion/internal/capture/service_test.go +++ b/ingestion/internal/capture/service_test.go @@ -69,7 +69,7 @@ func (f *fakeTracker) CreateIssue(_ context.Context, repo, title, _ string) (Iss return IssueRef{Repo: repo, Number: 100 + len(f.created), URL: "https://git/" + repo + "/issues/x"}, nil } -func (f *fakeTracker) CloseIssue(_ context.Context, repo string, number int) (IssueRef, error) { +func (f *fakeTracker) CloseIssue(_ context.Context, repo string, number int, _ string) (IssueRef, error) { if f.err != nil { return IssueRef{}, f.err }