Change doc location of custom hooks
This commit is contained in:
parent
f56a685a30
commit
d498ebba0d
|
@ -23,7 +23,7 @@
|
|||
|
||||
- [Authentication/Authorization](administration/auth/README.md) Configure
|
||||
external authentication with LDAP, SAML, CAS and additional Omniauth providers.
|
||||
- [Custom git hooks](hooks/custom_hooks.md) Custom git hooks (on the filesystem) for when webhooks aren't enough.
|
||||
- [Custom Git hooks](administration/custom_hooks.md) Custom Git hooks (on the filesystem) for when webhooks aren't enough.
|
||||
- [Install](install/README.md) Requirements, directory structures and installation from source.
|
||||
- [Restart GitLab](administration/restart_gitlab.md) Learn how to restart GitLab and its components.
|
||||
- [Integration](integration/README.md) How to integrate with systems such as JIRA, Redmine, Twitter.
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
# Custom Git Hooks
|
||||
|
||||
>
|
||||
**Note:** Custom Git hooks must be configured on the filesystem of the GitLab
|
||||
server. Only GitLab server administrators will be able to complete these tasks.
|
||||
Please explore [webhooks](../web_hooks/web_hooks.md) as an option if you do not
|
||||
have filesystem access. For a user configurable Git hook interface, please see
|
||||
[GitLab Enterprise Edition Git Hooks](http://docs.gitlab.com/ee/git_hooks/git_hooks.html).
|
||||
|
||||
Git natively supports hooks that are executed on different actions.
|
||||
Examples of server-side git hooks include pre-receive, post-receive, and update.
|
||||
See [Git SCM Server-Side Hooks][hooks] for more information about each hook type.
|
||||
|
||||
As of gitlab-shell version 2.2.0 (which requires GitLab 7.5+), GitLab
|
||||
administrators can add custom git hooks to any GitLab project.
|
||||
|
||||
## Setup
|
||||
|
||||
Normally, Git hooks are placed in the repository or project's `hooks` directory.
|
||||
GitLab creates a symlink from each project's `hooks` directory to the
|
||||
gitlab-shell `hooks` directory for ease of maintenance between gitlab-shell
|
||||
upgrades. As such, custom hooks are implemented a little differently. Behavior
|
||||
is exactly the same once the hook is created, though.
|
||||
|
||||
Follow the steps below to set up a custom hook:
|
||||
|
||||
1. Pick a project that needs a custom Git hook.
|
||||
1. On the GitLab server, navigate to the project's repository directory.
|
||||
For an installation from source the path is usually
|
||||
`/home/git/repositories/<group>/<project>.git`. For Omnibus installs the path is
|
||||
usually `/var/opt/gitlab/git-data/repositories/<group>/<project>.git`.
|
||||
1. Create a new directory in this location called `custom_hooks`.
|
||||
1. Inside the new `custom_hooks` directory, create a file with a name matching
|
||||
the hook type. For a pre-receive hook the file name should be `pre-receive`
|
||||
with no extension.
|
||||
1. Make the hook file executable and make sure it's owned by git.
|
||||
1. Write the code to make the Git hook function as expected. Hooks can be
|
||||
in any language. Ensure the 'shebang' at the top properly reflects the language
|
||||
type. For example, if the script is in Ruby the shebang will probably be
|
||||
`#!/usr/bin/env ruby`.
|
||||
|
||||
That's it! Assuming the hook code is properly implemented the hook will fire
|
||||
as appropriate.
|
||||
|
||||
## Custom error messages
|
||||
|
||||
>**Note:**
|
||||
This feature was [introduced][5073] in GitLab 8.10.
|
||||
|
||||
If the commit is declined or an error occurs during the Git hook check,
|
||||
the STDERR and/or SDOUT message of the hook will be present in GitLab's UI.
|
||||
|
||||
![Custom message from custom Git hook](img/custom_hooks_error_msg.png)
|
||||
|
||||
[hooks]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks#Server-Side-Hooks
|
||||
[5073]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5073
|
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
|
@ -1,56 +1,3 @@
|
|||
# Custom Git Hooks
|
||||
|
||||
>
|
||||
**Note:** Custom Git hooks must be configured on the filesystem of the GitLab
|
||||
server. Only GitLab server administrators will be able to complete these tasks.
|
||||
Please explore [webhooks](../web_hooks/web_hooks.md) as an option if you do not
|
||||
have filesystem access. For a user configurable Git hook interface, please see
|
||||
[GitLab Enterprise Edition Git Hooks](http://docs.gitlab.com/ee/git_hooks/git_hooks.html).
|
||||
|
||||
Git natively supports hooks that are executed on different actions.
|
||||
Examples of server-side git hooks include pre-receive, post-receive, and update.
|
||||
See [Git SCM Server-Side Hooks][hooks] for more information about each hook type.
|
||||
|
||||
As of gitlab-shell version 2.2.0 (which requires GitLab 7.5+), GitLab
|
||||
administrators can add custom git hooks to any GitLab project.
|
||||
|
||||
## Setup
|
||||
|
||||
Normally, Git hooks are placed in the repository or project's `hooks` directory.
|
||||
GitLab creates a symlink from each project's `hooks` directory to the
|
||||
gitlab-shell `hooks` directory for ease of maintenance between gitlab-shell
|
||||
upgrades. As such, custom hooks are implemented a little differently. Behavior
|
||||
is exactly the same once the hook is created, though.
|
||||
|
||||
Follow the steps below to set up a custom hook:
|
||||
|
||||
1. Pick a project that needs a custom Git hook.
|
||||
1. On the GitLab server, navigate to the project's repository directory.
|
||||
For an installation from source the path is usually
|
||||
`/home/git/repositories/<group>/<project>.git`. For Omnibus installs the path is
|
||||
usually `/var/opt/gitlab/git-data/repositories/<group>/<project>.git`.
|
||||
1. Create a new directory in this location called `custom_hooks`.
|
||||
1. Inside the new `custom_hooks` directory, create a file with a name matching
|
||||
the hook type. For a pre-receive hook the file name should be `pre-receive`
|
||||
with no extension.
|
||||
1. Make the hook file executable and make sure it's owned by git.
|
||||
1. Write the code to make the Git hook function as expected. Hooks can be
|
||||
in any language. Ensure the 'shebang' at the top properly reflects the language
|
||||
type. For example, if the script is in Ruby the shebang will probably be
|
||||
`#!/usr/bin/env ruby`.
|
||||
|
||||
That's it! Assuming the hook code is properly implemented the hook will fire
|
||||
as appropriate.
|
||||
|
||||
## Custom error messages
|
||||
|
||||
>**Note:**
|
||||
This feature was [introduced][5073] in GitLab 8.10.
|
||||
|
||||
If the commit is declined or an error occurs during the Git hook check,
|
||||
the STDERR and/or SDOUT message of the hook will be present in GitLab's UI.
|
||||
|
||||
![Custom message from custom Git hook](img/custom_hooks_error_msg.png)
|
||||
|
||||
[hooks]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks#Server-Side-Hooks
|
||||
[5073]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5073
|
||||
This document was moved to [administration/custom_hooks.md](../administration/custom_hooks.md).
|
||||
|
|
Loading…
Reference in New Issue