)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0db6c916357d05e5da0dbb50fc31081d9e171f1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1e813cf3_292a67b3","updated":"2026-01-27 17:20:31.000000000","message":"Tests look fine. I have some nits on the code itself, and I\u0027d like to see a release note for this. Otherwise, lgtm 👌","commit_id":"afaeb2e5e66be8e083b17b1fe33376e14696cb0f"}],"openstackclient/identity/v3/limit.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0db6c916357d05e5da0dbb50fc31081d9e171f1d","unresolved":true,"context_lines":[{"line_number":68,"context_line":"            required\u003dTrue,"},{"line_number":69,"context_line":"            help\u003d_(\u0027Project to associate the resource limit to\u0027),"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"        parser.add_argument("},{"line_number":72,"context_line":"            \u0027--project-domain\u0027,"},{"line_number":73,"context_line":"            metavar\u003d\u0027\u003cproject-domain\u003e\u0027,"},{"line_number":74,"context_line":"            dest\u003d\u0027project_domain\u0027,"},{"line_number":75,"context_line":"            help\u003d_(\u0027Domain owning \u003cproject\u003e (name or ID)\u0027),"},{"line_number":76,"context_line":"        )"},{"line_number":77,"context_line":"        parser.add_argument("},{"line_number":78,"context_line":"            \u0027--service\u0027,"},{"line_number":79,"context_line":"            metavar\u003d\u0027\u003cservice\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"a12172d1_a394fb59","line":76,"range":{"start_line":71,"start_character":0,"end_line":76,"end_character":9},"updated":"2026-01-27 17:20:31.000000000","message":"Rather than adding this manually, can you use the `add_project_domain_option_to_parser` helper like other commands?","commit_id":"afaeb2e5e66be8e083b17b1fe33376e14696cb0f"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"1ca012eb83f9dc1a74ee3801b1331f0f3faa9e08","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            required\u003dTrue,"},{"line_number":69,"context_line":"            help\u003d_(\u0027Project to associate the resource limit to\u0027),"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"        parser.add_argument("},{"line_number":72,"context_line":"            \u0027--project-domain\u0027,"},{"line_number":73,"context_line":"            metavar\u003d\u0027\u003cproject-domain\u003e\u0027,"},{"line_number":74,"context_line":"            dest\u003d\u0027project_domain\u0027,"},{"line_number":75,"context_line":"            help\u003d_(\u0027Domain owning \u003cproject\u003e (name or ID)\u0027),"},{"line_number":76,"context_line":"        )"},{"line_number":77,"context_line":"        parser.add_argument("},{"line_number":78,"context_line":"            \u0027--service\u0027,"},{"line_number":79,"context_line":"            metavar\u003d\u0027\u003cservice\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5bd64c5c_86ae9131","line":76,"range":{"start_line":71,"start_character":0,"end_line":76,"end_character":9},"in_reply_to":"a12172d1_a394fb59","updated":"2026-01-27 23:15:48.000000000","message":"Ah, I didn\u0027t realize we had that. Added 👍","commit_id":"afaeb2e5e66be8e083b17b1fe33376e14696cb0f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0db6c916357d05e5da0dbb50fc31081d9e171f1d","unresolved":true,"context_lines":[{"line_number":104,"context_line":"        if parsed_args.description:"},{"line_number":105,"context_line":"            kwargs[\"description\"] \u003d parsed_args.description"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        project_domain_id \u003d None"},{"line_number":108,"context_line":"        if parsed_args.project_domain:"},{"line_number":109,"context_line":"            project_domain_id \u003d common_utils.find_domain_id_sdk("},{"line_number":110,"context_line":"                identity_client, parsed_args.project_domain"},{"line_number":111,"context_line":"            )"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        kwargs[\"project_id\"] \u003d common_utils._find_sdk_id("},{"line_number":114,"context_line":"            identity_client.find_project,"},{"line_number":115,"context_line":"            name_or_id\u003dparsed_args.project,"},{"line_number":116,"context_line":"            domain_id\u003dproject_domain_id,"},{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        kwargs[\"service_id\"] \u003d common_utils.find_service_sdk("},{"line_number":120,"context_line":"            identity_client, parsed_args.service"},{"line_number":121,"context_line":"        ).id"}],"source_content_type":"text/x-python","patch_set":3,"id":"51954f61_8f3a4c4b","line":118,"range":{"start_line":107,"start_character":0,"end_line":118,"end_character":1},"updated":"2026-01-27 17:20:31.000000000","message":"It probably makes sense to pull all of this out into a `find_project_id_sdk` helper now, though that can be done in a follow-up if you prefer.","commit_id":"afaeb2e5e66be8e083b17b1fe33376e14696cb0f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f76a2d911a5f48f62bf7723349db0eb0f8456b55","unresolved":true,"context_lines":[{"line_number":104,"context_line":"        if parsed_args.description:"},{"line_number":105,"context_line":"            kwargs[\"description\"] \u003d parsed_args.description"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        project_domain_id \u003d None"},{"line_number":108,"context_line":"        if parsed_args.project_domain:"},{"line_number":109,"context_line":"            project_domain_id \u003d common_utils.find_domain_id_sdk("},{"line_number":110,"context_line":"                identity_client, parsed_args.project_domain"},{"line_number":111,"context_line":"            )"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        kwargs[\"project_id\"] \u003d common_utils._find_sdk_id("},{"line_number":114,"context_line":"            identity_client.find_project,"},{"line_number":115,"context_line":"            name_or_id\u003dparsed_args.project,"},{"line_number":116,"context_line":"            domain_id\u003dproject_domain_id,"},{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        kwargs[\"service_id\"] \u003d common_utils.find_service_sdk("},{"line_number":120,"context_line":"            identity_client, parsed_args.service"},{"line_number":121,"context_line":"        ).id"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa679a2c_a6d81956","line":118,"range":{"start_line":107,"start_character":0,"end_line":118,"end_character":1},"in_reply_to":"51954f61_8f3a4c4b","updated":"2026-01-27 17:22:00.000000000","message":"Ah, you\u0027ve added just this function in another patch https://review.opendev.org/c/openstack/python-openstackclient/+/965317/15/openstackclient/identity/common.py Let\u0027s wait for that to merge and then use it here.","commit_id":"afaeb2e5e66be8e083b17b1fe33376e14696cb0f"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"1b4e2fb0009513c22677ab49a594397322ba518c","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        if parsed_args.description:"},{"line_number":105,"context_line":"            kwargs[\"description\"] \u003d parsed_args.description"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        project_domain_id \u003d None"},{"line_number":108,"context_line":"        if parsed_args.project_domain:"},{"line_number":109,"context_line":"            project_domain_id \u003d common_utils.find_domain_id_sdk("},{"line_number":110,"context_line":"                identity_client, parsed_args.project_domain"},{"line_number":111,"context_line":"            )"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        kwargs[\"project_id\"] \u003d common_utils._find_sdk_id("},{"line_number":114,"context_line":"            identity_client.find_project,"},{"line_number":115,"context_line":"            name_or_id\u003dparsed_args.project,"},{"line_number":116,"context_line":"            domain_id\u003dproject_domain_id,"},{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        kwargs[\"service_id\"] \u003d common_utils.find_service_sdk("},{"line_number":120,"context_line":"            identity_client, parsed_args.service"},{"line_number":121,"context_line":"        ).id"}],"source_content_type":"text/x-python","patch_set":3,"id":"86aaf66a_184afc99","line":118,"range":{"start_line":107,"start_character":0,"end_line":118,"end_character":1},"in_reply_to":"fa679a2c_a6d81956","updated":"2026-01-27 23:25:54.000000000","message":"Since the limit commands patch that this was dependent was merged today, I went and rebased this patch onto the patch containing the helper and updated this patch to use the helper.","commit_id":"afaeb2e5e66be8e083b17b1fe33376e14696cb0f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0db6c916357d05e5da0dbb50fc31081d9e171f1d","unresolved":true,"context_lines":[{"line_number":156,"context_line":"            metavar\u003d\u0027\u003cproject\u003e\u0027,"},{"line_number":157,"context_line":"            help\u003d_(\u0027List resource limits associated with project\u0027),"},{"line_number":158,"context_line":"        )"},{"line_number":159,"context_line":"        parser.add_argument("},{"line_number":160,"context_line":"            \u0027--project-domain\u0027,"},{"line_number":161,"context_line":"            metavar\u003d\u0027\u003cproject-domain\u003e\u0027,"},{"line_number":162,"context_line":"            dest\u003d\u0027project_domain\u0027,"},{"line_number":163,"context_line":"            help\u003d_(\u0027Domain owning \u003cproject\u003e (name or ID)\u0027),"},{"line_number":164,"context_line":"        )"},{"line_number":165,"context_line":"        return parser"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"b422f5ad_9a5307e6","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":9},"updated":"2026-01-27 17:20:31.000000000","message":"Same comment as above.","commit_id":"afaeb2e5e66be8e083b17b1fe33376e14696cb0f"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"1ca012eb83f9dc1a74ee3801b1331f0f3faa9e08","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            metavar\u003d\u0027\u003cproject\u003e\u0027,"},{"line_number":157,"context_line":"            help\u003d_(\u0027List resource limits associated with project\u0027),"},{"line_number":158,"context_line":"        )"},{"line_number":159,"context_line":"        parser.add_argument("},{"line_number":160,"context_line":"            \u0027--project-domain\u0027,"},{"line_number":161,"context_line":"            metavar\u003d\u0027\u003cproject-domain\u003e\u0027,"},{"line_number":162,"context_line":"            dest\u003d\u0027project_domain\u0027,"},{"line_number":163,"context_line":"            help\u003d_(\u0027Domain owning \u003cproject\u003e (name or ID)\u0027),"},{"line_number":164,"context_line":"        )"},{"line_number":165,"context_line":"        return parser"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":3,"id":"dce04d3c_3b95ed5d","line":164,"range":{"start_line":159,"start_character":0,"end_line":164,"end_character":9},"in_reply_to":"b422f5ad_9a5307e6","updated":"2026-01-27 23:15:48.000000000","message":"Done","commit_id":"afaeb2e5e66be8e083b17b1fe33376e14696cb0f"}]}
