@@ -450,6 +450,73 @@ describe("Commit", function() {
450450 } ) ;
451451 } ) ;
452452
453+
454+ it ( "can amend commit with signature" , function ( ) {
455+ const signature = "-----BEGIN PGP SIGNATURE-----\n" +
456+ "\n" +
457+ "iQJHBAEBCAAxFiEEKdxGpJ93wnkLaBKfURjJKedOfEMFAlxPKUYTHHN0ZXZla0Bh\n" +
458+ "eG9zb2Z0LmNvbQAKCRBRGMkp5058Q3vcD/0Uf6P68g98Kbvsgjg/aidM1ujruXaw\n" +
459+ "X5WSsCAw+wWGICOj0n+KBnmQruI4HSFz3zykEshuOpcBv1X/+huwDeB/hBqonCU8\n" +
460+ "QdexCdWR70YbT1bufesUwV9v1qwE4WOmFxWXgwh55K0wDRkc0u2aLcwrJkIEEVfs\n" +
461+ "HqZyFzU4kwbGekY/m7d1DsBhWyKEGW9/25WMYmjWOWOiaFjeBaHLlxiEM8KGnMLH\n" +
462+ "wx37NuFuaABgi23AAcBGdeWy04TEuU4S51+bHM3RotrZ2cryW2lEbkkXodhIJcq0\n" +
463+ "RgrStCbvR0ehnOPdYSiRbxK8JNLZuNjHlK2g7wVi+C83vwMQuhU4H6OlYHGVr664\n" +
464+ "4YzL83FdIo7wiMOFd2OOMLlCfHgTun60FvjCs4WHjrwH1fQl287FRPLa/4olBSQP\n" +
465+ "yUXJaZdxm4cB4L/1pmbb/J/XUiOio3MpaN3GFm2hZloUlag1uPDBtCxTl5odvj4a\n" +
466+ "GOmTBWznXxF/zrKnQVSvv+EccNxYFc0VVjAxGgNqPzIxDAKtw1lE5pbBkFpFpNHz\n" +
467+ "StmwZkP9QIJY4hJYQfM+pzHLe8xjexL+Kh/TrYXgY1m/4vJe0HJSsnRnaR8Yfqhh\n" +
468+ "LReqo94VHRYXR0rZQv4py0D9TrWaI8xHLve6ewhLPNRzyaI9fNrinbcPYZZOWnRi\n" +
469+ "ekgUBx+BX6nJOw==\n" +
470+ "=4Hy5\n" +
471+ "-----END PGP SIGNATURE-----" ;
472+
473+ function onSignature ( dataToSign ) {
474+ return new Promise ( function ( resolve ) {
475+ return resolve ( signature ) ;
476+ } ) ;
477+ }
478+
479+ var repo ;
480+ var oid ;
481+ var commit ;
482+ var message ;
483+ var parents ;
484+
485+ return NodeGit . Repository . open ( reposPath )
486+ . then ( function ( repoResult ) {
487+ repo = repoResult ;
488+ return repo . getHeadCommit ( ) ;
489+ } )
490+ . then ( function ( headCommit ) {
491+ message = headCommit . message ( ) . trim ( ) ;
492+ parents = headCommit . parents ( ) ;
493+
494+ return headCommit . amendWithSignature (
495+ null ,
496+ null ,
497+ null ,
498+ null ,
499+ null ,
500+ null ,
501+ "gpgsig" ,
502+ onSignature
503+ ) ;
504+ } )
505+ . then ( function ( oidResult ) {
506+ oid = oidResult ;
507+ return NodeGit . Commit . lookup ( repo , oid ) ;
508+ } )
509+ . then ( function ( commitResult ) {
510+ commit = commitResult ;
511+ return commit . getSignature ( "gpgsig" ) ;
512+ } )
513+ . then ( function ( signatureInfo ) {
514+ assert . equal ( signatureInfo . signature , signature ) ;
515+ assert . equal ( commit . message ( ) . trim ( ) , message ) ;
516+ assert . deepEqual ( commit . parents ( ) , parents ) ;
517+ } ) ;
518+ } ) ;
519+
453520 it ( "has an owner" , function ( ) {
454521 var owner = this . commit . owner ( ) ;
455522 assert . ok ( owner instanceof Repository ) ;
@@ -887,7 +954,7 @@ describe("Commit", function() {
887954 assert . equal ( signature , signatureInfo . signature ) ;
888955 return reinitialize ( test ) ;
889956 } , function ( reason ) {
890- return reinitialize ( test )
957+ return reinitialize ( test ) ;
891958 . then ( function ( ) {
892959 return Promise . reject ( reason ) ;
893960 } ) ;
0 commit comments