blob: ecbfcccb4f6dd1ab185a9d7921586d4d81459875 [file] [log] [blame]
= Git Component
:doctitle: Git
:shortname: git
:artifactid: camel-git
:description: Perform operations on git repositories.
:since: 2.16
:supportlevel: Stable
:tabs-sync-option:
:component-header: Both producer and consumer are supported
//Manually maintained attributes
:camel-spring-boot-name: git
*Since Camel {since}*
*{component-header}*
The Git component allows you to work with a generic Git repository.
[source,xml]
------------------------------------------------------------
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-git</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
------------------------------------------------------------
*URI Format*
-----------------------------------
git://localRepositoryPath[?options]
-----------------------------------
== URI Options
The producer allows to do operations on a specific repository. +
The consumer allows consuming commits, tags and branches on a specific
repository.
// component-configure options: START
// component-configure options: END
// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END
// endpoint options: START
// endpoint options: END
// component headers: START
include::partial$component-endpoint-headers.adoc[]
// component headers: END
== Producer Example
Below is an example route of a producer that add a file test.java to a
local repository, commit it with a specific message on master branch and
then push it to remote repository.
[source,java]
--------------------------------------------------------------------------------------------------------------------
from("direct:start")
.setHeader(GitConstants.GIT_FILE_NAME, constant("test.java"))
.to("git:///tmp/testRepo?operation=add")
.setHeader(GitConstants.GIT_COMMIT_MESSAGE, constant("first commit"))
.to("git:///tmp/testRepo?operation=commit")
.to("git:///tmp/testRepo?operation=push&remotePath=https://foo.com/test/test.git&username=xxx&password=xxx")
.to("git:///tmp/testRepo?operation=createTag&tagName=myTag")
.to("git:///tmp/testRepo?operation=pushTag&tagName=myTag&remoteName=origin")
--------------------------------------------------------------------------------------------------------------------
== Consumer Example
Below is an example route of a consumer that consumes commit:
[source,java]
---------------------------------------
from("git:///tmp/testRepo?type=commit")
.to(....)
---------------------------------------
== Custom config file
By default camel-git will load ``.gitconfig`` file from user home folder. You
can override this by providing your own ``.gitconfig`` file.
[source,java]
---------------------------------------
from("git:///tmp/testRepo?type=commit&gitConfigFile=file:/tmp/configfile")
.to(....) //will load from os dirs
from("git:///tmp/testRepo?type=commit&gitConfigFile=classpath:configfile")
.to(....) //will load from resources dir
from("git:///tmp/testRepo?type=commit&gitConfigFile=http://somedomain.xyz/gitconfigfile")
.to(....) //will load from http. You could also use https
---------------------------------------
include::spring-boot:partial$starter.adoc[]