Gradle로 Dependabot을 구성하는 방법

Gradle로 Dependabot을 구성하는 방법

2022-10-03 last update

6 minutes reading dependabot maven github gradle

Github Dependabot이란 무엇입니까?



Dependabot는 종속성을 최신 상태로 유지하는 방법을 제공합니다. 구성에 따라 종속 파일에 오래된 종속성이 있는지 확인하고 PR을 개별적으로 엽니다. 그런 다음 요구 사항에 따라 PR을 검토하고 병합할 수 있습니다.

Gradle이 있는 Dependabot



Dependabot에는 Gradle에 대한 제한support이 있습니다. Dependabot은 리포지토리에서 build.gradle 또는 settings.gradle를 찾은 다음 오래된 종속성을 검색하고 사용 가능한 업데이트를 기반으로 PR을 생성합니다.

문제



이 두 파일 외부에서 종속성이 유지되는 경우 문제가 발생합니다. Dependabot ONLY 및 ONLY 스캔 build.gradle 또는 settings.gradle . 대부분의 프로젝트는 이러한 파일에 버전을 포함하는 이 표준을 따르지만 나머지 프로젝트는 전혀 작동하지 않습니다.

해결책



이 문제에 대한 해결 방법이 있습니다. 이 문제를 해결하려면 아래에 설명된 단계를 따르십시오.
  • dependencies.gradle 파일을 생성하여 모든 종속성을 추출합니다. 파일 이름은 HAS TO BEdependencies.gradle여야 합니다. 그렇지 않으면 솔루션이 작동하지 않습니다. (version.gradle도 지원하지 않습니다!)

  • 
    ext {
        // -- PLUGINS
        springBootVersion = "2.5.5"
        springDependencyManagementVersion = "1.0.11.RELEASE"
        ....
    
        //-- DEPENDENCIES
         ....  
         springFoxBootVersion = "3.0.0"
        hibernateVersion = "5.4.31.Final"
        c3p0Version = "0.9.5.5"
        postgresVersion = "42.2.10"
        .... 
        supportDependencies = [
                springfox_boot_starter            : "io.springfox:springfox-boot-starter:$springFoxBootVersion",
                hibernate_entitymanager           : "org.hibernate:hibernate-entitymanager:$hibernateVersion",
                hibernate_core                    : "org.hibernate:hibernate-core:$hibernateVersion",
                c3p0                              : "com.mchange:c3p0:$c3p0Version"
                hibernate_java8                   : "org.hibernate:hibernate-java8:$hibernateVersion",
                postgresql                        : "org.postgresql:postgresql:$postgresVersion",
                ....
        ]
    }
    
    
    


  • 수정 build.gradle 사용 dependencies.gradle

  • 
    buildscript {
        apply from: 'dependencies.gradle'
    }
    plugins {
        id 'org.springframework.boot' version "${springBootVersion}"
        id 'io.spring.dependency-management' version "${springDependencyManagementVersion}"
        ....
    }
    dependencies {
        ....
        implementation supportDependencies.springfox_boot_starter
        implementation supportDependencies.hibernate_entitymanager
        implementation supportDependencies.hibernate_core
        implementation supportDependencies.c3p0
       ....
    }
    ....
    
    


  • .github/dependabot.yml 파일을 사용하여 의존 로봇 지원을 프로젝트에 추가합니다.

  • version: 2
    updates:
      - package-ecosystem: "gradle" 
        directory: "/" 
        schedule:
          interval: "daily"
    
    


  • Tadaaaa.. 다음 실행 또는 종속성 검사의 강제 실행에서 업데이트가 있는 경우 종속봇이 연 PR을 확인해야 합니다.

  • 결론



    Dependabot은 프로젝트가 최신 종속성을 갖도록 하는 놀라운 도구입니다. 그러나 종속성이 유지되지 않는 경우build.gradle 또는 settings.gradle Maven에 비해 Gradle의 지원이 제한됩니다.

    이 두 파일의 버전을 유지하지 않으려면 종속 로봇이 프로젝트를 스캔하고 종속성 문제를 찾을 수 있는 방식으로 gradle 파일을 조정할 수 있습니다.

    Sumedh 에게 특별한 감사를 드립니다.

    참고문헌


  • Dependabot
  • Dependabot Code Repo