The server-side hook, implemented as an update hook, notifies the Git integration when a reference in the central repository has been changed. The integration service will then search the new commits for Hansoft tags.
Edit hansoft.conf to match your environment, beginning with the hostname for the server running the integration service.
By default the repository identifier is extracted from the GIT_DIR environment variable. If you have a non-standard setup the identifier needs to be specified to reflect your integration service configuration.
There are also two optional flags that can be set in hansoft.conf.
HansoftGitIntegrationErrorIsFatal dictates how an error is to be treated by Git in case of an error message from the integration service.
HansoftTagsPrepend allows you to specify a string that is to be prepended to the list of Hansoft issues in the Git commit message.
Manually copying files
Copy hansoft.conf, the HPMGitHook executable for your platform and update into .git/hooks on the central Git repository (the Remote, as seen by the user's local Git repository)
You can also keep the files in a shared directory and symlink only the hook scripts into .git/hooks
This way the config file will be shared and any differences per repository will have to be specified through logic in the config file.
For the integration to work the integration repository user needs shell access to the repository path. To enable this in Gitolite perform the following steps:
Enable the 'Shell' feature in .gitolite.rc
Add the integration repository user to .gitolite.shell-users
Copy hansoft.conf, the HPMGitHook executable for your platform and update into .gitolite/VREF
In your Gitolite admin repository edit gitolite-admin/conf/gitolite.conf and add a Hansoft update VREF. The following will add it to all repositories except the ones disabled in the hansoft.conf file.
- VREF/update = @all
Third party Git tools
Some Git tools may require additional steps to make use of the Hansoft Git integration, the propagation of hook calls being the most common one. The tools documentation should describe the necessary setup for additional hooks.