Linter to check commit message formatting
Linter to check commit message formatting

Write linter to check that commit messages have a new line before the body or no body at all.

reference: gist.github.com/agnivade/67b42d664ece2d4210c7

Fixes issue #19091.

fanquake/bitcoin,particl/particl-core,apoelstra/bitcoin,jamesob/bitcoin,jambolo/bitcoin,instagibbs/bitcoin,jlopp/statoshi,sipsorcery/bitcoin,mruddy/bitcoin,namecoin/namecoin-core,practicalswift/bitcoin,anditto/bitcoin,pstratem/bitcoin,yenliangl/bitcoin,achow101/bitcoin,litecoin-project/litecoin,andreaskern/bitcoin,Sjors/bitcoin,fujicoin/fujicoin,AkioNak/bitcoin,qtumproject/qtum,fujicoin/fujicoin,alecalve/bitcoin,EthanHeilman/bitcoin,GroestlCoin/GroestlCoin,namecoin/namecoin-core,Xekyo/bitcoin,bitcoinknots/bitcoin,domob1812/bitcoin,bitcoinsSG/bitcoin,pstratem/bitcoin,practicalswift/bitcoin,Sjors/bitcoin,mm-s/bitcoin,alecalve/bitcoin,jlopp/statoshi,mm-s/bitcoin,ajtowns/bitcoin,fujicoin/fujicoin,lateminer/bitcoin,yenliangl/bitcoin,AkioNak/bitcoin,pataquets/namecoin-core,mruddy/bitcoin,GroestlCoin/GroestlCoin,tecnovert/particl-core,ElementsProject/elements,Xekyo/bitcoin,bitcoin/bitcoin,ajtowns/bitcoin,sipsorcery/bitcoin,jonasschnelli/bitcoin,Sjors/bitcoin,achow101/bitcoin,lateminer/bitcoin,prusnak/bitcoin,JeremyRubin/bitcoin,jonasschnelli/bitcoin,qtumproject/qtum,bitcoin/bitcoin,domob1812/bitcoin,MarcoFalke/bitcoin,sstone/bitcoin,Xekyo/bitcoin,namecoin/namecore,JeremyRubin/bitcoin,apoelstra/bitcoin,ajtowns/bitcoin,rnicoll/bitcoin,pataquets/namecoin-core,Xekyo/bitcoin,Sjors/bitcoin,pstratem/bitcoin,yenliangl/bitcoin,instagibbs/bitcoin,fanquake/bitcoin,jamesob/bitcoin,instagibbs/bitcoin,bitcoinknots/bitcoin,mruddy/bitcoin,n1bor/bitcoin,ajtowns/bitcoin,bitcoinknots/bitcoin,jamesob/bitcoin,rnicoll/bitcoin,qtumproject/qtum,JeremyRubin/bitcoin,tecnovert/particl-core,tecnovert/particl-core,practicalswift/bitcoin,rnicoll/dogecoin,dscotese/bitcoin,sstone/bitcoin,prusnak/bitcoin,bitcoinsSG/bitcoin,apoelstra/bitcoin,alecalve/bitcoin,EthanHeilman/bitcoin,anditto/bitcoin,EthanHeilman/bitcoin,yenliangl/bitcoin,ElementsProject/elements,tecnovert/particl-core,fujicoin/fujicoin,prusnak/bitcoin,jamesob/bitcoin,domob1812/bitcoin,domob1812/namecore,kallewoof/bitcoin,domob1812/bitcoin,jlopp/statoshi,fujicoin/fujicoin,GroestlCoin/GroestlCoin,pataquets/namecoin-core,n1bor/bitcoin,jonasschnelli/bitcoin,dscotese/bitcoin,kallewoof/bitcoin,cdecker/bitcoin,dscotese/bitcoin,kallewoof/bitcoin,jonasschnelli/bitcoin,litecoin-project/litecoin,rnicoll/dogecoin,ajtowns/bitcoin,fanquake/bitcoin,Sjors/bitcoin,sstone/bitcoin,MarcoFalke/bitcoin,MarcoFalke/bitcoin,yenliangl/bitcoin,mm-s/bitcoin,mm-s/bitcoin,MarcoFalke/bitcoin,fujicoin/fujicoin,kallewoof/bitcoin,lateminer/bitcoin,jnewbery/bitcoin,Xekyo/bitcoin,bitcoinsSG/bitcoin,MeshCollider/bitcoin,achow101/bitcoin,jambolo/bitcoin,sstone/bitcoin,jlopp/statoshi,sstone/bitcoin,mruddy/bitcoin,alecalve/bitcoin,rnicoll/bitcoin,particl/particl-core,mruddy/bitcoin,qtumproject/qtum,litecoin-project/litecoin,jlopp/statoshi,lateminer/bitcoin,achow101/bitcoin,prusnak/bitcoin,litecoin-project/litecoin,ElementsProject/elements,AkioNak/bitcoin,jnewbery/bitcoin,andreaskern/bitcoin,achow101/bitcoin,anditto/bitcoin,andreaskern/bitcoin,namecoin/namecore,MeshCollider/bitcoin,namecoin/namecoin-core,anditto/bitcoin,cdecker/bitcoin,jnewbery/bitcoin,GroestlCoin/GroestlCoin,litecoin-project/litecoin,fanquake/bitcoin,AkioNak/bitcoin,jonasschnelli/bitcoin,GroestlCoin/bitcoin,cdecker/bitcoin,bitcoin/bitcoin,apoelstra/bitcoin,rnicoll/bitcoin,ElementsProject/elements,alecalve/bitcoin,lateminer/bitcoin,ajtowns/bitcoin,particl/particl-core,JeremyRubin/bitcoin,sipsorcery/bitcoin,particl/particl-core,domob1812/namecore,domob1812/namecore,cdecker/bitcoin,practicalswift/bitcoin,instagibbs/bitcoin,kallewoof/bitcoin,sipsorcery/bitcoin,MeshCollider/bitcoin,fanquake/bitcoin,bitcoin/bitcoin,jnewbery/bitcoin,GroestlCoin/bitcoin,MeshCollider/bitcoin,namecoin/namecore,alecalve/bitcoin,pataquets/namecoin-core,tecnovert/particl-core,MeshCollider/bitcoin,cdecker/bitcoin,instagibbs/bitcoin,GroestlCoin/GroestlCoin,bitcoin/bitcoin,ElementsProject/elements,mm-s/bitcoin,sipsorcery/bitcoin,GroestlCoin/bitcoin,domob1812/namecore,rnicoll/bitcoin,Xekyo/bitcoin,bitcoinsSG/bitcoin,namecoin/namecoin-core,JeremyRubin/bitcoin,jnewbery/bitcoin,ElementsProject/elements,GroestlCoin/bitcoin,apoelstra/bitcoin,n1bor/bitcoin,qtumproject/qtum,dscotese/bitcoin,jlopp/statoshi,jambolo/bitcoin,rnicoll/dogecoin,MarcoFalke/bitcoin,qtumproject/qtum,instagibbs/bitcoin,practicalswift/bitcoin,apoelstra/bitcoin,pstratem/bitcoin,domob1812/bitcoin,rnicoll/bitcoin,qtumproject/qtum,fanquake/bitcoin,andreaskern/bitcoin,JeremyRubin/bitcoin,tecnovert/particl-core,particl/particl-core,mruddy/bitcoin,namecoin/namecoin-core,jambolo/bitcoin,cdecker/bitcoin,MeshCollider/bitcoin,sipsorcery/bitcoin,pataquets/namecoin-core,rnicoll/dogecoin,andreaskern/bitcoin,anditto/bitcoin,GroestlCoin/bitcoin,achow101/bitcoin,namecoin/namecore,pstratem/bitcoin,namecoin/namecore,bitcoin/bitcoin,anditto/bitcoin,bitcoinsSG/bitcoin,n1bor/bitcoin,EthanHeilman/bitcoin,bitcoinsSG/bitcoin,GroestlCoin/bitcoin,namecoin/namecoin-core,jambolo/bitcoin,andreaskern/bitcoin,mm-s/bitcoin,prusnak/bitcoin,dscotese/bitcoin,lateminer/bitcoin,pstratem/bitcoin,domob1812/namecore,EthanHeilman/bitcoin,AkioNak/bitcoin,sstone/bitcoin,AkioNak/bitcoin,jambolo/bitcoin,domob1812/namecore,litecoin-project/litecoin,domob1812/bitcoin,kallewoof/bitcoin,n1bor/bitcoin,pataquets/namecoin-core,bitcoinknots/bitcoin,rnicoll/dogecoin,GroestlCoin/GroestlCoin,namecoin/namecore,practicalswift/bitcoin,dscotese/bitcoin,n1bor/bitcoin,particl/particl-core,MarcoFalke/bitcoin,EthanHeilman/bitcoin,jamesob/bitcoin,jamesob/bitcoin,prusnak/bitcoin,bitcoinknots/bitcoin,yenliangl/bitcoin