Using repository hooks



アトラシアン コミュニティをご利用ください。


Hooks let you to extend what Bitbucket Data Center and Server does every time a repository changes, allow you to customize your team's workflow, and enable you to integrate with other systems.

リポジトリ内で特定のイベント (コードのプッシュ、プル リクエストのマージなど) が発生するたびにフックを自動的に実行するよう構成できます。

Bitbucket supports two types of hooks, pre-receive and post-receive hooks. Hooks are installed by system administrators and can be enabled for all repositories in a project, or for an individual repository. 

On this page:

Pre-receive フック

Pre-receive フックを使用すると、プッシュがコミットされる前またはプル リクエストがマージされる前に、リポジトリに取り込まれるコミットを制御できます。例えば、pre-receive フックは特定の条件が満たされていない場合にリポジトリへのプッシュを拒否できます。リポジトリへの強制プッシュを防いだり、すべてのコミットに有効な Jira アプリケーションの課題キーが含まれているかどうかを確認したりすることができます。  

既定の pre-receive フック

Bitbucket comes with some pre-receive hooks installed by default that are disabled, but can be enabled at the project level for all repositories in a project, or for individual repositories.

The default hooks that come with Bitbucket are:

  • 強制プッシュの拒否 - リポジトリへのすべての強制プッシュを拒否します。
  • コミット署名の検証 - 検証済みの GPG 署名のないコミットとタグを拒否します。
  • コミッターの検証 - リポジトリへにプッシュしたユーザー以外によるコミットを拒否します。

The Verify Committer hook uses the mappings in the Git .mailmap file to verify commits, and based on how this file has been set up in your repository, multiple Git committers may be associated with a single Bitbucket user account.

When using this hook, we recommend that you use Branch permissions (available in Project and Repository settings) to prevent changes without pull requests to your base/production branch. This will allow you to review and prevent unwanted changes to your Git.mailmap file.  

You can also use the Push log page (available in Repository settings) to identify committers. Note that this log doesn’t use mappings from the Git .mailmap file.

Post-receive フック

Post-receive hooks run after commits are processed, and are typically used to update external services or send notifications. For example, the Web Post Hooks Plugin can send a message to a chat client or notify a continuous integration server changes.

For releases prior to 5.0, Bitbucket supported two types of post-receive hook:

5.0 以降ではこれらはいずれも廃止され、以下に置き換えられました。 


プロジェクト レベルでフックを有効化 (または無効化) すると、プロジェクト設定を継承するよう設定されたリポジトリのフックが変更されます。個別リポジトリのフックを変更したことがある場合、プロジェクト レベルでフックを設定してもそのリポジトリの設定は変更されません。

プロジェクト内のリポジトリに対してフックを有効化 (または無効化) する方法 (プロジェクト管理権限が必要):

  1. [プロジェクト設定] > [フック] に移動します。
  2. フックごとにトグルをクリックして有効化 (または無効化) します。

Hooks for repositories set to Inherited in the project will now reflect this new configuration. Hooks explicitly configured at the repository level will not be affected. 


リポジトリ レベルでフックを設定すると、プロジェクト レベルで構成されたチェックはオーバーライドされます。個別リポジトリにフックを構成していない場合、プロジェクト レベルで設定されたフックが継承されます。

1 つのリポジトリにフックを有効化 (または無効化) する方法 (リポジトリ管理権限が必要):

  1. [リポジトリ設定] > [フック] に移動します。
  2. フックの右側のドロップ メニューを使用して設定します。
    1. Inherited - uses the configuration set at the project level.
    2. 有効 - フック条件を適用します。
    3. 無効 - フック条件を無視します。

設定すると、プロジェクト レベルでフック構成に加えられたあらゆる変更は、プロジェクト構成とは独立して変更されるため、このリポジトリでは無視されます。


By default, Bitbucket comes with hooks disabled at the project and repository level. Unless hooks were configured at the repository level, enabling or disabling hooks at the project level inherits the configuration at the repository level. 

たとえば、プロジェクトの [強制プッシュを拒否] フックを有効にし、リポジトリのフック設定は変更しない場合、各リポジトリでは [強制プッシュを拒否] フックが有効化されます。

フックが無効 (プロジェクト レベル)

フックが無効 (リポジトリ レベル) 

フックが有効 (プロジェクト レベル)

フックが有効 (リポジトリ レベル)

特定のリポジトリでは [強制プッシュを拒否] フックが適切でないと判断したとします。プロジェクト レベルでの構成内容を問わず、個別リポジトリのフックを変更できます。プロジェクト レベルで [強制プッシュを拒否] フックに加えられた変更は、プロジェクト構成とは独立して変更されるため、このリポジトリでは無視されます。

フックが有効 (プロジェクト レベル)

フックが無効 (リポジトリ レベル)



Atlassian Marketplace からフックを追加する方法 (システム管理者権限が必要):

  1. [プロジェクト設定] > [フック] に移動します。
  2. [フックを追加] をクリックします。
  3. 追加するフックを検索し、[インストール] をクリックします。 

新しいフックを追加したら、既定のフックと同じように有効化 (または無効化) できます。



最終更新日: 2023 年 2 月 26 日


Powered by Confluence and Scroll Viewport.