)]}'
{"id":"depot~11076","triplet_id":"depot~canon~I2858c403d4d6490cdca73ebef03c26290b2b3c8e","project":"depot","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000082":{"account":{"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},"last_update":"2024-03-11 22:42:01.000000000","reason":"Change was submitted"},"1000085":{"account":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"last_update":"2024-03-11 22:42:01.000000000","reason":"Change was submitted"},"1000036":{"account":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"last_update":"2024-03-11 22:25:13.000000000","reason":"removed on reply"},"1000073":{"account":{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},"last_update":"2024-03-11 22:42:01.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I2858c403d4d6490cdca73ebef03c26290b2b3c8e","subject":"feat(tvix/castore/blobsvc): add object storage implementation","status":"MERGED","created":"2024-03-01 20:44:25.000000000","updated":"2024-03-11 22:42:01.000000000","submitted":"2024-03-11 22:42:01.000000000","submitter":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"total_comment_count":31,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"11080","meta_rev_id":"317cea126d9eb3dd87f48064a289323e46b3e480","_number":11076,"virtual_id_number":11076,"owner":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"all":[{"tag":"autogenerated:gerrit:merged","value":1,"date":"2024-03-11 22:42:01.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2024-03-11 22:42:01.000000000","_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0},"Verified":{"approved":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},{"value":0,"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2024-03-11 22:42:01.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Autosubmit":{"all":[{"value":0,"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},{"value":0,"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true},"All-Comments-Resolved":{"approved":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"all":[{"value":0,"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},{"value":0,"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]},"Conformant-Commit-Message":{"approved":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"all":[{"value":0,"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},{"value":0,"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]}},"removable_reviewers":[{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"}],"reviewers":{"REVIEWER":[{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},{"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-03-01 20:44:25.000000000","updated_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},"state":"REVIEWER"},{"updated":"2024-03-01 20:44:25.000000000","updated_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},"state":"REVIEWER"},{"updated":"2024-03-01 20:44:25.000000000","updated_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"state":"REVIEWER"},{"updated":"2024-03-01 20:44:30.000000000","updated_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2024-03-01 22:48:08.000000000","updated_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"74026c8f4ed55d503570824963b99705e7d44310","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-01 20:44:25.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"068e64f74150d82ed14a02a0a89fc5cfb5755501","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-01 20:44:30.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/tvl/depot/builds/31939","accounts_in_message":[],"_revision_number":1},{"id":"67c5527715e4980fc62d9e3b3c5c672f9e94414b","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-01 22:48:08.000000000","message":"Patch Set 1: Verified-1\n\nBuild of patchset 1 failed: https://buildkite.com/tvl/depot/builds/31939","accounts_in_message":[],"_revision_number":1},{"id":"f99a70279ca4088ac272f061c93a32486ac9df67","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-02 07:37:03.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":2},{"id":"f64ec6904c0820725aefef9213bdec7891a6d889","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-02 07:37:06.000000000","message":"Patch Set 2:\n\nStarted build for patchset #2 on: https://buildkite.com/tvl/depot/builds/31942","accounts_in_message":[],"_revision_number":2},{"id":"bc6fdc70506f6bc5aab68beee82fb148f0b8ebbf","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-02 07:42:59.000000000","message":"Patch Set 2: Verified-1\n\nBuild of patchset 2 failed: https://buildkite.com/tvl/depot/builds/31942","accounts_in_message":[],"_revision_number":2},{"id":"123ea0cb2c94455a82029515d94f199e6c066024","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-02 16:48:10.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":3},{"id":"130af38bcf403f98e11ce557ec18937336b415fd","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-02 16:48:13.000000000","message":"Patch Set 3:\n\nStarted build for patchset #3 on: https://buildkite.com/tvl/depot/builds/31953","accounts_in_message":[],"_revision_number":3},{"id":"2c6b534b39b11c48098941248ab316ab5cd48d61","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-02 16:56:52.000000000","message":"Patch Set 3: Verified-1\n\nBuild of patchset 3 failed: https://buildkite.com/tvl/depot/builds/31953","accounts_in_message":[],"_revision_number":3},{"id":"079b9015afd7d21bdeacda5d93b4faa9ff6fd04b","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-02 16:58:27.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":4},{"id":"a642f526857669159006eb31bddd1fb2938da25a","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-02 16:58:32.000000000","message":"Patch Set 4:\n\nStarted build for patchset #4 on: https://buildkite.com/tvl/depot/builds/31956","accounts_in_message":[],"_revision_number":4},{"id":"2aa67b606cca5ffadb78cbd18ac4e91df67d9601","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-02 17:04:53.000000000","message":"Patch Set 4: Verified-1\n\nBuild of patchset 4 failed: https://buildkite.com/tvl/depot/builds/31956","accounts_in_message":[],"_revision_number":4},{"id":"dbe2bac7e3bbfbf3109bd630dba24b17907635d2","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-02 17:10:10.000000000","message":"Patch Set 4:\n\nBuild of patchset 4 failed: https://buildkite.com/tvl/depot/builds/31959","accounts_in_message":[],"_revision_number":4},{"id":"3c58f3cad2ec2dfbf2d9e037d99ffed0bda22c4b","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-02 20:49:24.000000000","message":"Patch Set 4:\n\n(5 comments)","accounts_in_message":[],"_revision_number":4},{"id":"7defa42d2874a971a549bef1d3bc47826192d7b4","author":{"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},"date":"2024-03-03 01:43:16.000000000","message":"Patch Set 4:\n\n(4 comments)","accounts_in_message":[],"_revision_number":4},{"id":"6f58286075508bc01d145fe526fbe2d145d91887","author":{"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},"date":"2024-03-03 10:51:45.000000000","message":"Patch Set 4:\n\n(2 comments)","accounts_in_message":[],"_revision_number":4},{"id":"3d2477f9380d13a9b74ce1b285649bb54cae486f","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-03 13:15:21.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":5},{"id":"40a16aa666fce1aa40de5502ef533f82febcf4d7","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-03 13:15:25.000000000","message":"Patch Set 5:\n\nStarted build for patchset #5 on: https://buildkite.com/tvl/depot/builds/31979","accounts_in_message":[],"_revision_number":5},{"id":"29e33ebe8012f4af347bbe3f2bf82fa174d87c7b","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-03 13:15:36.000000000","message":"Patch Set 5:\n\n(9 comments)","accounts_in_message":[],"_revision_number":5},{"id":"44b15bb15f8f82f298eefb3fd0c45cd4917224eb","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-03 13:20:57.000000000","message":"Patch Set 5: Verified-1\n\nBuild of patchset 5 failed: https://buildkite.com/tvl/depot/builds/31979","accounts_in_message":[],"_revision_number":5},{"id":"481fdaa01155892343d82035e8bd7c06d1415de6","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-03 14:57:44.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":6},{"id":"7d3c3751189ddd2ca072491ad0a68b333f1f4f15","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-03 14:57:49.000000000","message":"Patch Set 6:\n\nStarted build for patchset #6 on: https://buildkite.com/tvl/depot/builds/31994","accounts_in_message":[],"_revision_number":6},{"id":"2bf3f48bedb7efe83ac65d2dd18b9fed776211f7","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-03 14:58:07.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"9162459d7feb0a984c8d4b101ccefeca5082932a","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-03 15:04:23.000000000","message":"Patch Set 6: Verified+1\n\nBuild of patchset 6 passed: https://buildkite.com/tvl/depot/builds/31994","accounts_in_message":[],"_revision_number":6},{"id":"9acc676b1331917c824ba7ecd03f2734f8ea9255","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-03 15:33:10.000000000","message":"Uploaded patch set 7: Patch Set 6 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":7},{"id":"014ae75be69627aff4861ef3b399d8bbca228898","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-03 15:33:17.000000000","message":"Patch Set 7:\n\nStarted build for patchset #7 on: https://buildkite.com/tvl/depot/builds/31999","accounts_in_message":[],"_revision_number":7},{"id":"9899d205bee8d8b89951bde5c22aa483af3a250b","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-03 15:40:08.000000000","message":"Patch Set 7: Verified+1\n\nBuild of patchset 7 passed: https://buildkite.com/tvl/depot/builds/31999","accounts_in_message":[],"_revision_number":7},{"id":"7786a6a22aad6192964aa737ed320b3f0331079b","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-03 15:55:16.000000000","message":"Uploaded patch set 8: Patch Set 7 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":8},{"id":"1214d406f028cdee568dbae3d9ee5fc14ed907fd","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-03 15:55:21.000000000","message":"Patch Set 8:\n\nStarted build for patchset #8 on: https://buildkite.com/tvl/depot/builds/32001","accounts_in_message":[],"_revision_number":8},{"id":"f8a3a281e88ec7231fa08083706c00f6ea031080","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-03 16:01:07.000000000","message":"Patch Set 8: Verified+1\n\nBuild of patchset 8 passed: https://buildkite.com/tvl/depot/builds/32001","accounts_in_message":[],"_revision_number":8},{"id":"3865d73b8ca59713bc415cdf9481b473e2e95b59","author":{"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},"date":"2024-03-03 16:49:02.000000000","message":"Patch Set 8: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"03302857d6dac8b7d409866a8aceb5696042ebf9","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-03 16:59:32.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"c48396513e22e10bba50a075a9317c8323b18093","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-11 16:51:27.000000000","message":"Uploaded patch set 9.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"((**is:ANY** AND **has:unchanged-files**) OR is:MIN) OR changekind:NO_CHANGE\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":9},{"id":"5502c3820f3a20e7e4b947c23f2600edbaab2bd5","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-11 16:51:32.000000000","message":"Patch Set 9:\n\nStarted build for patchset #9 on: https://buildkite.com/tvl/depot/builds/32148","accounts_in_message":[],"_revision_number":9},{"id":"a69d9ffe6a031316b903574b9563b4cb9ba92b88","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-11 17:00:15.000000000","message":"Patch Set 9: Verified-1\n\nBuild of patchset 9 failed: https://buildkite.com/tvl/depot/builds/32148","accounts_in_message":[],"_revision_number":9},{"id":"acf6545dabc336394d6529381d2c3d41b1231ef6","author":{"_account_id":1000082,"name":"Brian Olsen","display_name":"griff","email":"me@griff.name","username":"griff"},"date":"2024-03-11 18:28:47.000000000","message":"Patch Set 9: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":9},{"id":"759363a0eaaadcc65deafe409055a7b6dda744b2","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-11 21:17:53.000000000","message":"Patch Set 9:\n\n(1 comment)\n\nThis change is ready for review.","accounts_in_message":[],"_revision_number":9},{"id":"9d1a2b57e4fb55200d5f946ae4293d34fafe03c8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-11 21:33:58.000000000","message":"Uploaded patch set 10.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"((**is:ANY** AND **has:unchanged-files**) OR is:MIN) OR changekind:NO_CHANGE\")\n\nOutdated Votes:\n* Verified-1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":10},{"id":"6adb201c2923523f0f7383804e246fe6cd50be11","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-11 21:34:04.000000000","message":"Patch Set 10:\n\nStarted build for patchset #10 on: https://buildkite.com/tvl/depot/builds/32155","accounts_in_message":[],"_revision_number":10},{"id":"04440ef9e554931bbd67a2c17942a2e11a6759bc","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-11 21:39:49.000000000","message":"Patch Set 10: Verified+1\n\nBuild of patchset 10 passed: https://buildkite.com/tvl/depot/builds/32155","accounts_in_message":[],"_revision_number":10},{"id":"d04d603a2acc0e384b461d52165d8c61d4d24f17","author":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"date":"2024-03-11 22:07:27.000000000","message":"Patch Set 10: Code-Review+2\n\n(3 comments)","accounts_in_message":[],"_revision_number":10},{"id":"f68e36cfbb6817c7091310778262562b77029057","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-11 22:25:13.000000000","message":"Uploaded patch set 11.\n\nCopied Votes:\n* Code-Review+1, Code-Review+2 (copy condition: \"((**is:ANY** AND **has:unchanged-files**) OR is:MIN) OR changekind:NO_CHANGE\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":11},{"id":"cb6413d7b38250486f3447385a737da34951ab8f","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-11 22:25:13.000000000","message":"Patch Set 11:\n\n(3 comments)","accounts_in_message":[],"_revision_number":11},{"id":"fcec95bcf70202570fe0b6cef826f50d8b949fd8","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-11 22:25:19.000000000","message":"Patch Set 11:\n\nStarted build for patchset #11 on: https://buildkite.com/tvl/depot/builds/32159","accounts_in_message":[],"_revision_number":11},{"id":"b93a1cb9a7a71990f54373049dec7616131deca4","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2024-03-11 22:31:25.000000000","message":"Patch Set 11: Verified+1\n\nBuild of patchset 11 passed: https://buildkite.com/tvl/depot/builds/32159","accounts_in_message":[],"_revision_number":11},{"id":"317cea126d9eb3dd87f48064a289323e46b3e480","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2024-03-11 22:42:01.000000000","message":"Change has been successfully rebased and submitted as 1c2db676a08847c9b73256d976f2b1eccf17310b\n\n10 is the latest approved patch-set.\nThe change was submitted with unreviewed changes in the following files:\n\n```\nThe name of the file: tvix/castore/src/blobservice/object_store.rs\nInsertions: 53, Deletions: 61.\n\n@@ -134,56 +134,54 @@\n         if digest.as_slice() \u003d\u003d blake3::hash(b\"\").as_bytes() {\n             return Ok(Some(Box::new(Cursor::new(b\"\")) as Box\u003cdyn BlobReader\u003e));\n         }\n-        Ok(\n-            match self\n-                .object_store\n-                .get(\u0026derive_chunk_path(\u0026self.base_path, digest))\n-                .await\n-            {\n-                Ok(res) \u003d\u003e {\n-                    // fetch the entire chunk into memory, decompress, ensure the b3 digest matches,\n-                    // and return a io::Cursor over that data.\n-                    // FUTUREWORK: use zstd::bulk to prevent decompression bombs\n+        match self\n+            .object_store\n+            .get(\u0026derive_chunk_path(\u0026self.base_path, digest))\n+            .await\n+        {\n+            Ok(res) \u003d\u003e {\n+                // fetch the entire chunk into memory, decompress, ensure the b3 digest matches,\n+                // and return a io::Cursor over that data.\n+                // FUTUREWORK: use zstd::bulk to prevent decompression bombs\n \n-                    let chunk_raw_bytes \u003d res.bytes().await?;\n-                    let chunk_contents \u003d zstd::stream::decode_all(Cursor::new(chunk_raw_bytes))?;\n+                let chunk_raw_bytes \u003d res.bytes().await?;\n+                let chunk_contents \u003d zstd::stream::decode_all(Cursor::new(chunk_raw_bytes))?;\n \n-                    if *digest !\u003d blake3::hash(\u0026chunk_contents).as_bytes().into() {\n-                        Err(io::Error::other(\"chunk contents invalid\"))?;\n-                    }\n-\n-                    Some(Box::new(Cursor::new(chunk_contents)))\n+                if *digest !\u003d blake3::hash(\u0026chunk_contents).as_bytes().into() {\n+                    Err(io::Error::other(\"chunk contents invalid\"))?;\n                 }\n-                Err(object_store::Error::NotFound { .. }) \u003d\u003e {\n-                    // NOTE: For public-facing things, we would want to stop here.\n-                    // Clients should fetch granularly, so they can make use of\n-                    // chunks they have locally.\n-                    // However, if this is used directly, without any caches, do the\n-                    // assembly here.\n-                    // This is subject to change, once we have store composition.\n-                    // TODO: make this configurable, and/or clarify behaviour for\n-                    // the gRPC server surface (explicitly document behaviour in the\n-                    // proto docs)\n-                    if let Some(chunks) \u003d self.chunks(digest).await? {\n-                        let chunked_reader \u003d ChunkedReader::from_chunks(\n-                            chunks.into_iter().map(|chunk| {\n-                                (\n-                                    chunk.digest.try_into().expect(\"invalid b3 digest\"),\n-                                    chunk.size,\n-                                )\n-                            }),\n-                            Arc::new(self.clone()) as Arc\u003cdyn BlobService\u003e,\n-                        );\n \n-                        Some(Box::new(chunked_reader))\n-                    } else {\n-                        // This is neither a chunk nor a blob, return None.\n-                        None\n-                    }\n+                Ok(Some(Box::new(Cursor::new(chunk_contents))))\n+            }\n+            Err(object_store::Error::NotFound { .. }) \u003d\u003e {\n+                // NOTE: For public-facing things, we would want to stop here.\n+                // Clients should fetch granularly, so they can make use of\n+                // chunks they have locally.\n+                // However, if this is used directly, without any caches, do the\n+                // assembly here.\n+                // This is subject to change, once we have store composition.\n+                // TODO: make this configurable, and/or clarify behaviour for\n+                // the gRPC server surface (explicitly document behaviour in the\n+                // proto docs)\n+                if let Some(chunks) \u003d self.chunks(digest).await? {\n+                    let chunked_reader \u003d ChunkedReader::from_chunks(\n+                        chunks.into_iter().map(|chunk| {\n+                            (\n+                                chunk.digest.try_into().expect(\"invalid b3 digest\"),\n+                                chunk.size,\n+                            )\n+                        }),\n+                        Arc::new(self.clone()) as Arc\u003cdyn BlobService\u003e,\n+                    );\n+\n+                    Ok(Some(Box::new(chunked_reader)))\n+                } else {\n+                    // This is neither a chunk nor a blob, return None.\n+                    Ok(None)\n                 }\n-                Err(e) \u003d\u003e Err(e)?,\n-            },\n-        )\n+            }\n+            Err(e) \u003d\u003e Err(e.into()),\n+        }\n     }\n \n     #[instrument(skip_all)]\n@@ -213,18 +211,18 @@\n     async fn chunks(\u0026self, digest: \u0026B3Digest) -\u003e io::Result\u003cOption\u003cVec\u003cChunkMeta\u003e\u003e\u003e {\n         let p \u003d derive_blob_path(\u0026self.base_path, digest);\n \n-        Ok(match self.object_store.get(\u0026p).await {\n+        match self.object_store.get(\u0026p).await {\n             Ok(get_result) \u003d\u003e {\n                 // fetch the data at the blob path\n                 let blob_data \u003d get_result.bytes().await?;\n                 // parse into StatBlobResponse\n                 let stat_blob_response: StatBlobResponse \u003d StatBlobResponse::decode(blob_data)?;\n \n-                Some(stat_blob_response.chunks)\n+                Ok(Some(stat_blob_response.chunks))\n             }\n-            Err(object_store::Error::NotFound { .. }) \u003d\u003e None,\n-            Err(err) \u003d\u003e Err(err)?,\n-        })\n+            Err(object_store::Error::NotFound { .. }) \u003d\u003e Ok(None),\n+            Err(err) \u003d\u003e Err(err.into()),\n+        }\n     }\n }\n \n@@ -388,13 +386,10 @@\n         }\n \n         // write to the underlying writer\n-        let w_p \u003d this\n-            .writer\n+        this.writer\n             .as_pin_mut()\n             .expect(\"writer must be some\")\n-            .poll_write(cx, buf);\n-\n-        w_p\n+            .poll_write(cx, buf)\n     }\n \n     fn poll_flush(\n@@ -412,14 +407,11 @@\n             return Poll::Ready(Err(io::Error::other(\"upload failed\")));\n         }\n \n-        // Call poll_flush on the writer.\n-        let w_p \u003d this\n-            .writer\n+        // Call poll_flush on the writer\n+        this.writer\n             .as_pin_mut()\n             .expect(\"writer must be some\")\n-            .poll_flush(cx);\n-\n-        w_p\n+            .poll_flush(cx)\n     }\n \n     fn poll_shutdown(\n```\n","accounts_in_message":[],"_revision_number":12}],"current_revision_number":12,"current_revision":"1c2db676a08847c9b73256d976f2b1eccf17310b","revisions":{"e30cec38ba2aff8963eb19ae0ad41c12eda1153c":{"kind":"REWORK","_number":1,"created":"2024-03-01 20:44:25.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/1"}}},"commit":{"parents":[{"commit":"4ec901e03548c2bfe3e64cc0b43ef20ce4ea2dec","subject":"fix(tvix/castore/blobwriter): don\u0027t require Sync + \u0027static","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d4ec901e03548c2bfe3e64cc0b43ef20ce4ea2dec"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 20:43:35.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003de30cec38ba2aff8963eb19ae0ad41c12eda1153c"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003de30cec38ba2aff8963eb19ae0ad41c12eda1153c"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"4ec901e03548c2bfe3e64cc0b43ef20ce4ea2dec","is_merged_in_target_branch":false,"change_id":"Ie6f238bbb0b17971c9877b11b61ea7ebca573c13","change_number":11075,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"f17043cdfd9383bb886a683455777788bb902e77":{"kind":"REWORK","_number":2,"created":"2024-03-02 07:37:03.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/2"}}},"commit":{"parents":[{"commit":"982459d3438c478aa208bc61a0de1fe34a8d05a0","subject":"fix(tvix/castore/blobwriter): don\u0027t require Sync + \u0027static","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d982459d3438c478aa208bc61a0de1fe34a8d05a0"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-02 07:36:42.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003df17043cdfd9383bb886a683455777788bb902e77"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003df17043cdfd9383bb886a683455777788bb902e77"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"982459d3438c478aa208bc61a0de1fe34a8d05a0","is_merged_in_target_branch":true,"change_id":"Ie6f238bbb0b17971c9877b11b61ea7ebca573c13","change_number":11075,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"5f993bf75ab621e214943463abd07d74917ee419":{"kind":"REWORK","_number":3,"created":"2024-03-02 16:48:10.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/3"}}},"commit":{"parents":[{"commit":"03524b0992a4e0518591ffb32ee220287341cf41","subject":"refactor(tvix/castore/blobsvc/chunked_reader): refactor, document","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d03524b0992a4e0518591ffb32ee220287341cf41"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-02 16:47:37.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d5f993bf75ab621e214943463abd07d74917ee419"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d5f993bf75ab621e214943463abd07d74917ee419"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"03524b0992a4e0518591ffb32ee220287341cf41","is_merged_in_target_branch":false,"change_id":"I2399867591df923faa73927b924e7c116ad98dc0","change_number":11079,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"279c284f682bca4b3071bdde7688284e5f2d2dd4":{"kind":"REWORK","_number":4,"created":"2024-03-02 16:58:27.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/4","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/4","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/4"}}},"commit":{"parents":[{"commit":"03524b0992a4e0518591ffb32ee220287341cf41","subject":"refactor(tvix/castore/blobsvc/chunked_reader): refactor, document","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d03524b0992a4e0518591ffb32ee220287341cf41"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-02 16:58:18.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d279c284f682bca4b3071bdde7688284e5f2d2dd4"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d279c284f682bca4b3071bdde7688284e5f2d2dd4"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"03524b0992a4e0518591ffb32ee220287341cf41","is_merged_in_target_branch":false,"change_id":"I2399867591df923faa73927b924e7c116ad98dc0","change_number":11079,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"3e9967da244fcb34124a3a1163fde9ab9335a680":{"kind":"REWORK","_number":5,"created":"2024-03-03 13:15:21.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/5","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/5","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/5"}}},"commit":{"parents":[{"commit":"87de57365cd44cbaddefe48d05ea168b31045560","subject":"feat(tvix/castore): add HashingReader, B3HashingReader","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d87de57365cd44cbaddefe48d05ea168b31045560"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-03 13:15:07.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d3e9967da244fcb34124a3a1163fde9ab9335a680"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d3e9967da244fcb34124a3a1163fde9ab9335a680"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"87de57365cd44cbaddefe48d05ea168b31045560","is_merged_in_target_branch":false,"change_id":"Ic08142077566fc08836662218f5ec8c3aff80be5","change_number":11087,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"97ea1095f1f791212802d2f24c3740be892b9b5f":{"kind":"REWORK","_number":6,"created":"2024-03-03 14:57:44.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/6","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/6","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/6"}}},"commit":{"parents":[{"commit":"a1573a0a9c1c42175090ee28b9a7d823f1bfd29b","subject":"feat(tvix/store): use reqwests\u0027 rustls-native-roots feature","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da1573a0a9c1c42175090ee28b9a7d823f1bfd29b"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-03 14:57:29.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d97ea1095f1f791212802d2f24c3740be892b9b5f"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d97ea1095f1f791212802d2f24c3740be892b9b5f"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"a1573a0a9c1c42175090ee28b9a7d823f1bfd29b","is_merged_in_target_branch":false,"change_id":"I64fc82b4d994715480efdb1ffecb279716456ab9","change_number":11090,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"f2f0fe1c3ec8da2bf5adfdc505e10682ef904fb6":{"kind":"TRIVIAL_REBASE","_number":7,"created":"2024-03-03 15:33:10.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/7","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/7","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/7"}}},"commit":{"parents":[{"commit":"1c16dee2078999f61e31194bbe793790facf0e98","subject":"feat(tvix/store): use reqwests\u0027 rustls-native-roots feature","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d1c16dee2078999f61e31194bbe793790facf0e98"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-03 15:32:48.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003df2f0fe1c3ec8da2bf5adfdc505e10682ef904fb6"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003df2f0fe1c3ec8da2bf5adfdc505e10682ef904fb6"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"1c16dee2078999f61e31194bbe793790facf0e98","is_merged_in_target_branch":true,"change_id":"I64fc82b4d994715480efdb1ffecb279716456ab9","change_number":11090,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"e54c7a1c09658e59db4eea702c6ffde419d95244":{"kind":"TRIVIAL_REBASE","_number":8,"created":"2024-03-03 15:55:16.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/8","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/8","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/8"}}},"commit":{"parents":[{"commit":"cfc6d372a3417bdf058fd06a8ad7f1d316779d2d","subject":"refactor(tvix/*/from_addr): improve test debuggability","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dcfc6d372a3417bdf058fd06a8ad7f1d316779d2d"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-03 15:55:07.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003de54c7a1c09658e59db4eea702c6ffde419d95244"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003de54c7a1c09658e59db4eea702c6ffde419d95244"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"cfc6d372a3417bdf058fd06a8ad7f1d316779d2d","is_merged_in_target_branch":false,"change_id":"I2d88861d979d107edc0717fbdb3cdac9a6bfc5e4","change_number":11091,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"d21d882e9fd3f362af2095b2ce453134b167178b":{"kind":"REWORK","_number":9,"created":"2024-03-11 16:51:27.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/9","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/9","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/9"}}},"commit":{"parents":[{"commit":"fa415769f3257e93b7ad4a5749e6214829b682cc","subject":"feat(tvix/store/bin): allow disabling OTLP at runtime","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dfa415769f3257e93b7ad4a5749e6214829b682cc"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-11 16:50:35.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd21d882e9fd3f362af2095b2ce453134b167178b"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd21d882e9fd3f362af2095b2ce453134b167178b"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"fa415769f3257e93b7ad4a5749e6214829b682cc","is_merged_in_target_branch":false,"change_id":"Ib22a364c35056ca9d8e327c0e2a79970a4cf4b2b","change_number":11135,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"71cf3677ad04a516505478cf4deea8fd5e806e11":{"kind":"REWORK","_number":10,"created":"2024-03-11 21:33:58.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/10","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/10","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/10"}}},"commit":{"parents":[{"commit":"d327bf775d376462dbe8cc2fe601b782b3ff02d3","subject":"feat(tvix/store/bin): allow disabling OTLP at runtime","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd327bf775d376462dbe8cc2fe601b782b3ff02d3"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-11 21:25:02.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d71cf3677ad04a516505478cf4deea8fd5e806e11"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d71cf3677ad04a516505478cf4deea8fd5e806e11"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"d327bf775d376462dbe8cc2fe601b782b3ff02d3","is_merged_in_target_branch":true,"change_id":"Ib22a364c35056ca9d8e327c0e2a79970a4cf4b2b","change_number":11135,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"7b856494aeefdc66b1f91a99363334d0fd8c13eb":{"kind":"REWORK","_number":11,"created":"2024-03-11 22:25:13.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/11","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/11","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/11"}}},"commit":{"parents":[{"commit":"d327bf775d376462dbe8cc2fe601b782b3ff02d3","subject":"feat(tvix/store/bin): allow disabling OTLP at runtime","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd327bf775d376462dbe8cc2fe601b782b3ff02d3"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-11 22:24:44.000000000","tz":120},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d7b856494aeefdc66b1f91a99363334d0fd8c13eb"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d7b856494aeefdc66b1f91a99363334d0fd8c13eb"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"d327bf775d376462dbe8cc2fe601b782b3ff02d3","is_merged_in_target_branch":true,"change_id":"Ib22a364c35056ca9d8e327c0e2a79970a4cf4b2b","change_number":11135,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"1c2db676a08847c9b73256d976f2b1eccf17310b":{"kind":"NO_CODE_CHANGE","_number":12,"created":"2024-03-11 22:42:01.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/76/11076/12","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/76/11076/12","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/76/11076/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/76/11076/12"}}},"commit":{"parents":[{"commit":"d327bf775d376462dbe8cc2fe601b782b3ff02d3","subject":"feat(tvix/store/bin): allow disabling OTLP at runtime","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd327bf775d376462dbe8cc2fe601b782b3ff02d3"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2024-03-01 16:00:53.000000000","tz":120},"committer":{"name":"flokli","email":"flokli@flokli.de","date":"2024-03-11 22:42:01.000000000","tz":0},"subject":"feat(tvix/castore/blobsvc): add object storage implementation","message":"feat(tvix/castore/blobsvc): add object storage implementation\n\nThis uses the `object_store` crate to expose a tvix-castore BlobService\nbacked by object storage.\n\nIt\u0027s using FastCDC to chunk blobs into smaller chunks when writing to\nit.\n\nThese are exposed at the .chunks() method.\n\nChange-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e\nReviewed-on: https://cl.tvl.fyi/c/depot/+/11076\nReviewed-by: Connor Brewster \u003ccbrewster@hey.com\u003e\nTested-by: BuildkiteCI\nReviewed-by: Brian Olsen \u003cme@griff.name\u003e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d1c2db676a08847c9b73256d976f2b1eccf17310b"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d1c2db676a08847c9b73256d976f2b1eccf17310b"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"d327bf775d376462dbe8cc2fe601b782b3ff02d3","is_merged_in_target_branch":true,"change_id":"Ib22a364c35056ca9d8e327c0e2a79970a4cf4b2b","change_number":11135,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~PrologRule","status":"CLOSED","labels":[{"label":"Autosubmit","status":"MAY"},{"label":"Conformant-Commit-Message","status":"OK","applied_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"}},{"label":"All-Comments-Resolved","status":"OK","applied_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"}},{"label":"Verified","status":"OK","applied_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"}}]},{"rule_name":"Code-Owners","status":"CLOSED"}],"submit_requirements":[{"name":"All-Comments-Resolved","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:All-Comments-Resolved\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:All-Comments-Resolved\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Code-Owners","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"rule:Code-Owners","fulfilled":true,"status":"PASS","passing_atoms":["Code-Owners"],"failing_atoms":[]}},{"name":"Conformant-Commit-Message","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Conformant-Commit-Message\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Conformant-Commit-Message\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dgerrit~PrologRule"],"failing_atoms":[]}}]}
