)]}'
{"id":"snix~30370","triplet_id":"snix~canon~I55ae7c42c6a3eeff6f0457411a8b05d55cb24f65","project":"snix","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000035":{"account":{"_account_id":1000035,"name":"Bence Nemes","email":"nemes.bence1@gmail.com","username":"starnick4444"},"last_update":"2025-05-01 14:57:44.000000000","reason":"Change was submitted"},"1000001":{"account":{"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},"last_update":"2025-05-01 14:49:31.000000000","reason":"removed on reply"},"1000005":{"account":{"_account_id":1000005,"name":"Ilan Joselevich","email":"personal@ilanjoselevich.com","username":"kranzes"},"last_update":"2025-05-01 14:57:44.000000000","reason":"Change was submitted"},"1000004":{"account":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"last_update":"2025-05-01 14:57:44.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I55ae7c42c6a3eeff6f0457411a8b05d55cb24f65","subject":"feat(ops/modules/www/git.snix.dev): block AI scrapers","status":"MERGED","created":"2025-05-01 14:04:11.000000000","updated":"2025-05-01 14:57:44.000000000","submitted":"2025-05-01 14:57:44.000000000","submitter":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"30370","meta_rev_id":"397e213af3af3bebf4589aae76a1f3bf8e2fc3e9","_number":30370,"virtual_id_number":30370,"owner":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},"all":[{"value":0,"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2025-05-01 14:57:44.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},{"value":0,"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"}],"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,"optional":true},"Verified":{"approved":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2025-05-01 14:57:44.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},{"value":0,"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0,"optional":true},"Autosubmit":{"approved":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"all":[{"value":0,"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2025-05-01 14:57:44.000000000","_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":1000035,"name":"Bence Nemes","email":"nemes.bence1@gmail.com","username":"starnick4444"},{"_account_id":1000005,"name":"Ilan Joselevich","email":"personal@ilanjoselevich.com","username":"kranzes"}],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"_account_id":1000005,"name":"Ilan Joselevich","email":"personal@ilanjoselevich.com","username":"kranzes"},{"_account_id":1000035,"name":"Bence Nemes","email":"nemes.bence1@gmail.com","username":"starnick4444"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-05-01 14:04:11.000000000","updated_by":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},"state":"REVIEWER"},{"updated":"2025-05-01 14:04:11.000000000","updated_by":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000035,"name":"Bence Nemes","email":"nemes.bence1@gmail.com","username":"starnick4444"},"state":"REVIEWER"},{"updated":"2025-05-01 14:04:11.000000000","updated_by":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000005,"name":"Ilan Joselevich","email":"personal@ilanjoselevich.com","username":"kranzes"},"state":"REVIEWER"},{"updated":"2025-05-01 14:04:12.000000000","updated_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2025-05-01 14:16:50.000000000","updated_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2025-05-01 14:57:44.000000000","updated_by":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"8678f07ad5749fb7639be0dc6d78f6718b98e0f8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"date":"2025-05-01 14:04:11.000000000","message":"Uploaded patch set 1: Autosubmit+1.","accounts_in_message":[],"_revision_number":1},{"id":"81520190b027f2cc29802456817b5af710ed95ce","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-05-01 14:04:12.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/snix/snix/builds/1105","accounts_in_message":[],"_revision_number":1},{"id":"b2fde8e63681e558207776e26b69f2c4cdcae14a","author":{"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},"date":"2025-05-01 14:10:44.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"dcf85401a4b8a1324aa0d07870b7b66e017789c7","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"date":"2025-05-01 14:16:08.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"da86a89f2fda449a44b7e62768b087978e093777","tag":"autogenerated:buildkite~result","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-05-01 14:16:50.000000000","message":"Patch Set 1: Verified+1\n\nBuild of patchset 1 passed: https://buildkite.com/snix/snix/builds/1105","accounts_in_message":[],"_revision_number":1},{"id":"a962d7b1772f93e1fe8841dd0f9f8f4f488575d4","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"date":"2025-05-01 14:43:15.000000000","message":"Uploaded patch set 2.\n\nCopied Votes:\n* Autosubmit+1 (copy condition: \"changekind:NO_CHANGE OR **is:ANY**\")\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:NO_CHANGE OR changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"(**is:ANY** AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":2},{"id":"3e0be694b714b589e495c5f331ecd263291619ec","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-05-01 14:43:16.000000000","message":"Patch Set 2:\n\nStarted build for patchset #2 on: https://buildkite.com/snix/snix/builds/1108","accounts_in_message":[],"_revision_number":2},{"id":"ae0fab3e4b4877cb0453112600101cd8877d5d17","tag":"autogenerated:gerrit:setReadyForReview","author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"date":"2025-05-01 14:45:53.000000000","message":"Set Ready For Review","accounts_in_message":[],"_revision_number":2},{"id":"869dbec9b6f087c711fe061193fa59712c8a16b1","author":{"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"},"date":"2025-05-01 14:49:31.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"53ed8aa593376f551f8961f1f85bead02c88c2c5","tag":"autogenerated:buildkite~result","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-05-01 14:57:31.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/snix/snix/builds/1108","accounts_in_message":[],"_revision_number":2},{"id":"397e213af3af3bebf4589aae76a1f3bf8e2fc3e9","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"date":"2025-05-01 14:57:44.000000000","message":"Change has been successfully rebased and submitted as 853754d25fd44687ec893073f14db9f44185f36e","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"853754d25fd44687ec893073f14db9f44185f36e","revisions":{"7b64f07bd81470874c77a0e0eaa9c223cbbaa9de":{"kind":"REWORK","_number":1,"created":"2025-05-01 14:04:11.000000000","uploader":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/70/30370/1","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/70/30370/1","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/70/30370/1"}}},"commit":{"parents":[{"commit":"c50136141205b72f8c131055c9ea945a1c026334","subject":"chore(cli): upgrade cli to 2024 edition"}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-05-01 13:47:17.000000000","tz":180},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-05-01 14:02:59.000000000","tz":180},"subject":"feat(ops/modules/www/git.snix.dev): block AI scrapers","message":"feat(ops/modules/www/git.snix.dev): block AI scrapers\n\nThis blocks a bunch of AI scrapers from Forgejo, which seems to be\nparticularly attractive.\n\nEspecially meta-externalagent has been scraping very excessively.\n\nThe list comes from https://github.com/ai-robots-txt/ai.robots.txt,\nlet\u0027s see how often this needs updating.\n\nChange-Id: I55ae7c42c6a3eeff6f0457411a8b05d55cb24f65\n"},"branch":"refs/heads/canon"},"07a4738dd2de7045e3e4f9aae210dc80908b9765":{"kind":"REWORK","_number":2,"created":"2025-05-01 14:43:15.000000000","uploader":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/70/30370/2","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/70/30370/2","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/70/30370/2"}}},"commit":{"parents":[{"commit":"c50136141205b72f8c131055c9ea945a1c026334","subject":"chore(cli): upgrade cli to 2024 edition"}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-05-01 13:47:17.000000000","tz":180},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-05-01 14:43:10.000000000","tz":180},"subject":"feat(ops/modules/www/git.snix.dev): block AI scrapers","message":"feat(ops/modules/www/git.snix.dev): block AI scrapers\n\nThis blocks a bunch of AI scrapers from Forgejo, which seems to be\nparticularly attractive.\n\nEspecially meta-externalagent has been scraping very excessively.\n\nThe list comes from https://github.com/ai-robots-txt/ai.robots.txt,\nlet\u0027s see how often this needs updating.\n\nChange-Id: I55ae7c42c6a3eeff6f0457411a8b05d55cb24f65\n"},"branch":"refs/heads/canon"},"853754d25fd44687ec893073f14db9f44185f36e":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2025-05-01 14:57:44.000000000","uploader":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"ref":"refs/changes/70/30370/3","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/70/30370/3","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/70/30370/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/70/30370/3"}}},"commit":{"parents":[{"commit":"c50136141205b72f8c131055c9ea945a1c026334","subject":"chore(cli): upgrade cli to 2024 edition"}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2025-05-01 13:47:17.000000000","tz":180},"committer":{"name":"clbot","email":"clbot@cl.snix.dev","date":"2025-05-01 14:57:44.000000000","tz":0},"subject":"feat(ops/modules/www/git.snix.dev): block AI scrapers","message":"feat(ops/modules/www/git.snix.dev): block AI scrapers\n\nThis blocks a bunch of AI scrapers from Forgejo, which seems to be\nparticularly attractive.\n\nEspecially meta-externalagent has been scraping very excessively.\n\nThe list comes from https://github.com/ai-robots-txt/ai.robots.txt,\nlet\u0027s see how often this needs updating.\n\nChange-Id: I55ae7c42c6a3eeff6f0457411a8b05d55cb24f65\nReviewed-on: https://cl.snix.dev/c/snix/+/30370\nAutosubmit: Florian Klink \u003cflokli@flokli.de\u003e\nTested-by: besadii\nReviewed-by: edef \u003cedef@edef.eu\u003e\n"},"branch":"refs/heads/canon","description":"Rebase"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":1000001,"name":"edef","display_name":"edef","email":"edef@edef.eu","username":"edef"}},{"label":"Verified","status":"MAY","applied_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]}},{"label":"Autosubmit","status":"MAY","applied_by":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"}}]},{"rule_name":"Code-Owners","status":"CLOSED"}],"submit_requirements":[{"name":"Code-Review","description":"A maximum vote from a non-uploader is required for the \u0027Code-Review\u0027 label. A minimum vote is blocking.","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX,user\u003dnon_uploader AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX,user\u003dnon_uploader"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Verified","description":"Label \u0027Verified+1\u0027 is required","status":"SATISFIED","is_legacy":false,"applicability_expression_result":{"fulfilled":true,"status":"PASS"},"submittability_expression_result":{"expression":"label:Verified\u003dMAX,user\u003dnon_uploader","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX,user\u003dnon_uploader"],"failing_atoms":[],"atom_explanations":{}}},{"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":[],"atom_explanations":{}}},{"name":"No-Unresolved-Comments","description":"Changes that have unresolved comments are not submittable.","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"-has:unresolved","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}}]}
