Chapter 57. Git
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>2.17.0.redhat-630xxx</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
|
null
|
String
|
Shared
|
The path to the local Git repository
|
remotePath
|
null
|
String
|
Shared
|
The path to the remote Git repository
|
operation
|
null
|
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
|
null
|
String
|
Producer
|
The name of the branch to work on
|
tagName
|
null
|
String
|
Producer
|
The tag of the branch to work on
|
username
|
null
|
String
|
Producer
|
The username to use in authentication phase to the git repository
|
password
|
null
|
String
|
Producer
|
The password to use in authentication phase to the git repository
|
type
|
null
|
String
|
Consumer
|
The type of consumer. Currently supports the following values:
commit, tag, branch
|
Message Headers
Name
|
Default Value
|
Type
|
Context
|
Description
|
---|---|---|---|---|
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(....)