• Patrick Steinhardt's avatar
    checks: Create infra for batched checks · d1f648de
    Patrick Steinhardt authored
    Right now, all Git checks we have are implemented on top of the
    ChangeAccess class, which provides the infrastructure to check a single
    reference update. This is not a good fit for all checks though, given
    that some may be computed much more efficiently if all changes were
    batched together into a single call.
    
    One of these examples are the LFS checks, which have been retrofitted to
    match that interface by only executing them for the first reference.
    This may lead to wrong results (e.g. the user may arrange ref updates
    such that only the second ref introduced new dangling LFS pointers) and
    make for code that is hard to understand.
    
    To fix this issue, create new infrastructure for batched checks in the
    form of a new ChangesAccess class. In contrast to the ChangeAccess
    class, it hands over all changes at once to the respective checks
    instead of only passing over single references. Furthermore, the
    BaseChecker class is split up into two classes to check a single change
    and to check multiple changes in bulk.
    
    No functional change is yet expected from this commit given that no
    checks are moved over yet.
    d1f648de
base_single_checker.rb 696 Bytes