)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8fc6fe488feedaed0d4d93569582fbf7b58f4926","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e31eb73d_ce72ec43","updated":"2026-02-02 16:56:31.000000000","message":"Thanks Lubo, will let @matt.hall@couchbase.com +2","commit_id":"d3908542b92f01cf6a15853584bc232c7280f137"}],"cbmgr.py":[{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"72a0c80334a7be022faf68184de09e60e2c0ab72","unresolved":true,"context_lines":[{"line_number":7208,"context_line":"                  f\" {healthy!s:\u003c7}| {repository[\u0027repo\u0027]}\")"},{"line_number":7209,"context_line":""},{"line_number":7210,"context_line":""},{"line_number":7211,"context_line":"def check_cloud_params(location: str, opts: Dict[str, str]) -\u003e Optional[List[str]]:"},{"line_number":7212,"context_line":"    \"\"\"Checks that inside kwargs there is a valid set of parameters to add a cloud repository"},{"line_number":7213,"context_line":"    Args:"},{"line_number":7214,"context_line":"        location (str): The archive to use for the repository."}],"source_content_type":"text/x-python","patch_set":3,"id":"70818a1c_72a6985c","line":7211,"range":{"start_line":7211,"start_character":38,"end_line":7211,"end_character":58},"updated":"2026-01-16 15:56:24.000000000","message":"AFAICT this is not accurate. `opts` is not a Dict - I think it\u0027s an `argparse.Namespace`. Same in the docstring.","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"72a0c80334a7be022faf68184de09e60e2c0ab72","unresolved":true,"context_lines":[{"line_number":7208,"context_line":"                  f\" {healthy!s:\u003c7}| {repository[\u0027repo\u0027]}\")"},{"line_number":7209,"context_line":""},{"line_number":7210,"context_line":""},{"line_number":7211,"context_line":"def check_cloud_params(location: str, opts: Dict[str, str]) -\u003e Optional[List[str]]:"},{"line_number":7212,"context_line":"    \"\"\"Checks that inside kwargs there is a valid set of parameters to add a cloud repository"},{"line_number":7213,"context_line":"    Args:"},{"line_number":7214,"context_line":"        location (str): The archive to use for the repository."}],"source_content_type":"text/x-python","patch_set":3,"id":"d877a2ba_337e2454","line":7211,"range":{"start_line":7211,"start_character":4,"end_line":7211,"end_character":22},"updated":"2026-01-16 15:56:24.000000000","message":"There is an existing `check_cloud_params`. There is no duplicating the code - please remove either this one or the other, and use the remaining one everywhere","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"139ab7a10a139a478d6ea2611c951f5da910f5de","unresolved":false,"context_lines":[{"line_number":7208,"context_line":"                  f\" {healthy!s:\u003c7}| {repository[\u0027repo\u0027]}\")"},{"line_number":7209,"context_line":""},{"line_number":7210,"context_line":""},{"line_number":7211,"context_line":"def check_cloud_params(location: str, opts: Dict[str, str]) -\u003e Optional[List[str]]:"},{"line_number":7212,"context_line":"    \"\"\"Checks that inside kwargs there is a valid set of parameters to add a cloud repository"},{"line_number":7213,"context_line":"    Args:"},{"line_number":7214,"context_line":"        location (str): The archive to use for the repository."}],"source_content_type":"text/x-python","patch_set":3,"id":"c9359534_579ffeae","line":7211,"range":{"start_line":7211,"start_character":4,"end_line":7211,"end_character":22},"in_reply_to":"56177be2_b4476daf","updated":"2026-02-02 15:32:15.000000000","message":"Acknowledged","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f51119008dc55ab9e311d300b2d2691601a63204","unresolved":false,"context_lines":[{"line_number":7208,"context_line":"                  f\" {healthy!s:\u003c7}| {repository[\u0027repo\u0027]}\")"},{"line_number":7209,"context_line":""},{"line_number":7210,"context_line":""},{"line_number":7211,"context_line":"def check_cloud_params(location: str, opts: Dict[str, str]) -\u003e Optional[List[str]]:"},{"line_number":7212,"context_line":"    \"\"\"Checks that inside kwargs there is a valid set of parameters to add a cloud repository"},{"line_number":7213,"context_line":"    Args:"},{"line_number":7214,"context_line":"        location (str): The archive to use for the repository."}],"source_content_type":"text/x-python","patch_set":3,"id":"0071ae45_555c06f0","line":7211,"range":{"start_line":7211,"start_character":38,"end_line":7211,"end_character":58},"in_reply_to":"70818a1c_72a6985c","updated":"2026-01-21 14:42:16.000000000","message":"Done","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f51119008dc55ab9e311d300b2d2691601a63204","unresolved":true,"context_lines":[{"line_number":7208,"context_line":"                  f\" {healthy!s:\u003c7}| {repository[\u0027repo\u0027]}\")"},{"line_number":7209,"context_line":""},{"line_number":7210,"context_line":""},{"line_number":7211,"context_line":"def check_cloud_params(location: str, opts: Dict[str, str]) -\u003e Optional[List[str]]:"},{"line_number":7212,"context_line":"    \"\"\"Checks that inside kwargs there is a valid set of parameters to add a cloud repository"},{"line_number":7213,"context_line":"    Args:"},{"line_number":7214,"context_line":"        location (str): The archive to use for the repository."}],"source_content_type":"text/x-python","patch_set":3,"id":"56177be2_b4476daf","line":7211,"range":{"start_line":7211,"start_character":4,"end_line":7211,"end_character":22},"in_reply_to":"d877a2ba_337e2454","updated":"2026-01-21 14:42:16.000000000","message":"As before, I prefer not to tangle up the implementation of the new commands with the deprecated one. This will allow us to easily delete the old one later.","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"72a0c80334a7be022faf68184de09e60e2c0ab72","unresolved":true,"context_lines":[{"line_number":7224,"context_line":"    staging_dir \u003d opts.cloud_staging_dir"},{"line_number":7225,"context_line":""},{"line_number":7226,"context_line":"    if (creds_name and (creds_id or creds_key)) or (not creds_name and not (creds_id or creds_key)):"},{"line_number":7227,"context_line":"        return [\u0027must provide either --cloud-credentials-name or --cloud-credentials-key and \u0027"},{"line_number":7228,"context_line":"                \u0027--cloud-credentials-id\u0027]"},{"line_number":7229,"context_line":"    if not staging_dir:"},{"line_number":7230,"context_line":"        return [\u0027--cloud-staging-dir is required\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f3f5215_54895eed","line":7227,"range":{"start_line":7227,"start_character":45,"end_line":7227,"end_character":56},"updated":"2026-01-16 15:56:24.000000000","message":"The flag is `--cloud-credential-name`, not `--cloud-credentiala-name`","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f51119008dc55ab9e311d300b2d2691601a63204","unresolved":false,"context_lines":[{"line_number":7224,"context_line":"    staging_dir \u003d opts.cloud_staging_dir"},{"line_number":7225,"context_line":""},{"line_number":7226,"context_line":"    if (creds_name and (creds_id or creds_key)) or (not creds_name and not (creds_id or creds_key)):"},{"line_number":7227,"context_line":"        return [\u0027must provide either --cloud-credentials-name or --cloud-credentials-key and \u0027"},{"line_number":7228,"context_line":"                \u0027--cloud-credentials-id\u0027]"},{"line_number":7229,"context_line":"    if not staging_dir:"},{"line_number":7230,"context_line":"        return [\u0027--cloud-staging-dir is required\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"6fa1e90d_05ad6644","line":7227,"range":{"start_line":7227,"start_character":45,"end_line":7227,"end_character":56},"in_reply_to":"5f3f5215_54895eed","updated":"2026-01-21 14:42:16.000000000","message":"Done. In cases like this it is good to have a separate implementation because the error message will no longer be accurate for the old command.","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"72a0c80334a7be022faf68184de09e60e2c0ab72","unresolved":true,"context_lines":[{"line_number":7353,"context_line":"        \"\"\"Run the backup-service repo-add subcommand\"\"\""},{"line_number":7354,"context_line":"        _exit_if_errors(check_cloud_params(opts.location, opts))"},{"line_number":7355,"context_line":""},{"line_number":7356,"context_line":"        request_body \u003d {"},{"line_number":7357,"context_line":"            \"plan\": opts.plan,"},{"line_number":7358,"context_line":"            \"archive\": opts.location,"},{"line_number":7359,"context_line":"            \"bucket_name\": opts.bucket_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"59f0f32d_c4531f8b","line":7356,"updated":"2026-01-16 15:56:24.000000000","message":"We add all fields here, even the ones that are empty. Even if this works, it\u0027s would be better to do what the existing `add_active_repository` does, and selectively add the non-empty fields.","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f51119008dc55ab9e311d300b2d2691601a63204","unresolved":false,"context_lines":[{"line_number":7353,"context_line":"        \"\"\"Run the backup-service repo-add subcommand\"\"\""},{"line_number":7354,"context_line":"        _exit_if_errors(check_cloud_params(opts.location, opts))"},{"line_number":7355,"context_line":""},{"line_number":7356,"context_line":"        request_body \u003d {"},{"line_number":7357,"context_line":"            \"plan\": opts.plan,"},{"line_number":7358,"context_line":"            \"archive\": opts.location,"},{"line_number":7359,"context_line":"            \"bucket_name\": opts.bucket_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1c0936f6_4b7e13bb","line":7356,"in_reply_to":"59f0f32d_c4531f8b","updated":"2026-01-21 14:42:16.000000000","message":"Done","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005440,"name":"Matt Hall","email":"matt.hall@couchbase.com","username":"matthallcb","avatars":[{"url":"https://www.gravatar.com/avatar/165b38e9a590c70ff8b83b70e6494485.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/165b38e9a590c70ff8b83b70e6494485.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/165b38e9a590c70ff8b83b70e6494485.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/165b38e9a590c70ff8b83b70e6494485.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0812d67af2af548f48ff6df4cdbf3a24620ca502","unresolved":true,"context_lines":[{"line_number":7386,"context_line":"        if opts.cloud_force_path_style is not None:"},{"line_number":7387,"context_line":"            request_body[\"cloud_force_path_style\"] \u003d opts.cloud_force_path_style"},{"line_number":7388,"context_line":""},{"line_number":7389,"context_line":"        _, errors \u003d self.rest.add_backup_active_repository(opts.id, request_body)"},{"line_number":7390,"context_line":"        _exit_if_errors(errors)"},{"line_number":7391,"context_line":"        _success(\u0027Added repository\u0027)"},{"line_number":7392,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"143dae7a_715a2a12","line":7389,"updated":"2026-02-02 14:59:37.000000000","message":"Elsewhere we build the request body in `self.rest` - why not here?","commit_id":"9067a5f20f010a22a829edec439aa1cadee8bc33"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"7530cb53144a693f433943eca2d5428a2385ca3f","unresolved":true,"context_lines":[{"line_number":7386,"context_line":"        if opts.cloud_force_path_style is not None:"},{"line_number":7387,"context_line":"            request_body[\"cloud_force_path_style\"] \u003d opts.cloud_force_path_style"},{"line_number":7388,"context_line":""},{"line_number":7389,"context_line":"        _, errors \u003d self.rest.add_backup_active_repository(opts.id, request_body)"},{"line_number":7390,"context_line":"        _exit_if_errors(errors)"},{"line_number":7391,"context_line":"        _success(\u0027Added repository\u0027)"},{"line_number":7392,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b1792f46_55a4a901","line":7389,"in_reply_to":"143dae7a_715a2a12","updated":"2026-02-02 15:20:10.000000000","message":"It is inconsistent. Sometimes we build it here. The original `add_active_repository` also constructs the body which is why `rest.add_backup_active_repository` expects to receive it.","commit_id":"9067a5f20f010a22a829edec439aa1cadee8bc33"},{"author":{"_account_id":1005440,"name":"Matt Hall","email":"matt.hall@couchbase.com","username":"matthallcb","avatars":[{"url":"https://www.gravatar.com/avatar/165b38e9a590c70ff8b83b70e6494485.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/165b38e9a590c70ff8b83b70e6494485.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/165b38e9a590c70ff8b83b70e6494485.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/165b38e9a590c70ff8b83b70e6494485.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b9c34a22097ace41f9f496079a915942283a7401","unresolved":false,"context_lines":[{"line_number":7386,"context_line":"        if opts.cloud_force_path_style is not None:"},{"line_number":7387,"context_line":"            request_body[\"cloud_force_path_style\"] \u003d opts.cloud_force_path_style"},{"line_number":7388,"context_line":""},{"line_number":7389,"context_line":"        _, errors \u003d self.rest.add_backup_active_repository(opts.id, request_body)"},{"line_number":7390,"context_line":"        _exit_if_errors(errors)"},{"line_number":7391,"context_line":"        _success(\u0027Added repository\u0027)"},{"line_number":7392,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"70eb4738_45121850","line":7389,"in_reply_to":"b1792f46_55a4a901","updated":"2026-02-03 09:28:41.000000000","message":"Acknowledged","commit_id":"9067a5f20f010a22a829edec439aa1cadee8bc33"}],"docs/modules/cli/pages/cbcli/couchbase-cli-backup-service-repo-add.adoc":[{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"72a0c80334a7be022faf68184de09e60e2c0ab72","unresolved":true,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[verse]"},{"line_number":15,"context_line":"_couchbase-cli backup-service_ [--cluster \u003curl\u003e] [--username \u003cuser\u003e]"},{"line_number":16,"context_line":"    [--password \u003cpassword\u003e] [--client-cert \u003cpath\u003e] [--client-cert-password \u003cpassword\u003e]"},{"line_number":17,"context_line":"    [--client-key \u003cpath\u003e] [--client-key-password \u003cpassword\u003e] _repo-add_"},{"line_number":18,"context_line":"    --id \u003cid\u003e --plan \u003cplan_name\u003e --location \u003clocation\u003e"},{"line_number":19,"context_line":"    [--bucket-name \u003cbucket_name\u003e] [--cloud-credential-name \u003cname\u003e]"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"6264885d_ccfb3b1d","line":16,"updated":"2026-01-16 15:56:24.000000000","message":"80 char line limit","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f51119008dc55ab9e311d300b2d2691601a63204","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[verse]"},{"line_number":15,"context_line":"_couchbase-cli backup-service_ [--cluster \u003curl\u003e] [--username \u003cuser\u003e]"},{"line_number":16,"context_line":"    [--password \u003cpassword\u003e] [--client-cert \u003cpath\u003e] [--client-cert-password \u003cpassword\u003e]"},{"line_number":17,"context_line":"    [--client-key \u003cpath\u003e] [--client-key-password \u003cpassword\u003e] _repo-add_"},{"line_number":18,"context_line":"    --id \u003cid\u003e --plan \u003cplan_name\u003e --location \u003clocation\u003e"},{"line_number":19,"context_line":"    [--bucket-name \u003cbucket_name\u003e] [--cloud-credential-name \u003cname\u003e]"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"05aabd76_b170c838","line":16,"in_reply_to":"6264885d_ccfb3b1d","updated":"2026-01-21 14:42:16.000000000","message":"Done","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"72a0c80334a7be022faf68184de09e60e2c0ab72","unresolved":true,"context_lines":[{"line_number":15,"context_line":"_couchbase-cli backup-service_ [--cluster \u003curl\u003e] [--username \u003cuser\u003e]"},{"line_number":16,"context_line":"    [--password \u003cpassword\u003e] [--client-cert \u003cpath\u003e] [--client-cert-password \u003cpassword\u003e]"},{"line_number":17,"context_line":"    [--client-key \u003cpath\u003e] [--client-key-password \u003cpassword\u003e] _repo-add_"},{"line_number":18,"context_line":"    --id \u003cid\u003e --plan \u003cplan_name\u003e --location \u003clocation\u003e"},{"line_number":19,"context_line":"    [--bucket-name \u003cbucket_name\u003e] [--cloud-credential-name \u003cname\u003e]"},{"line_number":20,"context_line":"    [--cloud-staging-dir \u003cpath\u003e] [--cloud-credentials-id \u003cid\u003e]"},{"line_number":21,"context_line":"    [--cloud-credentials-key \u003ckey\u003e] [--cloud-credentials-refresh-token \u003ctoken\u003e]"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"3bffe37d_83698220","line":18,"updated":"2026-01-16 15:56:24.000000000","message":"Need to be contained in `[]`","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f51119008dc55ab9e311d300b2d2691601a63204","unresolved":false,"context_lines":[{"line_number":15,"context_line":"_couchbase-cli backup-service_ [--cluster \u003curl\u003e] [--username \u003cuser\u003e]"},{"line_number":16,"context_line":"    [--password \u003cpassword\u003e] [--client-cert \u003cpath\u003e] [--client-cert-password \u003cpassword\u003e]"},{"line_number":17,"context_line":"    [--client-key \u003cpath\u003e] [--client-key-password \u003cpassword\u003e] _repo-add_"},{"line_number":18,"context_line":"    --id \u003cid\u003e --plan \u003cplan_name\u003e --location \u003clocation\u003e"},{"line_number":19,"context_line":"    [--bucket-name \u003cbucket_name\u003e] [--cloud-credential-name \u003cname\u003e]"},{"line_number":20,"context_line":"    [--cloud-staging-dir \u003cpath\u003e] [--cloud-credentials-id \u003cid\u003e]"},{"line_number":21,"context_line":"    [--cloud-credentials-key \u003ckey\u003e] [--cloud-credentials-refresh-token \u003ctoken\u003e]"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"44c5bbdb_0764c3aa","line":18,"in_reply_to":"3bffe37d_83698220","updated":"2026-01-21 14:42:16.000000000","message":"Done","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"72a0c80334a7be022faf68184de09e60e2c0ab72","unresolved":true,"context_lines":[{"line_number":55,"context_line":"The following options are used when creating a cloud backup repository that"},{"line_number":56,"context_line":"stores data in object storage."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"--cloud-credential-name \u003cname\u003e::"},{"line_number":59,"context_line":"    The name of a stored cloud credential set to use for this repository."},{"line_number":60,"context_line":"    If specified, you do not need to provide `--cloud-credentials-id` and"},{"line_number":61,"context_line":"    `--cloud-credentials-key`."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"92ac158e_f9690ea6","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":18},"updated":"2026-01-16 15:56:24.000000000","message":"I noted your reasoning in the commit, but now this differs from the other `--cloud-credentials*` flags","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"139ab7a10a139a478d6ea2611c951f5da910f5de","unresolved":true,"context_lines":[{"line_number":55,"context_line":"The following options are used when creating a cloud backup repository that"},{"line_number":56,"context_line":"stores data in object storage."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"--cloud-credential-name \u003cname\u003e::"},{"line_number":59,"context_line":"    The name of a stored cloud credential set to use for this repository."},{"line_number":60,"context_line":"    If specified, you do not need to provide `--cloud-credentials-id` and"},{"line_number":61,"context_line":"    `--cloud-credentials-key`."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"afe9e12b_896879c7","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":18},"in_reply_to":"25a23454_71e9fbe9","updated":"2026-02-02 15:32:15.000000000","message":"I\u0027d prefer for it to be consistent with the other flags.\n\nIt\u0027s a minor thing, but I\u0027m thinking of the case where you are manually entering flags on the command line - it would be weird to me to get an error when I modify a `--cloud-credentials-*` to `cloud-credentials-name`, and get an error for an unknown flag. I can further imagine someone starting at the flag in the docs/help message for a while before the realise the difference","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f51119008dc55ab9e311d300b2d2691601a63204","unresolved":true,"context_lines":[{"line_number":55,"context_line":"The following options are used when creating a cloud backup repository that"},{"line_number":56,"context_line":"stores data in object storage."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"--cloud-credential-name \u003cname\u003e::"},{"line_number":59,"context_line":"    The name of a stored cloud credential set to use for this repository."},{"line_number":60,"context_line":"    If specified, you do not need to provide `--cloud-credentials-id` and"},{"line_number":61,"context_line":"    `--cloud-credentials-key`."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"25a23454_71e9fbe9","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":18},"in_reply_to":"92ac158e_f9690ea6","updated":"2026-01-21 14:42:16.000000000","message":"The name of the body parameters also differ. I don\u0027t think this is a problem because they are not meant to be used at the same time. `-cloud-credential-name` is used instead if the `-cloud-credentials-*` flags.","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"fa1ad168a14ff3bfe6a589fb3246a67cc01ec07d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"The following options are used when creating a cloud backup repository that"},{"line_number":56,"context_line":"stores data in object storage."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"--cloud-credential-name \u003cname\u003e::"},{"line_number":59,"context_line":"    The name of a stored cloud credential set to use for this repository."},{"line_number":60,"context_line":"    If specified, you do not need to provide `--cloud-credentials-id` and"},{"line_number":61,"context_line":"    `--cloud-credentials-key`."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"9f31f5f9_6251b230","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":18},"in_reply_to":"afe9e12b_896879c7","updated":"2026-02-02 16:15:40.000000000","message":"Done","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005039,"name":"Safian Ali","email":"safian.ali@couchbase.com","username":"safianalicb","avatars":[{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd5ddc39eab136fd76ae4419d1a94039.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"72a0c80334a7be022faf68184de09e60e2c0ab72","unresolved":true,"context_lines":[{"line_number":110,"context_line":"that is using a base plan `_weekly`. The base plan defines the schedules of"},{"line_number":111,"context_line":"the tasks that the repository will run as well as what services it will backup."},{"line_number":112,"context_line":"The location is where the backups will be stored. This location is equivalent"},{"line_number":113,"context_line":"to a cbbackupmgr archive. Two repositories should *not* use the same archive."},{"line_number":114,"context_line":"Also `cbbackupmgr` should *not* be run on the archives managed by the service"},{"line_number":115,"context_line":"directly."},{"line_number":116,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"f63b4287_545ffa41","line":113,"range":{"start_line":113,"start_character":26,"end_line":113,"end_character":77},"updated":"2026-01-16 15:56:24.000000000","message":"Is this true? Why not?","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"},{"author":{"_account_id":1005389,"name":"Lubo Marinski","email":"lubo.marinski@couchbase.com","username":"lubomarinski","avatars":[{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60f9d0c92536ec050b83034161160480.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"f51119008dc55ab9e311d300b2d2691601a63204","unresolved":false,"context_lines":[{"line_number":110,"context_line":"that is using a base plan `_weekly`. The base plan defines the schedules of"},{"line_number":111,"context_line":"the tasks that the repository will run as well as what services it will backup."},{"line_number":112,"context_line":"The location is where the backups will be stored. This location is equivalent"},{"line_number":113,"context_line":"to a cbbackupmgr archive. Two repositories should *not* use the same archive."},{"line_number":114,"context_line":"Also `cbbackupmgr` should *not* be run on the archives managed by the service"},{"line_number":115,"context_line":"directly."},{"line_number":116,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"2e6b7d36_1a94aa43","line":113,"range":{"start_line":113,"start_character":26,"end_line":113,"end_character":77},"in_reply_to":"f63b4287_545ffa41","updated":"2026-01-21 14:42:16.000000000","message":"Looks like I have missed this. I don\u0027t think it is true. This was copied from the docs of the old command.","commit_id":"c1da34ce54ce4de390ab5a10cf36aa65f0b93d44"}]}
