...
Page properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Dave Huseby, dhuseby@linuxfoundation.org, dhuseby, Hyperledger
Mentee
...
Project Plan
Git integration with external signing tools
...
[signing]
format = openpgp
[signing "openpgp"]
program = /usr/bin/gpg
keyring = "--keyring pubring.kbx --no-default-keyring"
identity = "--local-user \"Jane Committer <jane@hackers.com>\""
sign = "$program --sign --status-fd=2 --detach-sign --ascii"
verify = $program --verify --status-fd=2"
[signing "openpgp.signature"]
regex = "^-----BEGIN PGP SIGNATURE-----$[^-]*^-----END PGP SIGNATURE-----$"
multiline = true
And the same goes for the command line:
git commit \
--sign
--signing-format=openpgp \
--signing-openpgp-program="/usr/bin/gpg" \
--signing-openpgp-keyring="--keyring pubring.kbx --no-default-keyring" \
--signing-openpgp-identity="--local-user \"Jane Committer <jane@hackers.com>\"" \
--signing-openpgp-sign="--sign --status-fd=2 --detach-sign --ascii"
Milestones
- Submit project proposal (June 18 2019)
- Review previous work (June 25)
- 2019) RFC with the technical design document sent to git mailing list (July 15
- Receive feedback (August 31)
- 2019) RFC patchbomb to the mailing list (September 30
- Second RFC to the mailing list (October 22 2019)
- Reveive Feedback (November 10 2019)
- Update code to support the config based approach (November 10 2019)
- Implement a Python Indy signing tool for DIDs (November 15 2019)
- 3015 2019) Refine implementation and follow through to landing (November
Deliverables
- Git documentation
- Git signing plugin
- Project description and model
- Helper signing script template
- Indy signing tool Stretch deliverable:
- Project presentation
- Recorded presentation
Detailed Steps
Update documentation
- Git man page
- Other documentation
Update user configuration handling
- Change existing configuration keys to a more normalized new organization (
commit.gpgSign
tocommit.sign,
gpg.program
tosigning.openpgp.program,
gpg.<format>.program
tosigning.<format>.program)
-
Debug the git_signing_config and the openpgp_config/x509_config functions and verify that all unit tests pass.
-
Add new unit tests to verify that all deprecated aliases work as expected and produce good warnings.
Add new unit tests to verify that all new configuration keys work.
-
Update git script and command handling
- Re-organize the commands to normalized naming (
git-am --sign, git-cherry-pick --sign, git-commit-tree --sign, git-commit-tree --no-sign, git-commit --sign, git-commit --no-sign, git-rebase --sign, git-revert --sign, merge --sign)
- Deprecate old commands and alias them to the new commands (
git-am --gpg-sign,
git-cherry-pick --gpg-sign,
git-commit-tree --gpg-sign,
git-commit-tree --no-gpg-sign,
git-commit --gpg-sign,
git-commit --no-gpg-sign,
git-rebase --gpg-sign,
git-revert --gpg-sign,
merge --gpg-sign)
- Implement a config based signing interface
Add Helper scripts template
- Bash template
- Python template
Testing
- Integration testing
- Manual testing git with new functionalities and signing programs
...