)]}'
{"id":"monogon~3214","triplet_id":"monogon~main~Ifa0c039769c37ee53033ce013eed4f1af6f02142","project":"monogon","branch":"main","attention_set":{},"removed_from_attention_set":{"1000001":{"account":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"last_update":"2024-07-11 12:49:14.000000000","reason":"\u003cGERRIT_ACCOUNT_1000001\u003e replied on the change","reason_account":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}},"1000038":{"account":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"last_update":"2024-07-15 11:59:30.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ifa0c039769c37ee53033ce013eed4f1af6f02142","subject":"m/n/c/network: fix panic when DHCP lease expires","status":"MERGED","created":"2024-07-11 09:09:30.000000000","updated":"2024-07-15 11:59:30.000000000","submitted":"2024-07-15 11:59:30.000000000","submitter":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"3215","meta_rev_id":"148e4507647b6d1989ef1d5c0918831be8da945a","_number":3214,"virtual_id_number":3214,"owner":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"all":[{"value":0,"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2024-07-15 11:59:30.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":0,"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{" 0":"No score","+1":"LGTM"},"description":"","default_value":0,"optional":true},"Vouch-Run-CI":{"all":[{"value":0,"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},{"value":0,"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":0,"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{" 0":"If CI approval needed, vote +1 after reviewing for safety.","+1":"Okay to run CI"},"description":"","default_value":0,"optional":true},"Verified":{"approved":{"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:gerrit:merged","value":1,"date":"2024-07-15 11:59:30.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},{"value":0,"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"value":0,"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-1":"Fails"," 0":"No score","+1":"Great success"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-07-11 09:14:14.000000000","updated_by":{"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2024-07-11 09:39:09.000000000","updated_by":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"reviewer":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"state":"REVIEWER"}],"messages":[{"id":"b904b678fe83f3d508c224e3f8fef43b88d99890","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2024-07-11 09:09:30.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b833d29effb3ed0f2e7b0b3711066910366c463c","tag":"autogenerated:jenkins","author":{"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"date":"2024-07-11 09:14:14.000000000","message":"Patch Set 1: Verified-1","accounts_in_message":[],"_revision_number":1},{"id":"13dec2306c79f9c5553cc153667f6d633882afdd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2024-07-11 09:24:21.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"changekind:NO_CODE_CHANGE OR changekind:TRIVIAL_REBASE\")\n","accounts_in_message":[],"_revision_number":2},{"id":"70d5f3f6358ad06925aefcd4c68150b566c1a32b","tag":"autogenerated:jenkins","author":{"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]},"date":"2024-07-11 09:32:24.000000000","message":"Patch Set 2: Verified+1","accounts_in_message":[],"_revision_number":2},{"id":"e2562737423fa7d2f370adcfba574cd71e7e25e2","author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2024-07-11 12:49:14.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"ef9d80d2ba95ceaf373bb3431ae84efc0d109600","author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2024-07-11 15:35:09.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"148e4507647b6d1989ef1d5c0918831be8da945a","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2024-07-15 11:59:30.000000000","message":"Change has been successfully rebased and submitted as ba404a60ffd9e9a6143a3f6f7e57e400607a5cae","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"ba404a60ffd9e9a6143a3f6f7e57e400607a5cae","revisions":{"17eba755e95e3ab160fc8c2a075363ff95c64a6f":{"kind":"REWORK","_number":1,"created":"2024-07-11 09:09:30.000000000","uploader":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/14/3214/1","fetch":{"anonymous http":{"url":"https://review.monogon.dev/monogon","ref":"refs/changes/14/3214/1","commands":{"Branch":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/1 \u0026\u0026 git checkout -b change-3214 FETCH_HEAD","Checkout":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.monogon.dev/monogon refs/changes/14/3214/1","Reset To":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"dfa99b87511cfe133bcca280a4c35d480d7d88cb","subject":"metropolis/node/core/update/e2e: bump timeout","web_links":[{"name":"browse","url":"/plugins/gitiles/monogon/+/dfa99b87511cfe133bcca280a4c35d480d7d88cb"}]}],"author":{"name":"Jan Schär","email":"jan@monogon.tech","date":"2024-07-11 08:46:27.000000000","tz":120},"committer":{"name":"Jan Schär","email":"jan@monogon.tech","date":"2024-07-11 08:46:27.000000000","tz":120},"subject":"m/n/c/network: fix panic when DHCP lease expires","message":"m/n/c/network: fix panic when DHCP lease expires\n\nThe statusCallback of the network service previously accessed\nnew.AssignedIP without checking if new is nil, which caused a panic when\nthe DHCP lease expired. When subsequently the DHCP service was restarted\nand a new lease obtained, CoreDNS was left without upstream servers\nconfigured. The reason for this is that just before the panic, CoreDNS\nwas configured with an empty list of upstreams, but the lease field of\nthe DHCP service was not updated. When the lease callback was called\nagain with the new lease, old and new lease had the same DNS servers, so\nCoreDNS was not configured to use the upstreams.\n\nTo fix the panic, this adds a check for a nil lease before accessing\nAssignedIP. I looked if all consumers of the ExternalAddress Status can\nhandle nil, and added a nil check in the statuspush worker. The\napiserver stops when the lease is lost, and starts again once it is\nreacquired; I\u0027m not sure if this is the intended behavior.\n\nThe DNS problem occured because the old lease passed to the callback was\nnot the last lease that the callback had seen, and it then mistakenly\nsuppressed the update. In general, a callback cannot rely on the old\nlease being the last lease that the callback has been called with. For\nexample, when a callback earlier in the Compose chain returns an error,\nlater callbacks are not called, so a callback may not see all lease\nchanges. Because the old lease parameter cannot be trusted, I removed\nit. Callbacks which need the previous lease should keep track of it\nthemselves.\n\nFor manually testing lease expiry, I modified\nmetropolis/test/nanoswitch/nanoswitch.go like this:\n\n+\t\tstart :\u003d time.Now()\n \t\tserver, err :\u003d server4.NewServer(link.Attrs().Name, \u0026laddr, func(conn net.PacketConn, peer net.Addr, m *dhcpv4.DHCPv4) {\n \t\t\tif m \u003d\u003d nil {\n \t\t\t\treturn\n \t\t\t}\n+\t\t\tif start.Add(50*time.Second).Before(time.Now()) \u0026\u0026 start.Add(90*time.Second).After(time.Now()) {\n+\t\t\t\tsupervisor.Logger(ctx).Infof(\"Dropping DHCP packet\")\n+\t\t\t\treturn\n+\t\t\t}\n \t\t\treply, err :\u003d dhcpv4.NewReplyFromRequest(m)\n\nChange-Id: Ifa0c039769c37ee53033ce013eed4f1af6f02142\n","web_links":[{"name":"browse","url":"/plugins/gitiles/monogon/+/17eba755e95e3ab160fc8c2a075363ff95c64a6f"}]},"branch":"refs/heads/main"},"4d045ad03782b2dd67c5c96c2b91442525faefe4":{"kind":"REWORK","_number":2,"created":"2024-07-11 09:24:21.000000000","uploader":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/14/3214/2","fetch":{"anonymous http":{"url":"https://review.monogon.dev/monogon","ref":"refs/changes/14/3214/2","commands":{"Branch":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/2 \u0026\u0026 git checkout -b change-3214 FETCH_HEAD","Checkout":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.monogon.dev/monogon refs/changes/14/3214/2","Reset To":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"dfa99b87511cfe133bcca280a4c35d480d7d88cb","subject":"metropolis/node/core/update/e2e: bump timeout","web_links":[{"name":"browse","url":"/plugins/gitiles/monogon/+/dfa99b87511cfe133bcca280a4c35d480d7d88cb"}]}],"author":{"name":"Jan Schär","email":"jan@monogon.tech","date":"2024-07-11 08:46:27.000000000","tz":120},"committer":{"name":"Jan Schär","email":"jan@monogon.tech","date":"2024-07-11 09:23:35.000000000","tz":120},"subject":"m/n/c/network: fix panic when DHCP lease expires","message":"m/n/c/network: fix panic when DHCP lease expires\n\nThe statusCallback of the network service previously accessed\nnew.AssignedIP without checking if new is nil, which caused a panic when\nthe DHCP lease expired. When subsequently the DHCP service was restarted\nand a new lease obtained, CoreDNS was left without upstream servers\nconfigured. The reason for this is that just before the panic, CoreDNS\nwas configured with an empty list of upstreams, but the lease field of\nthe DHCP service was not updated. When the lease callback was called\nagain with the new lease, old and new lease had the same DNS servers, so\nCoreDNS was not configured to use the upstreams.\n\nTo fix the panic, this adds a check for a nil lease before accessing\nAssignedIP. I looked if all consumers of the ExternalAddress Status can\nhandle nil, and added a nil check in the statuspush worker. The\napiserver stops when the lease is lost, and starts again once it is\nreacquired; I\u0027m not sure if this is the intended behavior.\n\nThe DNS problem occured because the old lease passed to the callback was\nnot the last lease that the callback had seen, and it then mistakenly\nsuppressed the update. In general, a callback cannot rely on the old\nlease being the last lease that the callback has been called with. For\nexample, when a callback earlier in the Compose chain returns an error,\nlater callbacks are not called, so a callback may not see all lease\nchanges. Because the old lease parameter cannot be trusted, I removed\nit. Callbacks which need the previous lease should keep track of it\nthemselves.\n\nFor manually testing lease expiry, I modified\nmetropolis/test/nanoswitch/nanoswitch.go like this:\n\n+\t\tstart :\u003d time.Now()\n \t\tserver, err :\u003d server4.NewServer(link.Attrs().Name, \u0026laddr, func(conn net.PacketConn, peer net.Addr, m *dhcpv4.DHCPv4) {\n \t\t\tif m \u003d\u003d nil {\n \t\t\t\treturn\n \t\t\t}\n+\t\t\tif start.Add(50*time.Second).Before(time.Now()) \u0026\u0026 start.Add(90*time.Second).After(time.Now()) {\n+\t\t\t\tsupervisor.Logger(ctx).Infof(\"Dropping DHCP packet\")\n+\t\t\t\treturn\n+\t\t\t}\n \t\t\treply, err :\u003d dhcpv4.NewReplyFromRequest(m)\n\nChange-Id: Ifa0c039769c37ee53033ce013eed4f1af6f02142\n","web_links":[{"name":"browse","url":"/plugins/gitiles/monogon/+/4d045ad03782b2dd67c5c96c2b91442525faefe4"}]},"branch":"refs/heads/main"},"ba404a60ffd9e9a6143a3f6f7e57e400607a5cae":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":3,"created":"2024-07-15 11:59:30.000000000","uploader":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/14/3214/3","fetch":{"anonymous http":{"url":"https://review.monogon.dev/monogon","ref":"refs/changes/14/3214/3","commands":{"Branch":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/3 \u0026\u0026 git checkout -b change-3214 FETCH_HEAD","Checkout":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.monogon.dev/monogon refs/changes/14/3214/3","Reset To":"git fetch https://review.monogon.dev/monogon refs/changes/14/3214/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"f69d84b0f2b8b363f42ed6a3c09523b75d002f94","subject":"treewide: update sandboxroot to fedora 40, nix to 24.05","web_links":[{"name":"browse","url":"/plugins/gitiles/monogon/+/f69d84b0f2b8b363f42ed6a3c09523b75d002f94"}]}],"author":{"name":"Jan Schär","email":"jan@monogon.tech","date":"2024-07-11 08:46:27.000000000","tz":120},"committer":{"name":"Jan Schär","email":"jan@monogon.tech","date":"2024-07-15 11:59:30.000000000","tz":0},"subject":"m/n/c/network: fix panic when DHCP lease expires","message":"m/n/c/network: fix panic when DHCP lease expires\n\nThe statusCallback of the network service previously accessed\nnew.AssignedIP without checking if new is nil, which caused a panic when\nthe DHCP lease expired. When subsequently the DHCP service was restarted\nand a new lease obtained, CoreDNS was left without upstream servers\nconfigured. The reason for this is that just before the panic, CoreDNS\nwas configured with an empty list of upstreams, but the lease field of\nthe DHCP service was not updated. When the lease callback was called\nagain with the new lease, old and new lease had the same DNS servers, so\nCoreDNS was not configured to use the upstreams.\n\nTo fix the panic, this adds a check for a nil lease before accessing\nAssignedIP. I looked if all consumers of the ExternalAddress Status can\nhandle nil, and added a nil check in the statuspush worker. The\napiserver stops when the lease is lost, and starts again once it is\nreacquired; I\u0027m not sure if this is the intended behavior.\n\nThe DNS problem occured because the old lease passed to the callback was\nnot the last lease that the callback had seen, and it then mistakenly\nsuppressed the update. In general, a callback cannot rely on the old\nlease being the last lease that the callback has been called with. For\nexample, when a callback earlier in the Compose chain returns an error,\nlater callbacks are not called, so a callback may not see all lease\nchanges. Because the old lease parameter cannot be trusted, I removed\nit. Callbacks which need the previous lease should keep track of it\nthemselves.\n\nFor manually testing lease expiry, I modified\nmetropolis/test/nanoswitch/nanoswitch.go like this:\n\n+\t\tstart :\u003d time.Now()\n \t\tserver, err :\u003d server4.NewServer(link.Attrs().Name, \u0026laddr, func(conn net.PacketConn, peer net.Addr, m *dhcpv4.DHCPv4) {\n \t\t\tif m \u003d\u003d nil {\n \t\t\t\treturn\n \t\t\t}\n+\t\t\tif start.Add(50*time.Second).Before(time.Now()) \u0026\u0026 start.Add(90*time.Second).After(time.Now()) {\n+\t\t\t\tsupervisor.Logger(ctx).Infof(\"Dropping DHCP packet\")\n+\t\t\t\treturn\n+\t\t\t}\n \t\t\treply, err :\u003d dhcpv4.NewReplyFromRequest(m)\n\nChange-Id: Ifa0c039769c37ee53033ce013eed4f1af6f02142\nReviewed-on: https://review.monogon.dev/c/monogon/+/3214\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n","web_links":[{"name":"browse","url":"/plugins/gitiles/monogon/+/ba404a60ffd9e9a6143a3f6f7e57e400607a5cae"}]},"branch":"refs/heads/main","description":"Rebase"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}},{"label":"Vouch-Run-CI","status":"MAY"},{"label":"Verified","status":"MAY","applied_by":{"_account_id":1000003,"name":"Jenkins CI","username":"jenkins","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"tags":["SERVICE_USER"]}}]}],"submit_requirements":[{"name":"Code-Review","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Verified","description":"Code passes CI checks","status":"SATISFIED","is_legacy":false,"applicability_expression_result":{"fulfilled":true,"status":"PASS"},"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"No-Unresolved-Comments","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-has:unresolved","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["has:unresolved"],"atom_explanations":{}}},{"name":"Allow-Run-CI","description":"Change needs project owner approval for CI runs","status":"OVERRIDDEN","is_legacy":false,"applicability_expression_result":{"fulfilled":true,"status":"PASS"},"submittability_expression_result":{"expression":"label:Vouch-Run-CI\u003dMAX","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Vouch-Run-CI\u003dMAX"],"atom_explanations":{}},"override_expression_result":{"expression":"authoremail:\"^.*@(nexantic\\.com|monogon\\.tech)$\"","fulfilled":true,"status":"PASS","passing_atoms":["authoremail:\"^.*@(nexantic\\.com|monogon\\.tech)$\""],"failing_atoms":[],"atom_explanations":{}}}]}
