Blog

Eric Peterson

December 21, 2017

Spread the word


Share your thoughts

A short one but a good one today. Let's see how we can automate tasks with [CommandBox Githooks.](https://www.forgebox.io/view/commandbox-githooks)

CommandBox Githooks

What are Githooks?

Githooks run on different git actions, like pre-commit and post-checkout. They allow you to hook in to git's lifecycle to execute tasks. Some examples of these tasks are enforcing a commit message format in pre-commit or installing dependencies in post-checkout. This is more useful than it may sound — I know I often forget to install new dependencies when checking out a branch. Automating that step helps me spend less time debugging in the wrong direction.

Running Githooks with CommandBox

CommandBox Githooks lets you use CommandBox, CFML, and your box.json to manage these githooks for your project. You configure it in three steps.

  1. Install commandbox-githooks for CommandBox. This step only needs to be done once per CommandBox installation.
  2. Configure CommandBox Githooks for your repository by running githooks install. This will set up CommandBox to handle the githooks.

    Note: This needs to be done on each user's local repository as githooks are not synced.

  3. Add a githooks struct to your box.json. The keys of this struct are the camel-case names of the githooks (post-checkout => postCheckout). The value is either a single command or an array of commands to run for the githook.

Let's show you what this actually looks like:

Wrap up

CommandBox Githooks can save you mental energy and time debugging by helping you automate githook tasks with CommandBox and CFML. Try it out today!

Add Your Comment

(1)

Dec 21, 2017 08:09:32 UTC

by John Farrar

This is one of the greatest integration points for CFML developers. Remember if you think hooks are missing they are likely hooks that should be run from your origin repository, a.k.a. BitBucket or some other server.

Recent Entries

CBWIRE 2.2 Released

CBWIRE 2.2 Released

We're excited to announce the release of CBWIRE 2.2. This release includes several added enhancements, such as new lifecycle hooks and simplified Turbo Drive integration. We changed the previous lifecycle hook of mount() to onMount() to be consistent, and several bugs were squashed.

Maria Jose Herrera
Maria Jose Herrera
January 09, 2023
FORGEBOX v7.1.0 Released

FORGEBOX v7.1.0 Released

We are so happy to announce a minor release for our package management system. In this release, we take care of some bug fixes reported and a lot of work for our elastic search engine. Now better search results with an improved response time. We have updated our core modules to the latest versions for better security and performance.

Javier Quintero
Javier Quintero
December 30, 2022
Favorite 2022 Ortus Content

Favorite 2022 Ortus Content

2022 was quite the year. For us, it was all about delivering exceptional content and service to our amazing community of developers. That's why we updated our tools, released new products, and announce upcoming projects and initiatives we are working on for 2023.

We know 2023 will be awesome but 2022 was amazing too. Read on and don't miss anything, review the top content we released in 2022 and improve your projects in 2023. Happy New Year!

Maria Jose Herrera
Maria Jose Herrera
December 29, 2022