Support externally-provided UUIDs with a scheme: prefix
UUID is now provided by callers, in the form SCHEME ':' ID. The scheme
is analogous to the scheme in an ExternalId, and describes the system
from which the checker originated. The ID portion is a unique ID in any
format.
Both portions must be alphanumeric plus a few punctuation characters.
This set is intentionally limited to begin with; previous experiments
with allowing more characters (see earlier patch sets of this change)
led to more implementation trouble than they were worth, in the absence
of specific requirements from external systems to support certain
characters. Plus, it's always easier to broaden the set of allowed UUIDs
over time than to narrow it.
We still use SHA-1s as the lookup key for ref names, it's now just
SHA1(UUID). This leads to some complexity in the CheckerConfig class,
since an instance may be created either with a CheckerUuid or a ref
name. In the latter case, the UUID is not known until the config is
loaded.
Name is now a completely optional field, treated like any other optional
field. In particular, we no longer have special logic for recording
renames in commit messages. The logic would have had to get more
complicated to take into account unset names, and I judged it not worth
the effort. If we go down that route, perhaps we can write something
more general for recording updates to other fields (again: name is not
special), but honestly I think `git log -p` is good enough.
Change-Id: I0fff95b3f9eb408cee4651544b0b5acbef30e016
32 files changed
tree: 3a3485f9311b1b8ec9b74f85eb2b60ba15981504
- java/
- javatests/
- src/
- BUILD
- LICENSE
- README.md
README.md
Gerrit Code Review Checks Plugin
This plugin provides a unified experience for checkers (CI systems, static analyzers, etc.) to integrate with Gerrit Code Review.