Dependabot 설정 파일 구조
.github/dependabot.yml 파일은 Dependabot의 동작을 정의하며, version: 2와 updates 섹션으로 구성됩니다. updates 섹션은 각 패키지 생태계에 대한 업데이트 규칙을 담습니다.
Bundler 및 업데이트 그룹 설정
Ruby on Rails 프로젝트의 Gem 의존성을 관리하기 위해 package-ecosystem: bundler를 지정하고, 모든 Gem에 적용하도록 directory: "/"를 설정합니다. 핵심은 groups 섹션으로, 특정 업데이트 유형에 대한 정책을 그룹화하여 적용합니다.
security-updates: 보안 업데이트 그룹입니다.applies-to: security-updates: 보안 업데이트에 적용됩니다.patterns: - '*’: 모든 Gem에 적용됩니다.update-types: - 'minor' - 'patch’: 시맨틱 버저닝에 따라 마이너 및 패치 버전 업데이트만 허용하여 주요(major) 버전 변경으로 인한 호환성 문제를 방지합니다.
version-updates: 일반 버전 업데이트 그룹입니다.security-updates와 동일하게minor및patch업데이트만 허용하여 일관된 정책을 유지합니다.
설정 예시
다음은 Gem의 마이너 및 패치 버전 업데이트만 허용하도록 구성된 .github/dependabot.yml 예시입니다.
yaml
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 10
groups:
security-updates:
applies-to: security-updates
patterns:
- '*'
update-types:
- 'minor'
- 'patch'
version-updates:
applies-to: version-updates
patterns:
- '*'
update-types:
- 'minor'
- 'patch'
이 설정을 통해 Dependabot은 매주 Gem 의존성을 확인하고, 지정된 그룹 정책에 따라 마이너 및 패치 버전 업데이트에 대해서만 Pull Request를 생성합니다.