| = 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[] |