{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":590158156,"defaultBranch":"main","name":"ubicloud","ownerLogin":"ubicloud","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-01-17T19:29:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/121406468?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718147495.0","currentOid":""},"activityList":{"items":[{"before":"de4345508117d01d97f15ee8246652ead58d7c66","after":"8492761a458cc6bab174be918841c45a455a65f8","ref":"refs/heads/dependabot/npm_and_yarn/js-dependencies-459fbbb629","pushedAt":"2024-06-11T23:34:38.000Z","pushType":"force_push","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 js-dependencies group with 2 updates\n\nBumps the js-dependencies group with 2 updates: [jiti](https://github.com/unjs/jiti) and [yaml](https://github.com/eemeli/yaml).\n\n\nUpdates `jiti` from 1.21.3 to 1.21.6\n- [Release notes](https://github.com/unjs/jiti/releases)\n- [Changelog](https://github.com/unjs/jiti/blob/v1.21.6/CHANGELOG.md)\n- [Commits](https://github.com/unjs/jiti/compare/v1.21.3...v1.21.6)\n\nUpdates `yaml` from 2.4.3 to 2.4.5\n- [Release notes](https://github.com/eemeli/yaml/releases)\n- [Commits](https://github.com/eemeli/yaml/compare/v2.4.3...v2.4.5)\n\n---\nupdated-dependencies:\n- dependency-name: jiti\n dependency-type: indirect\n update-type: version-update:semver-patch\n dependency-group: js-dependencies\n- dependency-name: yaml\n dependency-type: indirect\n update-type: version-update:semver-patch\n dependency-group: js-dependencies\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump the js-dependencies group with 2 updates"}},{"before":null,"after":"92538c72b9a10b8e78eb336e2f17c07f2ed66654","ref":"refs/heads/dependabot/bundler/ruby-dependencies-dd17dfdf73","pushedAt":"2024-06-11T23:11:35.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 ruby-dependencies group across 1 directory with 9 updates\n\nBumps the ruby-dependencies group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [octokit](https://github.com/octokit/octokit.rb) | `8.1.0` | `9.1.0` |\n| [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) | `2.20.0` | `2.21.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `2.31.0` | `3.0.1` |\n| [standard](https://github.com/standardrb/standard) | `1.36.0` | `1.37.0` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.2` | `1.3.3` |\n| [rack](https://github.com/rack/rack) | `3.0.11` | `3.1.2` |\n\n\n\nUpdates `octokit` from 8.1.0 to 9.1.0\n- [Release notes](https://github.com/octokit/octokit.rb/releases)\n- [Changelog](https://github.com/octokit/octokit.rb/blob/main/RELEASE.md)\n- [Commits](https://github.com/octokit/octokit.rb/compare/v8.1.0...v9.1.0)\n\nUpdates `rubocop-capybara` from 2.20.0 to 2.21.0\n- [Release notes](https://github.com/rubocop/rubocop-capybara/releases)\n- [Changelog](https://github.com/rubocop/rubocop-capybara/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop-capybara/compare/v2.20.0...v2.21.0)\n\nUpdates `rubocop-rspec` from 2.31.0 to 3.0.1\n- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)\n- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.31.0...v3.0.1)\n\nUpdates `standard` from 1.36.0 to 1.37.0\n- [Release notes](https://github.com/standardrb/standard/releases)\n- [Changelog](https://github.com/standardrb/standard/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/standardrb/standard/compare/v1.36.0...v1.37.0)\n\nUpdates `concurrent-ruby` from 1.3.2 to 1.3.3\n- [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases)\n- [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.2...v1.3.3)\n\nUpdates `parallel` from 1.24.0 to 1.25.1\n- [Commits](https://github.com/grosser/parallel/compare/v1.24.0...v1.25.1)\n\nUpdates `rack` from 3.0.11 to 3.1.2\n- [Release notes](https://github.com/rack/rack/releases)\n- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/rack/rack/commits)\n\nUpdates `rexml` from 3.2.8 to 3.3.0\n- [Release notes](https://github.com/ruby/rexml/releases)\n- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)\n- [Commits](https://github.com/ruby/rexml/compare/v3.2.8...v3.3.0)\n\nUpdates `rubocop` from 1.63.5 to 1.64.1\n- [Release notes](https://github.com/rubocop/rubocop/releases)\n- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop/compare/v1.63.5...v1.64.1)\n\n---\nupdated-dependencies:\n- dependency-name: octokit\n dependency-type: direct:production\n update-type: version-update:semver-major\n dependency-group: ruby-dependencies\n- dependency-name: rubocop-capybara\n dependency-type: direct:development\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: rubocop-rspec\n dependency-type: direct:development\n update-type: version-update:semver-major\n dependency-group: ruby-dependencies\n- dependency-name: standard\n dependency-type: direct:development\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: concurrent-ruby\n dependency-type: indirect\n update-type: version-update:semver-patch\n dependency-group: ruby-dependencies\n- dependency-name: parallel\n dependency-type: indirect\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: rack\n dependency-type: indirect\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: rexml\n dependency-type: indirect\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: rubocop\n dependency-type: indirect\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump the ruby-dependencies group across 1 directory with 9 updates"}},{"before":"f3c7ae6e49fe268b7f4fedfb6bc47d54c41a40e6","after":null,"ref":"refs/heads/dependabot/bundler/ruby-dependencies-e8f19ae47a","pushedAt":"2024-06-11T23:11:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"7d52bdf9b1b181df2bd07cd2838858f9d3272e90","after":"d6b152c70caa802f8a7912b495064f4fe7684b49","ref":"refs/heads/ben/upgrade_ch","pushedAt":"2024-06-11T19:12:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bsatzger","name":"Benjamin Satzger","path":"/bsatzger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/53236451?s=80&v=4"},"commit":{"message":"Add Prog to download Cloud Hypervisor on-demand\n\nIntroduce a `DownloadCloudHypervisor` prog that facilitates\ndownloading new versions of cloud hypervisor from the control\nplane. This functionality depends on the\n`host/bin/download-cloud-hypervisor` script. A new method,\n`download_cloud_hypervisor`, has been added to `VmHost`,\nenabling the download of new firmware versions to hosts via REPL.\n\nUsage examples:\n\nTo download a new version 35.1 to a single host:\n```rb\nvmh.download_cloud_hypervisor(\n version_x64: \"35.1\",\n sha256_ch_bin_x64: \"e842...\",\n sha256_ch_remote_x64: \"337b...\"\n)\n```\n\nTo download a new version to all hosts:\n```rb\nVmHost.all.map { _1.download_cloud_hypervisor(\n version_x64: \"35.1\",\n sha256_ch_bin_x64: \"e842...\",\n sha256_ch_remote_x64: \"337b...\",\n version_arm64: \"38.0\",\n sha256_ch_bin_arm64: \"c1c0...\",\n sha256_ch_remote_arm64: \"008f...\"\n)}\n```","shortMessageHtmlLink":"Add Prog to download Cloud Hypervisor on-demand"}},{"before":null,"after":"d0aafd744c916284fd26706670184011a7b13ed1","ref":"refs/heads/ben/upgrade_ch_cutover","pushedAt":"2024-06-11T15:44:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bsatzger","name":"Benjamin Satzger","path":"/bsatzger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/53236451?s=80&v=4"},"commit":{"message":"Create VMs with new Cloud Hypervisor version","shortMessageHtmlLink":"Create VMs with new Cloud Hypervisor version"}},{"before":"71c904aa388f412a29c629a6a7cfd3ad0a62443a","after":"7d52bdf9b1b181df2bd07cd2838858f9d3272e90","ref":"refs/heads/ben/upgrade_ch","pushedAt":"2024-06-11T15:37:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"bsatzger","name":"Benjamin Satzger","path":"/bsatzger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/53236451?s=80&v=4"},"commit":{"message":"Add Prog to download Cloud Hypervisor on-demand\n\nIntroduce a `DownloadCloudHypervisor` prog that facilitates\ndownloading new versions of cloud hypervisor from the control\nplane. This functionality depends on the\n`host/bin/download-cloud-hypervisor` script. A new method,\n`download_cloud_hypervisor`, has been added to `VmHost`,\nenabling the download of new firmware versions to hosts via REPL.\n\nUsage examples:\n\nTo download a new version 35.1 to a single host:\n```rb\nvmh.download_cloud_hypervisor(\n version_x64: \"35.1\",\n sha256_ch_bin_x64: \"e842...\",\n sha256_ch_remote_x64: \"337b...\"\n)\n```\n\nTo download a new version to all hosts:\n```rb\nVmHost.all.map { _1.download_cloud_hypervisor(\n version_x64: \"35.1\",\n sha256_ch_bin_x64: \"e842...\",\n sha256_ch_remote_x64: \"337b...\",\n version_arm64: \"38.0\",\n sha256_ch_bin_arm64: \"c1c0...\",\n sha256_ch_remote_arm64: \"008f...\"\n)}\n```","shortMessageHtmlLink":"Add Prog to download Cloud Hypervisor on-demand"}},{"before":"a9605487dc4ca3589b2b47211e413a1e218ab2eb","after":null,"ref":"refs/heads/retry-image-download","pushedAt":"2024-06-11T11:47:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"byucesoy","name":"Burak Yücesoy","path":"/byucesoy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2082070?s=80&v=4"}},{"before":"730620e8be0c1edd27d7800d108f12df0bc92a7f","after":"d4ed872e4ef58a0d355f1319981ce4ab38536f6f","ref":"refs/heads/main","pushedAt":"2024-06-11T11:47:45.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"byucesoy","name":"Burak Yücesoy","path":"/byucesoy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2082070?s=80&v=4"},"commit":{"message":"Lock the lock file before opening the temp file while writing to a file\n\nIf two concurrent processes try to write to the same file, the second one would\nbe able to open the temp file and would wait until the first one finishes, but\nthe first one renames the temp file, which leaves the second process in a weird\nstate. We fixed this problem in control plane's safe_write_to_file method, but\nwe didn't apply the fix in the data plane version of it. This commit fixes the\nproblem in the data plane version of the method by locking a lock file before\nopening the temp file.","shortMessageHtmlLink":"Lock the lock file before opening the temp file while writing to a file"}},{"before":"980850aa26c9ed8bdda88c18f60ff5b1c1fcf7ab","after":"a9605487dc4ca3589b2b47211e413a1e218ab2eb","ref":"refs/heads/retry-image-download","pushedAt":"2024-06-11T10:22:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"byucesoy","name":"Burak Yücesoy","path":"/byucesoy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2082070?s=80&v=4"},"commit":{"message":"Lock the lock file before opening the temp file while writing to a file\n\nIf two concurrent processes try to write to the same file, the second one would\nbe able to open the temp file and would wait until the first one finishes, but\nthe first one renames the temp file, which leaves the second process in a weird\nstate. We fixed this problem in control plane's safe_write_to_file method, but\nwe didn't apply the fix in the data plane version of it. This commit fixes the\nproblem in the data plane version of the method by locking a lock file before\nopening the temp file.","shortMessageHtmlLink":"Lock the lock file before opening the temp file while writing to a file"}},{"before":"fbabe49de77d985b88f18ef6f9579fb128fb9f71","after":null,"ref":"refs/heads/velioglu/revert_gr_def","pushedAt":"2024-06-11T10:11:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"}},{"before":"84367448337e274d7cec6561f457a74991926551","after":"730620e8be0c1edd27d7800d108f12df0bc92a7f","ref":"refs/heads/main","pushedAt":"2024-06-11T10:11:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"},"commit":{"message":"Revert \"Run github runner e2e tests by default\"\n\nThis reverts commit 84367448337e274d7cec6561f457a74991926551.","shortMessageHtmlLink":"Revert \"Run github runner e2e tests by default\""}},{"before":"aed3e74f7d70218501e09b4ebb5df09b276e65b5","after":"eb4f229e2a846fa0488cdcd9dfad05ab1ec84fe1","ref":"refs/heads/cache-api","pushedAt":"2024-06-11T09:38:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"enescakir","name":"Enes Çakır","path":"/enescakir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993199?s=80&v=4"},"commit":{"message":"Add listCache endpoint\n\nThe 'GET /caches' endpoint, ('listCache' [^1]), retrieves a list of\ncache entries for a single 'key' parameter. It does not provide\npresigned URLs. This endpoint is used by the client when no cache entry\nmatches the 'getCacheEntry' request, and when debugging is turned on.\n\n[^1]: https://github.com/ubicloud/toolkit/blob/d1df13e178816d69d96bdc5c753b36a66ad03728/packages/cache/src/internal/cacheHttpClient.ts#L146","shortMessageHtmlLink":"Add listCache endpoint"}},{"before":"dec58dbf4027ff52c342a23a683662d911a18e51","after":"a0da2d6990754b9da50307dcb3e511744648faf7","ref":"refs/heads/runtime-api","pushedAt":"2024-06-11T05:48:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"enescakir","name":"Enes Çakır","path":"/enescakir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993199?s=80&v=4"},"commit":{"message":"Introduce runtime API endpoints\n\nUntil now, the controlplane has been passing necessary data to the\ndataplane at the start of operations. However, this approach can't\npre-determine the information needed for future operations. The\ndataplane should be able to request this information from the\ncontrolplane during runtime. I needed this feature for implementing\nGitHub Actions Cache integration. The GitHub runner requires pre-signed\nblob storage URLs for uploading and downloading cache, a decision made\nat runtime. It calculates the required cache keys and versions.\nRather than developing this feature solely for GitHub integration, I\nopted to create a more generic solution. This can be utilized for other\nintegrations as well. The dataplane may need information from the\ncontrolplane or may need to trigger an operation on the controlplane.\n\nWhen a request arrives at the controlplane, we must verify that it\noriginates from our virtual machines and authenticate it. I selected JWT\ntokens for this authentication process, the same method we use for our\ncustomer API. We embed the UBID of the virtual machines into the JWT\ntoken. Thus, if the token signature is valid, we can identify the source\nvirtual machines. One common criticism of JWT tokens is their\nstatelessness; they can't be revoked by default. However, there are\nworkarounds. Firstly, the token is only valid for the lifetime of the\nvirtual machine. Once the runner is destroyed, the token is no longer\nvalid. Additionally, we include a creation date in the token, allowing\nus to set an expiration time. I haven't yet implemented this expiration\nfeature since the runners are typically short-lived. However, it can be\neasily added when we introduce runtime API endpoints for long-lived\nresources.","shortMessageHtmlLink":"Introduce runtime API endpoints"}},{"before":"c56667e23f1baaf61d95fcc3e832b43c0db192cf","after":"dec58dbf4027ff52c342a23a683662d911a18e51","ref":"refs/heads/runtime-api","pushedAt":"2024-06-11T05:46:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"enescakir","name":"Enes Çakır","path":"/enescakir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993199?s=80&v=4"},"commit":{"message":"Introduce runtime API endpoints\n\nUntil now, the controlplane has been passing necessary data to the\ndataplane at the start of operations. However, this approach can't\npre-determine the information needed for future operations. The\ndataplane should be able to request this information from the\ncontrolplane during runtime. I needed this feature for implementing\nGitHub Actions Cache integration. The GitHub runner requires pre-signed\nblob storage URLs for uploading and downloading cache, a decision made\nat runtime. It calculates the required cache keys and versions.\nRather than developing this feature solely for GitHub integration, I\nopted to create a more generic solution. This can be utilized for other\nintegrations as well. The dataplane may need information from the\ncontrolplane or may need to trigger an operation on the controlplane.\n\nWhen a request arrives at the controlplane, we must verify that it\noriginates from our virtual machines and authenticate it. I selected JWT\ntokens for this authentication process, the same method we use for our\ncustomer API. We embed the UBID of the virtual machines into the JWT\ntoken. Thus, if the token signature is valid, we can identify the source\nvirtual machines. One common criticism of JWT tokens is their\nstatelessness; they can't be revoked by default. However, there are\nworkarounds. Firstly, the token is only valid for the lifetime of the\nvirtual machine. Once the runner is destroyed, the token is no longer\nvalid. Additionally, we include a creation date in the token, allowing\nus to set an expiration time. I haven't yet implemented this expiration\nfeature since the runners are typically short-lived. However, it can be\neasily added when we introduce runtime API endpoints for long-lived\nresources.","shortMessageHtmlLink":"Introduce runtime API endpoints"}},{"before":null,"after":"fbabe49de77d985b88f18ef6f9579fb128fb9f71","ref":"refs/heads/velioglu/revert_gr_def","pushedAt":"2024-06-11T00:39:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"},"commit":{"message":"Revert \"Run github runner e2e tests by default\"\n\nThis reverts commit 84367448337e274d7cec6561f457a74991926551.","shortMessageHtmlLink":"Revert \"Run github runner e2e tests by default\""}},{"before":null,"after":"f3c7ae6e49fe268b7f4fedfb6bc47d54c41a40e6","ref":"refs/heads/dependabot/bundler/ruby-dependencies-e8f19ae47a","pushedAt":"2024-06-10T23:52:39.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 ruby-dependencies group with 7 updates\n\nBumps the ruby-dependencies group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [octokit](https://github.com/octokit/octokit.rb) | `8.1.0` | `9.0.0` |\n| [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) | `2.20.0` | `2.21.0` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.2` | `1.3.3` |\n| [parallel](https://github.com/grosser/parallel) | `1.24.0` | `1.25.1` |\n| [rexml](https://github.com/ruby/rexml) | `3.2.8` | `3.2.9` |\n| [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) | `2.25.1` | `2.26.0` |\n| [rubocop-rspec_rails](https://github.com/rubocop/rubocop-rspec_rails) | `2.28.3` | `2.29.0` |\n\n\nUpdates `octokit` from 8.1.0 to 9.0.0\n- [Release notes](https://github.com/octokit/octokit.rb/releases)\n- [Changelog](https://github.com/octokit/octokit.rb/blob/main/RELEASE.md)\n- [Commits](https://github.com/octokit/octokit.rb/compare/v8.1.0...v9.0.0)\n\nUpdates `rubocop-capybara` from 2.20.0 to 2.21.0\n- [Release notes](https://github.com/rubocop/rubocop-capybara/releases)\n- [Changelog](https://github.com/rubocop/rubocop-capybara/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop-capybara/compare/v2.20.0...v2.21.0)\n\nUpdates `concurrent-ruby` from 1.3.2 to 1.3.3\n- [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases)\n- [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.2...v1.3.3)\n\nUpdates `parallel` from 1.24.0 to 1.25.1\n- [Commits](https://github.com/grosser/parallel/compare/v1.24.0...v1.25.1)\n\nUpdates `rexml` from 3.2.8 to 3.2.9\n- [Release notes](https://github.com/ruby/rexml/releases)\n- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)\n- [Commits](https://github.com/ruby/rexml/compare/v3.2.8...v3.2.9)\n\nUpdates `rubocop-factory_bot` from 2.25.1 to 2.26.0\n- [Release notes](https://github.com/rubocop/rubocop-factory_bot/releases)\n- [Changelog](https://github.com/rubocop/rubocop-factory_bot/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop-factory_bot/compare/v2.25.1...v2.26.0)\n\nUpdates `rubocop-rspec_rails` from 2.28.3 to 2.29.0\n- [Release notes](https://github.com/rubocop/rubocop-rspec_rails/releases)\n- [Changelog](https://github.com/rubocop/rubocop-rspec_rails/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop-rspec_rails/compare/v2.28.3...v2.29.0)\n\n---\nupdated-dependencies:\n- dependency-name: octokit\n dependency-type: direct:production\n update-type: version-update:semver-major\n dependency-group: ruby-dependencies\n- dependency-name: rubocop-capybara\n dependency-type: direct:development\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: concurrent-ruby\n dependency-type: indirect\n update-type: version-update:semver-patch\n dependency-group: ruby-dependencies\n- dependency-name: parallel\n dependency-type: indirect\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: rexml\n dependency-type: indirect\n update-type: version-update:semver-patch\n dependency-group: ruby-dependencies\n- dependency-name: rubocop-factory_bot\n dependency-type: indirect\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: rubocop-rspec_rails\n dependency-type: indirect\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump the ruby-dependencies group with 7 updates"}},{"before":null,"after":"de4345508117d01d97f15ee8246652ead58d7c66","ref":"refs/heads/dependabot/npm_and_yarn/js-dependencies-459fbbb629","pushedAt":"2024-06-10T23:39:31.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 js-dependencies group with 2 updates\n\nBumps the js-dependencies group with 2 updates: [jiti](https://github.com/unjs/jiti) and [yaml](https://github.com/eemeli/yaml).\n\n\nUpdates `jiti` from 1.21.3 to 1.21.6\n- [Release notes](https://github.com/unjs/jiti/releases)\n- [Changelog](https://github.com/unjs/jiti/blob/v1.21.6/CHANGELOG.md)\n- [Commits](https://github.com/unjs/jiti/compare/v1.21.3...v1.21.6)\n\nUpdates `yaml` from 2.4.3 to 2.4.5\n- [Release notes](https://github.com/eemeli/yaml/releases)\n- [Commits](https://github.com/eemeli/yaml/compare/v2.4.3...v2.4.5)\n\n---\nupdated-dependencies:\n- dependency-name: jiti\n dependency-type: indirect\n update-type: version-update:semver-patch\n dependency-group: js-dependencies\n- dependency-name: yaml\n dependency-type: indirect\n update-type: version-update:semver-patch\n dependency-group: js-dependencies\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump the js-dependencies group with 2 updates"}},{"before":null,"after":"c321e495ef2a87db0d5c72a7a211e7e09aa695c1","ref":"refs/heads/velioglu/reboot_np","pushedAt":"2024-06-10T23:21:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"},"commit":{"message":"Running vm group test rebooting host sequentially\n\nOne of the vm group tests on e2e tests reboots the host. Depending\non when the reboot happens, it might cause following tests to fail.\nFollowing github runner tests might fail as image download fails.\n\nAlso, it might make the other vm group one testing reboot practically,\nalthough the purpose is not that.","shortMessageHtmlLink":"Running vm group test rebooting host sequentially"}},{"before":null,"after":"960935ba80bdf395b1802179de9886b99df385bf","ref":"refs/heads/velioglu/rid","pushedAt":"2024-06-10T22:28:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"},"commit":{"message":"Print image size","shortMessageHtmlLink":"Print image size"}},{"before":null,"after":"ac85bcbc92f3eaa2bc5b5f32bf55308e994659ae","ref":"refs/heads/velioglu/non-parallel-e2e","pushedAt":"2024-06-10T20:59:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"},"commit":{"message":"Test sequential run","shortMessageHtmlLink":"Test sequential run"}},{"before":"f91af5f7d28d18d6d1311321e300561caedca404","after":"980850aa26c9ed8bdda88c18f60ff5b1c1fcf7ab","ref":"refs/heads/retry-image-download","pushedAt":"2024-06-10T12:08:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"byucesoy","name":"Burak Yücesoy","path":"/byucesoy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2082070?s=80&v=4"},"commit":{"message":"Lock the lock file before opening the temp file while writing to a file\n\nIf two concurrent processes try to write to the same file, the second one would\nbe able to open the temp file and would wait until the first one finishes, but\nthe first one renames the temp file, which leaves the second process in a weird\nstate. We fixed this problem in control plane's safe_write_to_file method, but\nwe didn't apply the fix in the data plane version of it. This commit fixes the\nproblem in the data plane version of the method by locking a lock file before\nopening the temp file.","shortMessageHtmlLink":"Lock the lock file before opening the temp file while writing to a file"}},{"before":"87f58eba7fbe94d9264ff2608810769af653087e","after":null,"ref":"refs/heads/velioglu/gr_test_default","pushedAt":"2024-06-10T11:55:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"}},{"before":"9cff83f4f36c5aba38ad5b066d76aedee88584e2","after":"84367448337e274d7cec6561f457a74991926551","ref":"refs/heads/main","pushedAt":"2024-06-10T11:55:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"},"commit":{"message":"Run github runner e2e tests by default\n\nAs we've tested running github runner e2e tests, running them\nby default as a part of e2e test workflow.","shortMessageHtmlLink":"Run github runner e2e tests by default"}},{"before":"00ff828bdc3ac8171a0bcb98a6d14ca490205e40","after":null,"ref":"refs/heads/fix-utilization","pushedAt":"2024-06-10T11:07:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"enescakir","name":"Enes Çakır","path":"/enescakir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993199?s=80&v=4"}},{"before":"89ef4a9933dfb1ba5ae07251f2a5564df51e3f64","after":"9cff83f4f36c5aba38ad5b066d76aedee88584e2","ref":"refs/heads/main","pushedAt":"2024-06-10T11:07:58.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"enescakir","name":"Enes Çakır","path":"/enescakir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993199?s=80&v=4"},"commit":{"message":"Use all locations to calculate utilization for runner soft capacity\n\nWe check VM host utilization to let customers surpass soft capacity\nlimits. In the past, we only kept runner hosts in the 'github-runners'\nlocation. However, due to a recent allocator change, runners can now be\nprovisioned in any location if 'github-runners' lacks enough capacity.\nBy only using the 'github-runners' location, we underestimate capacity.\nWe need to assess capacity across all locations. I've removed the\nlocation filter.","shortMessageHtmlLink":"Use all locations to calculate utilization for runner soft capacity"}},{"before":"65e58de3831a61301a4447f2321a0fcc76ea6405","after":"f91af5f7d28d18d6d1311321e300561caedca404","ref":"refs/heads/retry-image-download","pushedAt":"2024-06-10T10:51:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"byucesoy","name":"Burak Yücesoy","path":"/byucesoy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2082070?s=80&v=4"},"commit":{"message":"Lock the lock file before opening the temp file while writing to a file\n\nIf two concurrent processes try to write to the same file, the second one would\nbe able to open the temp file and would wait until the first one finishes, but\nthe first one renames the temp file, which leaves the second process in a weird\nstate. We fixed this problem in control plane's safe_write_to_file method, but\nwe didn't apply the fix in the data plane version of it. This commit fixes the\nproblem in the data plane version of the method by locking a lock file before\nopening the temp file.","shortMessageHtmlLink":"Lock the lock file before opening the temp file while writing to a file"}},{"before":"2aced056384c975f65be248a67d14cf098b752ea","after":"87f58eba7fbe94d9264ff2608810769af653087e","ref":"refs/heads/velioglu/gr_test_default","pushedAt":"2024-06-10T08:30:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"velioglu","name":"Burak Velioglu","path":"/velioglu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10241593?s=80&v=4"},"commit":{"message":"Run github runner e2e tests by default\n\nAs we've tested running github runner e2e tests, running them\nby default as a part of e2e test workflow.","shortMessageHtmlLink":"Run github runner e2e tests by default"}},{"before":"acf659dbd02077852fd3bb7c54850847a23e2416","after":null,"ref":"refs/heads/dependabot/bundler/ruby-dependencies-9bff0780c3","pushedAt":"2024-06-10T05:55:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"enescakir","name":"Enes Çakır","path":"/enescakir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993199?s=80&v=4"}},{"before":"4ea8e725561fd35e74032a3f469e7ab7b97df9a6","after":"89ef4a9933dfb1ba5ae07251f2a5564df51e3f64","ref":"refs/heads/main","pushedAt":"2024-06-10T05:55:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"enescakir","name":"Enes Çakır","path":"/enescakir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993199?s=80&v=4"},"commit":{"message":"Bump the ruby-dependencies group across 1 directory with 3 updates\n\nBumps the ruby-dependencies group with 3 updates in the / directory: [rubocop-rspec](https://github.com/rubocop/rubocop-rspec), [builder](https://github.com/rails/builder) and [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby).\n\n\nUpdates `rubocop-rspec` from 2.30.0 to 2.31.0\n- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)\n- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.30.0...v2.31.0)\n\nUpdates `builder` from 3.2.4 to 3.3.0\n- [Changelog](https://github.com/rails/builder/blob/master/CHANGES)\n- [Commits](https://github.com/rails/builder/compare/v3.2.4...v3.3.0)\n\nUpdates `concurrent-ruby` from 1.3.1 to 1.3.2\n- [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases)\n- [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.1...v1.3.2)\n\n---\nupdated-dependencies:\n- dependency-name: rubocop-rspec\n dependency-type: direct:development\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: builder\n dependency-type: indirect\n update-type: version-update:semver-minor\n dependency-group: ruby-dependencies\n- dependency-name: concurrent-ruby\n dependency-type: indirect\n update-type: version-update:semver-patch\n dependency-group: ruby-dependencies\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump the ruby-dependencies group across 1 directory with 3 updates"}},{"before":"e0f57d6a3bba4a323b84db511796d9a736a91367","after":null,"ref":"refs/heads/spec-vm-helper","pushedAt":"2024-06-10T05:53:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"enescakir","name":"Enes Çakır","path":"/enescakir","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993199?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYr3tRgA","startCursor":null,"endCursor":null}},"title":"Activity · ubicloud/ubicloud"}