Skip to main content

This version of GitHub Enterprise Server will be discontinued on 2024-06-29. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise Server. For help with the upgrade, contact GitHub Enterprise support.

Managing pre-receive hooks on your instance

Configure how people will use pre-receive hooks on your GitHub Enterprise Server instance.

Creating pre-receive hooks

  1. In the top-right corner of GitHub Enterprise Server, click your profile photo, then click Enterprise settings.

    Screenshot of the drop-down menu that appears when you click the profile photo on GitHub Enterprise Server. The "Enterprise settings" option is highlighted in a dark orange outline.

  2. In the enterprise account sidebar, click Settings.

  3. Under " Settings", click Hooks.

  4. Click Add pre-receive hook.

  5. In the "Hook name" field, enter the name of the hook that you want to create.

  6. Select the Environment dropdown menu, then click the environment on which you want the hook to run.

  7. Under "Script," select the Select hook repository dropdown menu, then click the repository that contains your pre-receive hook script.

  8. Select the Select file drop-down menu, then click the filename of the pre-receive hook script.

  9. To enforce your script, select Use the exit-status to accept or reject pushes. Deselecting this option allows you to test the script while the exit-status value is ignored. In this mode, the output of the script will be visible to the user in the command-line but not on the web interface.

  10. If you want the pre-receive hook to run on all repositories, select Enable this pre-receive hook on all repositories by default.

  11. To allow organization members with admin or owner permissions to select whether they wish to enable or disable this pre-receive hook, select Administrators can enable and disable this hook.

Editing pre-receive hooks

  1. In the top-right corner of GitHub Enterprise Server, click your profile photo, then click Enterprise settings.

    Screenshot of the drop-down menu that appears when you click the profile photo on GitHub Enterprise Server. The "Enterprise settings" option is highlighted in a dark orange outline.

  2. In the enterprise account sidebar, click Settings.

  3. Under " Settings", click Hooks.

  4. Next to the pre-receive hook that you want to edit, click Edit.

Deleting pre-receive hooks

  1. In the top-right corner of GitHub Enterprise Server, click your profile photo, then click Enterprise settings.

    Screenshot of the drop-down menu that appears when you click the profile photo on GitHub Enterprise Server. The "Enterprise settings" option is highlighted in a dark orange outline.

  2. In the enterprise account sidebar, click Settings.

  3. Under " Settings", click Hooks.

  4. Next to the pre-receive hook that you want to delete, click Delete.

Configure pre-receive hooks for an organization

An organization owner can only configure hook permissions for an organization if the site administrator selected the Administrators can enable or disable this hook option when they created the pre-receive hook. To configure pre-receive hooks for a repository, you must be an organization owner.

  1. In the upper-right corner of GitHub, select your profile photo, then click Your organizations.
  2. Next to the organization, click Settings.
  3. In the left sidebar, click Hooks.
  4. Next to the pre-receive hook that you want to configure, select the Hook permissions dropdown menu, then click an option.

Configure pre-receive hooks for a repository

A repository owner can only configure a hook if the site administrator selected the Administrators can enable or disable this hook option when they created the pre-receive hook. In an organization, the organization owner must also have selected the Configurable hook permission. To configure pre-receive hooks for a repository, you must be a repository owner.

  1. In the top right corner of GitHub Enterprise Server, click your profile photo, then click Your profile.

  2. Navigate to the repository that you want to configure pre-receive hooks for.

  3. Under your repository name, click Settings. If you cannot see the "Settings" tab, select the dropdown menu, then click Settings.

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

  4. In the left sidebar, click Hooks.

  5. Next to the pre-receive hook that you want to configure, select the Hook permissions dropdown menu, then click whether to enable or disable the pre-receive hook.