{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":537409787,"defaultBranch":"master","name":"pitchfork","ownerLogin":"Shopify","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-09-16T10:27:47.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8085?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716543702.0","currentOid":""},"activityList":{"items":[{"before":"74c59e638bd1c52f03fbcf58b8ba2ca9a6ba21e4","after":"1d1975bec99fde09329ac6be273b64c81cbc51d1","ref":"refs/heads/service-worker","pushedAt":"2024-05-24T09:50:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Implement service workers\n\nRef: https://github.com/Shopify/pitchfork/issues/110\n\nIt's not uncommon for applications to want to have some background\nthreads doing regular work for various purposes (e.g. emitting metrics,\nprewarming node local caches, etc).\n\nCurrently the best way to do it, is to spawn some background threads\nin the `after_mold_fork`, but this isn't great as the mold may fork\nat any moment to spawn a new worker, and forking while background\nthreads may be doing work is risky.\n\nInstead we can provide a dedicated service worker process to run these\nthreads.","shortMessageHtmlLink":"Implement service workers"}},{"before":"56c589a5bf37d20ec530eb1eb371701bbee6d620","after":"74c59e638bd1c52f03fbcf58b8ba2ca9a6ba21e4","ref":"refs/heads/service-worker","pushedAt":"2024-05-24T09:46:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Implement service workers\n\nRef: https://github.com/Shopify/pitchfork/issues/110\n\nIt's not uncommon for applications to want to have some background\nthreads doing regular work for various purposes (e.g. emitting metrics,\nprewarming node local caches, etc).\n\nCurrently the best way to do it, is to spawn some background threads\nin the `after_mold_fork`, but this isn't great as the mold may fork\nat any moment to spawn a new worker, and forking while background\nthreads may be doing work is risky.\n\nInstead we can provide a dedicated service worker process to run these\nthreads.","shortMessageHtmlLink":"Implement service workers"}},{"before":null,"after":"56c589a5bf37d20ec530eb1eb371701bbee6d620","ref":"refs/heads/service-worker","pushedAt":"2024-05-24T09:41:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Implement service workers\n\nRef: https://github.com/Shopify/pitchfork/issues/110\n\nIt's not uncommon for applications to want to have some background\nthreads doing regular work for various purposes (e.g. emitting metrics,\nprewarming node local caches, etc).\n\nCurrently the best way to do it, is to spawn some background threads\nin the `after_mold_fork`, but this isn't great as the mold may fork\nat any moment to spawn a new worker, and forking while background\nthreads may be doing work is risky.\n\nInstead we can provide a dedicated service worker process to run these\nthreads.","shortMessageHtmlLink":"Implement service workers"}},{"before":"4011dcef3800fb9fbef23f9b1d88fb68a9619670","after":"3de195e8e7d66f4f5de00abfbbf4caa661012dc5","ref":"refs/heads/master","pushedAt":"2024-05-24T09:36:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Update dev-ruby","shortMessageHtmlLink":"Update dev-ruby"}},{"before":"d852c93b4522540a99f51f32c2a32fc6a0c232ea","after":"4011dcef3800fb9fbef23f9b1d88fb68a9619670","ref":"refs/heads/master","pushedAt":"2024-05-24T07:05:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Update dev-ruby","shortMessageHtmlLink":"Update dev-ruby"}},{"before":"72442479738a903ec81246b7c0ce476cd94ac86d","after":"d852c93b4522540a99f51f32c2a32fc6a0c232ea","ref":"refs/heads/master","pushedAt":"2024-05-24T07:00:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Update dev-ruby","shortMessageHtmlLink":"Update dev-ruby"}},{"before":"8011260b6c11f5bda42d6884d040189172355978","after":"72442479738a903ec81246b7c0ce476cd94ac86d","ref":"refs/heads/master","pushedAt":"2024-05-20T09:41:29.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #120 from Earlopain/basic-rubocop\n\nRemove redundant `.freeze` calls","shortMessageHtmlLink":"Merge pull request #120 from Earlopain/basic-rubocop"}},{"before":"f693b463ebe7b803560bc3e55fff93b6de2bb7b3","after":"8011260b6c11f5bda42d6884d040189172355978","ref":"refs/heads/master","pushedAt":"2024-05-09T11:39:28.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #118 from Earlopain/cli-stuff\n\nFix `--help` and `--version` reporting unicorn values","shortMessageHtmlLink":"Merge pull request #118 from Earlopain/cli-stuff"}},{"before":"c9a8a94da15763b91bc4de4b4d598158ad81462f","after":"f693b463ebe7b803560bc3e55fff93b6de2bb7b3","ref":"refs/heads/master","pushedAt":"2024-05-09T11:33:47.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #114 from Earlopain/stale-meminfo\n\nRemove stale mem_info function","shortMessageHtmlLink":"Merge pull request #114 from Earlopain/stale-meminfo"}},{"before":"508f12a9632ce6a48652bb5b40c53d2b7b6d6ada","after":"c9a8a94da15763b91bc4de4b4d598158ad81462f","ref":"refs/heads/master","pushedAt":"2024-05-09T08:16:52.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #116 from Earlopain/dead-code\n\nRemove dead code","shortMessageHtmlLink":"Merge pull request #116 from Earlopain/dead-code"}},{"before":"37a0f9dfddc194da490d46c992ab2c6bdce90c25","after":"508f12a9632ce6a48652bb5b40c53d2b7b6d6ada","ref":"refs/heads/master","pushedAt":"2024-05-09T08:16:36.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #115 from Earlopain/increment-before-callback\n\nFix off-by-one for `requests_count` during `after_request_complete`","shortMessageHtmlLink":"Merge pull request #115 from Earlopain/increment-before-callback"}},{"before":"14305794312e918fa23070057baa9dffed16f695","after":"37a0f9dfddc194da490d46c992ab2c6bdce90c25","ref":"refs/heads/master","pushedAt":"2024-05-07T11:57:53.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #113 from Earlopain/ci-rubyopt\n\nAdd a job for frozen-string-literal","shortMessageHtmlLink":"Merge pull request #113 from Earlopain/ci-rubyopt"}},{"before":"87a7f1816f10730eed009f3321e7214964c18dd0","after":"14305794312e918fa23070057baa9dffed16f695","ref":"refs/heads/master","pushedAt":"2024-05-07T10:34:25.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #112 from Earlopain/promote-process-warmup\n\nPromote `Process.warmup` for `after_mold_fork` with supported Rubies","shortMessageHtmlLink":"Merge pull request #112 from Earlopain/promote-process-warmup"}},{"before":"b55f7d04b7958f76109a8862fd5fa72f3662da95","after":"87a7f1816f10730eed009f3321e7214964c18dd0","ref":"refs/heads/master","pushedAt":"2024-05-07T09:55:08.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #111 from Earlopain/remove-start-ctx\n\nRemove `START_CTX`","shortMessageHtmlLink":"Merge pull request #111 from Earlopain/remove-start-ctx"}},{"before":"2a4718699a35a780ef3a17d85cc2312b683c63cb","after":"b55f7d04b7958f76109a8862fd5fa72f3662da95","ref":"refs/heads/master","pushedAt":"2024-05-06T13:12:45.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #109 from Earlopain/unicorn-migration\n\nAdd a basic unicorn migration guide","shortMessageHtmlLink":"Merge pull request #109 from Earlopain/unicorn-migration"}},{"before":"b8918104303ddd3d8543177439ca8951fa3498d1","after":null,"ref":"refs/heads/centralize_ruby_version","pushedAt":"2024-04-11T06:39:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"}},{"before":"34367010ec7409e88e8360d60d021702714448d5","after":"2a4718699a35a780ef3a17d85cc2312b683c63cb","ref":"refs/heads/master","pushedAt":"2024-04-11T06:39:08.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #107 from Shopify/centralize_ruby_version\n\nCentralize Ruby Version to `.ruby-version`","shortMessageHtmlLink":"Merge pull request #107 from Shopify/centralize_ruby_version"}},{"before":null,"after":"b8918104303ddd3d8543177439ca8951fa3498d1","ref":"refs/heads/centralize_ruby_version","pushedAt":"2024-04-10T22:35:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"alexcrocha","name":"Alex Rocha","path":"/alexcrocha","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9896751?s=80&v=4"},"commit":{"message":"Set .ruby-version to 3.3.0","shortMessageHtmlLink":"Set .ruby-version to 3.3.0"}},{"before":"e3116a6695b056ee65c12e01cdaa749fed74baa3","after":"34367010ec7409e88e8360d60d021702714448d5","ref":"refs/heads/master","pushedAt":"2024-04-09T11:15:48.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #106 from Shopify/request-id\n\nInclude X-Request-Id header is worker proctitle","shortMessageHtmlLink":"Merge pull request #106 from Shopify/request-id"}},{"before":null,"after":"3dac0a43117aa03c854b9bc30e138b60e6166929","ref":"refs/heads/request-id","pushedAt":"2024-04-09T11:02:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Include X-Request-Id header is worker proctitle\n\nUseful to map a process with application logs.","shortMessageHtmlLink":"Include X-Request-Id header is worker proctitle"}},{"before":"623efcd7ddd12fe4a749ceea3b02808dfe742598","after":"e3116a6695b056ee65c12e01cdaa749fed74baa3","ref":"refs/heads/master","pushedAt":"2024-04-08T14:48:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Release 0.13.0","shortMessageHtmlLink":"Release 0.13.0"}},{"before":"f1764239b2c30049e35daa0f900d2f5273af9e5a","after":"623efcd7ddd12fe4a749ceea3b02808dfe742598","ref":"refs/heads/master","pushedAt":"2024-04-04T15:43:29.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #105 from Shopify/timeout-extend-deadline\n\nExtend child deadline after sending a hard timeout","shortMessageHtmlLink":"Merge pull request #105 from Shopify/timeout-extend-deadline"}},{"before":null,"after":"4f6178e10016cea2ba6f815df6e7b6413d07f10e","ref":"refs/heads/timeout-extend-deadline","pushedAt":"2024-04-04T15:36:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Extend child deadline after sending a hard timeout\n\nEnsure we won't hammer the process with similar signals.\n\nNormally it doesn't happen as we sleep for 1 second, but monitor\nloop may be woken-up for other reasons which can lead to thousands\nof KILL signals being sent to to the same child.\n\nOne every 1 second should be plenty.","shortMessageHtmlLink":"Extend child deadline after sending a hard timeout"}},{"before":"a313378a05749b99e4f5c8b0d968b877948d9b32","after":"f1764239b2c30049e35daa0f900d2f5273af9e5a","ref":"refs/heads/master","pushedAt":"2024-04-04T06:53:40.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #104 from ydah/typos\n\nFix some typos","shortMessageHtmlLink":"Merge pull request #104 from ydah/typos"}},{"before":"69bde31b9f59f6c0682d840fe4dc9dff00900b8c","after":null,"ref":"refs/heads/fstr","pushedAt":"2024-03-21T10:09:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"}},{"before":"5540cf8edceca74b279110f95a4530bb213478bc","after":"a313378a05749b99e4f5c8b0d968b877948d9b32","ref":"refs/heads/master","pushedAt":"2024-03-21T10:09:43.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Merge pull request #102 from Shopify/fstr\n\nEnsure compatibility with `--enable-frozen-string-literal`","shortMessageHtmlLink":"Merge pull request #102 from Shopify/fstr"}},{"before":"3cee401975d1d9023b27207df00bb8bd62eb3f72","after":"69bde31b9f59f6c0682d840fe4dc9dff00900b8c","ref":"refs/heads/fstr","pushedAt":"2024-03-21T10:05:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Ensure compatibility with `--enable-frozen-string-literal`","shortMessageHtmlLink":"Ensure compatibility with --enable-frozen-string-literal"}},{"before":"c15d8d44f41f290e3a3cbfea9562771850f17196","after":"5540cf8edceca74b279110f95a4530bb213478bc","ref":"refs/heads/master","pushedAt":"2024-03-21T09:56:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Fix compilation with Ruby 2.7 and older on macOS","shortMessageHtmlLink":"Fix compilation with Ruby 2.7 and older on macOS"}},{"before":"9aade725c3f821540d88654a1c867ef8ab94eb4c","after":"3cee401975d1d9023b27207df00bb8bd62eb3f72","ref":"refs/heads/fstr","pushedAt":"2024-03-21T09:51:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Ensure compatibility with `--enable-frozen-string-literal`","shortMessageHtmlLink":"Ensure compatibility with --enable-frozen-string-literal"}},{"before":"e05b88f6aa23afa150033377a94a2cb7cda2d313","after":"9aade725c3f821540d88654a1c867ef8ab94eb4c","ref":"refs/heads/fstr","pushedAt":"2024-03-21T09:46:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"casperisfine","name":"Jean byroot Boussier","path":"/casperisfine","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19192189?s=80&v=4"},"commit":{"message":"Ensure compatibility with `--enable-frozen-string-literal`","shortMessageHtmlLink":"Ensure compatibility with --enable-frozen-string-literal"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUuJsXQA","startCursor":null,"endCursor":null}},"title":"Activity ยท Shopify/pitchfork"}