clincher是一个工具,用于检查git repo中的所有提交是否已签名。
clincher的Python项目详细描述
夹紧器
clincher
是一个工具,用于检查git repo中的所有提交是否都已签名,或者是否有人在之后签署了某个内容以回填该内容。
它隐式信任git存储库中的所有密钥,并且处理不应该存在的密钥当前超出了范围。
选项
--rev-spec
:只检查git版本规范中的修订(根据https://git-scm.com/docs/gitrevisions#_specifying_ranges)。默认情况是检查所有内容。--git-path
:指定git repo的根目录(默认为当前目录)--key-path
:指定密钥路径(默认为“keys”)--manual-signing-path
:指定手动签名的提交路径(默认为“手动签名”)
可信密钥
key-path
文件夹包含所有受信任用户的gpg密钥列表,该列表将由工具自动导入。要以我们期望的格式导出密钥,请运行gpg --export --armor <key id>
(从gpg --list-keys
获取密钥id)并将其写入文件
在以“.gpg”结尾的key-path
中。我们建议使用用户名和今天的日期来识别和处理过期的密钥。
请注意,即使密钥已过期,如果在其过期之前用于签署历史提交,也应保留该密钥,否则您有一个我们不知道如何验证的提交。
未签名提交
如果提交未签名,则会在与该提交相对应的manual-signing-path
文件夹中生成一个文件。这是提交的一种表示,可以通过签名来填充丢失的签名,而无需编辑git历史记录,并将被视为提交本身。它被命名为<git hash> - <author>
。
要签署提交,请使用以下命令
gpg --sign --armor --detach-sign <commit file>
此文件应命名为<git hash> - <author>.asc
将新版本上载到pypi
我们使用Flit进行上载,因此以下操作有效
FLIT_USERNAME="<pypi username>" FLIT_PASSWORD="<pypi password>" flit publish