bfd9a13 Allow overriding RPM components refs while submitting the module build.

Authored and Committed by jkaluza 2 years ago
    Allow overriding RPM components refs while submitting the module build.
    
    There is a need to rebuild the module builds done in CentOS 9 Stream
    internally in MBS to include them in RHEL. This is currenly a hard task,
    because the RPM components included in a module are usually
    taken from HEAD of the branch defined by their `ref` value.
    
    For the rebuild task, it means we would have to ensure that the HEAD
    of all RPM components points to right commit hash right before we start
    rebuilding CentOS 9 Stream module in internal MBS. This is very hard
    and fragile thing to do, especially if there are two different modules
    using the RPM component from the same branch. This is prone to race
    condition and makes the rebuilds quite complex and in some cases
    not possible to do without force pushes to RPM component repositories
    which is not acceptable by internal dist-git policy.
    
    This commit fixes it by allowing overriding the commit hash while
    submitting the module build. This helps in the mentioned situation,
    because we can keep internal RPM components branches in 1:1 sync with
    CentOS 9 Stream branches and HEAD can always point to the same commit
    in both internal and CentOS 9 Stream repositories.
    
    When the module rebuild is submitted in internal MBS,
    we can use this new feature to override the `ref` for each RPM component
    so it points to particular commit and the requirement for HEAD to point
    to this commit is no longer there.
    
    The `ref` is overriden only internally in MBS (but it is recorded in logs
    and in XMD section), so the input modulemd file is not altered. This is
    the same logic as used for other overrides (`buildrequire_overrides` or
    `side_tag`).
    
    This does not bring any security problem, because it is already possible
    to use commit hash in `ref`, so the package maintainer can already change
    the commit hash to any particular commit by using this `ref` value.
    
    Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
    
        
file modified
+2 -0
file modified
+33 -0