Fingerprints detect important changes to code and configuration. They ensure that critical, potentially breaking changes don’t slip by unnoticed and cause outages or other problems.
Fingerprints are calculated by extracting specific, logically related fragments of code, normalizing and sorting them in a deterministic order, and then computing a SHA. Fingerprints are computed on the difference or impact between the commit and its parent commit. The fingerprints are calculated on each commit. If a change from previous version is detected, Atomist alerts you in Slack and in some cases sets the GitHub build status to blocked.
Atomist offers the fingerprints listed in the table below.
||Build file (Travis and CircleCI)|
||Dockerfile base image|
||Application property and YAML files used by Spring Boot|
||Spring MVC REST endpoints|
||Maven plugin management|
||Maven dependency management|
Below is an example fingerprint rendering in Slack. It shows that both the build configuration and the configured plugins changed. Notice that the fingerprint has done its job here: the fingerprint detected a change to the build file that the commit message neglected to mention.
The fingerprint configuration file is located in the atomist-config repo: