{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":48485619,"defaultBranch":"main","name":"dry-system","ownerLogin":"dry-rb","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-12-23T10:51:36.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11280820?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719989988.0","currentOid":""},"activityList":{"items":[{"before":"0ae12415111f1951b4c294b15190ab9f42e94584","after":"97bf5327aa19e0a83d0a04578015a592bd51c9e6","ref":"refs/heads/main","pushedAt":"2024-08-06T11:29:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Allow Provider Sources to choose a custom superclass (#275)\n\nThe motivation for this is to allow consuming frameworks of dry-system\r\nto define their own superclass for providers, in order to add their own\r\nmethods to the class.\r\n\r\nThe is only used for user-defined providers with a block implementation.\r\n\r\nExternal providers in a group do not allow this, because their\r\nsuperclass is defined ahead of time when they are added to the source\r\nregistry. If an external provider source wants to use a different\r\nsuperclass, they can define a concrete class of their own instead.\r\n\r\nThe custom superclass is assumed to be a child of\r\nDry::System::Provider::Source.\r\n\r\nIn addition to `provider_source_class`, ProviderRegistrar contains\r\n`provider_source_options` as an extension point for subclasses to send\r\ncustom intialization params to the source class.","shortMessageHtmlLink":"Allow Provider Sources to choose a custom superclass (#275)"}},{"before":"f3effcf1cac7c96ee78d3866558fa610b953d5e0","after":"0ae12415111f1951b4c294b15190ab9f42e94584","ref":"refs/heads/main","pushedAt":"2024-07-31T12:55:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flash-gordon","name":"Nikita Shilnikov","path":"/flash-gordon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/802486?s=80&v=4"},"commit":{"message":"Update external-provider-sources.html.md","shortMessageHtmlLink":"Update external-provider-sources.html.md"}},{"before":"8d00164036141924162ea0ba5bb2d12e0a84d794","after":"f3effcf1cac7c96ee78d3866558fa610b953d5e0","ref":"refs/heads/main","pushedAt":"2024-07-03T06:59:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Bump dry-system to 1.1.0.beta1","shortMessageHtmlLink":"Bump dry-system to 1.1.0.beta1"}},{"before":"754abd543d7c52bb918504d7a98f3c8803be5f15","after":"8d00164036141924162ea0ba5bb2d12e0a84d794","ref":"refs/heads/main","pushedAt":"2024-07-03T06:56:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[devtools] sync","shortMessageHtmlLink":"[devtools] sync"}},{"before":"017142dc99fe04e88bf3d01f8af84ebbeaa010e7","after":"754abd543d7c52bb918504d7a98f3c8803be5f15","ref":"refs/heads/main","pushedAt":"2024-07-03T06:56:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Update CHANGELOG note","shortMessageHtmlLink":"Update CHANGELOG note"}},{"before":"2e8bd1f6c77555c2187fd72c4a25e4f5192b4355","after":"017142dc99fe04e88bf3d01f8af84ebbeaa010e7","ref":"refs/heads/main","pushedAt":"2024-07-03T06:54:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[devtools] sync","shortMessageHtmlLink":"[devtools] sync"}},{"before":"f8266567ff1695f17f4da9ac423d2207ff005033","after":"2e8bd1f6c77555c2187fd72c4a25e4f5192b4355","ref":"refs/heads/main","pushedAt":"2024-07-03T06:54:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Update CHANGELOG for v1.1.0.beta1","shortMessageHtmlLink":"Update CHANGELOG for v1.1.0.beta1"}},{"before":null,"after":"b80e73cfc84fbce1f989fb0d016c0d84da43c013","ref":"refs/heads/provider-sources-2","pushedAt":"2024-06-27T12:07:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Add configurable provider_source_class\n\nAlso allow provider registrar to pass additional extra options to provider sources when initializing.","shortMessageHtmlLink":"Add configurable provider_source_class"}},{"before":"1623fe15cc494db38e9665388487e9f03b9a4bf0","after":null,"ref":"refs/heads/load-providers-when-accessing","pushedAt":"2024-06-13T11:38:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"}},{"before":"c510ede018b1a3bf3cb354f5e6210434877623b5","after":"f8266567ff1695f17f4da9ac423d2207ff005033","ref":"refs/heads/main","pushedAt":"2024-06-13T11:38:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Load providers when accessing via `ProviderRegistrar#[]` (#273)\n\nMove the logic from `ProviderRegistrar#find_and_load_provider` straght into `#[]` for a more convenient and reliable experience when interacting with providers.\r\n\r\nHaving `#[]` either return a provider or nil without attempting to _load_ the provider was a potential source of confusion. Now it can work as the one and only interface for fetching a provider.\r\n\r\nRemove the `#provider` alias for `#[]` since this was private and unused (and unnecessary).\r\n\r\nRemove `#start_provider_dependency` (which was the only thing in `ProviderRegistrar` dealing with components instead of providers and instead invoke its internal logic (a one-liner, anyway!) directly in `Container#load_component`.","shortMessageHtmlLink":"Load providers when accessing via ProviderRegistrar#[] (#273)"}},{"before":null,"after":"1623fe15cc494db38e9665388487e9f03b9a4bf0","ref":"refs/heads/load-providers-when-accessing","pushedAt":"2024-06-12T12:16:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Load providers when accessing via #[]\n\nMove the logic from `ProviderRegistrar#find_and_load_provider` straght into `#[]` for a more convenient and reliable experience when interacting with providers.\n\nHaving `#[]` either return a provider or nil without attempting to _load_ the provider was a potential source of confusion. Now it can work as the one and only interface for fetching a provider.\n\nRemove the `#provider` alias for `#[]` since this was private and unused (and unnecessary).\n\nRemove `#start_provider_dependency` (which was the only thing in `ProviderRegistrar` dealing with components instead of providers and instead invoke its internal logic (a one-liner, anyway!) directly in `Container#load_component`.","shortMessageHtmlLink":"Load providers when accessing via #[]"}},{"before":"fedcf43c2b90dd90e0ddb60da4d36808b097e305","after":null,"ref":"refs/heads/register-provider-sources-with-provider-options","pushedAt":"2024-05-17T12:30:06.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"}},{"before":"f553c223c721abfdab65f61bda9c7953b4cca6da","after":"c510ede018b1a3bf3cb354f5e6210434877623b5","ref":"refs/heads/main","pushedAt":"2024-05-17T12:30:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Allow provider sources to specify provider options (#271)\n\nWhen registering a provider source, you can now provider a `provider_options:` containing a hash of default options for providers to be registered using that source.\r\n\r\nThe one provider option currently supported is `namespace:`.\r\n\r\nAllowing a provider source to specify e.g. `provider_options: {namespace: true}` is useful if the source will register multiple components at different keys. In such a case, the provider will typically want to have a `namespace: true` provider option.\r\n\r\nSpecifying this option at the time of provider source registration then makes for a simpler and less error-prone experience when the user eventually registers a provider using that source. The user now no longer needs to remember to provide their own explicit `namespace: true`.","shortMessageHtmlLink":"Allow provider sources to specify provider options (#271)"}},{"before":"58fae8c3438dde22f7ee46220e4ac7d0b96fa647","after":"fedcf43c2b90dd90e0ddb60da4d36808b097e305","ref":"refs/heads/register-provider-sources-with-provider-options","pushedAt":"2024-05-17T07:22:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Allow provider sources to specify provider options\n\nThe one provider option currently supported is `namespace:`.\n\nAllowing a provider source to specify e.g. `provider_options: {namespace: true}` is useful if the source will register multiple components at different keys. In such a case, the provider will typically want to have a `namespace: true` provider option.\n\nSpecifying this option at the time of provider source registration then makes for a simpler and less error-prone experience when the user eventually registers a provider using that source. The user now no longer needs to remember to provide their own explicit `namespace: true`.","shortMessageHtmlLink":"Allow provider sources to specify provider options"}},{"before":"ae13fbdd7267d27a6d001a06461fc17e41b7bbd6","after":"58fae8c3438dde22f7ee46220e4ac7d0b96fa647","ref":"refs/heads/register-provider-sources-with-provider-options","pushedAt":"2024-05-17T07:20:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Allow provider sources to specify provider options\n\nThe one provider option currently supported is `namespace:`.\n\nAllowing a provider source to specify e.g. `provider_options: {namespace: true}` is useful if the source will register multiple components at different keys. In such a case, the provider will typically want to have a `namespace: true` provider option.\n\nSpecifying this option at the time of provider source registration then makes for a simpler and less error-prone experience when the user eventually registers a provider using that source. The user now no longer needs to remember to provide their own explicit `namespace: true`.","shortMessageHtmlLink":"Allow provider sources to specify provider options"}},{"before":null,"after":"ae13fbdd7267d27a6d001a06461fc17e41b7bbd6","ref":"refs/heads/register-provider-sources-with-provider-options","pushedAt":"2024-05-17T07:17:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Allow provider sources to specify provider options\n\nThe one provider option currently supported is `namespace:`.\n\nAllowing a provider source to specify e.g. `provider_options: {namespace: true}` is useful if the source will register multiple components at different keys. In such a case, the provider will typically want to have a `namespace: true` provider option.\n\nSpecifying this option at the time of provider source registration then makes for a simpler and less error-prone experience when the user eventually registers a provider using that source. The user now no longer needs to remember to provide their own explicit `namespace: true`.","shortMessageHtmlLink":"Allow provider sources to specify provider options"}},{"before":"a3cb3f23ee728c301ec9a7f5014df1de40994173","after":null,"ref":"refs/heads/allow-custom-provider-targets","pushedAt":"2024-05-12T13:46:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"}},{"before":"7a7b5a38f2e1cbee3ecd6c759b4a9b0a74f8c6d5","after":"f553c223c721abfdab65f61bda9c7953b4cca6da","ref":"refs/heads/main","pushedAt":"2024-05-12T13:46:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Use target_container alias to pass to providers (#270)\n\nIn `ProviderRegistrar`, create a new `target_container` (an alias of its `container` attribute), and use this `target_container` when creating providers.\r\n\r\nThis makes it possible for users of dry-system to provide a subclass of the `ProviderRegistrar` where they can customise the target_container that their providers receive.\r\n\r\nWe need this so that providers in Hanami can receive their respective slice as the `target`, making it possible for code inside the provider to interact naturally with the Hanami slice itself, as opposed to its internal container (which itself knows nothing about the broader Hanami app).\r\n\r\nAs part of this change, make `ProviderRegistrar` and `ProviderRegistrar#target_container` both public API (with everything else about the provider registrar still remaining private).","shortMessageHtmlLink":"Use target_container alias to pass to providers (#270)"}},{"before":"5cfe66186f84209bc205de91ef6f9c7f5b033973","after":"a3cb3f23ee728c301ec9a7f5014df1de40994173","ref":"refs/heads/allow-custom-provider-targets","pushedAt":"2024-05-12T12:34:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Add test","shortMessageHtmlLink":"Add test"}},{"before":"a1b8a8ffa53705915a212707d821970f43f23dcb","after":"5cfe66186f84209bc205de91ef6f9c7f5b033973","ref":"refs/heads/allow-custom-provider-targets","pushedAt":"2024-05-12T11:56:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Mark ProviderRegistrar, target_container as public","shortMessageHtmlLink":"Mark ProviderRegistrar, target_container as public"}},{"before":null,"after":"a1b8a8ffa53705915a212707d821970f43f23dcb","ref":"refs/heads/allow-custom-provider-targets","pushedAt":"2024-05-06T13:00:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"timriley","name":"Tim Riley","path":"/timriley","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134?s=80&v=4"},"commit":{"message":"Use target_container alias to pass to providers\n\nThis makes it possible for users of dry-system to provide a subclass of the ProviderRegistrar where they can customise the target_container that their providers receive.","shortMessageHtmlLink":"Use target_container alias to pass to providers"}},{"before":"5e49fcb93d0daca266946d98eaf3ede0a2edfe6c","after":"7a7b5a38f2e1cbee3ecd6c759b4a9b0a74f8c6d5","ref":"refs/heads/main","pushedAt":"2024-01-05T05:54:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"repobot-file-sync[bot]","name":null,"path":"/apps/repobot-file-sync","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/103795?s=80&v=4"},"commit":{"message":"Update .github/workflows/ci.yml\n\nSource file https://github.com/dry-rb/template-gem/blob/7cfb16f7796c3eddde965c87641ca99ef5240ee9/.github/workflows/ci.yml.erb","shortMessageHtmlLink":"Update .github/workflows/ci.yml"}},{"before":"40cc68dc1b24eca0cded4bdf3b368f92f8124edf","after":"5e49fcb93d0daca266946d98eaf3ede0a2edfe6c","ref":"refs/heads/main","pushedAt":"2023-10-02T23:11:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"repobot-file-sync[bot]","name":null,"path":"/apps/repobot-file-sync","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/103795?s=80&v=4"},"commit":{"message":"Update .rubocop.yml\n\nSource file https://github.com/dry-rb/template-gem/blob/18ee471672906ca09b99dd7fc948c12c90b58926/.rubocop.yml","shortMessageHtmlLink":"Update .rubocop.yml"}},{"before":"15a6acf33a10590fd64a34dde96a451ae583edb7","after":"40cc68dc1b24eca0cded4bdf3b368f92f8124edf","ref":"refs/heads/main","pushedAt":"2023-08-27T15:05:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flash-gordon","name":"Nikita Shilnikov","path":"/flash-gordon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/802486?s=80&v=4"},"commit":{"message":"Touch docs","shortMessageHtmlLink":"Touch docs"}},{"before":"cb1f6e216e0091ad26b5606e31ea3d1dac2c7a42","after":"4e7c18fe4fa68a190b71cc432842caa0eeb97b61","ref":"refs/heads/release-1.0","pushedAt":"2023-08-27T14:17:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flash-gordon","name":"Nikita Shilnikov","path":"/flash-gordon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/802486?s=80&v=4"},"commit":{"message":"Update paths in docs and examples","shortMessageHtmlLink":"Update paths in docs and examples"}},{"before":"fbc0fcf25b392393b20255cf921cc2eb0f6636e1","after":"15a6acf33a10590fd64a34dde96a451ae583edb7","ref":"refs/heads/main","pushedAt":"2023-08-27T14:17:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flash-gordon","name":"Nikita Shilnikov","path":"/flash-gordon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/802486?s=80&v=4"},"commit":{"message":"Update paths in docs and examples","shortMessageHtmlLink":"Update paths in docs and examples"}},{"before":"454b312fcd2126da7fb812dadfe0d8676f89fa3d","after":"cb1f6e216e0091ad26b5606e31ea3d1dac2c7a42","ref":"refs/heads/release-1.0","pushedAt":"2023-08-27T14:08:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flash-gordon","name":"Nikita Shilnikov","path":"/flash-gordon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/802486?s=80&v=4"},"commit":{"message":"Update docsite workflow","shortMessageHtmlLink":"Update docsite workflow"}},{"before":"077aec144f12633272cd690e59424a63dbbedc10","after":"fbc0fcf25b392393b20255cf921cc2eb0f6636e1","ref":"refs/heads/main","pushedAt":"2023-08-27T13:58:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flash-gordon","name":"Nikita Shilnikov","path":"/flash-gordon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/802486?s=80&v=4"},"commit":{"message":"Update regex test for error message\n\nThis fixes build under ruby 3.2 which apparently changed the message template","shortMessageHtmlLink":"Update regex test for error message"}},{"before":"0f7fa6bf99958a496160bbb945d328898bfe6709","after":"077aec144f12633272cd690e59424a63dbbedc10","ref":"refs/heads/main","pushedAt":"2023-08-27T09:33:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"flash-gordon","name":"Nikita Shilnikov","path":"/flash-gordon","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/802486?s=80&v=4"},"commit":{"message":"[rubocop] fix offences","shortMessageHtmlLink":"[rubocop] fix offences"}},{"before":"acb0714d01ab0a358592f55c0848d134eb3b0b2f","after":"0f7fa6bf99958a496160bbb945d328898bfe6709","ref":"refs/heads/main","pushedAt":"2023-08-27T09:30:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"repobot-file-sync[bot]","name":null,"path":"/apps/repobot-file-sync","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/103795?s=80&v=4"},"commit":{"message":"Update .rubocop.yml\n\nSource file https://github.com/dry-rb/template-gem/blob/942aeaa3125c46b24e0612d9bed026aa167ef678/.rubocop.yml","shortMessageHtmlLink":"Update .rubocop.yml"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0wNlQxMToyOTowNy4wMDAwMDBazwAAAASTA98U","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0wNlQxMToyOTowNy4wMDAwMDBazwAAAASTA98U","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wOC0yN1QwOTozMDo1OS4wMDAwMDBazwAAAANzWQM2"}},"title":"Activity ยท dry-rb/dry-system"}