|
Create a script which verifies that a set of "locked down" files are not
changed in commits that have not been signed.
Create a github workflow that runs the script in the CI.
The script accepts --whitelist <commit> and --import-gpg-keys arguments.
The default settings are supposed to work on the build server without
importing the gpg keys from the trusted_keys.pub file and running with a
hardcoded whitelist commit.
Make the CI workflow use these arguments as it is supposed to in
.github.
The public keys that can be imported are specified as files in the ci/keys/
directory.
The files that are locked down are specified in the .github workflow as
a single source of truth. This requires some complicated parsing in the
verification script as well as a dependency from the verification script
to the workflow YAML. These are not ideal design choices however the
alternative is to not have a single source of truth for the locked down
files as the github workflow can not depend on an external file.
The mullvad signing key is named to be first in the list in order to be
imported first.
The whitelisted commit is the latest master before this commit
|