---
type: change
description: |-
add change_description field to credential commits
This also involved changing how commit range change fingerprints are handled, so
that the description can be more variable, and using that flexibility to allow
the cli tool the ability to ask for the change description prior to creating a
credential commit. Credential commit creation via the cli tool has been further
improved in that it will check if it's been told to make a cred based on a
specific credential commit, and if so just append the new credential and
re-commit, speeding things up a bit for everyone.
fingerprint: AGWXqPM1Lxf3kvV/V3w65jNiUQyrQfemqfCcImSWjHJl
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl68xrgACgkQlcRvpqQRSKx6Ng//Qm/8dCqBe/8R7KgzW2naP352jegW5m9KoIMrVsm1kmgQfAGYs0easnks1+DadD79TEUacTrPYxDR50eScU58uybRUPPbJLXLjdoSbUYCl9bSdr6LVlZF9GVcMbH4iWhTN3YGQFHX7pEqwJ9Qzw/pbheCGPkS3KJFJZ3tC+TVM7QysdkGpxlKn8GiSIfN3d4QaHWFJW9FOc1K4mAFfmM/5QqU5j5OydlLeScJu+na7B8Lcmy4Jz+mdwIZCMG9h4qv1qD0/XcsY8Wv6cptMIBUZgg2SIyrl0KDau8pHX45PHlAaViCjzW2LjU2wMn+zKX6s3hSWje5sE95Z1a7l0ubytHGKUdlfTQDnkVYzs9hCqv3iAERChGl6E1qQWSNQMhhUcwVsZ7+Iw2M6ESrP/MvdsdO+N0t2oakbJnzUliGx8pQcY4DJPaosUadLqwKPMYiBOiSsfN2e+Vw2ZOoiHL2QUEd2VV1JfImZBl5oLFhzuLfR6h+eMkwcHjs+rtgMEh9TnA6qVzn7BzZ9p1ZFBHlw3Yrx22tG2Ehri4eMPa+5+vcuG7xlSlq4FOGvANi3E3lieeIiE61EztoX3iXeY4bdtaFlMEk6i+JU3jHdwXd006Kv0/5jd7n+OAba8aYjthNN2WuhTxj2/VSKn9iPjaCD3GJtkFQajf57v2nbK0QDx4=
account: mediocregopher
---
type: change
description: |-
Remove Payload.MessageHead error return and simplify implementations
None of the new implementations of Payload.MessageHead can return an error, so
don't do it. The new implementations place more reliance on the author field of
the commit to describe the "who", so the commit heads have more room to describe
the "what".
fingerprint: AIf/6pSXd2ao5vKa8Ju0HAKWwPC2xN2RDQtoUfuDZcnc
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl66IV0ACgkQlcRvpqQRSKwuVxAAla713T+aeJwqg4PE5VYrcs29Wfmg2Zc/Otk5l9S8zm+csGV4esEHb1gybe1DfvMhSq3V25jMdu/tt0TRHJUiWskzdHAX4xqNv/pMmcMSB18hpyV3YB+kBYtn+9sSBf4y7tYUVIGtRiycAkazTkAHQZmaufxYCfbx/q5irpyQnIdUb+EXy5o4hJnA9ic0bchS6o8vvDNZpAF2ETi6oylt7MAgo4eeB3M+gpT75U7iGOCWn2qA0ofv4h25M9qcMTm+apRUwncueB19v60GpwRFcAMKvlJfsPEwlJpdvGONilZcA+p4tp7jjn5BP1FeE0UtUSDZHq3bVKcVYxm65kV7yABUDvTnhD7/JylsimB4bOabqbkAkIiu15Z1HFomufS7ozTngTI6AFRCvaQiHTmCvsoM8hSUs4NDUEZo8MzSQaAsAsMn3Pn0Vm1YdtOLJ4ELcBPTb02WnpoIRnHoMbUQuCLwHPHPJxU2aMYXs5WSDv6ZlAlGlkZwe63W2NKc80mChObwYH/Wt6lTLX0m/GrBRzl3Tv+DzlpfJ6le+TrF6HdG/D2DmLXl9Cp8hyw0ClNTszaCACy2rAiyqeoMV4acpi3cShdVXDz1dTC51k7V5IkfUtH/QDxJYqc8DJJrUbJqsROF9JUgZCN58RNRaUbjKLpcI/bIO92Yq0WTqMIagCo=
account: mediocregopher
---
type: change
description: |-
Rework how FilterFilesChanged works
Previously the filter would only match if _all_ files changed matched a pattern
within it. This ends up not being very useful, as usually the filter is being
used to guard a specific set of content within the project, and so it's a lot
more useful to have the filter match if _any_ files changed matched a pattern.
fingerprint: AFSaaPVOBsFYc0D3JQd0M7yJKDiS8/VjAsppPXTngGPb
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl63Q/oACgkQlcRvpqQRSKxHew//QO74joMfwg+mCiSKjXRbTidYW/ILr3mspFSLMYS5RKcf2YQNpYOP24a7BINe5LQYXGAOEH7PxEWOTTJTzwv90/T/jmYwJJMuNRa3NHXfCRS63i7L2b4nWSEATPQlGZRaMLOOsYdg2m/mcEQuHgf+fmfd4iRGFJHDzxj4etcfD/cHi9fg8Assr7E8K9xoYp3vs/8cPWGP16p94LHmsu5m8pt990Bn4XzxUzHAseyjPgs3OElH67SqW9D9F2PHZvdmCo58bvt13otzn137jwf/EZQOkcOWXxaOxNG8bqZFWgFGUEQajgXYLwfPULC4J3c1Rj+umAT0R1QPzj0h2MIoE/gM1wbw5fwtIfCpM9pA526TFJfdujvYY4x8oPMve9hTQ0FZ9Vv1cTCrOWo5vVNjum0jY58GGr9/I+PXupstDmGnKHnwivz459YNq0Uuyir3KgyM8fY7rTf+FQslrv7Hafnrju3KqCvCoHT0nNj0dWVen5RFK6dee4fsYvGK8ujKYCJpwm+3/0ggJOCC3XsMOCCh/F/YMvq4Xtwo7AbNIrVPOSIAnu2khkybInmZGmIVEP4E6MWfVzjb4wVVocqYhhuHg09IDeBv9WS5s3KBUVL4RNYadrUXMOs4W7wXvHILSYx87j0UJfy9bUfALwclXaFuhBYzghbBQVN3L00ASaw=
account: mediocregopher
---
type: change
description: |-
Fix a bug which prevented force pushing to a previous commit in a branch
This bug was caused because VerifyCanSetBranchHEADTo did not properly handle the
case; what would happen is that the merge-base of the old HEAD and the new one
would be taken, and then the range of that merge-base result to the new commit
would be retrieved. But since the merge-base of the old HEAD and the new would
just be the new HEAD, it'd be taking the range from new HEAD to new HEAD; and
empty range.
This commit adds an ancestry check prior to the merge-base, to manually account
for this case, and calls verifyCommit directly if it comes about. It's not very
pretty, but it works.
fingerprint: AEYAvGa1GIfbmjh/gqu2l7qdhQtlJIGHhJd1GaZ5D87h
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6t5d0ACgkQlcRvpqQRSKyjuw//fpTDF/PSBHlmZUOV6k9mffdOdSR5cwGZ1K2b8Nn5astdNsnIW3F+4u2M5X98xFDTbmsB2Dt0jhRX00Gx9rLC5hO50GCE/z2VkEpHNgZbn4sv1SEGkdSAbo/zogB0+bDTVwH4HxKgQwm2R/u/4OGT2i0skP2xhRaXa7HQZuPtzAajc+JVkoX8ZJAbJX2xXoo9vmmgXvxI6lBP+xJMVQCDrLTHKuAeN9ouJM4AmDgyDKGok8o+N5i4QW6axWjrbEpPtnzcR/SOBO4lXnhJUTACYOt4c3GlOVcb3zc8QRCJpUe6YC4nwIi59oyEuu+IIwjgu5SUsKgqNNAzKTJUn7aRlPeqncDw00OGO93u2Y6A8/E5yGnQZ6wFlZuR4NO3t4lydhYOGY4hDs+34OvhDzFCLOWvxkjuG8ArTSwp45zavM2fPWyt+2c0g7CDdHDr6xQspcvL2tn1Ot1gXZQIMmUvM3SLqPmcAegihiFSCzcuQX+61WMyYbmaHy3/bFr5jZYF7wOsj2AgMWkFmACbfT0TlMt5E3BDB7bED1jVq4sXnT+v2VaYD0ASTg3bhmjJ7T298P0QCRbL2QtnPT1qeLsCqaEzA8INl8s5Yp5rt6yde0nVyRzHQkyQyAoDzKLQ1OSWmYt29WN4cGQh0UhpCnltCGVQpD36BkcvHwc7W5Vy190=
account: mediocregopher
---
type: change
description: |-
Fix a bug in typeobj when a type field's name is the same as one of its inner fields
This specifically came up with Comment (though it wasn't caught because an error
wasn't being caught, that's fixed here as well). Prior to unmarshaling into the
selected inner struct field, typeobj.UnmarshalYAML unmarshals into the outer
struct in order to unmarshal all non-type fields. However, if one of the fields
intended for the inner struct field has the same name as one of the type fields
in the outer struct there would be a conflict at this point.
The solution is to modify the type of the outer struct being unmarshaled into at
this stage, so that all fields with type tags automatically have a `yaml:"-"`
tag, and so are ignored by the yaml unmarshaler at this stage.
fingerprint: AL32FBVJ7Bu2dz1ysrCiRFz2/y+QuaEyhKygvWP/fihw
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6rQYoACgkQlcRvpqQRSKzs0RAAkdU5Ty2uigHZSXqSgU4JiDLMmzlr4B4ODautUuLBmdskVaAAuOUJuS+egUU6Xz6lmL4+zQRBNGCvaZTxu0OT4H4wFWNQ9RdurLbuSJDeQY4htn5bP6BqcOy5aiTiYpnrZu6yuzMTco4jVSZ961o6t829gDBu1jAk32i/l3ivQpMSijEwjK9m74jKxF+fIVqT3+isgs0qzaDkskpdlDEgd/cf4Ibeb1+BAEZRShMXHBhF415rldjYs9H1Q2TSVwAaP7Zqn9gIV04yB/C8Waysh/NCMsIvQcACbVoO9vSBQ/1d+jttI+KTqOTA8lQ/ygWrFdYtPBjXRO7CVrah7PPE+EbFbPBbjH6ddP20uVeoTPTcjUwaWpdg5e4vZfuqXEe0IWW8NyMh8UL1tJ1LpLlWZKx6tz7gcUgoq+jOLUmUG5EB8HjQfqZx6WDHuyPTpy3c646SaIjg8B8tKkwUR+w9zntId7N4mWB+c+qMDH72mU54sXJ/i+XexqZaQgQiz2jRcltNc4S+/ohT5UDAYuivJsCDBcZdOYiMIB2cnPsm2DbCdbQPAq4oK1Ni+2wo7Pj9nVENamc+g6evqCnBZsWQUt5bDUwneIFwYcqdIPulX0NV9rtZQxexIkCmsO1vSrzdkeNyfWizFlRLavW5OBmxuLtoFoZUv5Oijwu8QT0eXMU=
account: mediocregopher
---
type: change
description: Remove extra lines from lists in README and SPEC, because apparently
it matters
fingerprint: AGaOS9iaEXfoEO9elCCnJJBt9rEtISscRpxMh0XTweo/
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6mFmIACgkQlcRvpqQRSKweQxAAq3IEyGJaEhZAZnPqiS4WcDoPyK1vvEsM/JeHodIQKM5UrdLUuUsnyVF6Nxk3tpMMASRVkzYR+aPW2OQx8XpmR2XZnBeWaSoZFGpmmhoo+wJL303rstnUqQcOj3noKUdD7VL3tEQfoUKZdfsezfGmUG3zvgBYhAtIFDA3y+fbpRO9YFUTeWPDu37o34yRCgi9dS2WWahEfnkaKO6EenD6fJDJgy1TKFkYBimGo5M3Tr3ijEsyXPndZE9MUORMubtCKDLJpaPHH1dSLALZhNKmIoWfLlfFlJiqPMqEDnu2HVavRnyG5GSGCR3GnUt1d6JyafBjR8zpVaHnIa7CTqWhHIMKACW1PE22tGs0ciIjfepg7jZ4t3lJEk4r3baBJDvFEExF2LQH9pzG1Wcl7SaOayt4ud3Io7vugRHdZey90a88ih6LWGB6hrXd83If5ybLm5qU83RMaQSWmjk5J/xF7aCdQ030RAn4aP28yKKPlgtdfk1q8Xs4PvrOstDPV45pW4goUMLyjUIN7xn650Xu6i7NCvSxHYhuR0kbl/Nf8wpvuyZPjnZiO0C00JS6IlNBnDVledqcFbfHAmQc65eomRPDhhE0OnviZFXDW5xPSLZNdleZ/02vYj5vLmpA+VDZmcmnJpz6nLk7ytcGDNHwk3E4dprhHazwVnO77PUK8wQ=
account: mediocregopher
---
type: change
description: |-
Completely refactor naming of everything, in light of new SPEC
Writing the SPEC shed some light on just how weakly a lot of concepts, like
"commit", had been defined, and prompted the delineation of a lot of things
along specific lines (commit vs payload, repo vs project). This commit makes the
code reflect the SPEC much better in quite a few ways:
* Repo is now Project
* Commit is now Payload
* GitCommit is now just Commit
* Hash is now Fingerprint
* A lot of minor fields got renamed
* All the XXXInterface types are now just XXX, and their old XXX type is now
XXXUnion.
More than likely there's still some comments and variable names that have
slipped passed, but overall I feel like I got most of the changes.
fingerprint: AKkDC5BKhKbfXzZQ/F4KquHeMgVvcNxgLmkZFz/nP/tY
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6l7aYACgkQlcRvpqQRSKxFrA//VQ+f8B6pwGS3ORB4VVBnHvvJTGZvAYTvB0fHuHJx2EreR4FwjhaNakk5ClkwbO7WFMq++2OV4xIkvzwswLdbXZF0IHx3wScQM59v4vIkR4V9Lj5p1aGGhQna52uIKugF2gTqKdU4tqYzmBjDND/c2XDwCN5CwTwwnAHXUSSsHxviiPUYPWV5wzFP7uyRW0ZeK8Isv7QECKRXlsDjcSJa+g+jc091FG/jG9Dkai8fbDbW8YXj7W3ALaXgXWEBJMrgQxZcJJRjgCvLY72FIIrUBquu3FepiyzMtZ0yaIvi4NmGCsYqIv00NcMvMtD7iwhOCZn10Sku4wvaKJ8YBMRduhqC99fnr/ZDW0/HvTNcL7GKx11GjwtmzkJgwsHFPy3zX+kMdF4m3WgtoeI0GwEsBXXZE2C49yAk3Mb/3puegl3a1PPMvOabTzo7Xm6xpWkI6gISChI7My71H3EuKZWhkb+IubPmMvJJXIdVxHnsHPz2dl/BZXLgpfVdEgQa2qWeXtYI4NNm37pLl3gv92V4kka+Kr4gfdoq8mJ7aqvc9was35baJbHg4+fEVJG2Wj+2AQU+ncx3nAFzgYyMxwo9K8VuC4QdfRF4ImyxTnWkuokEn9H6JRrbkBDKIELj6vzdPmsjOUEQ4nsYX66/zSibFD7UvhQmdXFs8Gp8/Qq6g4M=
account: mediocregopher
---
type: change
message: |-
Completely rewrite SPEC
It's good this time, and complete. After this rewrite it will be necessary to
update a lot of the code, since quite a few things got renamed.
change_hash: AG0s3yILU+0uIZltVY7A9/cgxr/pXk2MzGwExsY/hbIc
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6kqNsACgkQlcRvpqQRSKztwQ//R3maov9GxmLAAl1jF34ZWqS6et5EmMMDRH8KtD6PB05r9j+Z1etMbaW/dAcXzXcXZpEWmj7xhfR67nyFL5yYEGcBnEUGcEMD9uMOF3QrKrBKmvsDUinIsWQV48cu0R8hY6akqhklYbK/W/S1PXdgBOn+hLuFyoN1Xa9NiHIZSfYwEYrEWE7Pg769lqtEugRv/nIYdO3slEDdubl4bGCf1gt9gowEprod7xaieil8TlKBCFNNR6Eb+GmyhyRBymUR8ANqMUgOzW1hcmRyUFAVSOPraM0Lrze8+nYzvXINqsswp98ZWXz+tOKCHkjRox/HrLsDEhbws4e6S6ngtnFNDEMi9idJH5jYcoH89RLUUggCDbehEF6vfb2En1QbCSIkxR/uAYoQo0pxXMzEdgSjSPNltOvE6I0qWyX9RcSFr/vbVx8C5TDmchZt6CMnlioa27B2SWJxfs5opfHHIHSEQyI4keaDOx6RgU5TfzjBVqCLFjWRiYrxu/ZlNuQDRyTnHKjBnIkhOvcjh78/iBv0Vdkns6R3yE7X9TxKnPs4tfhFOa+ftg2bNjIQS3IN2hLlrsJuRYiImL34zj1s0NbALFVRQCcyY190BnTN3FCqzKTUbriuoo/MeAWW/soPpy9HUhWGh3KdcmqZbfNaosiMIDirwEkPtLYMXHfPH7NfZ9w=
account: mediocregopher
---
type: change
message: |-
Support non-fastforward commits
This includes:
* adding a filter to accessctl which can be used to allow non-ff commits, and
augmenting the default access controls to deny non-ff commits for master.
VerifyCommits was then modified to use that new functionality, and then tests
were added to cover that.
* adding a `VerifyBranchCanSetHEADTo` method, and using that in the pre-receive
hook rather than putting all the logic in the hook itself.
`VerifyBranchCanSetHEADTo` is thoroughly tested, and the tests for it ended up
uncovering some broken aspects of `VerifyCommits` as well, so those are fixed
too.
change_hash: ACTyCsTFBnAjGAek355IU3I6MioLIx5mb1mS4YjMUrF5
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6jPvsACgkQlcRvpqQRSKxfag/+JD8bs7zbFZc3XzLWz3vOhPl3OaxdXbQoqlCVywBSZ1dHrJ7BtbTltQpRgNRv+Khs/ibQAUphDFKsAauF7IKZu2fcluMYH1kulEZsYzHFZUz3zDNcPtZhD/KdPgBRSa4tv76iaeCvGGv7Eb9zHxzYiXofkf8Bkn7n63D3aE1N3MhceSPAU07johiZnjXpb2UGonLq1kQlCcEAy57H82iv0N21QjJmZ/bSNgT9d6c9kEb4lmOCs1ZWvW7kzqVLXkhgZ2/77nLKTaFvsTjA6MOodD2vrLQ4KmHmWLjYA2PmqMLkSKoMIUQhatIZiBiJNvF0HztPiIhCJLVwu5eGnVGQwMR74IOBoATlb8R7FuqOhX70b4B0W8O7ovIDWM5dNatKyrzJkJ9lWPX61dP6cx7cshM3dQAr+Xmjvu2CTllIFg01b0j3Ec0epbbXbb5QsuWleaEbsqatktRMiISC/6ix2ijH/n5vYq9GsDS9VhpsXLHdBVIiveorAXr92BR0wrHF2p7sSy7sptcmNLXe4SlJVHi4AHw7qbixoZKo4mPQepsxaIbeBNG74X0Wg4MGKDBUfQ2kX8JpU4jq/ZVDBGAY6CfH9s1Zns4BVQBokBeCUgh3Iik6NzeKAiPTNnD20JfXxaX1OfJIwP8yopUnqJQXdjqV0KFPRym0VNZyCXQEHFU=
account: mediocregopher
---
type: change
message: |-
refactor how file changes and hashes are handled, and add tests for hashes
This involved a few different changes that all worked together:
* Making fileChanged public as ChangedFile, and reorganizing how it's
created/used a bit.
* Renaming the CommitInterface methods to be clearer, and passing in a
`[]ChangedFile` into `ExpectedHash` (previously just `Hash`) rather than
trees.
* Adding tests for the gen*Hash functions.
change_hash: AGCdt2k6FARuf1CBao7zxiuDVMOAdeL5vL8Whnr9KjMu
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6bVGIACgkQlcRvpqQRSKwkmhAAqAuUXKIpr1caE7yuM09udiW51G0TtSe0tLItoZ6ROnSe6lsISZ3hkmOWjSyfeeZFggGIAlK3Uipb42pbSO3Usf0fqDWdNekPLRtTd6qpB65Ye9kDgC3Nz6Z0EhFSMDc6sQzNcisWqAAry6CyEy4ucAm3aK1frSTH/6i/x9DQZXY7WVLM5NewegTr/fatf57Fh6kky7o7yiALeOmQR/oAh7x4AADJgmJMs2aBLsO958GwrNOlQI/RhC83TfoXM7YcTkFv+xz2LucIyBZYYxpM327UTmUk2vuOf3p2OFbiISfIZxFeI3KhpUH05TVXyzohQTnrwyWJDKFGKO8iqxaWHRxdH0INUKsAcBTA8dzTGoRyFF5CUKYX0ZnorlT5NV2HeObmFaDpUHNQKHCcQAAAFoSOGVNNqfGS1IqUNwwZkln+Nzr7YrxmCJ98fDopF0C9ZWhNzNF3+oQbOCIOj3+1kqxsQrcqgK3dwefCL46u244qLDGyqF9s8Aqp4rtrVT+4V2hTB7psdR/EDwu5xZDtXEPEktY+6z0RyYwqxUKBkSklOd+dgmqMYw7YrrNKCW433HjHUEf8Qk/x8CjRANkNYMgOAQqND0pegaAHRJJJbD4xMBrMBO8QlAX5+/ocFfoyEXTKlUuNJXVOh/2TDtOWXhmbVhOBsx7TOhTjUhtAGwE=
account: mediocregopher
---
type: change
message: |-
some small convenience changes for tests
A few small fixes to the dehub package tests, to remove some boilerplate and
make the harness more flexible.
change_hash: AGSCUBN1O0Nbj77jWn17FE8rw6BfOZIm99d5gT+32pcs
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6bQXUACgkQlcRvpqQRSKyNhhAAkdPfbvlHIxpP3Euh28T0AlLRaqDy90JXuvTSzfXVZyu6amZKoF3zcFC1ZTUngXp7JrhY3lrI2zQoNH4skOBhn/va+mgSgoEwLXuP2hXW6vKjYSpYKYpFom9n35bHFfhLLeNk7dfYyG5f6CIu3Is8IrayvRtb9eoRnidIqxk9uPsvdtU/lkMpHE+XHYt6xA+IHaM+JFpCLZhrSZosIKLBSX0QBytq9LUXiAjYHs7xSov36v5P3R6CJfqc7koCXK/XNzNWFpyS4z0hxdm8bCcuoxrOyCeb2BtYTCD3qm/0pmSqfn8ubbgx/eC0EJn9J8E80aCejyn8bqsy+To0T+FZm2GJhOLrQfS6spte1K4ZIg8TBl8tlc6GtKH9Q0hwA8SaNEBTR4kWI6ImbotJ2co6N5eHB8v6uk33uCUVWQ+BA4ZeiltmQZ798lXUd3FP/lfaHm51HXgBMgGK1Ynxd+gcPqJpExjivImrT8jZC3b4VkGEp9FBBtX6F9d+V9S3ZrXWjmjZfO85inqXCaXK1YTWnajA/2AqLpxWMWroXH69//u5ZBkdqF76sqtjgMT0txSfe40Kl6DxIZyGKcVXPd4QpCRXWI/YG/x0qddKACr8yS3nO/TrFxXH4QUbexWA4vlCcxgaVr/Am9JDwOS+fe0yOx+zQ+JjMB0IoAOUR+5OTsE=
account: mediocregopher
---
type: change
message: |-
Refactor how commit authorship is formatted
This ended up being a loose thread that, when pulled, untangled a bunch of other
stuff. Notably the account argument to Repo.Commit is no longer needed, and I
added an anon argument to TestSignifierPGP which simplified a number of tests.
change_hash: AHMeFpSJb/AoLiELW5pImUiQ+PS0PWibliqcQuFTjC3o
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6TVu8ACgkQlcRvpqQRSKwExw/+OQa++h0ZkFuguU3593D+9P7l8bElMWu+Je40RrDHz4fD0i51UJGcnkk/9fryUWGmWpbCnDv9k7OGztipH/P2HDhuBn+/Dc7X8CcRsRC7/n+o1gd6f1Sc9q4zTgPKkE+ZrE226e8GNVgpZRspbZHa1IwSs/fIkboavnWFowV6SiLColtwYqCfCJXvEP52D+OjKvi4iatRUzoVIOYNHGI4uOufuQRYPZIQRGxgcvUUB/VhjyBB39BV5cHO8oTFmmXH6+eFj4bHWjHsRzp5ferUmsRCdvo2lkoxXkeqN0okyUcwpXQXI7l6BL9OyCxHifIK9G2BaOAsp7A6piwNzaUGk1RIHZpJ69dTfTre1jolOhkGY9lXGAMdSo+ifsFqKj3sXZNjSEJ49riYP98ERnhF1APHN+xL1dkUd8eTTMRh9+C8Bi7twWkUJ2wH5CL1brkpkHIwXOa7jszdeliMK9aZRT7lyxvjCx0uVFTeXbq0RSRb9Oeo+TJhRIu7kLpMKmzX9y/fRaGiPcjr8OD2cfWhACsaVGuU+oXmJXk4uJ+ADfm4IZy7IOEQdr+3Cg33y2mxRq2APwLaGjvA6UFLfar1/nAKK+uTQDF3DssHdLgEfsH2Lu5orc3+FtAblhBiwrN5a732hLceEMkUvQXwOHbZqddkbuqQ6FqHMDIsvBdK6gI=
account: mediocregopher
---
type: change
message: |-
refactor pgp types a bit to use the openpgp.Entity type
By using Entity the pgp code will have access to the public key's identity
information, which will help in making more readable commit messages from
anonymous users.
change_hash: AAJCn1/lybheXWv8Rfy2Y2r4UF9seGptC6uvFn894c8Y
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6TSX4ACgkQlcRvpqQRSKzCpQ/+I/8BmEtsbwepiGZiIFg0HZK+z4CR5DWLpKQg3w5+NDSfzY9dkdwqbt0ohPyFmLXZz7s1cn/iU0OOb59fUPmH0TklMedY+l1q5XDNZ160l5494QXNXZDKMGC2QIjst+Fu9Qwys7U+1pTu8rN3K1x/ZQCCJvDVFH13jj7bIna2ltxhsqNY6OiVUc5EJsZHbNAgFXqYJNt4XbC+9QcOyDyyYytmJnjEX2oquj7skac9uyBjjJGkqA70sjD4yn44iFqEpFuJAqFuEJDj1D4bkt7Ib+syi/eMPZgDvHRtMGAxl+fBU2OAG8GIlxveYqeUejCp8SYoat+0Tdoi3lT/wj2lTQRtMBeOGUccpsOMRI1t+g5ggKx3YcQgbKLixuAgl649fnX7fmBLB3IuG5PdgnTqjQBPkTBYhkR80fDSg3nfuh+1TVDGiW6C8HtJRlFWWDRcyaYhcWZwKXVTMm7xtgNJYwpLeDmuTCJV6kvldxmBZEmfrQ/1u+wKG2/kCun9stSHdEuuZVM8sv4ECME4C+1fTNnEkzJhHvULV39b41ODZolxNj8ZRa1qt8emC1Hw6ZUjdkA0gXS70l8tfOtQunPTPLDGzNZNYNw8H2JqEM3O6NLIzwEUJVYOA6BmibQj5I7QMSvOS2PpD9KDKIR2vXNsk1yUqdpu9PmLhcclrMqEGOc=
account: mediocregopher
---
type: change
message: implement the ability for users without an account to still submit accredited
commits
change_hash: AIcRB2u380KAM345cCdexq3RzhDeEuDNT9gwcGDIj8xp
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6STloACgkQlcRvpqQRSKwMvg//c0JOUTlXNpDA8VSSUdPwHPrUJix223eMOi+SzP4RlCkEh8bHT24D3P1bpMacjgNpcmHGshAwtZkboTbvHNnqVu7HvOM2Vb/lrtkod/0sD4NsO2+GjJBNJmBtv9rEEz9wBGKKhjgZc5+h3d7UlmWHiLO++v2RnjEYd13Fj4/fOHnpAWrXVodtSEFVxUGup980Ug3uvC/vc8+a9w5llafqBMAnastQ/DyulPQeMTE2lxfyGvK1EhQSxbSokO61rgNssPFyfsmheA7T1FIrOzkXqNhIFsfRB4dAOBhhtoqRFEoJ755jK4XSlE5Y8klFuRVIfdnyBlrbia+Pc8u9KMoIBk0hDP+niFqUn9lEZS5D6X7PW/8DsaHa0rlHic9IB7nE563Fm1QVd5GSj7t3/0vPBetxdmXshLuTWtq+gSEJBH2DlC7AHw6gZkSr0w4d2HJlDivfP/cWuyrp0PrOAnEuKCRpnD+EBV5+wa+QlYYIAuTLMwF+/aT/G1VCtCSFkE5JWzZVw6J2oVq25deLpe1TMQ8dHevSlPx/UcofZasO7uFHLc3xDyC8ceK+pGuvRA2SSOIGo7+qR1xh2EhmQ2RZO1AN0NB4NYHQixYqWERen8SDe1jsSy6ercKTE5T/jJeHVPIOm1nutdP+D5gjQGU0JzcNoG/luJv02MWoD7J7RWU=
account: mediocregopher
---
type: change
message: |-
implement amend flag for change and comment commit types
This involved a custom implementation of soft reset, since go-git's doesn't
correctly handle the behavior around the initial commit of a repo. There is also
a small fix to HasStagedChanges, since it wasn't properly handling untracked
files.
change_hash: AJxjg7EN6l2UBcqGXLAqS4HGCfMgD3xCmQ7uZMSOScBc
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6R9X0ACgkQlcRvpqQRSKwtGA/+Ow53J6A8al29hl4wQwpM5mLFI1krBrYcaZd6p/Sz4fhA2/YFhVAmmFCjFbI3QKQyb7DFijrT+8DSoUpgA83b8KIgHPXvUdBq12AFZeYKAfWB7USHWdmQPI4J7Z4rT7qP1o8T9fnWAAInKJPz3VC/RzEFvUdCFBgHHrYYX0S9twt4joEE7K/VlKJrjMQDhjUM+dFYEzQrcUHW5prSI5iHyJs/F+fpI2J7TSFPSCPCzPpAUyJ3Gt1aml9wBctzYOtuHslo5rw1nv3GweIrFBplekjEugxm0bvg95eVdsex/xltcY9KbKkl9iPVurmSRdkE2HDoQtc1c0Pl6XtssdA4k8rmjtO0jBHhKRA+b6ewVr5xRMDKRu2Jj5iPZlvbSMaldLhs/4QSfvQBvmyeVgX+R3zK7Y7JWdqxyOEgYihAI+/4jYxmHIu4QSTntJQw849do2tLqGgIjRcoQpjG35YUE+BZw1WjUVoT9GfPodPd75b5avwVYNuJ+3tKEPmwwz3HcMnwgPSaUEVIyfBlhdOEesSClIjk6rRJzB6WjpvooE9MJEF8AkaTxMGNcbkg/hSjXgt6vVW71YttdgRPoDuct6yU7aeoLwdDswCuqzEvaEdjB8elGcmwYlejnFt6xmLp0cUsPyRLSHQhpDFsdqJklmEXKVUFAgP6UEzxTxmGevY=
account: mediocregopher
---
type: change
message: |-
force all commits to be ancestors of the root of main
Without this commit it would be possible to just start branches willy-nilly on
any dehub-remote, each with an independent config. Despite this obvious benefit,
there's two significant problems which will need to be solved at a later date:
- If an account is removed from the config, then that account will still be able
to create and push branches based off commits older than that config change.
This can be solved by adding a "checkpoint" flag to change commits, making
them the new root. This would also enable hard-forks.
- Currently there's no way to specify a custom branch name in lieu of "main". I
don't know where this configuration would even go, so I don't know how to
solve it atm.
change_hash: ANc9dlX1IhMQcuSAAnsAoVWBg5v02mPwcoPn9LBOBAbL
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6KI08ACgkQlcRvpqQRSKwrBRAAt8u95nX/BYjgV4yFv/GQ69miWMidFqR84xAk4ZexiUct50Adf4O8fLpf0iIN1TWNItz3d3CM28h+N5+6ewbaM+zMhmiZ13xz4U/vxKyQ2f3LRpj5x8QdEjPEPzKXEIha+6TzBwYA3ijnRgksUKuDEB0tfgA0YDHeWxaVFSgi/F3Uupu1qphiKqytRI5XGimsVoMgI2CGk3RyzchYzLPJTPeHPocSPGT+FmSNk/hh58DGZ2oIfB4bV93xcW87O1RnwAlTNINp1Opsiq2vA7qKMTbqgDl47XaAgctmbpvVfPSbUhQn3MPkV62YvyA9Ft83ls80GNf4RoYQk5szBpTkCsoEaYGZ9xxTuxH6tuAviBR8aj7UZ5SA7FrxQLTe273971nIK1Ei8P6ms4s4Air0eN34GG7yVdhv692xfGDe2E0Td/PnsHx4el8CbK+pJ6O05o7uSU+855IlNPn8gaka1govfwKdn+AsDxKkk4jIakiYB03L3hDr/pGbu1Mm9hNPMDOegKwMfEmuEaQs6tGhYmkIVcFLxOxV/20JvwGWkmPUPFpNCfS9QfVfqhRS5hjJDQvaDDBtk5e8afEUahTSaqx1pqCMU1joFZT7HSrhsldnTiKBIjobrnuAHPi2Lp8EdoSN+Lgp5jqC2wPEpU72Sh9grINrcr8JE9mXDMuFygs=
account: mediocregopher
---
type: change
message: |-
add init command
This ended up being bigger than expected. I decided to make the init command
also handle setting up the git config and pre-receive hook for remote-enabled
repositories, which took me on a bit of a journey through how go-git handles the
filesystem. In the end this greatly simplifies dehub-remote, and will make
getting new people set up with a repo much more straightforward.
change_hash: AHlWg77eGGr071jVIMJtv+DU3U9x+tcTUsegt4yrk/9W
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6I6oAACgkQlcRvpqQRSKw+dxAAjirfVfIsudnYo3TJxaR1qhQmJJg7v2aMnRQXgYKHEpy8Z1m994WyH3sGJhDQsx3Z/26XjW7fOgXUUKnqZNLp+js182yNo855Ik0vUuEHunAy+YXkBklo3AlkQSJlug9kJrYYjKH4PsJnPZ5JcHXyauxcaydFwHQP61+wiuX/y4iVP/T79ljqbe8GXVj50+rzhu1cRGEgUswnBNSVLYyecU+aEOejfb5CMoCsVtFKunHc+PyHmFJ1XVTwhF/wsCI3pxKYJ/wGqTW6urV46vZhp4SZIJFbSaQkIWuEUXg4JDp8prqgt2IdVlK/wfjxe7YXB9YpzcC4Wblc+m6tiX2lIuEogTyaRK31A2M5/f4m7f7DnPddbZ/fKQ2BBLyLJTtGSQxaFc6LzEmjgMUoUGvkGEPHcaZ1CAOOdcEYn3Y1uwwh4+BJhKPdfpHY4c10+F1Dhi86A4Pi/QmUZ0Cgr9u08wMg1efvD1VTZ6QPX9tpTKi0YqflFdDCDKlLtuA9AvTKBOGGC/XOCmCGjqFpptVRAf+Fl/7DtPG1TUVnKAs1CIw85cMYtEvTptCnMNkwnRFpwiFy856RvpR7RUiQfkWkdohwUY5psFfggOktTgydm5nULWZ4AzZW430MIeJj9XH8FKvYfTN08T9C1kYCwMtC9HYMmXuPdCJNuymQNBAWgaY=
account: mediocregopher
---
type: change
message: |-
refactor dehub binary's flags a bit
* Make flag outputting a bit prettier, omitting the flag section in both the
usage header and the body if that sub-command has no flags set.
* Use a different pattern for opening up the repo, since not all sub-commands
will want to do so.
change_hash: AK10DRu7LBGpLHRHrQ7TMqgkofz1n1DwK16sg6tOGSq8
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6IydIACgkQlcRvpqQRSKz6tA/+KmSCy+o2jRb7ZMUz2WSSyERLT9u1hC0+5u5AsJvxhFZSPiEbCrMmM6IvPzmtWpfgTV5ug9C2kbNE5ghp/ANlbmwaTNfAv6bnZjsyLWP3AdrVNNW0w6xkoE3PXUGn06xx1Yst46tnHMKc8GXtFRCLfcgetFl9Fp2w0feIIv1Aw4dP2haCnSXgdHoXloFkVfKoKD1zZo+9uJ+sTOnQhXl0JPaP2eBIgjuhVNGb/RYmhU6pHhh5kObUocCcP8Ywn/xSHOeFV+JXjPSNBnAAHLWuwtwP9bJNUNUoIQKc5WS+oiW9wsGRJZemC4IUnvft73rRrRc6+H3ESFXxP3BRELPbn52uv4BJDMAfDHRuRYbOk1vVP3+KyaUQDJC3g/z6L3xkM1MKbOsjSXAl3XRLR8iwl4GbXqKSFCLHTULzRa4roLF32sef0hQUorQAhDuNpkBBmXjpC3QrCbJgOxZdOZTlqn8IbG7uR/g2uqoBv/P6afe4wOxis4iiMCG8bJd8Zinu6lQ5ULimkf6GWEw96+6bUQnVgEQl0/8nDjzEjWgXNN+OteIS6YVeU16rC/2lrYOobXE+4hP/+RUGG7lH2KBDH1MdtWJf0jSBvtPZ7qeDuMaFZeeFHzWdEkGAkfft1TrWK/1kBhthNAKE6dtazCNzebx+7KDY0fnz3Bs3LCr7PIg=
account: mediocregopher
---
type: change
message: |-
Refactor all documentation
* INTRODUCTION.md has been changed into README.md, and been essentially
rewritten.
* ROADMAP has been updated significantly.
* SPEC has been slightly updated, mostly to add a header section indicating that
it is an incomplete document.
change_hash: ALqHmxfJSBVUIHrI4B9bGjeQpKvBUwL6GPmkDfjhu9uf
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6BIBQACgkQlcRvpqQRSKxguw//YGGDA/UJTVMPAkW8FeX+Pw8GzyW/nnF+f8HOo2/z56GA+llXVDwAyTXPJO3MIUBwPfnN1mLxANDClpofgKuy5I/uXD0ZEN8P4C8zyhv/OQIrgbkEa3iCnHgKFXmdn8URoeb8Bpcb5za/6VN/EwhkQlXGdwqppWcBMCuBx555AJRCIuC0LmOaVVSulbWTr4dAPU0OGodKqXxB5Je+mVzMJ43JQPw7nT5AxnN/CuEG6KsmtfRJISg6BwIVaVipoBGCNPA8Qsf6MC7RK2bCaQgxlQk3kVC46hNaGHlCbfOJgSMHwz4ivhk6tSCmfqzDQOfSQN4FQ0y9LghvFiuBI2PszytEVnYQZlX2vvXBCVa3k0BMNktCs1BKMUAxfZKJIg6YsfWlGt7hlbEgd/YvypC0JCLe3AEh7pILf2UQnxD9VWQhcpHiivXapSKgsoN1qgLgfRqQvFBAz9Wy1PMe3ySnUsBQ3hEdwqWXtQILtHRrhe9TzvMF+zQYQb0bQPM09tR0MicQD7bjzo3F0OOvudRBAAA+5W9uOEpThUVi6hJa2pTcH38ZAHcISENwqOahran4TPZ2eGyl6afmkzjjrMe3THo6rZg+U+P1MQe/2K8JItSPH98fD/eeO74QUAgq/SLIa24MqaCSFIiJ3I1xgnB5o1b8/xhAcodOUFKdgwGtdXE=
account: mediocregopher
---
type: change
message: |-
Give the project a proper root, dehub.dev/src/dehub.git
"dehub" was being used as a placeholder up till this point, but now that the
project has matured enough to have a home, and people will want to be installing
the binary, it's time to give it a proper import root.
change_hash: ADTjLNnPARatUjx6HDo7m3O+0KUcWvcMJq1kNrj9++PU
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6BECkACgkQlcRvpqQRSKyeJBAAocdHTs8AB2u9kZmMcJNf136Cq8KWjglvhuH49Nj9ILkeGOBF7+fIHBRSYxBQm4IIDWsjaQaRRhESJxKrkHUd7BG/z5iVsCfjYTyY7LPgv0oYJKEGbPOF2LDK2fuLLpRlA5v1fwamTdFYxs5j7yxW7weWiiKEgjMGjOiWQCWuqhw8rwOG6vjvYttQ5pekI7GvkdqWe+qODKmIF9xFFuhz7BMsFUAAwLz97W1wZkHA+O1BXGTe9hGwH88RY9IGJZftA6wuGes/SqwWJk+hpb89KV1yR0woMrwz7ITZZeNBboXO7KyxUXrfiLtxeRD4t15tJkdRY0FbIZvNCktviTqjPXOtoVh7c3m3p/LR5vcbgYDxaZKk51DYruovfaRI96Q9CYCK2kVb2PIJ4BJhlsUPzw8AWNVxXFECYZNEZly10hqNh4Xophr/x7PWOmoPoKL2PvXLtOHzk0r4Tw6JqUaC+7/08U/+lhlSKFKLdCj7Xru57qB7gxgd+P3g4rfqjIHqiB4tlViqR5RV7V8Z/goBMJg2uOJXIJGvwEZF9nj+QDgaofImMiQmcLrE6IBCYEELYz274w/6ugSCcdwVIC/n3VHuNY4zJDKN7Q/FgI9/GBS7UoNhTaHF2JmSKR9ErMKpm3PYPZr/VnsaXjfCBO5bVquvWLzfJ9aQ4t+tsRkuAvQ=
account: mediocregopher
---
type: change
message: |-
make docker-remote not force a .git extension
There wasn't really a good reason to do so, except convention maybe, but even
then I'm not sure it was a real convention. This commit also fixes the docker
image naming for docker-remote
change_hash: AAdGtR83SalP03yPlU0FDNkzlDzgWFXs08vJ26KtB8du
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl6BDAkACgkQlcRvpqQRSKwcsxAAtfvN8xNqWAXS48MVApoFPtK4GoUeoJsW+2KVWlaHYxwOtROaLoXBp+reNn9ESeetebQB8qPY44/xwmQuZ//CKt1iDvGqf470FW6bnm+LFNmpX5X49WUKs2KeTSXBeVYRtz8vZKPkQyfhlcUB2rHtVIWbqXPFXV4UtufqEnSu1LEgF+MORkNzOkoF35xRzp6pUlcmOc4Q1TUvK5+m3QXQpD9g3imA2fp49rmfVQ4E9OdtFAPxfhCWEdi2Zre8k9W2XFgCak/SX++9i1/7eyfC896RiCPD/cR/OvzXlCE8psuORAJ0MqcaJCYWz84KWVKH2sHqmkT0AYnrJRV+QXWWUS3ePZX/LzGBqgkxU8AuNiGXiDl5X9XVBRpCbYdwAjO0s4CoV6okH06euqlpvKhsLDKW6/TlIAqDVNg91Pqklu/oSd37faGCDfvDgsWvuypXe1VG+o2MXIdP5Z1Keis0tPKRyNCILa9aG8Jzue4Eaa3OnLCPnzT/MaXbTgAosLZf/IObyEGNhGnGZzUXXlwbwJNHQfeim1sILUEWCTU7/NrupSPOmjNzFcSQmvmLj4iBqnFikQez48uYl/ZL7jFYxbOxiPmXCNe+NX42TExT9P6wLkQs5kKzFbNKUgx5W5ou1ZQuqJ8CflS/eUBA+FEpb4nYdgPMKNwMPW/MD42Z1Uk=
account: mediocregopher
---
type: change
message: move Dockerfile into the root, make it build git-http-server as well
change_hash: AMsTQSEBo/XDnbkuiSStDsWUdian3UXM5YXlMhvTlegk
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl59b6MACgkQlcRvpqQRSKzD0g//Qja8EIF/cdOz5OrqdXOJeUqUm2QfZuUrDANZey3rTtpULAy3OTezrSTEK//bd+DLa+hf9r0hTocCzhTx5RO6wKYup0LMdiO6QGeXhdKzVjuN0FA7jQztjgZD5Y/P+PT9Ye8NiCPrQ8gdtG3BRB5RDgHILQNclvt5GyKMske4rYbi99DtnrSbbqP0n7dZLaurAkP7fQL2Q+8/o8Vt+uAl8s2whMJ1z7+Z8YqN+uUcHfuTxEcBkW97qjsjhpk9ZVSzpw6GXjuFy/n9uBk2mVyaoMcKtk03SCB7byCK7uM3mNMakr+m2W+RQMlzpUlYToFL9uWHoDouANK3kDLyM7WpEPIajU6Cuq5C97KsqQWNTrFypLlYx/IiUbKg0LJVyckw0jl98iY7jIDOKkQmNIYwaQ8IvXtJ459Jo0DSvmE8IEoCxskfvlh7YZU9keu1spW/k8M22RPvrrjU34IhIokkA1KbVBaNyMRoypjH0PptRleU4+Vmdf4MGg9heft2+JqYcs7pHVDYVSs1TFPRfmlhcf2CtixuWcqIpNiQEW/S1ZdcJ7Ifsv+6hNTYQqqNz6fS70cm58mA7lPZ+LFoNaaXcCYAHwq+y3RYXlm1I1fEDrv6RLuxNvOWAxGelCvDv5M5M3zdm5DHvrmPMk8fOfRKck7eWRMD6o/FV4f/K04R3TY=
account: mediocregopher
---
type: change
message: |-
implement basic git-http-server
This isn't really part of dehub proper, but it's a useful utility that dehub
projects are likely to want to use, so it's worth leaving it in, at least until
it grows into its own thing.
The utility starts a simple http server which serves files out of the HEAD of a
specified branch. If an html file is requested, and there's a markdown version
of that file, then the markdown will be compiled to html (optionally using an
html template). README.md is used for index.html, if available.
change_hash: AAonhlHUltpS+x8w8HHZRQb8e+RHJZpjoDtN2JTVGFBq
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl59ZC0ACgkQlcRvpqQRSKxWjQ/+P8CeaBipcM2CWYU2rJgUxNaHiFwpWNcKfJCdp0ZoypnBww4NyHYSM1578NoGukq2l1stSqqK6oWvN1SbYUd+v1YVmIRhCMbMthPPx1f6kPzStDichqYiPkAaIfIw0PUXpY24fkbHhe0tXC+UApEfgLvgEovHVhBjzbgsPhoMACG8Bgfl8mdwqmkXzGuHxxjpZnZLvL3B3q6nCfpGxUYpdQX5hYucV3+vv2obLnYNpPyaYwdLFcQF7a9xgin5eyWNPayyQ1LPDbt3V9ez0mAtCdqHm3KY3fhqz0YR0bU1rVY9eEMSeNaK8fPPmzDO3vlsE76G+tYuwTLaiZgIDCLy4Qm+VRsw1l35tOwybipWciLvKhCkeq1ohgKEcFZbl5Al4ZhUhj4TKN23gsKQzkt9TJlxAxSaNjkKsb4ZNxMhiKnq/THV2JfLAxCRJ+IK2hyu3wi3te8Q1baTYa9ZXxFN9m5V8r1JNJPUM7BASvCUEzWegNFfrvidCrMHzb7o5GhOETSGWkKejR7/KMn6n1/tvvrt9F2wbPYUJrPKjB8Y33b9PjLgvrQ/2nNOoj6UAeXWMv8N1oaAdjOJB4A8+/vhFTPpXlw3FPRn953LKspkHXck1ooUu1ea1rcOV+872ZVh2HsUn8qD42/IZZQ1K2+NhPaKuAtQnIQzOcZLb94lwA0=
account: mediocregopher
---
type: change
message: |-
add ability to credential range of change commits
previously it wasn't possible to generate a credential for the changes of a
range of commits, which was not super helpful. Now it is!
change_hash: AG8eGxGH30bZYieD7uYtiUtpQL7u357SKPE0rvbk8LpR
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl55QyAACgkQlcRvpqQRSKxU6g/+Lu4zVh8dz7ziZCYyOEwn7jrQ+L0UXMUmaHx6sL6eOd6P3m583etkl3EQbSCoTUvEGTcuxKm1bSb1hcd6NNjRaol6IpTaQtm71NQTbfUo7jZi8aq3P9o+tXr2UPqcht1nxcAXQEoOoK7MO2mVj6weWRQ40gFo5xwI/eO8KygZc3uXKSlWswvgs9jTDx9zyTDCMI9JX9S6Ino24K1RIRuZIAfOhUIRLq3vi8JmymhpjMAeyOj/gvBNfwkbUL0zGrikPr4VJbHtZDHsDZUnOB0kM7xZngq1jUe2yuiF+m2XG9eIXIGmP1hY1QTS+JllffZKtK781IsPs3Ncc2szwhqwEMpqYFLvNu6YFOvMaI6+gki/aqM3dzK74kopWBMnqgI18Z2mcgm0EwENnKVWyanMZ8UdfSHqORf+t6pO/fNkt7a0Dra9S/izmJEaalswj3EZmtJ4Z/qi9GW1ab7SUnccZyLTK22YoymgQ4VauYoa0WjmIDKpdnmU0/R7OMJtUJYoMy8aTGnVeNlu7IcaPh7yfGCGvA07h8l6wow0HsFiNoTCO7HW4O0HKLEtu+mcNnQsH2qFTSLcl3EJh7qhiMSCROHC78UIndgNweTKSxQcNynxfBmcZfJyW451RsuTHfwgoTWB2m8ZKVl24QM8tsOa68gSrOYk4IO43AL7I7w7Gas=
account: mediocregopher
---
type: change
message: |-
Refactor combined commits a bit
This commit makes the combine method not take in revisions, which simplifies
some things as well as makes it more consistent with other methods. Additionally
this commit fixes authorship for combined commits so that they only show the
authors of the change commits involved, not all commits with credentials.
change_hash: APQFD5UML2F+ulO3awYJ3BHqvn05EZSFqmCg2i7vTfgA
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl55PNYACgkQlcRvpqQRSKz51Q//anLA1v9Qqtn0dey24oGngaJnV80fi53CZf57AGulbTj6WWQIlZrH126B/YJgSAFg6EzRZZj8vWW7JTXLXhExVM3vGvGWJWyslW9vadBLXRbK9Uw4RuPxN9hDgnXPYs4TNbIm11q5m8jxrCPAehs4aMebsRB4k//m0ul/17kjWlIOHTJupE/gyg47hjoyD//q2vNi9izkEEtRYDVykxXzy++UtEp7CCt9MO9Tp6H8FRxDH1h5jwWaGbedL/AakLDBAN0DhEZ1tvStpeSwycRiGlbIO3eRpDoLoBgX5yLwwrCqF6acEToJZR+amerKlTa5dNf/cqynS8CzMs35u+ZZx0QKTp7eqn/TEP3LNlAbbzILyrktFVBml47JNjLwS2LVZknJvV3mWI6K9r6yE01m/S+2zbkZz2EoADn0PgA99tKfJoozjFbqRQaTJn/B6/4L38GyVKSW3DXF3BYjz9DrFiEZR95449q9gHmJCVZ7S7wX/KfYvI5K7QMpBhiGUZSsWKc4DX6de2TP1HgXQX/08WJGb5463J6TQoB2LoQbDzOUBli4VblQwpWaREDp0DlPz+BUaFVCAwIXsaYGGrUkKeqFN0MH1OR7Ir5t5uVg8C97RbywAYvdThyOdQLyKQaK4CHwtyHU0BPrKSU13rE6tl66NTqY46MgyBSPEJ4ukvA=
account: mediocregopher
---
type: change
message: |-
Implement commit combining
Adds a method CombineCommitChanges which takes in a range of commits and a
branch. It determines what the change_hash of the range is (using the message of
the last change commit in the range, and the file diff across the full range),
collects all credentials for that hash, and creates a new change commit with all
that information. That new change commit is then added onto the given branch
(but only if the change_hash would remain the same by doing so).
A corresponding combine command has also been added to the dehub binary.
change_hash: ALpURxN61PHUo5uzN9GTlM5V+4YcirKWpZr4G9llZVdu
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl53+xAACgkQlcRvpqQRSKxbZBAAsnLhOuVQ1YM2xVWVJTJSY09PoyD1EyXMFP/H5gCMvu9wtYHwPO2BOGsmWsmIePzRLH0YHAp3VLBtBiyPy5Xm5e9L54DJc1IvOH7tfP5jyDodExHhhCVvNeGza4ngcyBBi+ywu3SwNq1eYms/A4o8ZxcRRPhEYfGHR2Tob31ntbTM9s1D8cqZzszuj/FJY9AAEWmlBVfJrdPUGZ/DqYplTypEvgfSmbTsKWG6sc3nQu66azDvTz3v6Jn+oLQNdeFAA0gaXvChCWaAtsnDglSgzMTigz4+jY+ruqmvM+J4g7SYiWHrSzABM2QnBBvhMuNcFQJ/o7vQ3sWBlHDEJf+OLlW6APRbPfY/xZn7+TCQSi3UyVuSctqSeQfnCI3pDm2C17mtBeuYLtXDrDsENPOm9SEBz/rCpFVNyVI3TS5o+2EAolFQmEf7tV9ai32v5qqqdxwIS66EwW+eNVwpEpwdJrRRddlQ8Nn49Hgk7NHmniSxKn92BRVjtg/l92tvrNgfopQHRM9rnDcKtd0qvgVbmVOdgx55NnEMMYbOV0ljesmos++x3WpeH35WpOBV60rIbRCVPaSn1SqaEjeLXHKkc35EYgiUoD+F3pP7vfpbUJ5Wq8fIirFXnm6nA2WlBW8GXFEfd5tnjTkPAd9MSyqZz6bu0bDS3l4x7+qPgUlrQDg=
account: mediocregopher
---
type: change
message: |-
refactor how commits are created, as well as how reference following is done
In light of the upcoming combine commit feature, it will be necessary to have
more fine-grained control over how commits are created and stored. This change
attempts to address that, by adding a CommitBare method, which the Commit method
then uses. CommitBare merely creates and stores a commit, without updating HEAD.
Since Commit now has to figure out the parent commit of the HEAD, and deal with
the case of HEAD not being set (a new repo, or an orphan branch), the logic for
reference traversal had to be refactored some as well.
change_hash: AKwHmb4T5APrl3EL7Ox27ABGWrjqjlOGvBD1cOycgPcN
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl53+qwACgkQlcRvpqQRSKzXuQ/9HBnrwB3zYSsLsQrNTlZ6MW5DaH/y1pypba6eD57fC6Tl3ipuDvTLrjiRMdPkS8LFvPOkT8FUFRZH7farBZBZGRnoAL88ELPB/h5Ip7FaUu+syfuTsHnBvWPs2hPN/sEhceIy+io3P03vIKSYCPMAhhigkWhoZZa+SJNQyTTJ/WzbGmuopCYhe3/4JDfpLNIvfOzJb40jVXqmqZ4Lf82uqf9DIh8LjNRhhOBeVFOVyQ4FOHh6a/T7D4qNSMPi/RRFg9VSXlNV5tp2ykdQdzyS6vdBBxV5j8pz8DyTDZYxlqkHyb5Blkl4vcndoJOYjyacVqVuXMgvjf0a8cmuhDEmC1vRDepx4jKZQwKyl1HQ9X0+KodMAxrx671+m7Zga9OcyCdNdyaH+Tl2W4c6apaEv2lcx5DalSLW2uoDbo5B4uutBOFrL12ML2tnnyF93tRSZkcNibo69/88qjFjaYEAjOhupgNtrbU+92Dsj/8UGYKFQgfx7DSHGXhs8fzphzPvZifWoiGV49iXvOauNlUzolX3h4bmxcXAnl/+tC4F1a19TGl7TG7HAC8kajXAf01pSD+WxJGMN+gerOYHOCrlQVx+sWhQBh22yfsaAJXPLl4R/2bUKqSTXjHHp3/WTqK4HdRRN/L728YhOxBCy6Ue0CjAZKpi+cQWQUUxpCKQiXs=
account: mediocregopher
---
type: change
message: |-
Implement comment commits
This ended up requiring a little refactoring here and there, as well as a fix
for typeobj after running into a bug. Also made the commit message unmarshaling
a bit more durable, after running into a case where the error message that gets
produced for an invalid commit is not very helpful.
Currently comment commits are not very well tested. The tests for commit objects
in general need to be rethought completely, so they better test the hashes as
well as message head parsing.
change_hash: AO7Cnfcgbuusch969HHVuo8OJCKh+uuiof+qhnmiD5xo
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl52W+EACgkQlcRvpqQRSKzFVhAAj3cscGnlSHc9oP20ddKsro1lnJ53Ha22JKKJ3aO8Z33mIX4aXdVTheLFy8gvmtzeVThBzfshCGt3REHD9rYaSfUEUpd3iDwDBYu907h7fDfx9OhxsZhCcbn3k2si9xe2ESDWE4nFuzKq0W9C8HYBhtTDYV6pW3AmJTlLfLeSoH86nemDAsZ/JlwoIXqYbT63h2Y7FZbnPXHzPTo6ZCbf3u6gdOUDG8vifWTXCbxuueSutTYTJ5vHKejhz/WB21GJhvuZnCVrim0T0mVyyE2evCci7SP249tGj2bmSDF/vVD4aurKsyyd8l6Q38MSGYnsNmAMgZPmSzFTrqmY9bjJ8sir8mv0Pn85/ixWNGHVkZ/A9i515YYGNXQfRaHbHU72Yb5mlPWJQhywffhWLxP7HoGn27P2UJ6hh4f6KMiV26nH/4meV6Y2o0623fZzoETHVVp6oks6dMCcYRb5FF54Ogg/uBPeBOvtiIfy8hTwBqGVrzg7Dm2Sl0ystBuN8ZKrxqa24Wl+MukA5bLH/J9himDwl9XQtL+BYyb4vJkJcNqaGkfKyGU4q3Ggt38X71wGMCmYtWMZ9CIx5VC+OJC5B7C1fUOxG67wKG2X9ShY9MVfCtjrdAtnnECjalyPKXwSkbqB1xsdujxmnXhazYJ3Bf//QXc7tJuSuiG6jMjS24I=
account: mediocregopher
---
type: change
message: |-
completely refactor accessctl (again)
This time it's using an actual access control list system, rather than whatever
it was doing before. The new system uses a Filter type, rather than Condition,
to decide which acl element should have its action (allow or deny) applied. This
makes testing way easier, since all the different matching conditions are now
individual filters, and so are tested individually.
change_hash: AFgN0hormIlO0VWkLKnAdSDZeVRbh0Wj8LLXOMVQEK+L
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl5yoi8ACgkQlcRvpqQRSKwo/g//QkSA80APnPtwcibNeaoUwduH1Xim8pmi5JScKGsOypYkE0Iy+fO3fRNz4r7Tm6qNn7O04fDsiXlxPojxn7+NDFCQArVgoJk3jVTRDBW7LpahWJsYPP1SBjGtaR9o0bOpclXblTMIcteTkLM94AeASqLaEY8StO+5PX/82AkFRQ8E6m9R2HCmgwbBhqwWp8936x8ekMFbSSi0TMIyV4rpd0wj4mjvjjBwa3ArGmH/ynwabPCFuuqMT6996N1zoDn5EqZA5jGrf+Q7rxsI6t1bOnLmg9NGMQYRaZLAVZrp5P6G5XR3et4Gz/2AphAEgYJM3yLbEjZW6Daa77CgTNHXde7gCaWqyfcKlVGPi29/O+2IXhpjwxHwGpsBgEdX9227zapL+jwSAOdUVj8n6C8I8BGqpT7rTwA53yxlbSwXlkttvAn/lGT5X4lK74YfkzMXMEBZKzsb/dQEPyP2Y+AG6z2D4Bs/4szsCiUXF9aG2Yx1o45lVXTTdPUNLIsnhBjM7usbQRg8i5kC+OC9AVCi8E+lf0/Qgp0cUb6QLH47bHvDTH7UluY1bgSLZy+Zjaisvl3a0aK/UspywWN/fFgOrz2cDw232n8IC+Zi4LSKm7dXDRFbC1JNzrwAPP1ifboOrltwKroOsDNaVGhX8ABahNjmrUO4JgE7gvX+zxXb+/I=
account: mediocregopher
---
type: change
message: |-
normalize how git commits are interacted with, including changing VerifyComit -> VerifyCommits
This commit attempts to normalize git commit interactions in order to reduce
the amount of manual `GitRepo.CommitObject`, `GitRepo.TreeObject`,
`Commit.UnmarshalText`, and `Commit.Interface` calls are done, by creating a
single structure (`GitCommit`) which holds the output of those calls, and is
only created by a single method (`GetGitCommit`), which is then used by a bunch
of other methods to expand its functionality, including implementing a range
request which can be used by verify and the pre-receive hook (though it's only
used by the hook, currently).
change_hash: AMae4PL6+jrxhn2KEGHejstcdT37Gw/jjkl/UuovHcgd
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl5uhvoACgkQlcRvpqQRSKzJrhAAqi2LEQVTyVktfsOBv/CZmefclLLqWTChVoeIZt2EAGDDGygmrx88hI0SEAviOzPMn0kiZFDeY5k7ICJMhJ9RVDU9WjH7fbOboMJW19rVhx6Ke/M2ERtrT0OFLRmFVJVDM0P8SEheQvR3HE/iiypBICVCtp+meHEq9mOJWZlZnoCqMaulAy/Nnq4N1VD0yPPlr16+yxMqedKHcgKbcH8K61ltNAjXDT+tCWwCq1huA5MVSuTm5EwqIeKPN6JKgwATv8Ku2GhYZWHSGUwecP1J3x2XTDPeChCQVDpC232Pxwk8z/D36F3J/XOfkdl0QYQ077xL1IJfYOnuuHir47CokDf3G0XCQnJ/+X4pZdtP387rc045o/2bhUi2U4eJ5HgS7Hvyi6EApT0Czv7SeJePTvdnRUYse8ZYuIwYXj5GWWxnbKQzLpyjcHdQc2a3B3RN84zXqqAOS6ObFrFPZQIfz2rfQojZN8kvcmUvYhJXSaT65XmqFjyJ4n6grrEnK/N+MfbnpzyF/yvlzxWPqGFQOQj9meosbTAdgZbmdwYqa5r1ee8DmlkzNJJxze96h503a733yciN8Ef4hGZNlRV6YFegkK/cCgKaA4NCEALKb1t0Uri5gnPldXk4HsPF+23GANbE7mjytY8ra3fhXG4VhaFt/WsLg3Bu7djQ0H74y+g=
account: mediocregopher
---
type: change
message: |-
Fully implement credential commits
The actual commit objects and related refactoring had already been done, this
commit takes the next step of implementing the access control changes, tests for
verification, and refactoring of the dehub command to support multiple commit
message types (as well as a small fix to dcmd).
change_hash: AJyuAR0koVoe+uPBisa5qXsbW8YhlgOKNhnvy9uv7hQ8
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl5tVzoACgkQlcRvpqQRSKyznw//b9lWd4V4G81cFwGAxZtJ3JiFpspYdtTAUUcLi9nogGsDmqkkSQxLdmBCT99QtaenKsxpad+9sXhkZpgWF/AyCX9pN6TTlMKuRcDXeoMUjeKjRpRhCHN0Lt8Sz80NDPYIa81r9cH0o1987GirgGmDEkYNDAFPDdGNDcCad/LLnG+ONwOl9WEM1q5O4etUPurTywlBiELDjHxeLzqgxCo8fMaMejW6mxnMDV6DIHiX6INWZAAG66HPVetmq6EVl9bnFgZmgKNzqKzFVZJRdGQNbhR/WzlOh0HPyJGwCveZPM5Zjd/dpfQUYEGGprVKc0G0YVNU2Hcz6O7hqafGGxWpCFW6zKrNmBRaW2u2zjVJD4ukmWn9gFuKJKhs0kyawRTbHNIX+gonYv9lDFO3cZ5qcsJbSAYSHrCav121z0GsQDoFJMJDQnP0syEEbAaxdQe7Bd7bmOM3SpCOLJLF1+X7Srrq5//u6fiFDxQ82Ylo3hG/r7/QT/vSipUCglx4POq33+z8VEHGhVfl4dgSU6OgIV/S7evKC7EiS/jh/xywU44RHpxFhwS3hthHxZqgRIHTm65DqGYWWZds2Hkr29TTRajuf0t4MxqY2MrLAhNJUc6OmrVN+lWMmm/z1FEhfrOvZ8v7mOSqTKwkvbsZzk5mpeo2RrLdNnnWvTCy87FpA48=
account: mediocregopher
---
type: change
message: |-
Modify how SignifierInterface is produced so it always sets AccountID on Credentials
Previously it was the responsibility of the caller of the Sign method to set the
AccountID on the produced Credential, but this didn't really make sense. This
commit makes it so that all SignifierInterface's produced by Signifier
implicitly set the AccountID field.
The solution here is still a bit hacky, and ultimately the real solution will
probably be to refactor the structore of Credential, so that it doesn't have
AccountID.
change_hash: ADPuz04GuyxWwjo/0/jc7DcsPMl5rK0osSpaqmUxv818
credentials:
- type: pgp_signature
pub_key_id: 95C46FA6A41148AC
body: iQIzBAABAgAdFiEEJ6tQKp6olvZKJ0lwlcRvpqQRSKwFAl5r+hgACgkQlcRvpqQRSKzwYBAAsY4tj+E5xtJSZ1TvrS0mwJ/lSHYWE4rS3eDMY3JUJLE1tr5k3OTRtUhh2UHCsArXSVF4sU8cBSCtf2noaThQm8KQghPMgoZ1LnPd4BnxxlE2gPik4FMcv+mCv9OgUh0AUO+rSXeYJA3oWunaW9kYollUdX/mVTQTmmbLBqBpeXF/TQO/bJTEEzA853j5QDT8//onfSIlzUw0UB57IZZZImp5/XrggHBbKdfhUTJ75LGMgDEDvDNIdV8lBys+RnMzK0Yj6EvLQhsw426+0Sf9vX3jtzj6WKhmi8QyYvcxIbcrWUScEfA/RAgf0A8KhqKq91bicSHjvyK1TZRSSWcS43ewamgvVWx0KSYYoIn7PPwOTmpHP8u6RzGEQFjOhP1EaGytQJKMXidU6CPTh+pYVtPZc8oLAwk+DyMquqfUSbzN/63t90HpTm7uycuzOnQxilYe2HKlbMJCId0a0DyAFrA+0pNRz0tyd3DvF4svCdEy82rzlUGEhq7aIJKoXIut+fKGEBd6Znz6oX15CyQq0oPthZcCqgFR0oTqufvV2iWo+26cd9dVTPVbJA9kSbaFchgdAqCkPA5wDVuNJJtMftf7STW8Lm6dnU6q9YFjZVdR55WtvUCINxBUtOirRzG1jcS0VNhhtb+SMNATEvDGJmt6neHM6Z17MAdwGS+s/hA=
account: mediocregopher