{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":28283593,"defaultBranch":"main","name":"boulder","ownerLogin":"letsencrypt","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-12-21T00:29:54.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/9289019?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717788843.0","currentOid":""},"activityList":{"items":[{"before":"486de684387240bfa391f63861f0173854455ac4","after":"19ed9701026bb13b4595b97e85993f945525f65b","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-07T20:47:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"Create sfepb.UnpauseAccount request","shortMessageHtmlLink":"Create sfepb.UnpauseAccount request"}},{"before":"b99453c75253ec80075493a8643708ba8b0af8a1","after":"5235f6ee2863f3f5a6a78bca803ff01b9934ebc2","ref":"refs/heads/rounding-time","pushedAt":"2024-06-07T20:22:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jsha","name":"Jacob Hoffman-Andrews","path":"/jsha","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/220205?s=80&v=4"},"commit":{"message":"Satisfy typos","shortMessageHtmlLink":"Satisfy typos"}},{"before":"6279c036f14781ea050fd28203c52d2c144b1a99","after":"b99453c75253ec80075493a8643708ba8b0af8a1","ref":"refs/heads/rounding-time","pushedAt":"2024-06-07T20:09:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jsha","name":"Jacob Hoffman-Andrews","path":"/jsha","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/220205?s=80&v=4"},"commit":{"message":"Add docs","shortMessageHtmlLink":"Add docs"}},{"before":"51b6cdd9352f7dd71fc03c430af92caf8a4eed55","after":"6279c036f14781ea050fd28203c52d2c144b1a99","ref":"refs/heads/rounding-time","pushedAt":"2024-06-07T19:57:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jsha","name":"Jacob Hoffman-Andrews","path":"/jsha","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/220205?s=80&v=4"},"commit":{"message":"fix unittest","shortMessageHtmlLink":"fix unittest"}},{"before":"a19e68b51e04ac3d51abee6810985cfd03547ccb","after":null,"ref":"refs/heads/unify-ca-metrics","pushedAt":"2024-06-07T19:34:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"}},{"before":"de8401e3454fe27e3b8a7407b3b000d09c8c86d1","after":"602f3e470893b5f16ec8d791ad5cf350000cbf65","ref":"refs/heads/main","pushedAt":"2024-06-07T19:34:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"Fix reference bug in CA.noteSignError (#7534)\n\nIn the process of writing\r\nhttps://github.com/letsencrypt/boulder/pull/7533 I discovered that the\r\nmethod for detecting pkcs11.Error errors is broken: it attempts to\r\nunwrap the returned error into a pointer-to-a-pointer type, which\r\ndoesn't work because only `pkcs11.Error` implements the Error interface,\r\nwhile `*pkcs11.Error` does not.\r\n\r\nAdd a test which shows that the current noteSignError implementation is\r\nbroken. Then fix noteSignError and the two locations which duplicate\r\nthat code by removing the extra layer of indirection. And since the same\r\ncode exists in three locations, refactor how the caImpl, ocspImpl, and\r\ncrlImpl share metrics so that it only has to exist in one place.\r\n\r\nA minimal reproduction case of this type of breakage can be seen here:\r\nhttps://go.dev/play/p/qCLDQ1SFiWu","shortMessageHtmlLink":"Fix reference bug in CA.noteSignError (#7534)"}},{"before":"103ec0091f72f2a5b4caf31fc96e442465bfcdd6","after":"486de684387240bfa391f63861f0173854455ac4","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-07T19:23:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"Add SFE protobuf","shortMessageHtmlLink":"Add SFE protobuf"}},{"before":"69ff5b052bb7b38085e67d249199d6dbf2da4aba","after":"51b6cdd9352f7dd71fc03c430af92caf8a4eed55","ref":"refs/heads/rounding-time","pushedAt":"2024-06-07T18:53:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jsha","name":"Jacob Hoffman-Andrews","path":"/jsha","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/220205?s=80&v=4"},"commit":{"message":"Fix CRL integration test","shortMessageHtmlLink":"Fix CRL integration test"}},{"before":"665addecc66fecd9eb34a05b353a4f7bfe9f8dc5","after":"103ec0091f72f2a5b4caf31fc96e442465bfcdd6","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-07T16:20:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"POST requests now function properly","shortMessageHtmlLink":"POST requests now function properly"}},{"before":"e3006814e05f0ac9f50549ae021ab04cba2b97e5","after":"665addecc66fecd9eb34a05b353a4f7bfe9f8dc5","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-07T14:59:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"Derive ed25519 keypair from seed, hooray","shortMessageHtmlLink":"Derive ed25519 keypair from seed, hooray"}},{"before":"de28e55c4f7fb8c87e80d8c1f49707c4f87ffc58","after":"e3006814e05f0ac9f50549ae021ab04cba2b97e5","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-06T23:28:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"Refactor how templating works and derive an ed25519 jose signer from a seed","shortMessageHtmlLink":"Refactor how templating works and derive an ed25519 jose signer from …"}},{"before":"9688e4d1ba568a15fc1cc8419b8be219a0c80c00","after":"a19e68b51e04ac3d51abee6810985cfd03547ccb","ref":"refs/heads/unify-ca-metrics","pushedAt":"2024-06-06T23:20:35.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"},"commit":{"message":"Merge branch main into unify-ca-metrics","shortMessageHtmlLink":"Merge branch main into unify-ca-metrics"}},{"before":"e14e1e6a0eaf4c8f97317079ca53ac5571bf3bcb","after":null,"ref":"refs/heads/crl-sig-metric","pushedAt":"2024-06-06T22:50:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"}},{"before":"0eb87b83ad7c697f18c4d4a24b8d69777351873b","after":"de8401e3454fe27e3b8a7407b3b000d09c8c86d1","ref":"refs/heads/main","pushedAt":"2024-06-06T22:50:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"},"commit":{"message":"Add signature count and error metrics to crlImpl (#7533)\n\nAdd the \"signatureCount\" and \"signErrorCount\" metrics, which are already\r\nincremented by the certificateAuthorityImpl and ocspImpl after all\r\nsigning operations, to the crlImpl.\r\n\r\nNote that in the process of writing this PR I discovered that the method\r\nfor determining whether to increment the signErrorCount metric is\r\nbroken. Rather than diverge the crlImpl's version of that code from the\r\nidentical code in the other two files, I have duplicated the broken code\r\nand will fix it in all three places in a follow-up.\r\n\r\nFixes https://github.com/letsencrypt/boulder/issues/7532","shortMessageHtmlLink":"Add signature count and error metrics to crlImpl (#7533)"}},{"before":"3786401f107be28f550366bc88c4a3bfc99e9a8b","after":"0eb87b83ad7c697f18c4d4a24b8d69777351873b","ref":"refs/heads/main","pushedAt":"2024-06-06T22:31:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"expiration-mailer: Don't audit log \"no usable contact address\" (#7529)\n\nFixes #7528","shortMessageHtmlLink":"expiration-mailer: Don't audit log \"no usable contact address\" (#7529)"}},{"before":"c2ef10e4ef3351abef10fcc22595327c59046061","after":null,"ref":"refs/heads/dont-log-no-email-addr","pushedAt":"2024-06-06T22:31:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"}},{"before":"e93d910099db5050cf0662654a0d20267e186155","after":"de28e55c4f7fb8c87e80d8c1f49707c4f87ffc58","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-06T21:17:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"Pass data into templates","shortMessageHtmlLink":"Pass data into templates"}},{"before":"6870d3d24853122b60e0139f1bf826c619674056","after":"e93d910099db5050cf0662654a0d20267e186155","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-06T18:22:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"JWT freshness check","shortMessageHtmlLink":"JWT freshness check"}},{"before":"65165642353ee8756363b3f54a6d2cda81089e85","after":"062709ca77f267e68208d76f4eaccdcca208d7cf","ref":"refs/heads/delay-rva","pushedAt":"2024-06-06T17:26:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"},"commit":{"message":"Review comments","shortMessageHtmlLink":"Review comments"}},{"before":"ad3c2bdf40d93d2b32773c5b279832d650b7fc1b","after":"6870d3d24853122b60e0139f1bf826c619674056","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-06T16:36:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"ValidateJWT table test","shortMessageHtmlLink":"ValidateJWT table test"}},{"before":null,"after":"9688e4d1ba568a15fc1cc8419b8be219a0c80c00","ref":"refs/heads/unify-ca-metrics","pushedAt":"2024-06-06T16:01:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"},"commit":{"message":"Unify shared CA metrics into a single struct","shortMessageHtmlLink":"Unify shared CA metrics into a single struct"}},{"before":null,"after":"e14e1e6a0eaf4c8f97317079ca53ac5571bf3bcb","ref":"refs/heads/crl-sig-metric","pushedAt":"2024-06-06T15:58:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"},"commit":{"message":"Add signature count and error metrics to crlImpl","shortMessageHtmlLink":"Add signature count and error metrics to crlImpl"}},{"before":"9253d13704eee055d7f21b7e81ab6f8bbcdfe489","after":"c2ef10e4ef3351abef10fcc22595327c59046061","ref":"refs/heads/dont-log-no-email-addr","pushedAt":"2024-06-06T15:37:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"Fix comment","shortMessageHtmlLink":"Fix comment"}},{"before":"fed3beb62bcd0b268d5fe66b463c1ae4c98360ed","after":"ad3c2bdf40d93d2b32773c5b279832d650b7fc1b","ref":"refs/heads/self-service-frontend","pushedAt":"2024-06-06T15:31:42.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"JWT validation test","shortMessageHtmlLink":"JWT validation test"}},{"before":"7225cd9c60bc4cb5ea128d70a956995d080663fb","after":"3059ec9828cd49a6adb4b7715ffbd9cf0e20e2ce","ref":"refs/heads/split-willing-to-issue","pushedAt":"2024-06-05T21:09:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jsha","name":"Jacob Hoffman-Andrews","path":"/jsha","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/220205?s=80&v=4"},"commit":{"message":"Rename test case","shortMessageHtmlLink":"Rename test case"}},{"before":"db2857b1287dd70773db72eddc170f7e140da1ba","after":"3786401f107be28f550366bc88c4a3bfc99e9a8b","ref":"refs/heads/main","pushedAt":"2024-06-05T19:14:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"},"commit":{"message":"Improve redis rate limit construction errors (#7525)\n\nChange ratelimits.validateIdForName to call the appropriate validate\r\nfunction based on the contents of the to-be-validated ID, rather than\r\nfalling back and potentially performing multiple validations.\r\n\r\nPreviously, if an ID like \"12345:bad.domain\" was passed into this\r\nfunction, it would fail the first validateRegIdDomain validation due to\r\nhaving a bad domain name (no TLD), fall back to the simpler\r\nvalidateRegId function, and then fail that because it contains a colon.\r\nThis obscured the true reason for the failure. Changing this code to not\r\nfall back means that the true reason for the id validation failure will\r\nbe exposed in the error message.","shortMessageHtmlLink":"Improve redis rate limit construction errors (#7525)"}},{"before":"01909102c15093397790f20633e272abacf02ccc","after":null,"ref":"refs/heads/fix-rl-key-construction","pushedAt":"2024-06-05T19:14:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"}},{"before":"84aa8a9b1c2a73b0d1d19cf18893f970e0b720f7","after":"9253d13704eee055d7f21b7e81ab6f8bbcdfe489","ref":"refs/heads/dont-log-no-email-addr","pushedAt":"2024-06-05T18:55:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgporada","name":"Phil Porada","path":"/pgporada","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2382565?s=80&v=4"},"commit":{"message":"Phil needed to pay attention during every single English class","shortMessageHtmlLink":"Phil needed to pay attention during every single English class"}},{"before":"b5495ce7eb9d7383d72991445740a58b1d4b671e","after":"65165642353ee8756363b3f54a6d2cda81089e85","ref":"refs/heads/delay-rva","pushedAt":"2024-06-05T18:38:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aarongable","name":"Aaron Gable","path":"/aarongable","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2474926?s=80&v=4"},"commit":{"message":"Improve comments","shortMessageHtmlLink":"Improve comments"}},{"before":"32991941b2c2cc6184ef0ef52e4eddcfa5d6b1d5","after":null,"ref":"refs/heads/dependabot/go_modules/github.com/go-sql-driver/mysql-1.8.1","pushedAt":"2024-06-05T18:29:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEX5YKSwA","startCursor":null,"endCursor":null}},"title":"Activity · letsencrypt/boulder"}