{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":62256097,"defaultBranch":"develop","name":"Ocelot","ownerLogin":"ThreeMammals","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-06-29T20:35:24.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/25903473?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715681146.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"d959e88e2841c971d278e22cc6aa8747424e0bf6","ref":"refs/heads/raman-m/954","pushedAt":"2024-05-14T10:05:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Inject services into `ConsulServiceBuilder`","shortMessageHtmlLink":"Inject services into ConsulServiceBuilder"}},{"before":"0320a8076d949e6f6090ce7f4e7ef87da5149757","after":null,"ref":"refs/heads/feature/issue-#737-pluggable-route-variables","pushedAt":"2024-05-14T08:48:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"}},{"before":"aef3e6b9f53ad8c8aa8c9ade92a572f60d0672a1","after":"6e9a975fae3b26229c3f0b3c1a475a7b05e95fee","ref":"refs/heads/develop","pushedAt":"2024-05-13T19:03:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ggnaegi","name":"Guillaume Gnaegi","path":"/ggnaegi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58469901?s=80&v=4"},"commit":{"message":"#2054 #2059 Manage `EnableContentHashing` setting by global `CacheOptions` (#2058)\n\n* EnableContentHashing not being considered from appsettings\r\n\r\n* Adding CacheOptionsCreator, Injected IRegionCreator as Singleton. Should still add some acceptance tests that are definitely missing!\r\n\r\n* Adding caching global configuration since we messed up, ignoring an important breaking change with EnableContentHashing set to false by default\r\n\r\n* Adding some further acceptance tests, validating EnableContentHashing, validating global config too.\r\n\r\n* removing some debug content\r\n\r\n* TtlSeconds must be set\r\n\r\n* updating documentation\r\n\r\n* Update docs/features/caching.rst\r\n\r\nCo-authored-by: Raman Maksimchuk \r\n\r\n* Update docs/features/caching.rst\r\n\r\nCo-authored-by: Raman Maksimchuk \r\n\r\n* Removing RegionCreator, moving service collection extension method to dependencyInjection\\Features etc.\r\n\r\n* adding unit tests for FileCacheOptions\r\n\r\n* some more null tests...\r\n\r\n* slight refactoring, updating ICacheOptionsCreator signature\r\n\r\n* some more design refactoring\r\n\r\n* Update src/Ocelot/Configuration/Creator/CacheOptionsCreator.cs\r\n\r\nCo-authored-by: Raman Maksimchuk \r\n\r\n* Code review by @raman-m\r\n\r\n* Rename `FileCacheOptions` -> `CacheOptions`\r\n\r\n* Subtly transition to `CacheOptions`, ensuring compatibility with `FileCacheOptions` to avoid a breaking change\r\n\r\n* Not obsolete\r\n\r\n---------\r\n\r\nCo-authored-by: Guillaume Gnaegi <58469901+ggnaegi@users.noreply.github.com>\r\nCo-authored-by: Raman Maksimchuk ","shortMessageHtmlLink":"#2054 #2059 Manage EnableContentHashing setting by global `CacheOpt…"}},{"before":"0b247afdf0c9cba7fd37f603102d151dc7e74487","after":"aef3e6b9f53ad8c8aa8c9ade92a572f60d0672a1","ref":"refs/heads/develop","pushedAt":"2024-05-07T11:09:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"#1590 Use correct interval for request counting (#1592)\n\n* Use correct interval for request counting\r\n\r\n* Minor fixes, return correct counter value when ban period elapsed\r\n\r\n* Revert \"Use correct interval for request counting\"\r\n\r\nThis reverts commit 7d232c7042f789d5ea32834f8c33d1adfb92ec24.\r\n\r\n* Revert \"Artificial commit, initiate CI\"\r\n\r\nThis reverts commit e723dfac839f78961eb4ce0068c36eb0ab52e30c.\r\n\r\n* CA1822 Member 'XYZ' does not access instance data and can be marked as static\r\n\r\n* Quick code review by @raman-m\r\n\r\n* Rate Limiting feature name should match folder name\r\n\r\n* namespace `Ocelot.RateLimiting`\r\n\r\n* Extract `IRateLimitCore` interface\r\n\r\n* Remove useless `ClientRateLimitProcessor` class\r\n\r\n* Rename to `IRateLimitStorage` and dev docs\r\n\r\n* Wrap services as a feature\r\n\r\n* Review `IRateLimitCore` interface and dev docs\r\n\r\n* The middleware class prefix should match the feature name\r\n\r\n* Add some basic `RateLimitCoreTests`\r\n\r\n* Rename to `IRateLimiting`\r\n\r\n* Refactor rate limiting core\r\n\r\n* Remove redundant `SaveCounter` from the interface\r\n\r\n* Thread safe storage operations\r\n\r\n* Coalesce in return statement\r\n\r\n* Convert to file-scoped namespace\r\n\r\n* Use expression body\r\n\r\n* Unit tests for #1590 user scenario\r\n\r\n* Move test class to separate feature folder\r\n\r\n* Inherit from `Steps`\r\n\r\n* Refactoring: Follow the DRY principle\r\n\r\n* Acceptance test for #1590 user scenario\r\n\r\n* Update feature docs\r\n\r\n---------\r\n\r\nCo-authored-by: raman-m ","shortMessageHtmlLink":"#1590 Use correct interval for request counting (#1592)"}},{"before":"991d7badbe329b5c4c8d60024b1c7bfb547fb90f","after":null,"ref":"refs/heads/feat/route-metadata","pushedAt":"2024-05-03T11:38:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ggnaegi","name":"Guillaume Gnaegi","path":"/ggnaegi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58469901?s=80&v=4"}},{"before":"991d7badbe329b5c4c8d60024b1c7bfb547fb90f","after":null,"ref":"refs/heads/pr/1843","pushedAt":"2024-05-03T11:38:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ggnaegi","name":"Guillaume Gnaegi","path":"/ggnaegi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58469901?s=80&v=4"}},{"before":null,"after":"991d7badbe329b5c4c8d60024b1c7bfb547fb90f","ref":"refs/heads/feat/route-metadata","pushedAt":"2024-05-03T11:37:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ggnaegi","name":"Guillaume Gnaegi","path":"/ggnaegi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58469901?s=80&v=4"},"commit":{"message":"Update metadata.rst","shortMessageHtmlLink":"Update metadata.rst"}},{"before":null,"after":"991d7badbe329b5c4c8d60024b1c7bfb547fb90f","ref":"refs/heads/pr/1843","pushedAt":"2024-05-03T11:34:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ggnaegi","name":"Guillaume Gnaegi","path":"/ggnaegi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58469901?s=80&v=4"},"commit":{"message":"Update metadata.rst","shortMessageHtmlLink":"Update metadata.rst"}},{"before":"bc0fe7cacf501bfb93eed65aee135b3d76773752","after":null,"ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-26T15:39:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"}},{"before":"233f87a43f5e2fbb1857f17bb6181fbd05de03bc","after":"0b247afdf0c9cba7fd37f603102d151dc7e74487","ref":"refs/heads/develop","pushedAt":"2024-04-26T15:38:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"#1967 Customize K8s services creation in `Kube` service discovery provider (#2052)\n\n* Initial refactoring\r\n\r\n* Interfaces namespace\r\n\r\n* `IKubeServiceBuilder` interface vs `KubeServiceBuilder` class\r\n\r\n* `IKubeServiceCreator` interface vs `KubeServiceCreator` class\r\n\r\n* Customize K8s services creation\r\n\r\n* Add logger\r\n\r\n* namespace Ocelot.AcceptanceTests.ServiceDiscovery\r\n\r\n* Add `KubernetesServiceDiscoveryTests`\r\n\r\n* Unit tests\r\n\r\n* AAA pattern\r\n\r\n* Acceptance tests\r\n\r\n* Update kubernetes.rst\r\n\r\n* Check docs","shortMessageHtmlLink":"#1967 Customize K8s services creation in Kube service discovery pro…"}},{"before":"43d298509c6d5fb4b7ea2ff963dd32126b5e901a","after":"bc0fe7cacf501bfb93eed65aee135b3d76773752","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-25T12:17:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Check docs","shortMessageHtmlLink":"Check docs"}},{"before":"c1e2ff5411725889b7c695c281cef282a731e5c9","after":"43d298509c6d5fb4b7ea2ff963dd32126b5e901a","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-25T11:56:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Update kubernetes.rst","shortMessageHtmlLink":"Update kubernetes.rst"}},{"before":"ab9fb65e1f8ca93274c3244577164880cb3fe769","after":"233f87a43f5e2fbb1857f17bb6181fbd05de03bc","ref":"refs/heads/develop","pushedAt":"2024-04-25T11:37:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"#2039 Buffer request body and copy the body to downstreams during multiplexing (#2050)\n\n* feat: buffer the request body during multiplexing multiple routes\r\n\r\n* style: rename clone request body method to be more explicit\r\n\r\n* Code review by @raman-m\r\n\r\n* feat: refactor clone request method, add acceptance test for form-based requests\r\n\r\n* fix: add content-length log, refactor tests from @raman-m commit\r\n\r\n* Update requestaggregation.rst\r\n\r\n* style: reverse return condition\r\n\r\n* Register `Stream` objects for disposing by downstream `HttpResponse`\r\n\r\n---------\r\n\r\nCo-authored-by: Paul Roy \r\nCo-authored-by: Raman Maksimchuk ","shortMessageHtmlLink":"#2039 Buffer request body and copy the body to downstreams during mul…"}},{"before":"525570b534c95539a13c38e481944fe24638c7de","after":"c1e2ff5411725889b7c695c281cef282a731e5c9","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-24T19:43:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Update kubernetes.rst","shortMessageHtmlLink":"Update kubernetes.rst"}},{"before":"0ccf2a83be67a1ec192874b94463ade1557756ea","after":"525570b534c95539a13c38e481944fe24638c7de","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-24T17:52:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Acceptance tests","shortMessageHtmlLink":"Acceptance tests"}},{"before":"588e71cfb9613cbc8599a23a084e7ca05420e4eb","after":"0ccf2a83be67a1ec192874b94463ade1557756ea","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-24T10:26:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"AAA pattern","shortMessageHtmlLink":"AAA pattern"}},{"before":"e51e42666d52cffcfb8a0cfc11f1b7fbd7f5ecff","after":"588e71cfb9613cbc8599a23a084e7ca05420e4eb","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-23T19:03:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Unit tests","shortMessageHtmlLink":"Unit tests"}},{"before":"3d6140de54c7eb589b84ba484c8ead65d5a278e8","after":"e51e42666d52cffcfb8a0cfc11f1b7fbd7f5ecff","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-22T15:55:25.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Add `KubernetesServiceDiscoveryTests`","shortMessageHtmlLink":"Add KubernetesServiceDiscoveryTests"}},{"before":"5ec40934dabee8c93ead83d171d78daf4fb7eb86","after":"3d6140de54c7eb589b84ba484c8ead65d5a278e8","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-21T11:58:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Customize K8s services creation","shortMessageHtmlLink":"Customize K8s services creation"}},{"before":"5b0485a28ba850cb0e09409273fdd83cfb3a34e1","after":"5ec40934dabee8c93ead83d171d78daf4fb7eb86","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-20T17:06:52.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"`IKubeServiceCreator` interface vs `KubeServiceCreator` class","shortMessageHtmlLink":"IKubeServiceCreator interface vs KubeServiceCreator class"}},{"before":null,"after":"5b0485a28ba850cb0e09409273fdd83cfb3a34e1","ref":"refs/heads/raman-m/1967","pushedAt":"2024-04-20T13:35:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Initial refactoring","shortMessageHtmlLink":"Initial refactoring"}},{"before":"47a1379ac667ad3bb3cf52c8d785df71cbcc26a2","after":"140f9b5ca07689943a46858f3394065094987634","ref":"refs/heads/release/24.0","pushedAt":"2024-04-19T12:21:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ggnaegi","name":"Guillaume Gnaegi","path":"/ggnaegi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58469901?s=80&v=4"},"commit":{"message":"#1672 Custom Default Version Policy (#1673)\n\n* feature written, tests passed\r\n\r\n* actualy passes almost all the test.\r\n\r\n* resolve conflict, hopefully.\r\n\r\n* please.\r\n\r\n* let it cook.\r\n\r\n* uses constants instead of string for version policies.\r\n\r\n* conflict res\r\n\r\n* swapped downstream method and version.\r\n\r\n* #1731 Read the Docs configuration file v2 (#1733)\r\n\r\n* fixing the documentation, using Release/20.0 as base branch\r\n\r\n* using latest conf.py, created with sphinx-quickstart, fixing the warnings during documentation generation\r\n\r\n* Update .readthedocs.yaml\r\n\r\n* switching to threemammals.org for copyright\r\n\r\n* adding requirements file, updating readthedocs.yaml, adding formats pdf / epub and config for requirements file\r\n\r\n* fixing code block in websockets.rst\r\n\r\n* ok, now it should be fine...\r\n\r\n* Update kubernetes.rst: Review and fix markup code\r\n\r\n* Update websockets.rst: Review and fix markup\r\n\r\n* Update conf.py: Update release, author and copyright\r\n\r\n---------\r\n\r\nCo-authored-by: Raman Maksimchuk \r\n\r\n* * When using the QoS option \"ExceptionsAllowedBeforeBreaking\" the circuit breaker never opens the circuit.\r\n\r\n* merge issue, PortFinder\r\n\r\n* some code improvements, using httpresponsemessage status codes as a base for circuit breaker\r\n\r\n* Adding more unit tests, and trying to mitigate the test issues with the method \"GivenThereIsAPossiblyBrokenServiceRunningOn\"\r\n\r\n* fixing some test issues\r\n\r\n* setting timeout value to 5000 to avoid side effects\r\n\r\n* again timing issues\r\n\r\n* timing issues again\r\n\r\n* ok, first one ok\r\n\r\n* Revert \"ok, first one ok\"\r\n\r\nThis reverts commit 2e4a673c28894a39f7e057907badb448247ff9d7.\r\n\r\n* inline method\r\n\r\n* putting back logging for http request exception\r\n\r\n* removing logger configuration, back to default\r\n\r\n* adding a bit more tests to check the policy wrap\r\n\r\n* Removing TimeoutStrategy from parameters, it's set by default to pessimistic, at least one policy will be returned, so using First() in circuit breaker and removing the branch Policy == null from delegating handler.\r\n\r\n* Fix StyleCop warnings\r\n\r\n* Format parameters\r\n\r\n* Sort usings\r\n\r\n* since we might have two policies wrapped, timeout and circuit breaker, we can't use the name CircuitBreaker for polly qos provider, it's not right. Using PollyPolicyWrapper and AsnycPollyPolicy instead.\r\n\r\n* modifying circuit breaker delegating handler name, usin Polly policies instead\r\n\r\n* renaming CircuitBreakerFactory to PolicyWrapperFactory in tests\r\n\r\n* DRY for FileConfiguration, using FileConfigurationFactory\r\n\r\n* Add copy constructor\r\n\r\n* Refactor setup\r\n\r\n* Use expression body for method\r\n\r\n* Fix acceptance test\r\n\r\n* IDE1006 Naming rule violation: These words must begin with upper case characters\r\n\r\n* CA1816 Change ReturnsErrorTests.Dispose() to call GC.SuppressFinalize(object)\r\n\r\n* Sort usings\r\n\r\n* Use expression body for method\r\n\r\n* Return back named arguments\r\n\r\n---------\r\n\r\nCo-authored-by: raman-m \r\n\r\n* feature written, tests passed\r\n\r\n* actualy passes almost all the test.\r\n\r\n* resolve conflict, hopefully.\r\n\r\n* missed this one.\r\n\r\n* please.\r\n\r\n* come on...\r\n\r\n* let it build.\r\n\r\n* let it cook.\r\n\r\n* copied from main branch.\r\n\r\n* conflict res\r\n\r\n* resolving conflicts.\r\n\r\n* another attempt.\r\n\r\n* lf\r\n\r\n* re-incorporate downstream version policy.\r\n\r\n* renamed the version policies and added acceptance tests.\r\n\r\n* trust the dotnet dev cert.\r\n\r\n* accepts cert from dotnet.\r\n\r\n* Fix compiling errors\r\n\r\n* Refactor tests\r\n\r\n* a bit of code cleanup, removing some usings\r\n\r\n* a bit more cleanup in fileroute\r\n\r\n* try and error with the tests\r\n\r\n* \"Yahoo!...\", said @ibnuda :)\r\n\r\n* FileRoute: let it go...\r\nBinary copy! :LoL:\r\n\r\n* FileRoute: let it cook...\r\nRe-add sweet props\r\n\r\n* `dotnet dev-certs` for the `build` job\r\n\r\n* Recover `kubernetes.rst`\r\n\r\n* docs/make.bat original version\r\n\r\n* OcelotBuilderExtensions\r\n\r\n* original src/Ocelot.Provider.Polly/v7/PollyPolicyWrapper.cs\r\n\r\n* `IVersionPolicyCreator` XML docs\r\n\r\n* Code review by @raman-m (part 1)\r\n\r\n* RequestMapper : care about diff\r\n\r\n* Code review by @raman-m (part 2)\r\n\r\n* Fix Should_return_OK_status_and_multiline_indented_json_response_with_json_options_for_custom_builder\r\n\r\n* Update configuration.rst\r\n\r\nAdd DownstreamVersionPolicy section\r\n\r\n* Update docs\r\n\r\n* Rename `DownstreamVersionPolicy` to `DownstreamHttpVersionPolicy`\r\n\r\n* update docs after prop renaming\r\n\r\n* Sort props\r\n\r\n---------\r\n\r\nCo-authored-by: Guillaume Gnaegi <58469901+ggnaegi@users.noreply.github.com>\r\nCo-authored-by: Raman Maksimchuk ","shortMessageHtmlLink":"#1672 Custom Default Version Policy (#1673)"}},{"before":"59b63eab9c2cd2ab33c5752bbc3bd00a079cd74c","after":"47a1379ac667ad3bb3cf52c8d785df71cbcc26a2","ref":"refs/heads/release/24.0","pushedAt":"2024-04-18T16:30:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"#360 Routing based on request header (#1312)\n\n* routing based on headers (all specified headers must match)\r\n\r\n* routing based on headers for aggregated routes\r\n\r\n* unit tests and small modifications\r\n\r\n* find placeholders in header templates\r\n\r\n* match upstream headers to header templates\r\n\r\n* find placeholders name and values, fix regex for finding placeholders values\r\n\r\n* fix unit tests\r\n\r\n* change header placeholder pattern\r\n\r\n* unit tests\r\n\r\n* unit tests\r\n\r\n* unit tests\r\n\r\n* unit tests\r\n\r\n* extend validation with checking upstreamheadertemplates, acceptance tests for cases from the issue\r\n\r\n* update docs and minor changes\r\n\r\n* SA1649 File name should match first type name\r\n\r\n* Fix compilation errors by code review after resolving conflicts\r\n\r\n* Fix warnings\r\n\r\n* File-scoped namespaces\r\n\r\n* File-scoped namespace\r\n\r\n* Target-typed 'new' expressions (C# 9).\r\nhttps://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-new\r\n\r\n* IDE1006 Naming rule violation: These words must begin with upper case characters: should_*\r\n\r\n* Target-typed 'new' expressions (C# 9).\r\nhttps://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-new\r\n\r\n* Fix build errors\r\n\r\n* DownstreamRouteBuilder\r\n\r\n* AggregatesCreator\r\n\r\n* IUpstreamHeaderTemplatePatternCreator, RoutesCreator\r\n\r\n* UpstreamHeaderTemplatePatternCreator\r\n\r\n* FileAggregateRoute\r\n\r\n* FileAggregateRoute\r\n\r\n* FileRoute\r\n\r\n* Route, IRoute\r\n\r\n* FileConfigurationFluentValidator\r\n\r\n* OcelotBuilder\r\n\r\n* DownstreamRouteCreator\r\n\r\n* DownstreamRouteFinder\r\n\r\n* HeaderMatcher\r\n\r\n* DownstreamRouteFinderMiddleware\r\n\r\n* UpstreamHeaderTemplate\r\n\r\n* Routing folder\r\n\r\n* RoutingBasedOnHeadersTests\r\n\r\n* Refactor acceptance tests\r\n\r\n* AAA pattern in unit tests\r\n\r\n* CS8936: Feature 'collection expressions' is not available in C# 10.0.\r\nPlease use language version 12.0 or greater.\r\n\r\n* Code review by @RaynaldM\r\n\r\n* Convert facts to one `Theory`\r\n\r\n* AAA pattern\r\n\r\n* Add traits\r\n\r\n* Update routing.rst\r\n\r\nCheck grammar and style\r\n\r\n* Update docs\r\n\r\n---------\r\n\r\nCo-authored-by: raman-m ","shortMessageHtmlLink":"#360 Routing based on request header (#1312)"}},{"before":"b30999d40817cc7fed6bd7e4db8d65b2b4752a1b","after":null,"ref":"refs/heads/2031-hotfix","pushedAt":"2024-04-17T10:00:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"}},{"before":"4d21fe3e35dd0dffed89268961844dfc15ce3ba8","after":null,"ref":"refs/heads/raman-m/2042","pushedAt":"2024-04-17T09:49:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"}},{"before":"59b63eab9c2cd2ab33c5752bbc3bd00a079cd74c","after":"ab9fb65e1f8ca93274c3244577164880cb3fe769","ref":"refs/heads/develop","pushedAt":"2024-04-17T09:49:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Notes about Merging Configuration Files feature in `configuration.rst` (#2048)\n\n* Update configuration.rst\r\n\r\n* Static CSS overrides\r\n\r\n* Notes are now smaller","shortMessageHtmlLink":"Notes about Merging Configuration Files feature in configuration.rst ("}},{"before":null,"after":"4d21fe3e35dd0dffed89268961844dfc15ce3ba8","ref":"refs/heads/raman-m/2042","pushedAt":"2024-04-14T14:36:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"Notes are now smaller","shortMessageHtmlLink":"Notes are now smaller"}},{"before":"7c26c073dc02ec7e430d43428ad6906da484cd50","after":"59b63eab9c2cd2ab33c5752bbc3bd00a079cd74c","ref":"refs/heads/release/24.0","pushedAt":"2024-04-12T16:20:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"#2034 More rapid CircleCI builds (Part 1) (#2045)\n\n* Override `DefaultRequestTimeoutSeconds` by new property\r\n\r\n* Build using .NET 8 SDK only\r\n\r\n* Build all 3 SDKs if target is Release\r\n\r\n* Run \"dotnet tool restore\" to make the \"dotnet-cake\" command available\r\n\r\n* Update GitVersion.Tool package\r\n\r\n* GitVersion.Tool 5.12.0\r\n\r\n* Newtonsoft.Json\r\n\r\n* Review packages\r\n\r\n* Prepare folder structure for samples\r\n\r\n* samples Administration\r\n\r\n* Move Docker files\r\n\r\n* samples solution folder\r\n\r\n* Move ServiceFabric folders\r\n\r\n* Rename ServiceFabric folders\r\n\r\n* Re-add OcelotApplication of ServiceFabric sample\r\n\r\n* New Samples view in Visual Studio\r\n\r\n* Add Ocelot.Samples.sln\r\n\r\n* Add Ocelot.Release.sln\r\n\r\n* Remove Samples projects from main solution\r\n\r\n* log settings of Compile task\r\n\r\n* Remove legacy build settings file\r\n\r\n* queue/block_workflow\r\n\r\n* resource_class\r\n\r\n* Update .editorconfig\r\n\r\n* CS8936: Feature 'primary constructors' is not available in C# 10, 11.\r\nFeature 'primary constructors' is available in C# 12.0 or greater. But we use `net6.0` and `net7.0`\r\n\r\n* CS8936 Feature 'collection expressions' is not available in C# 10, 11.\r\nCS8936: Feature 'primary constructors' is not available in C# 10, 11.\r\n\r\n* CS0618: 'member' is obsolete: 'text'.\r\nhttps://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0618\r\nSwitch off the warning CS0618 for testing projects.\r\n\r\n* Fix warnings.\r\n\r\nxUnit1013 Public method 'GivenThereIsAnIdentityServerOn' on test class 'AuthenticationTests' should be marked as a Theory. Reduce the visibility of the method, or add a Theory attribute to the method.\r\n\r\nCS0618 'FileAuthenticationOptions.AuthenticationProviderKey' is obsolete: 'Use the AuthenticationProviderKeys property!'.\r\n\r\n* Don't restore and don't build in RunUnitTests target\r\n\r\n* --verbosity:detailed\r\n\r\n* Disable BDDfy console report\r\n\r\n* enable\r\n\r\n* Inherit from `UnitTest`","shortMessageHtmlLink":"#2034 More rapid CircleCI builds (Part 1) (#2045)"}},{"before":"a01fe6b606436f1b98ef386bfb95b3a4f9aff922","after":null,"ref":"refs/heads/raman-m/2034","pushedAt":"2024-04-12T15:33:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"}},{"before":"7c26c073dc02ec7e430d43428ad6906da484cd50","after":"59b63eab9c2cd2ab33c5752bbc3bd00a079cd74c","ref":"refs/heads/develop","pushedAt":"2024-04-12T15:30:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"raman-m","name":"Raman Maksimchuk","path":"/raman-m","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10501504?s=80&v=4"},"commit":{"message":"#2034 More rapid CircleCI builds (Part 1) (#2045)\n\n* Override `DefaultRequestTimeoutSeconds` by new property\r\n\r\n* Build using .NET 8 SDK only\r\n\r\n* Build all 3 SDKs if target is Release\r\n\r\n* Run \"dotnet tool restore\" to make the \"dotnet-cake\" command available\r\n\r\n* Update GitVersion.Tool package\r\n\r\n* GitVersion.Tool 5.12.0\r\n\r\n* Newtonsoft.Json\r\n\r\n* Review packages\r\n\r\n* Prepare folder structure for samples\r\n\r\n* samples Administration\r\n\r\n* Move Docker files\r\n\r\n* samples solution folder\r\n\r\n* Move ServiceFabric folders\r\n\r\n* Rename ServiceFabric folders\r\n\r\n* Re-add OcelotApplication of ServiceFabric sample\r\n\r\n* New Samples view in Visual Studio\r\n\r\n* Add Ocelot.Samples.sln\r\n\r\n* Add Ocelot.Release.sln\r\n\r\n* Remove Samples projects from main solution\r\n\r\n* log settings of Compile task\r\n\r\n* Remove legacy build settings file\r\n\r\n* queue/block_workflow\r\n\r\n* resource_class\r\n\r\n* Update .editorconfig\r\n\r\n* CS8936: Feature 'primary constructors' is not available in C# 10, 11.\r\nFeature 'primary constructors' is available in C# 12.0 or greater. But we use `net6.0` and `net7.0`\r\n\r\n* CS8936 Feature 'collection expressions' is not available in C# 10, 11.\r\nCS8936: Feature 'primary constructors' is not available in C# 10, 11.\r\n\r\n* CS0618: 'member' is obsolete: 'text'.\r\nhttps://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0618\r\nSwitch off the warning CS0618 for testing projects.\r\n\r\n* Fix warnings.\r\n\r\nxUnit1013 Public method 'GivenThereIsAnIdentityServerOn' on test class 'AuthenticationTests' should be marked as a Theory. Reduce the visibility of the method, or add a Theory attribute to the method.\r\n\r\nCS0618 'FileAuthenticationOptions.AuthenticationProviderKey' is obsolete: 'Use the AuthenticationProviderKeys property!'.\r\n\r\n* Don't restore and don't build in RunUnitTests target\r\n\r\n* --verbosity:detailed\r\n\r\n* Disable BDDfy console report\r\n\r\n* enable\r\n\r\n* Inherit from `UnitTest`","shortMessageHtmlLink":"#2034 More rapid CircleCI builds (Part 1) (#2045)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAESVDwHgA","startCursor":null,"endCursor":null}},"title":"Activity · ThreeMammals/Ocelot"}