Files
llm-wiki/raw/official-docs/renovate-gradle-manager-official.md

88 lines
8.0 KiB
Markdown

---
title: Renovate Gradle Manager — Official Documentation
source_type: official-doc
url: https://docs.renovatebot.com/modules/manager/gradle/
archive_url:
related_branches: [feature-build-release-supply-chain-contract]
related_projects: []
tags: [official-doc, ca-skeleton, ci-cd, gradle, build-tooling]
created: 2026-06-15
---
# Renovate Gradle Manager — Official Documentation
> Layer: `raw/official-docs/` — 외부 공식 문서의 원문 발췌·출처 기록.
> 검증된 요약은 `/ingest` 후 `wiki/concepts/`에 별도 작성. 원본은 raw에 영구 보관.
## Parent / 활용 branch (필수, 최소 1개+)
| Branch | 이 자료가 정당화하는 결정 |
|---|---|
| [[raw/branch-notes/feature-build-release-supply-chain-contract]] | Decision D3 — "dependency upgrade bot = Renovate 기본"의 근거: Renovate의 Gradle 지원 범위(파일 목록, lockfile 갱신 via --write-locks, Version Catalog 지원), 및 `allowedUnsafeExecutions: ["gradleWrapper"]` supply-chain 보안 제약 |
## 출처 / Source
- 원본 URL: https://docs.renovatebot.com/modules/manager/gradle/
- 아카이브 URL:
- 저자 / 조직: Renovate (Mend)
- 발행일: (연속 갱신 문서 — 발행일 단일 표기 없음)
- 마지막 확인일: 2026-06-15
## 왜 저장했는지 / Why archived
`feature-build-release-supply-chain-contract` branch 의 D3 결정("dependency upgrade bot = Renovate 기본")이 `UNSUPPORTED_DECISION` 으로 분류되어 있었기 때문이다. Renovate 공식 문서에서 Gradle 파일 패턴 매칭 범위, lockfile 갱신 방식(`--write-locks`), Version Catalog(`.versions.toml`) 지원, 그리고 self-hosted 환경에서 `gradleWrapper` 실행의 supply-chain 보안 제약을 직접 확인하여 D3 결정을 근거 있는 선택으로 전환한다.
## 핵심 인용 / Key quotes (verbatim, 3~5문장)
> [§File Patterns Matched] "The Gradle manager detects dependencies in files matching these patterns:"
> `/\.gradle(\.kts)?$/`
> `/(^|/)gradle\.properties$/`
> `/(^|/)gradle/.+\.toml$/`
> `/(^|/)buildSrc/.+\.kt$/`
> `/\.versions\.toml$/`
> `/(^|/)versions.props$/`
> `/(^|/)versions.lock$/`
> [§Lockfile Support] "The manager maintains `gradle.lockfile` artifacts. During maintenance operations, it \"calls `./gradlew :dependencies --write-locks` on the root project and subprojects.\" For standard updates, the tool \"automatically updates lock state entries via the `--update-locks` command line flag.\""
> [§Gradle Wrapper Execution] "Renovate will only execute the Gradle Wrapper (via `./gradlew` or `gradlew.bat`) if the self-hosted administrator configures `allowedUnsafeExecutions` to include the `gradleWrapper` option." This requirement exists due to "possible supply chain security attack vectors that can occur with the Gradle Wrapper being executed."
## Claims Extracted / 추출된 주장
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|---|---|---|---|---|---|
| RENOV-GRAD-C1 | Renovate Gradle manager 는 `.gradle`, `.gradle.kts`, `gradle.properties`, `*.toml`(gradle/ 디렉터리), `.versions.toml`, `versions.props`, `versions.lock` 파일 패턴을 대상으로 의존성을 탐지한다 | [§File Patterns Matched] "The Gradle manager detects dependencies in files matching these patterns: `/\.gradle(\.kts)?$/`, `/(^|/)gradle\.properties$/`, `/(^|/)gradle/.+\.toml$/`, `/\.versions\.toml$/`, `/(^|/)versions.props$/`, `/(^|/)versions.lock$/`" | `official-vendor-doc` | Renovate 사용 모든 Gradle 프로젝트 (self-hosted 포함) | Gradle 외 빌드 시스템(Maven, Bazel)의 파일 패턴; 커스텀 파일 경로 지원 여부 |
| RENOV-GRAD-C2 | Renovate 는 `gradle.lockfile` 유지 시 루트 프로젝트 및 서브프로젝트에 `./gradlew :dependencies --write-locks` 를 실행한다 | [§Lockfile Support] "calls `./gradlew :dependencies --write-locks` on the root project and subprojects" | `official-vendor-doc` | Renovate 로 lockfile maintenance 를 활성화한 Gradle 프로젝트 | `gradleWrapper` 실행 허가(`allowedUnsafeExecutions`) 없이 이 동작이 가능하다는 의미가 아님(C3 참조) |
| RENOV-GRAD-C3 | self-hosted 환경에서 Renovate 가 Gradle Wrapper(`./gradlew`)를 실행하려면 관리자가 `allowedUnsafeExecutions``gradleWrapper` 옵션을 포함시켜야 한다 | [§Gradle Wrapper Execution] "Renovate will only execute the Gradle Wrapper (via `./gradlew` or `gradlew.bat`) if the self-hosted administrator configures `allowedUnsafeExecutions` to include the `gradleWrapper` option." | `official-vendor-doc` | self-hosted Renovate 인스턴스 운영자 | Renovate Cloud(app.renovatebot.com) 환경 — 관리 방식이 다를 수 있음 |
| RENOV-GRAD-C4 | `gradleWrapper` 실행 허가가 supply-chain 공격 벡터(supply chain security attack vectors)와 관련된 보안 제약이다 | [§Gradle Wrapper Execution] "possible supply chain security attack vectors that can occur with the Gradle Wrapper being executed." | `official-vendor-doc` | self-hosted 환경에서 Renovate PR 자동 머지 + lockfile 재생성을 구성할 때 | Gradle Wrapper 자체의 CVE; Renovate 외 다른 도구의 gradlew 실행 위험 |
| RENOV-GRAD-C5 | Renovate 는 일반 업데이트 시 `--update-locks` CLI 플래그를 통해 lock state 항목을 자동으로 갱신한다 | [§Lockfile Support] "automatically updates lock state entries via the `--update-locks` command line flag" | `official-vendor-doc` | Renovate 로 개별 의존성 버전 업데이트 PR 생성 시 | 전체 lockfile 재생성(`--write-locks`) 과 동일하지 않음 — 개별 항목 업데이트 전용 |
## Usage Boundaries / 적용 경계
- 이 자료가 직접 증명하는 것:
- `RENOV-GRAD-C1`: Renovate 가 Gradle Version Catalog(`.versions.toml`)를 포함한 Gradle 관련 파일 패턴을 공식 지원한다.
- `RENOV-GRAD-C2`: lockfile 유지 모드에서 `--write-locks` 를 실행한다.
- `RENOV-GRAD-C3`: self-hosted 환경에서 `allowedUnsafeExecutions: [gradleWrapper]` 설정이 필수 전제조건이다.
- `RENOV-GRAD-C4`: 이 전제조건이 존재하는 이유가 supply-chain 보안 위협이라는 것을 Renovate 공식 문서가 명시적으로 인정한다.
- `RENOV-GRAD-C5`: 개별 의존성 업데이트 PR 생성 시 `--update-locks` 를 사용한다.
- 이 자료가 증명하지 않는 것:
- Renovate 가 Gradle 외 빌드 시스템(Maven, Bazel)에서 동일하게 동작한다는 것.
- Renovate Cloud(호스팅 서비스) 환경에서 `allowedUnsafeExecutions` 가 동일하게 적용된다는 것.
- Dependabot 대비 Renovate 의 기능 우위 — 이 문서는 Renovate 자체의 기능만 설명하며 비교 없음.
- `gradleWrapper` 실행이 안전하다는 주장 — 오히려 반대.
- 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
- ca-skeleton self-hosted Renovate 인스턴스 구성 시 `allowedUnsafeExecutions: ["gradleWrapper"]` 실제 설정 위치(Renovate config 파일 또는 환경 변수) 확인 필요.
- `gradle/locks/*.lockfile` 패턴(ca-skeleton D8) 과 Renovate 가 기대하는 `gradle.lockfile` 패턴 간 경로 충돌 여부 확인 필요.
## 메모 / Notes
- D3 업그레이드: `RENOV-GRAD-C1`~`C3` 로 D3 는 `UNSUPPORTED_DECISION` 에서 `official-vendor-doc` 뒷받침 결정으로 전환 가능.
- D3 의 "Dependabot 은 조직 표준일 때 허용" 부분은 여전히 외부 raw source 미확보 — Dependabot 공식 docs 추가 보강 권고.
- lockfile 경로 불일치 주의: D8 의 `gradle/locks/*.lockfile` vs Renovate 문서의 `gradle.lockfile` — 경로가 다를 경우 Renovate 가 lockfile 을 탐지하지 못할 수 있음. `/(^|/)versions.lock$/` 패턴과의 관계 확인 필요.
- 추가로 봐야 할 동일 출처 페이지: `https://docs.renovatebot.com/self-hosted-configuration/#allowedunsafeexecutions` (self-hosted config 레퍼런스)
## Related / 관련
- 같은 주제 다른 official-doc: [[raw/official-docs/supply-chain-gradle-vs-maven-dependency-locking]] (D8 근거 — Gradle dependency-locking)
- 이 자료를 인용한 wiki 요약: (생성 시 추가)