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>2.17.0.redhat-630177</version>
<!-- use the same version as your Camel core version -->
</dependency>URI Format
git://localRepositoryPath[?options]
The producer allows to do operations on a specific repository. The consumer allows consuming commits, tags and branches on a specific repository.
Name | Default Value | Type | Context | Description |
|---|---|---|---|---|
localPath |
| String | Shared | The path to the local Git repository |
remotePath |
| String | Shared | The path to the remote Git repository |
operation |
| String | Producer | The operation to perform. Currently supports the following values: |
branchName |
| String | Producer | The name of the branch to work on |
tagName |
| String | Producer | The tag of the branch to work on |
username |
| String | Producer | The username to use in authentication phase to the git repository |
password |
| String | Producer | The password to use in authentication phase to the git repository |
type |
| String | Consumer | The type of consumer. Currently supports the following values: |
Name | Default Value | Type | Context | Description |
|---|---|---|---|---|
CamelGitOperation |
| String | Producer | The operation to do on a repository, if not specified as endpoint option |
CamelGitFilename |
| String | Producer | The file name in an add operation |
CamelGitCommitMessage |
| String | Producer | The commit message related in a commit operation |
CamelGitCommitUsername |
| String | Producer | The commit username in a commit operation |
CamelGitCommitEmail |
| String | Producer | The commit email in a commit operation |
CamelGitCommitId |
| String | Producer | The commit id |
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")