Git Component

Table of Contents

URI Options
Message Headers
Producer Example
Consumer Example

Available as of Camel 2.16

The git: component allows you to work with a generic Git repository. 

<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.

The Git component has no options.

The Git component supports 13 endpoint options which are listed below:

{% raw %}

NameGroupDefaultJava TypeDescription

localPath

common

 

String

Required Local repository path

branchName

common

 

String

The branch name to work on

password

common

 

String

Remote repository password

remoteName

common

 

String

The remote repository name to use in particular operation like pull

remotePath

common

 

String

The remote repository path

tagName

common

 

String

The tag name to work on

username

common

 

String

Remote repository username

bridgeErrorHandler

consumer

false

boolean

Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.

type

consumer

 

GitType

The consumer type

exceptionHandler

consumer (advanced)

 

ExceptionHandler

To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.

exchangePattern

consumer (advanced)

 

ExchangePattern

Sets the exchange pattern when the consumer creates an exchange.

operation

producer

 

String

The operation to do on the repository

synchronous

advanced

false

boolean

Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).

{% endraw %}

Message Headers

NameDefault ValueTypeContextDescription

CamelGitOperation

null

String

Producer

The operation to do on a repository, if not specified as endpoint option

CamelGitFilename

null

String

Producer

The file name in an add operation

CamelGitCommitMessage

null

String

Producer

The commit message related in a commit operation

CamelGitCommitUsername

null

String

Producer

The commit username in a commit operation

CamelGitCommitEmail

null

String

Producer

The commit email in a commit operation

CamelGitCommitId

null

String

Producer

The commit id

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.

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")

Consumer Example

Below is an example route of a consumer that consumes commit:

from("git:///tmp/testRepo?type=commit")
                        .to(....)