-
Notifications
You must be signed in to change notification settings - Fork 1
Dependency Audit
Runs Gradle's built-in dependencies task and shows you a flat list of
group:name:version coordinates plus the raw output.
View at /projects/{id}/deps (project detail → "🧩 의존성 audit").
Before shipping a release you typically want to:
- Verify which versions of Compose / OkHttp / Hilt actually got resolved (esp. after a transitive bump).
- Spot accidental jumps to alpha/beta artifacts.
- Hand a list off to a CVE scanner.
The audit page automates the first part — it picks a sensible default
configuration (releaseRuntimeClasspath) and walks the dependency tree
in 10–90 seconds.
CVE matching is not done — see the roadmap below.
DependencyAudit.audit(projectId, moduleName, configuration):
- Locates
./gradlewinworkspace.projectRoot(projectId). - Spawns:
with
./gradlew :{module}:dependencies --configuration <cfg> --quietGRADLE_OPTS=-Dorg.gradle.daemon=false -Dorg.gradle.parallel=false(single-shot, no daemon resident in memory). - 90 s timeout; output capped at 200 KB.
- Regex-parses each line for
group:name:version(with version conflict resolution arrows… -> X.Y.Zhonoured).
The page renders three pieces:
- Status banner — success badge with run time, or red error banner with the captured stderr.
-
Coordinates table — distinct
group / name / versiontriples in parse order. - Raw output (collapsed) — the entire Gradle stdout, capped at 200 KB.
The form lets you change two things before running:
-
Module — defaults to the project's registered
moduleName(usuallyapp). Library projects uselib, multi-module repos use any other module name. -
Configuration — defaults to
releaseRuntimeClasspath. Common alternatives:debugRuntimeClasspath(Debug build sees different flavor mixins),testRuntimeClasspath,androidTestRuntimeClasspath.
-
CVE matching. Integrate
osv-scanner(Go) or the OWASPdependencyCheckAnalyzeGradle plugin and tag each row with known advisory ids. - History. Currently each call re-runs Gradle. Caching the previous result with a timestamp would let you diff "what changed since last release".
-
Per-coord links. Linking each
group:nameto Maven Central / JCenter search would speed up "what's the latest stable".
No dedicated audit row — depending on how often you scan, the noise would
overwhelm the audit log. The underlying gradle dependencies invocation
is visible only in the server stdout log.