Ori Wiesel
Ori Wiesel

Reputation: 536

clone git repository on my gradle using Grgit

I have a gradle project which runs a script, and somewhere in it, I need to clone a git repository. I had it running before with svn, but I change our company SCM to gitlab, and I need to change the code so it'll now clone the repo from git.

I need something that will work similar to this SVN code:

task exportLibs(type: SvnExport) {
  svnUrl = "http://<svn-url>"
  targetDir = "<target-dir-to-download-files>"
}

So I read about Grgit, but there was not a single example online, how to do a simple git clone (only this link http://ajoberstar.org/grgit/docs/groovydoc/org/ajoberstar/grgit/operation/CloneOp.html). If there is someone who can help me walkthrough this problem or maybe produced me to his grgit project so i will learn from it, it'll be awesome!

--Edit--

when i tried to use the grgit as below:

group 'test'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        maven {
             url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "org.ajoberstar:gradle-git:1.7.2"
    }
}

apply plugin: 'java'
apply plugin: 'org.ajoberstar.grgit'



org.ajoberstar.grgit.auth.hardcoded.allow=true
task pullFromGit{
    doLast {
        //grgit.pull()
    }
}


sourceCompatibility = 1.8

repositories {
     mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

i've use this properties to initial it, and i got the following error:

A problem occurred evaluating root project 'grgit'.

Could not get unknown property 'org' for root project 'grgit' of type org.gradle.api.Project.

Upvotes: 1

Views: 4524

Answers (2)

Ori Wiesel
Ori Wiesel

Reputation: 536

my code probably had some special imports in it, cause a the end the only clone that i could have done is shell exec. the problem is solved, but not the bug i had...

Upvotes: 0

Albert P
Albert P

Reputation: 375

There is a link on the github page of the project to some examples and the API documentation. The following snippet would solve your problem (in this case, it will clone the grgit project to the grgit directory)

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.ajoberstar:grgit:1.7.2'
    }
}

task hello {
    doLast {
        org.ajoberstar.grgit.Grgit.clone(dir: 'grgit', uri: 'https://github.com/ajoberstar/grgit.git')
    }
}

Answer to the edited question

The documentation states that org.ajoberstar.grgit.auth.hardcoded.allow is a system property. Your assignment is not a valid way to set system properties, see the answer to this question for examples on setting system properties in groovy.

Upvotes: 3

Related Questions