{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":165697271,"defaultBranch":"main","name":"gafaelfawr","ownerLogin":"lsst-sqre","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-01-14T16:44:17.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10158560?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716935379.0","currentOid":""},"activityList":{"items":[{"before":"1ea003c88329235fa511aa0cf3c22c46725af74f","after":null,"ref":"refs/heads/tickets/DM-44567","pushedAt":"2024-05-28T22:29:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"1fa0c826787dabe4cba2d07b3b6dac5cd59b66ba","after":"13b304fb2ebdf510bd91ef8b22b88e6dd4062b17","ref":"refs/heads/main","pushedAt":"2024-05-28T22:29:38.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1044 from lsst-sqre/tickets/DM-44567\n\nDM-44567: Update dependencies, adjust for new tox-docker","shortMessageHtmlLink":"Merge pull request #1044 from lsst-sqre/tickets/DM-44567"}},{"before":null,"after":"1ea003c88329235fa511aa0cf3c22c46725af74f","ref":"refs/heads/tickets/DM-44567","pushedAt":"2024-05-28T22:16:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Update dependencies, adjust for new tox-docker\n\nUpdate Python, pre-commit, and JavaScript dependencies.\n\nThe new version of tox-docker randomly assigns IP addresses and\nports to running containers and requires the application honor\nenvironment variables set by tox-docker with fixed names. Add that\nsupport to the Gafaelfawr Config class.","shortMessageHtmlLink":"Update dependencies, adjust for new tox-docker"}},{"before":"66acccbf9aa3ee2641b7bca23dcad1ef346a4bf0","after":null,"ref":"refs/heads/tickets/DM-44541","pushedAt":"2024-05-24T20:12:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"94d88b5768ab01995ccd25b7f031942477771594","after":"1fa0c826787dabe4cba2d07b3b6dac5cd59b66ba","ref":"refs/heads/main","pushedAt":"2024-05-24T20:12:28.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1043 from lsst-sqre/tickets/DM-44541\n\nDM-44541: Prepare 11.1.1 release","shortMessageHtmlLink":"Merge pull request #1043 from lsst-sqre/tickets/DM-44541"}},{"before":"ed35fc874384e263f9db0bf7307e737bdb7774ad","after":"66acccbf9aa3ee2641b7bca23dcad1ef346a4bf0","ref":"refs/heads/tickets/DM-44541","pushedAt":"2024-05-24T20:01:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Prepare 11.1.1 release\n\nUpdate Python and JavaScript dependencies and change make\nupdate-deps to also update JavaScript dependencies.","shortMessageHtmlLink":"Prepare 11.1.1 release"}},{"before":null,"after":"ed35fc874384e263f9db0bf7307e737bdb7774ad","ref":"refs/heads/tickets/DM-44541","pushedAt":"2024-05-24T19:59:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Prepare 11.1.1 release","shortMessageHtmlLink":"Prepare 11.1.1 release"}},{"before":"0c985428faaf52f5e8c7450ae93b987c9b9f4251","after":null,"ref":"refs/heads/tickets/DM-44541","pushedAt":"2024-05-24T19:52:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"143c76eedb915c4dd25ef13d7e6fab176ad75947","after":"94d88b5768ab01995ccd25b7f031942477771594","ref":"refs/heads/main","pushedAt":"2024-05-24T19:52:32.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1042 from lsst-sqre/tickets/DM-44541\n\nDM-44541: Remove tokens from Redis if SQL write fails","shortMessageHtmlLink":"Merge pull request #1042 from lsst-sqre/tickets/DM-44541"}},{"before":null,"after":"0c985428faaf52f5e8c7450ae93b987c9b9f4251","ref":"refs/heads/tickets/DM-44541","pushedAt":"2024-05-24T19:45:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Remove tokens from Redis if SQL write fails\n\nAll token creation paths already created the token in Redis first\nand then added an entry to SQL, but if the SQL write failed for\nwhatever reason, the Gafaelfawr call would fail but the token would\nbe left behind in Redis. Instead, run the SQL code in a try/except\nblock and try to remove the newly-created Redis key if the SQL write\nfailed. This will hopefully reduce the number of orphaned tokens\ncreated during database failures.","shortMessageHtmlLink":"Remove tokens from Redis if SQL write fails"}},{"before":"c8944c3b63161fe59a8e23fa5fed6a0c7fa0ac9f","after":null,"ref":"refs/heads/tickets/DM-44541","pushedAt":"2024-05-24T19:27:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"97ae89592abd0c1daef9df3491f5967a885258d7","after":"143c76eedb915c4dd25ef13d7e6fab176ad75947","ref":"refs/heads/main","pushedAt":"2024-05-24T19:27:06.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1041 from lsst-sqre/tickets/DM-44541\n\nDM-44541: Respect enrollmentUrl for CILogon","shortMessageHtmlLink":"Merge pull request #1041 from lsst-sqre/tickets/DM-44541"}},{"before":null,"after":"c8944c3b63161fe59a8e23fa5fed6a0c7fa0ac9f","ref":"refs/heads/tickets/DM-44541","pushedAt":"2024-05-24T19:08:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Respect enrollmentUrl for CILogon\n\nThe configuration refactoring in Gafaelfawr 11.0.0 accidentally\ndiscarded the enrollmentUrl setting for CILogon rather than copying\nit into the generated OpenID Connect provider configuration. Fix\nthis and add a test.","shortMessageHtmlLink":"Respect enrollmentUrl for CILogon"}},{"before":"5873db17f5198b912509e3bd52dee9691ef9817b","after":null,"ref":"refs/heads/tickets/DM-44540","pushedAt":"2024-05-24T19:05:52.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"b1694aa38e0238cb01cbb0fe9a9c76867e4f878b","after":"97ae89592abd0c1daef9df3491f5967a885258d7","ref":"refs/heads/main","pushedAt":"2024-05-24T19:05:52.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1040 from lsst-sqre/tickets/DM-44540\n\nDM-44540: Fix HTTP error code for duplicate token names","shortMessageHtmlLink":"Merge pull request #1040 from lsst-sqre/tickets/DM-44540"}},{"before":null,"after":"5873db17f5198b912509e3bd52dee9691ef9817b","ref":"refs/heads/tickets/DM-44540","pushedAt":"2024-05-24T18:53:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Fix HTTP error code for duplicate token names\n\nReturn the more-correct 409 Conflict HTTP error code when a user\nattempts to duplicate a token name instead of the generic 422 input\nvalidation error.","shortMessageHtmlLink":"Fix HTTP error code for duplicate token names"}},{"before":"9ee3ec0cc5c954ebbb766f861ae1b29256b2552d","after":null,"ref":"refs/heads/tickets/DM-44540","pushedAt":"2024-05-24T18:53:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"6c5fcd4e5373d9d33c22245e541e3d1a72b94520","after":"b1694aa38e0238cb01cbb0fe9a9c76867e4f878b","ref":"refs/heads/main","pushedAt":"2024-05-24T18:53:00.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1039 from lsst-sqre/tickets/DM-44540\n\nDM-44540: Fix handling of duplicate admins","shortMessageHtmlLink":"Merge pull request #1039 from lsst-sqre/tickets/DM-44540"}},{"before":null,"after":"9ee3ec0cc5c954ebbb766f861ae1b29256b2552d","ref":"refs/heads/tickets/DM-44540","pushedAt":"2024-05-24T18:41:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Fix handling of duplicate admins\n\nWhen someone uses the API to mark as admin a username that is already\nan admin, catch the error and return a 409 error code instead of\nraising an uncaught exception.","shortMessageHtmlLink":"Fix handling of duplicate admins"}},{"before":"0d5bf11e11f952a6f6b1e441096ea1eac5747abd","after":null,"ref":"refs/heads/tickets/DM-44490","pushedAt":"2024-05-23T23:51:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"237d355730468eef33c05609f6cf2601feeaf3e7","after":"6c5fcd4e5373d9d33c22245e541e3d1a72b94520","ref":"refs/heads/main","pushedAt":"2024-05-23T23:51:40.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1038 from lsst-sqre/tickets/DM-44490\n\nDM-44490: Prepare release 11.1.0","shortMessageHtmlLink":"Merge pull request #1038 from lsst-sqre/tickets/DM-44490"}},{"before":null,"after":"0d5bf11e11f952a6f6b1e441096ea1eac5747abd","ref":"refs/heads/tickets/DM-44490","pushedAt":"2024-05-23T23:42:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Prepare release 11.1.0\n\nCollect the scriv change log and update Python, pre-commit, and\nJavaScript dependencies.","shortMessageHtmlLink":"Prepare release 11.1.0"}},{"before":"28bb3b17021dbe88d78845e4a9046c2e252958e6","after":null,"ref":"refs/heads/tickets/DM-44490","pushedAt":"2024-05-23T20:21:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"e255ef83e4e845ba857d087ddce48085c26e1e7d","after":"237d355730468eef33c05609f6cf2601feeaf3e7","ref":"refs/heads/main","pushedAt":"2024-05-23T20:21:38.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1036 from lsst-sqre/tickets/DM-44490\n\nDM-44490: Close async database sessions in the operator","shortMessageHtmlLink":"Merge pull request #1036 from lsst-sqre/tickets/DM-44490"}},{"before":"298a987dee20569b1879367d8856b32f70730474","after":"28bb3b17021dbe88d78845e4a9046c2e252958e6","ref":"refs/heads/tickets/DM-44490","pushedAt":"2024-05-23T20:13:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Close async database sessions in the operator\n\nExplicitly close async database sessions in the health check and\ntoken portions of the Kubernetes operator. (The ingress handler\ndoesn't use the database.) Even with an async_scoped_session, the\ndatabase session has to be explicitly removed or it will leak and\neventually force the operator to crash and restart.","shortMessageHtmlLink":"Close async database sessions in the operator"}},{"before":"c914b44a17bb7632f0f180510d90f26aee4fa9c2","after":null,"ref":"refs/heads/tickets/DM-44490a","pushedAt":"2024-05-22T23:08:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}},{"before":"c7665a85bfdd5f31937cca29c1f5c85258030152","after":"e255ef83e4e845ba857d087ddce48085c26e1e7d","ref":"refs/heads/main","pushedAt":"2024-05-22T23:08:48.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Merge pull request #1037 from lsst-sqre/tickets/DM-44490a\n\nDM-44490: Use ParamSpec for Kubernetes exception wrapper","shortMessageHtmlLink":"Merge pull request #1037 from lsst-sqre/tickets/DM-44490a"}},{"before":null,"after":"c914b44a17bb7632f0f180510d90f26aee4fa9c2","ref":"refs/heads/tickets/DM-44490a","pushedAt":"2024-05-22T23:01:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Use ParamSpec for Kubernetes exception wrapper\n\nWhen wrapping Kubernetes storage class methods to convert exceptions,\nuse the new ParamSpec support to avoid destroying type information.","shortMessageHtmlLink":"Use ParamSpec for Kubernetes exception wrapper"}},{"before":null,"after":"298a987dee20569b1879367d8856b32f70730474","ref":"refs/heads/tickets/DM-44490","pushedAt":"2024-05-22T22:30:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"},"commit":{"message":"Close async database sessions in the operator\n\nExplicitly close async database sessions in the health check and\ntoken portions of the Kubernetes operator. (The ingress handler\ndoesn't use the database.) Even with an async_scoped_session, the\ndatabase session has to be explicitly removed or it will leak and\neventually force the operator to crash and restart.","shortMessageHtmlLink":"Close async database sessions in the operator"}},{"before":"591b5df0ea0e411355fc1f70cf02c1d489f716a8","after":null,"ref":"refs/heads/tickets/DM-44468","pushedAt":"2024-05-21T23:41:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rra","name":"Russ Allbery","path":"/rra","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/302330?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVlaTswA","startCursor":null,"endCursor":null}},"title":"Activity ยท lsst-sqre/gafaelfawr"}