Better Commit Policy for Bitbucket Data Center
Verify the changes (branches, tags, commits) and pull requests in Bitbucket against configurable rulesHow does it work?
Better Commit Policy checks the changes committed to your Bitbucket repositories against the commit policy, a set of configurable rules that verify the commit details.
When the rules are not satisfied, the commits get rejected. Rejected commits should be "fixed" to comply with the rules, and then be re-committed.
How is it different from Better Commit Policy for Jira?
It's simple: this app works by integrating the Better Commit Policy for Jira app with Bitbucket.
While the Jira app is Version Control System independent (supports Git, Subversion, Mercurial among others), this app provides native Bitbucket experience utilizing pull requests, web based editing, application links and more.
Why should I use commit policies?
As a result of enforcing rules on the changes submitted to and on the pull requests merged in Bitbucket, the quality of your processes, the traceability of your changes and the consistency of your source code drastically improve.
← Learn more by watching the intro video in the left.
Control the source code changes and work securely
The rules can verify every commit detail:
- the changed files
- the commit message
- the committer (author)
- the affected branches
- the affected tags
Each rule:
- can be limited to specific branches or directories
- can combine multiple conditions with AND/OR
- can show custom instructions to the developer when his/her commit is rejected
Verify the pull requests, too
In addition to pushing commits, merging pull requests are the other way to apply changes to the Bitbucket-managed code.
Better Commit Policy verifies pull requests just as rigorously as pushes. Merging is enabled only if all commits in the pull request satisfy the policy.
Verify the changes made via the Bitbucket web interface
With Bitbucket you can make changes to the repository right in your browser:
- Bitbucket supports creating branches and tags.
- Power Editor (a Bitbucket app) even allows creating commits via the web UI!
All these changes are fully verified by Better Commit Policy. The integrity of your code is preserved, no matter where the changes are originated from.
Ready for the Enterprise
Unlike free alternatives, Better Commit Policy is:
- Commercially supported
- Well-documented
- Available for Bitbucket Server (single server) and Bitbucket Data Center (cluster)
- Able to securely connect to multiple Jira instances in complex infrastructures
Commit verification will not slow you down!
Fixing a wrong commit created hours ago is painful and costly. That's true.
Better Commit Policy works eagerly: it verifies commits before those are created.
By preventing the creation of wrong commits, there is no need to fix anything later!
Better Commit Policy is the only commit checker app for Bitbucket with this feature. Other apps verify commits only when those are sent to the server. And that's way too late!
Watch the video in the right and read how does local verification work? →
Quick adoption
Let's face it: developers hate heavy-weight processes forced upon them.
Better Commit Policy prevents chaos and encourages good practices with a light-weight approach. Plus, without losing agility!
Works with your current tools
Your team members can use any standard-compliant Git client (command-line, GUI tools, IDE integrations) on any Operating System.
Zero learning curve
After a couple of rejections, clean and precise commits become the new normal.
Atlassian Open DevOps experience with Bitbucket Data Center
Make Bitbucket and Jira your DevOps backbone with the help of Better DevOps Automation, a companion app for Better Commit Policy.
Automate development workflows
Free up developers from repetitive and error-prone manual tasks.
Use Commit Created, Branch Created, Tag Created triggers or @commands (entered in commits messages) to automatically notify on, build, deploy, deliver or scan your code!
Verify the tags in your repositories
-
Tag name must match a pattern
- only semantic version tags are accepted (like "10.1.0-beta")
- tag names must start with "release-" or "snapshot-"
-
Tag name must contain issue keys from a JQL query
- each tag must link to a closed issue with the "delivery" label
- each tag must link to a "ComponentVersion" type issue in the "CMDB" project
Verify the branches your developers create
-
Branch name must match a pattern
- branch names must be one of the types "feature/*", "release/*" or "maintenance/*"
- bugfix branch names must contain a test execution ID like "bugfix/1741"
-
Branch name must contain issue keys from a JQL query
- story branch names must include a "Story" type issue from the currently running Scrum sprint like "story/CAL-123-shared-calendars"
- bugfix branch names must include an unresolved "Bug" type issue assigned to the committer
Enforce useful commit messages
-
Commit message must contain issue keys from a JQL query
- no changes accepted without at least one Jira issue associated
- changes must refer to exactly one user story in the current sprint
- changes must refer to unresolved bugs and change requests planned for the next maintenance version of project FOOBAR
-
Commit message must match a pattern
- commit messages must be at least 10 characters long (excluding whitespace)
- commit messages must start with a Jira issue key
Control the file additions / deletions / modifications
-
Changed paths (files) must match a pattern
- lock the "/doc/legal" directory from modifications
- accept image files only in the "/web/static/images directory"
- reject *.tmp, *.cfg, *.obj, *.class, .* and other temporary, hidden or local environment-only files
-
Changed paths (files) must contain issue keys from a JQL query
- a "Bug" type issue must be included in the name of each file in the "patches" directory
- a "Test" type issue must be the name of each sub-directory in the "testresults" directory
Who is who and who can do what?
-
Committer must have a valid Jira account
- only users with valid Jira accounts can commit changes
- only users in the "teamleads" Jira group can commit changes
-
Committer attribute must match a pattern
- only the users "alice", "bob" or "cecil" can commit changes
- only users with an email address matching "*-ext@acmeinc.com" "can commit changes
Rigorous change control
Establish processes for compliance with ISO standards, IEC standards and industry regulations in:
- defence
- financial
- avionics (success story)
- automotive
- medical
- pharmaceutical
- other safety-critical systems
Or, just make sure that every change to your code is introduced in a controlled and documented way!
End-to-end traceability
Accelerate requirements validation, compliance verification, impact analysis, coverage analysis and source code audits by bi-directionally linking Jira issues and source code changes:
- requirements ⇔ code changes
- epics ⇔ user stories ⇔ code changes
- tasks / bugfixes ⇔ code changes
- tests ⇔ code changes
- change requests ⇔ sub-tasks ⇔ code changes
- releases ⇔ issues ⇔ code changes
Faster code reviews & audits
Maintain development workflows for consistent repository, code & history.
By making small improvements (useful tips) in the way your team works, common questions like these will be automatically answered:
- "Why was this changed?"
- "Was it tested? In what environments?"
- "Is this within the scope of the current release?"
- "Who approved this merge?"
- "Is there a programmatic test for this story?"
Why should I care about change control?
- Computer system failure cost British Airways $100 million
- Gartner estimates network downtime may cost $300K per hour (average)
- Software failures cause 24% percent of all the medical device recalls according to FDA
- Forrester estimates that Amazon Web Services (AWS) outage affected 100,000 sites
- Software bug would allow hackers to take control over Sydney nuclear plant
- Unauthorized changes disable $2.7 billion US Navy submarine
Integrated with the Bitbucket apps and Git tools you already use
How does it help me work better?
Helping the developer team comply with regulations and software requirements
"In the aviation industry, we need to be able to prove to authorities how exactly each aerospace system requirement is fulfilled and by what part of the source code.
Better Commit Policy makes it easy to manage our Jira work items towards those requirements, proactively control what is committed to our source code repositories, and ultimately, to comply with regulations."
– Kalen Brown, Associate Electrical and Computer Engineer
Read the story →How developers of safety-critical systems at Philips manage source code changes
"Before using commit policies, our developers’ behavior was like in the wild west.
We couldn’t match source code changes with Jira issues, it was almost impossible to understand what work has really been done, we wasted time.
The Better Commit Policy app helps us maintain a manageable development process by enforcing some configurable rules in a friendly, but strict way."
– Yakov Yukhnovetsky, DevOps Engineer
Read the story →Who's using it?
For compliance reasons, we must ensure that every commit is associated with a valid Jira issue. This app allows us to satisfy that requirement. The support from Midori so far has been fantastic. I reported an issue and was promptly contacted by a senior developer who was able to identify the root cause of the problem and quickly provide a patch that resolved it.
This app is a must-have to keep our repository clean. Its usage is as easy and intuitive as possible.
This app is a key tool in our DevOps process.
more reviews →This app "just works". When I needed help, the support was really fast and good.
Get the app free
- Install the app. (how to install?)
- Use the app completely free of charge. (note: its dependencies are paid apps)
- Ask questions or report problems any time by clicking the "Help" tab in the right bottom. (how to get support?)
- Get the latest Better Commit Policy for Bitbucket release announcements, best practices, tips from power users. (how to subscribe?)