Customers have installed this app in at least 430 active instances.
    by bit-booster.comfor Bitbucket Server 5.8.0 - 6.7.1 and more versions
    Versions available for Bitbucket Server 4.13.0 - 5.7.4
    bit-booster.com supports this app.

    Get support

    Get it nowFree app

    Enforce Git best practices in all your repositories. The best Jira hook for Bitbucket! Better than YACC, Jira Hooks, ScriptRunner

    Enforce Git best practices in all your repositories. The best Jira hook for Bitbucket! Better than YACC, Jira Hooks, ScriptRunner

    Enforce Git best practices in all your repositories. The best Jira hook for Bitbucket! Better than YACC, Jira Hooks, ScriptRunner

    Ensure Your Team Follows Best Practices With Git

    Helpful Reject Messages Keep Developers Productive

    Not Just Yet Another Jira Hook for Bitbucket

    - Enforce a rebase, squash, or git flow policy

    - Prevent repos with bad defaults (e.g. "master" can be deleted!)

    - Run a Gerrit work flow (e.g. "Needs Work" PRs can't merge)

    - Prevent costly --force or --mirror mistakes

    - Control Freak's rejection messages include specific steps to fix the problem

    - Developers less likely to pester and distract their team's top git expert for help

    - Able to fix their own git commit mistakes immediately

    - Define protected branches using Bitbucket's branching model

    - All pushes and merges are checked, including from forks

    - Jira checker can look at status, assignee, or arbitrary JQL

    - Flexible config (e.g. ignore merges)

    More details

    Control Freak is a collection of push and merge hooks to reject commits based on pre-configured rules. Available rules include:

    • Enforce JIRA linking for git commit messages
    • Block branch deletes of important branches
    • Block history rewrites ("force pushes")
    • Enforce a pull-request workflow
    • Enforce a rebase or squash workflow
    • Branch naming policy
    • Block tag pushes / deletes / edits
    • Author / committer name and email checks
    • Block empty commits
    • Block foxtrot merges

    Configuration can be applied per-repo, per-project, or globally. Rules can be applied per repository type (regular vs. personal vs. fork). User and Group based exemption lists let service accounts, bots, and power users avoid the checks when necessary.

    Our checking logic is optimized to run at most two "git rev-list" commands per push or merge, no matter how many rules you have enabled.



    We also make:

    Reviews for cloud

    (7)Sign in to write a review

    There are no reviews yet. Be the first to review this app.

    Reviews for server

    Sign in to write a review
    by Ashok G on 2019-05-21
    Hi Team , I have been using control freak plugin since a year now but i can see some issue here while validating the JIRA keys . In my configuration i'm using commit message regex and enabled Jira policy would be "anywhere in the commit message", so while validating it is considering and validating the JIRA as per RegEx and also it is considering and validating the reference Jira's in the whole commit message even though its not satisfy in the regex , the same is not happening if i select option "First line of the commit message" . Is this expected behavior or is a bug in the tool ? BR Ashok
    Was this review helpful?YesNo

    Control Freak's logic for finding JIRA keys is hard-coded, and CANNOT be controlled via the "Commit Messages Must Match Regex" control (which is a separate and independent control).

    Control Freak currently uses this Java regex for finding JIRA keys (hard-coded):

    • Pattern.compile("[A-Z][A-Z0-9]*-\\d+")
    by Konstantin Z. on 2019-03-12
    Hello! I defined "develop" as development branch, "master" as production branch in Repository Settings -> Branching model window of Bitbacket settings. Bun Control Freak uses terms "release branches" and "hotfix branches" for its customization. Where I can define release branch and hotfix for Control Freak?
    Was this review helpful?YesNo


    "release branches" and "hotfix branches" (and "bugfix" and "feature" as well) come from the "Branch prefixes" section of the Branching Model. To find this click on your repository (or project), and then click on --> settings --> Branching model.

    Note: If you disable the "Release" and "Hotfix" branch prefixes on that page, Control Freak defaults to using "release/*" and "hotfix/*" (similarly: "bugfix/*" and "feature/*"). Otherwise it uses whatever you've defined under your repository's Branching Model.

    2nd Note: the "New Branches Must Match Repository's Branching Model" control is more strict and does not fall back to any defaults if a given branching prefix is disabled. It simply disallows new branches that don't match the current active prefixes.

    by Harsha M.S. on 2019-01-23
    If you can support the commit checks at local repo level while user is committing rather then at push, that would be great. Else if a user has N commits he has to reword all of them at a later stage.
    0 out of 3 found this review helpful
    Was this review helpful?YesNo

    Hi Harsha M.S.,

    Thank you for your review. Control Freak is a server-side hook. This means Control Freak has no way to analyze any of your commits before you push. Unfortunately, this problem is inherent to all Bitbucket hooks available here on marketplace.atlassian.com.

    Git itself *does* support user defined local hooks, but in my experience they are hard to roll out to all staff in a consistent way. It's much easier to maintain and enforce a consistent hook on the server-side. The tradeoff on using server-side, as you've seen, is how it delays the moment of rejection until the push, which can be irritating, especially if you tend to create several commits between pushes.

    There's good information on creating local hooks here: atlassian.com/git/tutorials/git-hooks

    by Charlie Misonne on 2018-12-14
    This app for Bitbucket Server is great! No need to write a custom script to do check commit messages for Jira issue keys. The configuration can be applied per repository type, at the project level and at the repository level. This gives a lot of flexibility. Exactly what we needed!
    Was this review helpful?YesNo
    by Jean-Pol Landrain on 2018-09-25
    This plugin set rules for a usage of Git/Bitbucket that respect and enforces best practices. Everything is configurable in order to adapt to your own usage and there are multiple levels of configuration that you can combine: globally, per project and/or per repository. One of the most clever plugin for Bitbucket. The only possible improvement I can see now is related to the documentation: it should explain a bit more the concepts (e.g.: why a git push -f can cause a disaster when push.default=matching), and it would maybe be convenient to integrate the documentation directly into the plugin. But did I mention this plugin is free ? 5 stars well deserved: should be part of every Bitbucket installation.
    Was this review helpful?YesNo

    Reviews for Data Center

    (7)Sign in to write a review

    There are no reviews yet. Be the first to review this app.

    Cloud Pricing

    Server Pricing

    Data Center Pricing

    bit-booster.com provides support for this app.

    Vendor support resources


    Find out how this app works.


    Community discussions connect you to the vendor and other customers who use this app.

    See existing Q&A in Atlassian CommunityAsk a question in the Atlassian Community

    Atlassian-hosted discussions connect you to other customers who use this app.


    Version 2019.08.30 Bitbucket Server 5.8.0 - 6.7.1 Released 2019-08-28


    One URGENT bugfix, one regression, two regular bugfixes, and one new feature


    Full changelog below the fold.


    If you find Control Freak useful please consider purchasing a license for our paid app: PR-Booster for Bitbucket Server. Revenue from PR-Booster helps fund Control Freak.


    4 fixes:

    • URGENT FIX: pushes/forks fail if author / committer metadata check enabled on Bitbucket 6.5+ with error: "InvalidRefNameException: --not is not a valid commit identifier" (#91).
    • Branch Naming Policy now applies to branch creation via REST or Bitbucket UI.
    • Branching model calculations no longer use reflection.
    • "Except Release Branches" rule works again (v2019.08.26 regression).

    1 new feature:

    • Ignore Self-Approvals

    When enabled, this changes how Control Freak counts approvals required to merge a PR. Authors and committers associated with the commits-in-play for the PR no longer have their "Approving" votes on the PR count towards the minimum vote threshold. Works best if the "[x] Committer must be a valid Bitbucket User" control has been checked for a few weeks beforehand.


    1. Log into your Bitbucket instance as an admin.
    2. Click the admin dropdown and choose Add-ons. The Manage add-ons screen loads.
    3. Click Find new apps or Find new add-ons from the left-hand side of the page.
    4. Locate Control Freak for Bitbucket Server via search. Results include app versions compatible with your Bitbucket instance.
    5. Click Install to download and install your app.
    6. You're all set! Click Close in the Installed and ready to go dialog.

    To find older Control Freak for Bitbucket Server versions compatible with your instance, you can look through our version history page.

    Similar apps