{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":716228772,"defaultBranch":"master","name":"river","ownerLogin":"riverqueue","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-11-08T17:43:41.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/136755925?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718203956.0","currentOid":""},"activityList":{"items":[{"before":"52d6bffb7348551c30e2f510d13e071e76f3ec26","after":null,"ref":"refs/heads/bg-job-delete","pushedAt":"2024-06-12T14:52:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"}},{"before":"cb43f2c984caf5a3e65d2e72855198c372cf920b","after":"559259949dbdfeca69fc3819a4fded121cedcdc9","ref":"refs/heads/master","pushedAt":"2024-06-12T14:52:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"add JobDelete / JobDeleteTx APIs to Client (#390)\n\n* add JobDelete / JobDeleteTx APIs to Client\r\n\r\nThis adds new APIs to permanently delete a job from the job table, so\r\nlong as it is not currently running.\r\n\r\n* fix another flaky insertNotifyLimiter test\r\n\r\nJust as in #391, the insert notify limiter uses the FetchCooldown\r\nsetting for its own debounce interval. This defaults to 100ms, which is\r\nshort enough to occasionally fail in GitHub Actions when testing two\r\ntrigger attempts back to back.\r\n\r\n* Update ErrJobRunning text\r\n\r\nCo-authored-by: Brandur Leach \r\n\r\n---------\r\n\r\nCo-authored-by: Brandur Leach ","shortMessageHtmlLink":"add JobDelete / JobDeleteTx APIs to Client (#390)"}},{"before":"9207bea32ea4f7d845d687e27c1ef45700145b13","after":"52d6bffb7348551c30e2f510d13e071e76f3ec26","ref":"refs/heads/bg-job-delete","pushedAt":"2024-06-12T14:43:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"Update ErrJobRunning text\n\nCo-authored-by: Brandur Leach ","shortMessageHtmlLink":"Update ErrJobRunning text"}},{"before":"350947dc59fd4a86c2a575b257674bcd171277d5","after":"9207bea32ea4f7d845d687e27c1ef45700145b13","ref":"refs/heads/bg-job-delete","pushedAt":"2024-06-12T13:25:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"fix another flaky insertNotifyLimiter test\n\nJust as in #391, the insert notify limiter uses the FetchCooldown\nsetting for its own debounce interval. This defaults to 100ms, which is\nshort enough to occasionally fail in GitHub Actions when testing two\ntrigger attempts back to back.","shortMessageHtmlLink":"fix another flaky insertNotifyLimiter test"}},{"before":"d18f6d7c2c8453ef370a51cf8a2aa6f149b3b654","after":"350947dc59fd4a86c2a575b257674bcd171277d5","ref":"refs/heads/bg-job-delete","pushedAt":"2024-06-12T13:16:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"add JobDelete / JobDeleteTx APIs to Client\n\nThis adds new APIs to permanently delete a job from the job table, so\nlong as it is not currently running.","shortMessageHtmlLink":"add JobDelete / JobDeleteTx APIs to Client"}},{"before":"6242c6b0bf00777b47394ab675e384d510413dc5","after":null,"ref":"refs/heads/bg-fix-flaky-insert-notify-limiter-test","pushedAt":"2024-06-12T04:47:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"}},{"before":"ec4f4d4f20be15e02bb63f417fb2d4387c3b7b3f","after":"cb43f2c984caf5a3e65d2e72855198c372cf920b","ref":"refs/heads/master","pushedAt":"2024-06-12T04:47:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"fix flaky insert notify limiter test (#391)\n\nThe insert notify limiter uses the FetchCooldown setting for its own\r\ndebounce interval. This defaults to 100ms, which is short enough to\r\noccasionally fail in GitHub Actions when testing two trigger attempts\r\nback to back.","shortMessageHtmlLink":"fix flaky insert notify limiter test (#391)"}},{"before":null,"after":"6242c6b0bf00777b47394ab675e384d510413dc5","ref":"refs/heads/bg-fix-flaky-insert-notify-limiter-test","pushedAt":"2024-06-12T04:10:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"fix flaky insert notify limiter test\n\nThe insert notify limiter uses the FetchCooldown setting for its own\ndebounce interval. This defaults to 100ms, which is short enough to\noccasionally fail in GitHub Actions when testing two trigger attempts\nback to back.","shortMessageHtmlLink":"fix flaky insert notify limiter test"}},{"before":"e86010d4e5fccf6a0744288fd0d6e1c3127adbea","after":"d18f6d7c2c8453ef370a51cf8a2aa6f149b3b654","ref":"refs/heads/bg-job-delete","pushedAt":"2024-06-12T04:00:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"add JobDelete / JobDeleteTx APIs to Client\n\nThis adds new APIs to permanently delete a job from the job table, so\nlong as it is not currently running.","shortMessageHtmlLink":"add JobDelete / JobDeleteTx APIs to Client"}},{"before":"4b0a79a7377a74aa880d52cf8e25639d2f85c77a","after":"e86010d4e5fccf6a0744288fd0d6e1c3127adbea","ref":"refs/heads/bg-job-delete","pushedAt":"2024-06-11T22:36:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"add JobDelete / JobDeleteTx APIs to Client\n\nThis adds new APIs to permanently delete a job from the job table, so\nlong as it is not currently running.","shortMessageHtmlLink":"add JobDelete / JobDeleteTx APIs to Client"}},{"before":"2705617fa09467f7c7b424cc732f5ef7cdd9ec8e","after":"4b0a79a7377a74aa880d52cf8e25639d2f85c77a","ref":"refs/heads/bg-job-delete","pushedAt":"2024-06-11T22:31:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"add JobDelete / JobDeleteTx APIs to Client\n\nThis adds new APIs to permanently delete a job from the job table, so\nlong as it is not currently running.","shortMessageHtmlLink":"add JobDelete / JobDeleteTx APIs to Client"}},{"before":null,"after":"2705617fa09467f7c7b424cc732f5ef7cdd9ec8e","ref":"refs/heads/bg-job-delete","pushedAt":"2024-06-11T22:30:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"add JobDelete / JobDeleteTx APIs to Client\n\nThis adds new APIs to permanently delete a job from the job table, so\nlong as it is not currently running.","shortMessageHtmlLink":"add JobDelete / JobDeleteTx APIs to Client"}},{"before":"0e5733853f7dbfef98b575810f9f1381decb11e6","after":"ec4f4d4f20be15e02bb63f417fb2d4387c3b7b3f","ref":"refs/heads/master","pushedAt":"2024-06-10T14:04:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"brandur","name":"Brandur Leach","path":"/brandur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/96890?s=80&v=4"},"commit":{"message":"Change log message to use a message and arguments instead of a formatting pattern (#388)","shortMessageHtmlLink":"Change log message to use a message and arguments instead of a format…"}},{"before":"01eb6e1f723fceae335780c25a921862f3651610","after":null,"ref":"refs/heads/bg-completer-doesnt-need-subscribe-mutex","pushedAt":"2024-06-10T06:53:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brandur","name":"Brandur Leach","path":"/brandur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/96890?s=80&v=4"}},{"before":"e6dc4a0404d4950dca82540960652c2390aea371","after":"0e5733853f7dbfef98b575810f9f1381decb11e6","ref":"refs/heads/master","pushedAt":"2024-06-10T06:53:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"brandur","name":"Brandur Leach","path":"/brandur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/96890?s=80&v=4"},"commit":{"message":"extract Client subscriptions into service (#379)\n\n* extract Client subscriptions into service\r\n\r\nThis change extracts the Client subscriptions logic into a separate\r\n`startstop.Service` which can be started and stopped along with the\r\nother services. The important change that enables this is switching from\r\na _callback_ for job events to a _channel_ for job events. The channel\r\nis passed to the completer during init, and the completer then owns it\r\nas the sole sender. When the completer is stopped, it must close the\r\nchannel to indicate that there are no more job completion events to be\r\nprocessed.\r\n\r\nThis moves us closer to having all the key client services be able to\r\nbe managed as a single pool of services, and they can all have their\r\nshutdown initiated in parallel. Importantly, this paves the way for\r\nadditional services to be added (even by external libraries) without\r\nneeding to deal with more complex startup & shutdown ordering scenarios.\r\n\r\nIn order to make this work with a client that can be started and stopped\r\nrepeatedly, a new `ResetSubscribeChan` method was added to the\r\n`JobCompleter` interface to be called at the beginning of each\r\n`Client.Start()` call.\r\n\r\n* normalize subscription manager service\r\n\r\nRespect a stop, but in the case of one, makes sure to clear the\r\nsubscription channel before leaving, which means that it still correctly\r\nclears all events on a client shutdown. This gives us a way to use the\r\nstress test because all we need to do is close the channel in advance\r\nbefore calling startstoptest.Stress (the service is still a little weird\r\ncompared to other because it requires that channel close, but a little\r\nless so).\r\n\r\nAlso normalizes things a bit by removing the custom Stop implementation,\r\nwhich most services shouldn't need.\r\n\r\nCo-Authored-By: Brandur Leach \r\n\r\n---------\r\n\r\nCo-authored-by: Brandur Leach ","shortMessageHtmlLink":"extract Client subscriptions into service (#379)"}},{"before":"e13c5fae71f123feb30f04128b13a9126550be6e","after":null,"ref":"refs/heads/dependabot/go_modules/go-dependencies-12d1fbd4dc","pushedAt":"2024-06-10T06:52:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brandur","name":"Brandur Leach","path":"/brandur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/96890?s=80&v=4"}},{"before":"75302b2972591c660e41cc15278aa890b6dbe13f","after":"e6dc4a0404d4950dca82540960652c2390aea371","ref":"refs/heads/master","pushedAt":"2024-06-10T06:52:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"brandur","name":"Brandur Leach","path":"/brandur","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/96890?s=80&v=4"},"commit":{"message":"Bump the go-dependencies group with 2 updates (#387)\n\nBumps the go-dependencies group with 2 updates: [golang.org/x/mod](https://github.com/golang/mod) and [golang.org/x/text](https://github.com/golang/text).\r\n\r\n\r\nUpdates `golang.org/x/mod` from 0.17.0 to 0.18.0\r\n- [Commits](https://github.com/golang/mod/compare/v0.17.0...v0.18.0)\r\n\r\nUpdates `golang.org/x/text` from 0.15.0 to 0.16.0\r\n- [Release notes](https://github.com/golang/text/releases)\r\n- [Commits](https://github.com/golang/text/compare/v0.15.0...v0.16.0)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: golang.org/x/mod\r\n dependency-type: direct:production\r\n update-type: version-update:semver-minor\r\n dependency-group: go-dependencies\r\n- dependency-name: golang.org/x/text\r\n dependency-type: direct:production\r\n update-type: version-update:semver-minor\r\n dependency-group: go-dependencies\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump the go-dependencies group with 2 updates (#387)"}},{"before":null,"after":"e13c5fae71f123feb30f04128b13a9126550be6e","ref":"refs/heads/dependabot/go_modules/go-dependencies-12d1fbd4dc","pushedAt":"2024-06-10T05:44:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump the go-dependencies group with 2 updates\n\nBumps the go-dependencies group with 2 updates: [golang.org/x/mod](https://github.com/golang/mod) and [golang.org/x/text](https://github.com/golang/text).\n\n\nUpdates `golang.org/x/mod` from 0.17.0 to 0.18.0\n- [Commits](https://github.com/golang/mod/compare/v0.17.0...v0.18.0)\n\nUpdates `golang.org/x/text` from 0.15.0 to 0.16.0\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.15.0...v0.16.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/mod\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: go-dependencies\n- dependency-name: golang.org/x/text\n dependency-type: direct:production\n update-type: version-update:semver-minor\n dependency-group: go-dependencies\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump the go-dependencies group with 2 updates"}},{"before":null,"after":"a9de726ab29b884ce77f5375060c11d5fe6aec1d","ref":"refs/heads/bg-expose-disable-stagger-start-for-test-usage","pushedAt":"2024-06-10T04:10:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"expose DisableStaggerStart via TestOnlyConfig","shortMessageHtmlLink":"expose DisableStaggerStart via TestOnlyConfig"}},{"before":null,"after":"53d0e1fbbd6b1deb1ba039ff2c37a2db3c609b4f","ref":"refs/heads/bg-external-maintenance-working-branch","pushedAt":"2024-06-10T03:39:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"expose DisableStaggerStart via TestOnlyConfig","shortMessageHtmlLink":"expose DisableStaggerStart via TestOnlyConfig"}},{"before":"65d7995a482c69720d7ce3e2ad9dd8964c2e3ec2","after":"01eb6e1f723fceae335780c25a921862f3651610","ref":"refs/heads/bg-completer-doesnt-need-subscribe-mutex","pushedAt":"2024-06-10T03:21:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"normalize subscription manager service\n\nRespect a stop, but in the case of one, makes sure to clear the\nsubscription channel before leaving, which means that it still correctly\nclears all events on a client shutdown. This gives us a way to use the\nstress test because all we need to do is close the channel in advance\nbefore calling startstoptest.Stress (the service is still a little weird\ncompared to other because it requires that channel close, but a little\nless so).\n\nAlso normalizes things a bit by removing the custom Stop implementation,\nwhich most services shouldn't need.\n\nCo-Authored-By: Brandur Leach ","shortMessageHtmlLink":"normalize subscription manager service"}},{"before":"3f8df29cf05d8049f7de3a5ef67635faebb24dd4","after":null,"ref":"refs/heads/bg-broken-test-stop-and-cancel-after-stop","pushedAt":"2024-06-09T19:29:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"}},{"before":"edb42d2a4bf045a02730a5b77cf4ebb7ac35d5e4","after":"75302b2972591c660e41cc15278aa890b6dbe13f","ref":"refs/heads/master","pushedAt":"2024-06-09T19:29:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"fix StopAndTest after ongoing Stop (#376)\n\n* fix StopAndTest after ongoing Stop\r\n\r\nThis regression was introduced in #272, which I noticed because our demo\r\napp is not currently cancelling active jobs gracefully before exiting.\r\n\r\nThis commit fixes the behavior by always cancelling the work context\r\nupon `StopAndCancel()`, regardless of whether or not another shutdown is\r\nin progress.\r\n\r\n* refactor StopAndCancel tests","shortMessageHtmlLink":"fix StopAndTest after ongoing Stop (#376)"}},{"before":"0f44f2bb045868dc1045ed7c9604679a3c6090f8","after":"3f8df29cf05d8049f7de3a5ef67635faebb24dd4","ref":"refs/heads/bg-broken-test-stop-and-cancel-after-stop","pushedAt":"2024-06-09T19:25:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"refactor StopAndCancel tests","shortMessageHtmlLink":"refactor StopAndCancel tests"}},{"before":"dcc03603044de8eb41d76a245e558ebe4d10f645","after":null,"ref":"refs/heads/bg-client-level-max-attempts-default","pushedAt":"2024-06-05T04:34:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"}},{"before":"8edd49c752643248e274667154d57ba7cbae123f","after":"edb42d2a4bf045a02730a5b77cf4ebb7ac35d5e4","ref":"refs/heads/master","pushedAt":"2024-06-05T04:33:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"customizable MaxAttempts default value (#383)\n\nThis adds a `MaxAttempts` setting to `Config` to enable the default max\r\nattempts to be customized (instead of the global default\r\n`MaxAttemptsDefault` of 25).\r\n\r\nFixes #381.","shortMessageHtmlLink":"customizable MaxAttempts default value (#383)"}},{"before":"882cc5bcb09fa6f0fceeb687a7903786e7bcf7cb","after":"dcc03603044de8eb41d76a245e558ebe4d10f645","ref":"refs/heads/bg-client-level-max-attempts-default","pushedAt":"2024-06-04T18:22:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"customizable MaxAttempts default value\n\nThis adds a `MaxAttempts` setting to `Config` to enable the default max\nattempts to be customized (instead of the global default\n`MaxAttemptsDefault` of 25).\n\nFixes #381.","shortMessageHtmlLink":"customizable MaxAttempts default value"}},{"before":"3e9dd8da6d28449a81102e75a1dd0af506ffa1a4","after":"882cc5bcb09fa6f0fceeb687a7903786e7bcf7cb","ref":"refs/heads/bg-client-level-max-attempts-default","pushedAt":"2024-06-04T18:17:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"customizable MaxAttempts default value\n\nThis adds a `MaxAttempts` setting to `Config` to enable the default max\nattempts to be customized (instead of the global default\n`MaxAttemptsDefault` of 25).\n\nFixes #381.","shortMessageHtmlLink":"customizable MaxAttempts default value"}},{"before":null,"after":"3e9dd8da6d28449a81102e75a1dd0af506ffa1a4","ref":"refs/heads/bg-client-level-max-attempts-default","pushedAt":"2024-06-04T18:17:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"customizable MaxAttempts default value\n\nThis adds a `MaxAttempts` setting to `Config` to enable the default max\nattempts to be customized (instead of the global default\n`MaxAttemptsDefault` of 25).\n\nFixes #381.","shortMessageHtmlLink":"customizable MaxAttempts default value"}},{"before":"caacd325d099aeb12a28ef7e5c22f40019822745","after":"cfbf8428623d94fcc5aa0943fe04ca54ceb1e9e7","ref":"refs/heads/bg-external-maintenance-on-simpler-svc-interface","pushedAt":"2024-06-04T17:29:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bgentry","name":"Blake Gentry","path":"/bgentry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/114033?s=80&v=4"},"commit":{"message":"ability to add custom maintenance services to Client\n\nThis exposes an interface for a `rivertype.MaintenanceService`, along\nwith a way to add custom maintenance services to the `Client` using\na new `Config.MaintenanceServices` field.","shortMessageHtmlLink":"ability to add custom maintenance services to Client"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEY3GuKAA","startCursor":null,"endCursor":null}},"title":"Activity · riverqueue/river"}