github.com/purpleclay/gitz@v0.8.2-0.20240515052600-43f80eea2fe1/testdata/commitsigningkey.go (about)

     1  package main
     2  
     3  import (
     4  	"log"
     5  	"os"
     6  
     7  	git "github.com/purpleclay/gitz"
     8  )
     9  
    10  var (
    11  	gpgPublicKeyID = os.Getenv("GPG_PUBLIC_KEY_ID")
    12  	gpgFingerprint = os.Getenv("GPG_FINGERPRINT")
    13  )
    14  
    15  func main() {
    16  	gitc, _ := git.NewClient()
    17  
    18  	if _, err := gitc.Commit("this is a signed commit",
    19  		git.WithGpgSigningKey(gpgPublicKeyID),
    20  		git.WithAllowEmpty()); err != nil {
    21  		log.Fatal(err.Error())
    22  	}
    23  	gLog, _ := gitc.Log(git.WithTake(1))
    24  
    25  	verif, err := gitc.VerifyCommit(gLog.Commits[0].Hash)
    26  	if err != nil {
    27  		log.Fatal(err.Error())
    28  	}
    29  
    30  	if verif.Author.Name != "batman" {
    31  		log.Fatalf("invalid author name, expecting: 'batman' but received: '%s'", verif.Author.Name)
    32  	}
    33  
    34  	if verif.Author.Email != "batman@dc.com" {
    35  		log.Fatalf("invalid author email, expecting: 'batman@dc.com' but received: '%s'", verif.Author.Email)
    36  	}
    37  
    38  	if verif.Committer.Name != "batman" {
    39  		log.Fatalf("invalid committer name, expecting: 'batman' but received: '%s'", verif.Committer.Name)
    40  	}
    41  
    42  	if verif.Committer.Email != "batman@dc.com" {
    43  		log.Fatalf("invalid committer email, expecting: 'batman@dc.com' but received: '%s'", verif.Committer.Email)
    44  	}
    45  
    46  	if verif.Message != "this is a signed commit" {
    47  		log.Fatalf("invalid commit message, expecting: 'this is a signed commit' but received: '%s'", verif.Message)
    48  	}
    49  
    50  	if verif.Signature.Fingerprint != gpgFingerprint {
    51  		log.Fatalf("invalid fingerprint, expecting: '%s' but received: '%s'", gpgFingerprint, verif.Signature.Fingerprint)
    52  	}
    53  
    54  	if verif.Signature.Author.Name != "batman" {
    55  		log.Fatalf("invalid signed-by name, expecting: 'batman' but received: '%s'", verif.Signature.Author.Name)
    56  	}
    57  
    58  	if verif.Signature.Author.Email != "batman@dc.com" {
    59  		log.Fatalf("invalid signed-by email, expecting: 'batman@dc.com' but received: '%s'", verif.Signature.Author.Email)
    60  	}
    61  }