1,653
Customers have installed this app in at least 1,653 active instances.
1,653
Customers have installed this app in at least 1,653 active instances.
    by Reconquestfor Bitbucket Server 6.2.0 - 6.8.0, Bitbucket Data Center 6.2.0 - 6.8.0 and more versions
    Versions available for Bitbucket Server 2.7.2 - 2.12.6
    Bitbucket Server 3.0.0 - 5.16.10
    Bitbucket Data Center 5.0.0 - 5.16.10
    Supported
    Reconquest supports this app.

    Get support

    Supported
    Reconquest supports this app.

    Get support

    Git Pre- and Post-receive Hooks for Bitbucket

    Git Pre- and Post-receive Hooks for Bitbucket

    Git Pre- and Post-receive Hooks for Bitbucket

    Native Git Hooks Support

    Automate Pull-Requests Checks

    Enterprise-Ready Solution

    Leverage Pre- and Post-Receive Hooks to check codestyle, run unit tests or entire CI pipelines directly from Bitbucket instance.

    Validate incoming PRs for code style violations, commit signatures and many more.

    External Hooks Add-on is must-have for Bitbucket installation no matter how big your team is.

    Native Git Hooks Support

    Automate Pull-Requests Checks

    Enterprise-Ready Solution

    Leverage Pre- and Post-Receive Hooks to check codestyle, run unit tests or entire CI pipelines directly from Bitbucket instance.

    Validate incoming PRs for code style violations, commit signatures and many more.

    External Hooks Add-on is must-have for Bitbucket installation no matter how big your team is.

    More details

    External Hooks Add-on allows user to configure pre-receive hook, post-receive hook and merge check hook on any given repository.

    • Pre-receive hook is executed on `git push` command and allows to validate incoming changes and conditionally accept or reject them.
    • Post-receive hook is executed after successfull `git push` command and allows to trigger CI pipeline or to send notifications (e.g. in Slack channel).
    • Merge check hook is executed when user visits pull-requests page and allow to validate incoming pull-request for code style violations.

    Both pre-receive and post-receive hooks can be used to output helpful information back to the developer console.

    External Hooks Add-on is very flexible solution because it works with any given executable and therefore can be used together with vast toolchainavailable for programming languages, such as linters, code style checkers, test runners and much more.

    More details

    External Hooks Add-on allows user to configure pre-receive hook, post-receive hook and merge check hook on any given repository.

    • Pre-receive hook is executed on `git push` command and allows to validate incoming changes and conditionally accept or reject them.
    • Post-receive hook is executed after successfull `git push` command and allows to trigger CI pipeline or to send notifications (e.g. in Slack channel).
    • Merge check hook is executed when user visits pull-requests page and allow to validate incoming pull-request for code style violations.

    Both pre-receive and post-receive hooks can be used to output helpful information back to the developer console.

    External Hooks Add-on is very flexible solution because it works with any given executable and therefore can be used together with vast toolchainavailable for programming languages, such as linters, code style checkers, test runners and much more.

    Reviews for cloud

    (23)
    Sign in to write a review
    by Kirk Spragg on 2017-07-29
    This is great! We are a Python-centric dev shop and this allows me to write hooks in the language I know best.
    1 out of 1 found this review helpful
    Was this review helpful?YesNo
    by Michael Rudd on 2017-06-22
    This plugin used to work great for us with Stash 3.11.1 and Git 1.9.5 We just upgraded to BitBucket 5.1.0 with Git 2.12.1 and the plugin stopped working. Took me a while to identify, what I think is maybe a problem. Git 2.11 "significant changes to push handling on the server" (ref. https://github.com/sford/yet-another-commit-checker/issues/139), more specifically "...The new quarantining behavior that was added for pushes creates a random temporary directory where the newly-received objects are written, and exports GIT_OBJECT_DIRECTORY , GIT_ALTERNATE_OBJECT_DIRECTORIES and GIT_QUARANTINE_PATH ..." Our custom pre-receive hook uses 'ls-tree' to examine the ${newrev} commit for improperly named files and folders, which would violate our directory structure policy. Now we're getting an error that it is not a tree object. Similarly, 'cat-file' errors out with "could not get object info", 'log' says "bad object" and diff says "invalid range". It all boils down to git not being able to see the ${newrev} object that the plugin passes to the script. I was trying to find a place to submit this bug report, but didn't find any links on the project's GitHub page. For now, it looks like we'd have to disable this hook, unfortunately :(
    8 out of 9 found this review helpful
    Was this review helpful?YesNo
    by CyrilC on 2016-08-03
    Simple, efficient, just what I needed for controlling commit content in pre-receive hook. A simple python script checks a regexp, and controls if mentioned Jira Issue exists (mandatory in our process). This plugin should be integrated by default in bitbucket, because with a basic git installation, this feature exists and I was afraid to loose it while migrating to bitbucket.
    3 out of 3 found this review helpful
    Was this review helpful?YesNo
    by Kumaran on 2016-05-30
    Does this add-on works on datacenter version of Bitbucket server ?
    3 out of 3 found this review helpful
    Was this review helpful?YesNo
    by David Greene on 2016-03-04
    We'd really like to use this but we want to implement a Merge Check hook. Any plans to support Merge Check hooks in the future?
    Was this review helpful?YesNo

    Reviews for server

    (23)
    Sign in to write a review
    by Ashok G on 2019-06-04
    Hi Team, I have configured a external hooks plugin for the purpose of pre-receive hook , it has to reject the push if Jira keys are not valid . I have shell script and kept into bitbucket server and mentioned the path in the "Executable" section in the plugin . But my hook is not working even its not calling the hook . Example : /opt/bitbucket/hooks/pre-receive.sh The same script i have tested in the bare repository its working fine . /opt/bitbucket/home/shared/data/repositories/82/hooks/pre-receive I'm felt that configuration was not correct , but don't know how to configure , could you please share me the configuration of the plugin so that I will follow the same . What I have done is : Copied the script to stash server in the path : /opt/bitbucket/hooks/pre-receive.sh Went to the repository setting--> hooks--> External Pre receive Hooks --> Executable --> /opt/bitbucket/hooks/pre-receive.sh --> Save Then Cloned a repo switched to branch apply changes commit it push Its not calling the hook script .
    Was this review helpful?YesNo
    Reconquest

    Hello, Ashok G

    Could you please let us know which version of BB and External Hooks are you running?

    Please send the response to our support email: we@reconquest.io

    We'll be glad to help you because the scenario that you're describing is expected to be working.

    by Kirk Spragg on 2017-07-29
    This is great! We are a Python-centric dev shop and this allows me to write hooks in the language I know best.
    1 out of 1 found this review helpful
    Was this review helpful?YesNo
    by Michael Rudd on 2017-06-22
    This plugin used to work great for us with Stash 3.11.1 and Git 1.9.5 We just upgraded to BitBucket 5.1.0 with Git 2.12.1 and the plugin stopped working. Took me a while to identify, what I think is maybe a problem. Git 2.11 "significant changes to push handling on the server" (ref. https://github.com/sford/yet-another-commit-checker/issues/139), more specifically "...The new quarantining behavior that was added for pushes creates a random temporary directory where the newly-received objects are written, and exports GIT_OBJECT_DIRECTORY , GIT_ALTERNATE_OBJECT_DIRECTORIES and GIT_QUARANTINE_PATH ..." Our custom pre-receive hook uses 'ls-tree' to examine the ${newrev} commit for improperly named files and folders, which would violate our directory structure policy. Now we're getting an error that it is not a tree object. Similarly, 'cat-file' errors out with "could not get object info", 'log' says "bad object" and diff says "invalid range". It all boils down to git not being able to see the ${newrev} object that the plugin passes to the script. I was trying to find a place to submit this bug report, but didn't find any links on the project's GitHub page. For now, it looks like we'd have to disable this hook, unfortunately :(
    8 out of 9 found this review helpful
    Was this review helpful?YesNo
    by CyrilC on 2016-08-03
    Simple, efficient, just what I needed for controlling commit content in pre-receive hook. A simple python script checks a regexp, and controls if mentioned Jira Issue exists (mandatory in our process). This plugin should be integrated by default in bitbucket, because with a basic git installation, this feature exists and I was afraid to loose it while migrating to bitbucket.
    3 out of 3 found this review helpful
    Was this review helpful?YesNo
    by Kumaran on 2016-05-30
    Does this add-on works on datacenter version of Bitbucket server ?
    3 out of 3 found this review helpful
    Was this review helpful?YesNo

    Reviews for Data Center

    (23)
    Sign in to write a review
    by Kirk Spragg on 2017-07-29
    This is great! We are a Python-centric dev shop and this allows me to write hooks in the language I know best.
    1 out of 1 found this review helpful
    Was this review helpful?YesNo
    by Michael Rudd on 2017-06-22
    This plugin used to work great for us with Stash 3.11.1 and Git 1.9.5 We just upgraded to BitBucket 5.1.0 with Git 2.12.1 and the plugin stopped working. Took me a while to identify, what I think is maybe a problem. Git 2.11 "significant changes to push handling on the server" (ref. https://github.com/sford/yet-another-commit-checker/issues/139), more specifically "...The new quarantining behavior that was added for pushes creates a random temporary directory where the newly-received objects are written, and exports GIT_OBJECT_DIRECTORY , GIT_ALTERNATE_OBJECT_DIRECTORIES and GIT_QUARANTINE_PATH ..." Our custom pre-receive hook uses 'ls-tree' to examine the ${newrev} commit for improperly named files and folders, which would violate our directory structure policy. Now we're getting an error that it is not a tree object. Similarly, 'cat-file' errors out with "could not get object info", 'log' says "bad object" and diff says "invalid range". It all boils down to git not being able to see the ${newrev} object that the plugin passes to the script. I was trying to find a place to submit this bug report, but didn't find any links on the project's GitHub page. For now, it looks like we'd have to disable this hook, unfortunately :(
    8 out of 9 found this review helpful
    Was this review helpful?YesNo
    by CyrilC on 2016-08-03
    Simple, efficient, just what I needed for controlling commit content in pre-receive hook. A simple python script checks a regexp, and controls if mentioned Jira Issue exists (mandatory in our process). This plugin should be integrated by default in bitbucket, because with a basic git installation, this feature exists and I was afraid to loose it while migrating to bitbucket.
    3 out of 3 found this review helpful
    Was this review helpful?YesNo
    by Kumaran on 2016-05-30
    Does this add-on works on datacenter version of Bitbucket server ?
    3 out of 3 found this review helpful
    Was this review helpful?YesNo
    by David Greene on 2016-03-04
    We'd really like to use this but we want to implement a Merge Check hook. Any plans to support Merge Check hooks in the future?
    Was this review helpful?YesNo

    Cloud Pricing

    Server Pricing

    Data Center Pricing

    10 users$1025 users$7950 users$149100 users$279250 users$599500 & upAdditional pricing details
    25 users$88/year50 users$150/year100 users$280/year250 users$625/year500 users$1,100/year1000 & upAdditional pricing details

    Pricing FAQ

    How does server app pricing work?

    Server products and apps are hosted on your servers. This app is sold as a perpetual license, and the purchase price includes 12 months of maintenance (support and version updates).

    You can renew maintenance after 12 months at 50% of the current purchase price. You can upgrade the tier of your Atlassian product and app licenses at any time. Upgrade prices are calculated based on Atlassian's formula (view example).

    If app pricing changes after your initial purchase, there's a 60-day grandfathering period during which you can renew based on the old pricing.

    How do I determine my server pricing?

    Apps are billed based on the number of users in your Atlassian product. The app tier should match the licensed user tier of the Atlassian product. For example, if you have a Confluence license for 500 users, you should purchase the 500-user tier for apps. Even if fewer users want to use the app than your Atlassian product license, the two licenses should match exactly.

    Can I install this app in a Data Center product?

    Yes, this app has a Data Center approved version. If you're using a Data Center product, you should install the Data Center version of the app.

    Learn more about Data Center approved apps

    What type of license do I need if I'm using this app in a Data Center product?

    Because this app has a Data Center approved version, you should purchase a Data Center license for the app.

    If you already own a server license for this app, you can continue using the server license in your Data Center product for a limited period of time.

    Learn more about Data Center licensing

    Do you offer academic, community, or open-source licenses for server apps?

    For server apps, academic licenses are available at a 50% discount if you have an academic license for your Atlassian product.

    Community and open-source licenses are available for server apps. Learn more about community and open source licenses.

    Can I extend my free trial?

    For server apps, you can extend your app trial up to 5 times - in other words, for up to six months. Extend your trial by generating a new evaluation license key from Atlassian Marketplace. Click Try it free and you'll be directed to generate a new license. Paste this license key into the app listing in UPM from your Atlassian product, and you're all set.

    How can I buy apps for my legacy Jira Server or Confluence Server license?

    If you own a legacy Jira Server Unlimited (100+ users) or Confluence Server Unlimited (2000+ users) license purchased in 2012 or earlier, legacy app pricing is no longer available. You have two options for app purchasing:

    • Purchase the app at the non-legacy Unlimited (10000+ users) tier.
    • Renew your Jira or Confluence license at a non-legacy tier, then purchase the app at the same tier.

    Learn more

    Pricing FAQ

    How does Data Center app pricing work?

    Data Center apps are sold as an annual subscription. You are eligible for support and version updates as long as your subscription is active.

    If app pricing changes after your initial purchase, there's a 60-day grandfathering period during which you can renew based on the old pricing.

    How do I determine my Data Center pricing?

    Apps are billed based on the number of users in your Atlassian product. The app tier should match the licensed user tier of the Atlassian product. For example, if you have a Confluence license for 500 users, you should purchase the 500-user tier for apps. Even if fewer users want to use the app than your Atlassian product license, the two licenses should match exactly.

    Can I install this app in a Data Center product?

    Yes, this app has a Data Center approved version. If you're using a Data Center product, you should install the Data Center version of the app.

    Learn more about Data Center approved apps

    What type of license do I need if I'm using this app in a Data Center product?

    Because this app has a Data Center approved version, you should purchase a Data Center license for the app.

    If you already own a server license for this app, you can continue using the server license in your Data Center product for a limited period of time.

    Learn more about Data Center licensing

    Do you offer academic, community, or open-source licenses for Data Center apps?

    For Data Center apps, academic licenses are available at a 50% discount if you have an academic license for your Atlassian product.

    Community and open-source licenses are not available for Data Center apps. Learn more about community and open source licenses.

    Can I extend my free trial?

    For Data Center apps, you can extend your app trial up to 5 times - in other words, for up to six months. Extend your trial by generating a new evaluation license key from Atlassian Marketplace. Click Try it free and you'll be directed to generate a new license. Paste this license key into the app listing in UPM from your Atlassian product, and you're all set.

    Reconquest provides support for this app.

    Reconquest provides support for this app.

    Vendor support resources

    Documentation

    Find out how this app works.

    Community

    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.

    Vendor support resources

    Documentation

    Find out how this app works.

    Community

    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.

    Versions

    Version 8.0.0 Bitbucket Server 6.2.0 - 6.8.0 Released 2019-11-11

    Summary

    Bug fixes & minor improvements

    Details

    Hook scripts were not created properly during startup on some Bitbucket installations.

    Versions

    Version 8.0.0 Bitbucket Data Center 6.2.0 - 6.8.0 Released 2019-11-11

    Summary

    Bug fixes & minor improvements

    Details

    Hook scripts were not created properly during startup on some Bitbucket installations.

    Installation

    1. Log into your Bitbucket instance as an admin.
    2. Click the admin dropdown and choose Atlassian Marketplace. 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 External Hooks by Reconquest via search. The appropriate app version appears in the search results.
    5. Click Try free to begin a new trial or Buy now to purchase a license for External Hooks by Reconquest. You're prompted to log into MyAtlassian. External Hooks by Reconquest begins to download.
    6. Enter your information and click Generate license when redirected to MyAtlassian.
    7. Click Apply license. If you're using an older version of UPM, you can copy and paste the license into your Bitbucket instance.

    To find older External Hooks by Reconquest versions compatible with your instance, you can look through our version history page.

    1. Log into your Bitbucket instance as an admin.
    2. Click the admin dropdown and choose Atlassian Marketplace. 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 External Hooks by Reconquest via search. The appropriate app version appears in the search results.
    5. Click Try free to begin a new trial or Buy now to purchase a license for External Hooks by Reconquest. You're prompted to log into MyAtlassian. External Hooks by Reconquest begins to download.
    6. Enter your information and click Generate license when redirected to MyAtlassian.
    7. Click Apply license. If you're using an older version of UPM, you can copy and paste the license into your Bitbucket instance.

    To find older External Hooks by Reconquest versions compatible with your instance, you can look through our version history page.

    Similar apps