52 lines
2.2 KiB
Markdown
52 lines
2.2 KiB
Markdown
# PR#35: Gradle build files reach the model
|
|
|
|
> **WARNING:** This document describes only the change applied in this PR.
|
|
> It may already be outdated once the next PR is merged.
|
|
> Historic PR documentation is not maintained along with new PRs; treat it as a snapshot.
|
|
|
|
## The Problem
|
|
|
|
PR-Agent 0.47.0 lists `gradle` among its `bad_extensions`, beside binary formats like `jar`, `png` and `zip`.
|
|
So a changed `build.gradle` or `settings.gradle` never reaches the model,
|
|
and werkrevisor names it only as "files the model cannot review", which gives YELLOW.
|
|
On hs.hsadmin.ng PR#317 the model then reported a missing plugin repository as finding,
|
|
although `settings.gradle` declares it in `pluginManagement`.
|
|
Gradle files are build code: they hold dependencies, repositories and plugins,
|
|
which a review must see.
|
|
|
|
`build.gradle.kts` was not affected, since its extension is `kts`; the tests below cover it too.
|
|
|
|
## Non-Goals
|
|
|
|
- No change for the other `bad_extensions`: they are binary, generated or data formats.
|
|
- No change of the risky paths: a changed Gradle file still gives YELLOW, unless Jev judges it as of low risk.
|
|
|
|
## The Scenarios
|
|
|
|
### Feature: Gradle build files reach the model
|
|
|
|
#### Scenario#35.01: the model reviews a changed Gradle file
|
|
|
|
So that the model reviews changed dependencies, repositories and plugins.
|
|
|
|
- **Given** a PR that changes `settings.gradle` and `src/a.py`
|
|
- **When** werkrevisor reviews the PR
|
|
- **Then** the model gets the changes of `settings.gradle` and `src/a.py` to review
|
|
|
|
##### Verified by
|
|
|
|
- [test_pr_agent_run: test_gradle_files_reach_the_prompt](../../tests/test_pr_agent_run.py)
|
|
- [test_pr_agent_integration: test_gradle_files_are_reviewable_but_binary_files_are_not](../../tests/test_pr_agent_integration.py)
|
|
- [test_pr_agent_integration: test_reviewability_does_not_follow_changed_settings](../../tests/test_pr_agent_integration.py)
|
|
|
|
## The Solution
|
|
|
|
- werkrevisor removes `gradle` from the `bad_extensions` of PR-Agent,
|
|
both in the settings of the run and in its own check which files the model can review;
|
|
it reads the list from the file shipped with PR-Agent, not from the settings, which can change at runtime.
|
|
- werkrevisor 0.20.4.
|
|
|
|
## Prerequisite PRs
|
|
|
|
- PR#34: the statistics service is called statistics, not server.
|