개요
GitHub은 Dependabot이라는 기능을 제공하고 있습니다. GitHub에서 해당 기능을 사용하면, 정기적으로 프로젝트에서 사용하는 패키지, 라이브러리의 버전을 체크하고, 업데이트가 있는 경우, Pull request를 자동으로 생성해 줍니다.
- GitHub Dependabot: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates
GitHub의 Dependabot에 최근 Flutter/Dart의 pub 패키지 관리자가 추가되었습니다.
- GitHub Changelog: pub beta support for Dependabot version updates
이번 블로그 포스트에서는 GitHub의 Dependabot을 사용하여 Flutter에서 사용하는 패키지 버전을 체크하고 업데이트 하는 방법에 대해서 알아보도록 하겠습니다.
Flutter의 Dependabot 설정
GitHub의 Dependabot을 사용하기 위해서는 프로젝트 폴더에 .github 폴더를 생성한 후, dependabot.yml 파일을 생성해야 합니다.
.github/dependabot.yml 파일을 생성하였다면, 해당 파일을 열고 다음과 같이 수정합니다.
version: 2
enable-beta-ecosystems: true
updates:
- package-ecosystem: "pub"
directory: "/"
schedule:
interval: weekly
time: "09:00"
timezone: Asia/Tokyo
open-pull-requests-limit: 5
pub 패키지 관리자는 아직 beta 버전이므로 enable-beta-ecosystems: true을 설정할 필요가 있습니다.
Flutter 프로젝트에서 많은 패키지들을 사용한다면, 너무 많은 Pull request이 생성되어 업무에 방해가 될 수 있습니다. 따라서 open-pull-requests-limit: 5 옵션을 설정하여 Dependabot이 생성할 수 있는 Pull request 개수를 제한하거나, schedule을 설정하여, 특정 주기로 Dependabot이 작동하도록 설정할 수 있습니다.
Android의 Dependabot 설정
안드로이드는 Gradle을 사용하여 라이브러리의 버전을 관리합니다. 따라서 Dependabot에 Gradle을 설정하면 안드로이드에 추가한 라이브러리들의 버전을 관리할 수 있습니다. .github/dependabot.yml 파일을 열고, 다음과 같이 수정하여 Gradle을 위한 Dependabot을 추가합니다.
version: 2
enable-beta-ecosystems: true
updates:
...
- package-ecosystem: "gradle"
directory: "/android"
schedule:
interval: weekly
time: "09:00"
timezone: Asia/Tokyo
iOS의 Dependabot 설정
iOS는 CocoaPods을 사용하여 라이브러리 버전을 관리합니다. 하지만, 안타깝게도 iOS용 Dependabot은 현재 지원하고 있지 않습니다. Dependabot이 지원하고 있는 언어들은 공식 문서에서 확인할 수 있습니다.
- 공식 문서: GitHub language support
확인
이렇게 .github/dependabot.yml 파일을 생성하고 설정하였다면, 해당 파일을 GitHub에 올립니다. (main 브랜치에 merge합니다) 그럼 일정 주기에 따라 다음과 같이 Dependabot이 새로운 버전으로 Pull request을 만들어 주는 것을 확인할 수 있습니다.

해당 Pull request를 열어보면, 다음과 같이 Release notes와 Commits을 확인할 수 있습니다

각 항목을 열어보면, 자세한 수정 사항을 확인할 수 있습니다.
- Release notes

- commits

이를 통해 새 버전의 변경 사항을 확인할 수 있으며, 현재 프로젝트의 영향 범위를 확인할 수 있습니다.
File changed 탭을 열어보면 pubspec.yaml와 pubspec.lock 파일이 변경된 것을 확인할 수 있습니다.

GitHub Actions
이제 GitHub의 Dependabot이 여러분이 사용하고 있는 패키지의 업데이트가 있는 경우, 자동으로 Pull request를 생성하게 되었습니다. 이렇게 생성한 Pull request를 적용해도 될지 말지 고민하게 되는데, Flutter의 Linter 설정과 테스트 코드를 잘 작성해 두었다면, GitHub Actions를 사용하여 해당 Pull request를 검사할 수 있습니다.
또한, 다음과 같은 내용을 .github/dependabot.yml 파일에 추가해 두면, Dependabot이 GitHub Actions에서 사용하는 Actions의 버전을 체크하고 업데이트가 있는 경우도 알려주게 됩니다.
version: 2
enable-beta-ecosystems: true
updates:
...
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
time: "09:00"
timezone: Asia/Tokyo
완료
이것으로 GitHub의 Dependabot을 사용하여, Flutter 프로젝트에서 사용하고 있는 패키지들의 버전을 자동으로 체크하고 업데이트 할 수 있도록 구성해 보았습니다. 여러분들도 Dependabot을 활용하여 프로젝트에서 사용하고 있는 패키지들의 버전을 항상 최신 버전으로 유지해 보시기 바랍니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku가 개발한 앱을 한번 사용해보세요.Deku가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.














![[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통](https://img1c.coupangcdn.com/image/affiliate/banner/7cba8cb0601eebaf88a17a0c3cf65a63@2x.jpg)