Skip to content

feat: Implement AI Build Failure Explainer with integration tests#18

Merged
Agaba-derrick merged 1 commit into
mainfrom
feature/build-failure-explainer
Jul 10, 2026
Merged

feat: Implement AI Build Failure Explainer with integration tests#18
Agaba-derrick merged 1 commit into
mainfrom
feature/build-failure-explainer

Conversation

@Agaba-derrick

Copy link
Copy Markdown
Owner
  • Fully implement BuildFailureEventProcessor with Spring AI ChatClient
  • Parse webhook payload (repository, logs fields)
  • Truncate logs to 2000 chars to respect LLM context limits
  • Craft structured AI prompt to extract Likely Cause, Confidence, Possible Fixes
  • Add aggressive integration tests (BuildFailureEventProcessorIT):
    • Verify supports() is case-insensitive
    • Assert exact AI prompt content via ArgumentCaptor
    • Assert exact logged output count and content via ArgumentCaptor
    • Verify AI is never called on invalid/missing payload (verify never())
  • Replace standalone JUnit/Mockito deps with spring-boot-starter-test
  • Add Mockito dependency via spring-boot-starter-test

- Fully implement BuildFailureEventProcessor with Spring AI ChatClient
- Parse webhook payload (repository, logs fields)
- Truncate logs to 2000 chars to respect LLM context limits
- Craft structured AI prompt to extract Likely Cause, Confidence, Possible Fixes
- Add aggressive integration tests (BuildFailureEventProcessorIT):
  - Verify supports() is case-insensitive
  - Assert exact AI prompt content via ArgumentCaptor
  - Assert exact logged output count and content via ArgumentCaptor
  - Verify AI is never called on invalid/missing payload (verify never())
- Replace standalone JUnit/Mockito deps with spring-boot-starter-test
- Add Mockito dependency via spring-boot-starter-test
@Agaba-derrick
Agaba-derrick merged commit 1a0ddf8 into main Jul 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant