if [[ "$(prop requireSignature)" == true ]]; then
${pkgs.polite-merge}/bin/polite-merge \
- -c gpg.program='${pkgs.keyedgpg} '"$(prop 'signingKeys[]' | tr \\n ' ')"' --' \
+ -c gpg.program=${escapeShellArg (pkgs.keyedgpg cfg.signingKeys)} \
merge --ff-only --verify-signatures
else
${pkgs.polite-merge}/bin/polite-merge merge --ff-only
'';
};
+ signingKeys = mkOption {
+ type = types.listOf types.path;
+ description = ''
+ Files containing GPG keys that are authorized to sign updates.
+ Updates are only merged if the commit at the tip of the remote
+ ref is signed with one of these keys.
+ '';
+ };
+
upgradeConfig = mkOption {
type = types.listOf types.path;
description = ''