Git Component
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.
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 |
remoteName |
| String | Shared | The remote name useful for particular operation like push and pull |
operation |
| String | Producer | The operation to perform. Currently supports the following values: clone, init, add, remove, commit, commitAll, createBranch, deleteBranch, createTag, deleteTag, status, log, push, pull, showBranches, cherryPick. |
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: commit, tag, branch |
Message Headers
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 |
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(....)