{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":11920542,"defaultBranch":"main","name":"Hangfire","ownerLogin":"HangfireIO","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-08-06T09:43:04.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7880472?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718087878.0","currentOid":""},"activityList":{"items":[{"before":"43c54567113702f621f17d4616776e623ca648a2","after":"78ad44309de36e5733bd8f543856a9bb2cefd970","ref":"refs/heads/main","pushedAt":"2024-09-18T06:40:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Add xmldocs for the most important dashboard types","shortMessageHtmlLink":"Add xmldocs for the most important dashboard types"}},{"before":"7eb4b3fd56abe8eeed692265aff39e2d694e86df","after":"43c54567113702f621f17d4616776e623ca648a2","ref":"refs/heads/dev","pushedAt":"2024-09-16T09:07:54.000Z","pushType":"push","commitsCount":242,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Improve loopback address detection (#2436)","shortMessageHtmlLink":"Improve loopback address detection (#2436)"}},{"before":"4e95258da4ebf00b434a7cac9e62f576a7391764","after":"43c54567113702f621f17d4616776e623ca648a2","ref":"refs/heads/main","pushedAt":"2024-08-28T08:06:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Improve loopback address detection (#2436)","shortMessageHtmlLink":"Improve loopback address detection (#2436)"}},{"before":"bd8ae007b498e17e1486844d898457fa7a4c828b","after":"4e95258da4ebf00b434a7cac9e62f576a7391764","ref":"refs/heads/main","pushedAt":"2024-08-22T05:03:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Fix problems with first restore when using the `build` command","shortMessageHtmlLink":"Fix problems with first restore when using the build command"}},{"before":"18e5935dab600d3db5e21256d28f1c87cd37db44","after":"bd8ae007b498e17e1486844d898457fa7a4c828b","ref":"refs/heads/main","pushedAt":"2024-06-25T06:18:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Fix problem with missing localizations in the previous version\n\nBy bumping Hangfire.Build to the latest version, where the problem was fixed.","shortMessageHtmlLink":"Fix problem with missing localizations in the previous version"}},{"before":"eef4acc118e4212dc6b8c4785befd004d0afb435","after":"18e5935dab600d3db5e21256d28f1c87cd37db44","ref":"refs/heads/main","pushedAt":"2024-06-24T10:45:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Use new parameters API in Connection.CreateExpiredJob","shortMessageHtmlLink":"Use new parameters API in Connection.CreateExpiredJob"}},{"before":"98aee5bbe76346299b560790015eed368cc0c007","after":"eef4acc118e4212dc6b8c4785befd004d0afb435","ref":"refs/heads/main","pushedAt":"2024-06-24T09:59:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Update SqlServerJobQueue.cs","shortMessageHtmlLink":"Update SqlServerJobQueue.cs"}},{"before":"b453dbd9237b8bede1e5e611dfb2f315163db83d","after":"98aee5bbe76346299b560790015eed368cc0c007","ref":"refs/heads/main","pushedAt":"2024-06-24T09:48:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Simplify raw DbCommand usage","shortMessageHtmlLink":"Simplify raw DbCommand usage"}},{"before":"76cbcb0ee6622896a1d5b84b831c63c748c49a78","after":"b453dbd9237b8bede1e5e611dfb2f315163db83d","ref":"refs/heads/main","pushedAt":"2024-06-24T09:14:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Refactor parameter creation logic in transaction\n\nMore clean way, which is possible to use in other parts with raw DbCommand.","shortMessageHtmlLink":"Refactor parameter creation logic in transaction"}},{"before":"af5ce870562a1af03f4db645c83b263d1fb9e1f3","after":"76cbcb0ee6622896a1d5b84b831c63c748c49a78","ref":"refs/heads/main","pushedAt":"2024-06-24T04:49:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Make all private and internal classes sealed\n\nThey weren't sealed before only accidentally, sealing gives more control and flexibility when making such classes public. Not a breaking changes, since it's not easy to inherit private and internal classes.","shortMessageHtmlLink":"Make all private and internal classes sealed"}},{"before":"d2fa38471f17140f4e5fe7c1851d352334eba96b","after":"af5ce870562a1af03f4db645c83b263d1fb9e1f3","ref":"refs/heads/main","pushedAt":"2024-06-24T04:47:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Update SqlServerConnection.cs","shortMessageHtmlLink":"Update SqlServerConnection.cs"}},{"before":"d08aeda3b43c39d9021cb13546e97afe0e0364da","after":"d2fa38471f17140f4e5fe7c1851d352334eba96b","ref":"refs/heads/main","pushedAt":"2024-06-22T11:14:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Update Job.cs","shortMessageHtmlLink":"Update Job.cs"}},{"before":"962db196440a370f6d6a225edb1c3b015501b008","after":"d08aeda3b43c39d9021cb13546e97afe0e0364da","ref":"refs/heads/main","pushedAt":"2024-06-21T10:25:18.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Use static callbacks almost everywhere in Hangfire.SqlServer","shortMessageHtmlLink":"Use static callbacks almost everywhere in Hangfire.SqlServer"}},{"before":"cc4dedf46c1e5e2a7203e57b5989ac0940ee377b","after":"962db196440a370f6d6a225edb1c3b015501b008","ref":"refs/heads/main","pushedAt":"2024-06-21T08:13:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Avoid allocating Items dictionary in contexts when not necessary","shortMessageHtmlLink":"Avoid allocating Items dictionary in contexts when not necessary"}},{"before":"0c9e2ac8f216956e89a7380bad83f62130597059","after":"cc4dedf46c1e5e2a7203e57b5989ac0940ee377b","ref":"refs/heads/main","pushedAt":"2024-06-20T15:28:06.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Return specific collection in JobFilterCollection\n\n_filters implements ICollection, which works great for List.AddRange method, significantly reducing allocations by allowing to grow list at once.","shortMessageHtmlLink":"Return specific collection in JobFilterCollection"}},{"before":"a8c8794bf673d1ba14de3255c5da45d7148107fc","after":"0c9e2ac8f216956e89a7380bad83f62130597059","ref":"refs/heads/main","pushedAt":"2024-06-20T14:55:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Don't create list when unnecessary in JobFilterAttributeFilterProvider","shortMessageHtmlLink":"Don't create list when unnecessary in JobFilterAttributeFilterProvider"}},{"before":"a7d211c8d730d5f24473d758110ccc005fd09e9f","after":"a8c8794bf673d1ba14de3255c5da45d7148107fc","ref":"refs/heads/main","pushedAt":"2024-06-20T09:58:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"More efficient JobFilterInfo with struct-based iterators","shortMessageHtmlLink":"More efficient JobFilterInfo with struct-based iterators"}},{"before":"e1f9e1245d292ae837029be780905a559959e73b","after":"a7d211c8d730d5f24473d758110ccc005fd09e9f","ref":"refs/heads/main","pushedAt":"2024-06-20T09:17:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Struct-based iterator for CoreStateMachine\n\nJust trying to remove it from profiler traces.","shortMessageHtmlLink":"Struct-based iterator for CoreStateMachine"}},{"before":"d67c475ae5928f67042fb70c8c6f398c7faa305f","after":"e1f9e1245d292ae837029be780905a559959e73b","ref":"refs/heads/main","pushedAt":"2024-06-20T08:16:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Cache immutable arrays in the Worker class","shortMessageHtmlLink":"Cache immutable arrays in the Worker class"}},{"before":"806ed76ae4e6772c1f7c7710c00afbb0d4f869f9","after":"d67c475ae5928f67042fb70c8c6f398c7faa305f","ref":"refs/heads/main","pushedAt":"2024-06-20T07:23:36.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Cache results of the Reflection API in the Job class","shortMessageHtmlLink":"Cache results of the Reflection API in the Job class"}},{"before":"e6e484a3f979fe06fb0c8ff2cf51c4735223e9f0","after":"806ed76ae4e6772c1f7c7710c00afbb0d4f869f9","ref":"refs/heads/main","pushedAt":"2024-06-20T07:08:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Update ReflectedAttributeCache.cs","shortMessageHtmlLink":"Update ReflectedAttributeCache.cs"}},{"before":"c4b625ab594031b713adb0f56831018cae1245b3","after":"e6e484a3f979fe06fb0c8ff2cf51c4735223e9f0","ref":"refs/heads/main","pushedAt":"2024-06-20T06:54:37.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Less conditional defines for empty arrays","shortMessageHtmlLink":"Less conditional defines for empty arrays"}},{"before":"51647c20e36ab010f7dfc4fa8b1ed666070d7f4f","after":"c4b625ab594031b713adb0f56831018cae1245b3","ref":"refs/heads/main","pushedAt":"2024-06-20T06:38:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Use GetCultureInfo instead of creating an instance in capture culture filter\n\nThis behavior was before netstandard1.3 platform and uses cached instances of CultureInfo, no need to create them.","shortMessageHtmlLink":"Use GetCultureInfo instead of creating an instance in capture culture…"}},{"before":"3ff91d83fdff5f8b6e9f14e360257a6b27bab241","after":"51647c20e36ab010f7dfc4fa8b1ed666070d7f4f","ref":"refs/heads/main","pushedAt":"2024-06-11T05:18:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Bump version to 1.8.14 and add release notes","shortMessageHtmlLink":"Bump version to 1.8.14 and add release notes"}},{"before":"42e608b317b6ebb27802a3b01f0ae37733678758","after":"3ff91d83fdff5f8b6e9f14e360257a6b27bab241","ref":"refs/heads/main","pushedAt":"2024-06-11T05:03:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Limit NewItemInQueueEvents keys to a specific storage","shortMessageHtmlLink":"Limit NewItemInQueueEvents keys to a specific storage"}},{"before":"4d88beb40815961e453361cb1233cab3568b3b20","after":"42e608b317b6ebb27802a3b01f0ae37733678758","ref":"refs/heads/main","pushedAt":"2024-06-11T04:15:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Use per-queue signaling for same-process workers\n\nInstead having global signal that can cause to wake up workers listening other queues.","shortMessageHtmlLink":"Use per-queue signaling for same-process workers"}},{"before":"825c6c83813be3184eb2ee3033276d5f1995d0f7","after":"4d88beb40815961e453361cb1233cab3568b3b20","ref":"refs/heads/main","pushedAt":"2024-06-11T03:11:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Don't use the deprecated GetCancellationEvent method","shortMessageHtmlLink":"Don't use the deprecated GetCancellationEvent method"}},{"before":"4ced6444e176b0435759f75cecbbf7a762a70661","after":"825c6c83813be3184eb2ee3033276d5f1995d0f7","ref":"refs/heads/main","pushedAt":"2024-06-11T02:54:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Update CancellationTokenExtentions.cs","shortMessageHtmlLink":"Update CancellationTokenExtentions.cs"}},{"before":"0238a893061470e0485dfde1d026cfcc0c4fb3e2","after":"4ced6444e176b0435759f75cecbbf7a762a70661","ref":"refs/heads/main","pushedAt":"2024-06-11T02:54:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Prefer using CancellationToken.WaitHandle again\n\nWe should trust CancellationToken.WaitHandle again, since the early days of .NET Core passed. This helps to avoid using timers unnecessarily on a fully synchronous path, and we now also have a protection agains problems with waiting.","shortMessageHtmlLink":"Prefer using CancellationToken.WaitHandle again"}},{"before":"17f8d0e4fbdc8f8ae203131954600317c7de102d","after":"0238a893061470e0485dfde1d026cfcc0c4fb3e2","ref":"refs/heads/main","pushedAt":"2024-06-11T02:29:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"odinserj","name":"Sergey Odinokov","path":"/odinserj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1078718?s=80&v=4"},"commit":{"message":"Add a special case for serializing/deserializing empty arguments list","shortMessageHtmlLink":"Add a special case for serializing/deserializing empty arguments list"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQwNjo0MDozNS4wMDAwMDBazwAAAAS5TfAG","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQwNjo0MDozNS4wMDAwMDBazwAAAAS5TfAG","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0xMVQwMjoyOTozNy4wMDAwMDBazwAAAARhuDoX"}},"title":"Activity · HangfireIO/Hangfire"}