Multi-project, project level linting.
You have a problem, and decide to use microservices - now you have N problems.
Linting tools are great for maintaining individual projects. But what do you do when you have a whole bunch of tiny projects? Maintaining consistency between different projects can become a burden.
Enter cross-check. You give it a list of git repos, and cross-check will clone them and run a series of checks on them. Output is generated in an xunit-compatible format, which makes it great for running from your CI server.
Checks are hard-coded, for now.
Current checks:
- Node.js
- Assert no outdated dependencies using
npm outdated
- Assert no security vulnerabilities in dependencies using
nsp check
- Assert no outdated dependencies using
Planned work:
- General
- Assert a particular file's contents (
.node-version
, for example)
- Assert a particular file's contents (
- Docker
- Assert
FROM
version matches a regex/semver - Assert
MAINTAINER
present, or matches value
- Assert
- Node
- Assert consistency of
private
andlicense
fields inpackage.json
- Assert repository consistent with cloned URL
- Assert no deprecated dependencies
- Assert consistency of
- Other
- Switch many command line options to a configuration file
- A plaintext reporter for human readable output
- Catch exceptions from scanners and report them as errors