{"id":31658397,"url":"https://github.com/couchbase/couchbase-cli","last_synced_at":"2025-10-07T15:21:38.132Z","repository":{"id":4148297,"uuid":"5262261","full_name":"couchbase/couchbase-cli","owner":"couchbase","description":"Command Line tools for Administering a Couchbase Cluster","archived":false,"fork":false,"pushed_at":"2025-07-18T19:26:00.000Z","size":7964,"stargazers_count":41,"open_issues_count":23,"forks_count":50,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-07-19T00:08:35.703Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.couchbase.com","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/couchbase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-08-01T17:19:50.000Z","updated_at":"2025-07-17T23:32:56.000Z","dependencies_parsed_at":"2024-02-22T13:28:20.140Z","dependency_job_id":"e0162252-aa63-4cb5-b767-7a1e8442f813","html_url":"https://github.com/couchbase/couchbase-cli","commit_stats":null,"previous_names":[],"tags_count":115,"template":false,"template_full_name":null,"purl":"pkg:github/couchbase/couchbase-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase%2Fcouchbase-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase%2Fcouchbase-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase%2Fcouchbase-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase%2Fcouchbase-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/couchbase","download_url":"https://codeload.github.com/couchbase/couchbase-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/couchbase%2Fcouchbase-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278796357,"owners_count":26047415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-07T15:21:34.725Z","updated_at":"2025-10-07T15:21:38.122Z","avatar_url":"https://github.com/couchbase.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Couchbase Command Line Tools\n\nThis repository contains a number of command line tools which perform actions against a local/remote Couchbase Cluster.\n\n## Maintained\n- cbrecovery (Recover missing vBuckets from a remote cluster)\n- cbworkloadgen (Workload generator)\n- couchbase-cli (Manage a local/remote Couchbase Cluster)\n\n## Deprecated\n- cbbackup (Online backup of a Couchbase cluster or server node)\n- cbbackupwrapper (Multi-processing wrapper for `cbbackup`)\n- cbrestore (Restore data backed up using `cbbackup` and `cbbackupwrapper`)\n- cbrestorewrapper (Multi-processing wrapper for `cbrestore`)\n- cbtransfer (Transfer data from source to destination)\n\n# Running\n\nWhen developing, the fastest way to get up-and-running with the command line tools in this repository is to use our\nprovided `Makefile`. The use this `Makefile` you will need to have [`make`](https://www.gnu.org/software/make) and\n[`pipenv`](https://github.com/pypa/pipenv) installed.\n\nRunning `make shell`, will use `pipenv` to create a virtual environment for the project with all the required\ndependencies (including development tools) and will launch a sub-shell in that environment. You should then be able to\nrun the desired tools by directly executing the Python files e.g. `./cbbackup` or `python3 cbbackup`.\n\nFor a more comprehensive environment, you may build the whole of `Couchbase Server` (which includes `couchbase-cli`)\nusing the [tlm](https://github.com/couchbase/tlm), in this case, you'd want to run the version of the chosen command\ntools which was build by `cmake` (usually contained in `install/bin`).\n\n## Documentation\n\nThe documentation for all the publicly available tools is stored in the `docs` directory and are written in AsciiDoc\nformat which is used to generate HTML/Man page files.\n\nThe documentation may be generated using the `generate.sh` script located in the `docs` directory. Please note that this\nscript will generate *all* the documentation; when submitting patches, it's common practice to comment out all but the\nupdated documentation.\n\nNote that the directory structure in `docs` is deeply nested in order for these documents to be incorporated directly\ninto the main documentation for Couchbase Server, hosted at https://docs.couchbase.com.\n\n# Testing\n\nRunning the unit tests contained in this repository can be done by running `make test`, this will setup a Python\nvirtual environment using `pipenv` and run any unit tests contained in the `test` directory. This may be run inside or\noutside of a shell created using `make shell`.\n\n# Contributing\n\nThe following sections cover some basics of how to contribute to `couchbase-cli` whilst following some of our common\npractices/conventions.\n\n## Gerrit\n\nTo contribute to this codebase you can upload patches through [Gerrit](http://review.couchbase.org). Make sure you have\nconfigured the git hooks as described in the [Git Hooks](#git-hooks) section so that the code is linted and formatted\nbefore uploading the patch.\n\nOnce you are ready to make your first commit note that *all* commits must be linked to an MB. This is done by making\nsure that the commit title has the following format `MB-XXXXX Commit title` where `MB-XXXXX` is a valid issue in\n[Jira](https://issues.couchbase.com).\n\n## Git Hooks\n\nBefore contributing any patches, the Git hooks should be configured to ensure code is correctly linted and formatted.\n\nThe Git hooks require the following dependencies:\n- aspell (Interactive spell checker)\n- pylint (Static code analysis tool which looks for programming errors)\n- sponge (Binary provided by `moreutils` which \"soaks\" all input before writing output)\n- wget (Used to download the `commit-msg` hook from Gerrit)\n\nOnce installed, the Git hooks may be setup using the following command:\n\n```sh\ngit config core.hooksPath .githooks\n```\n\nIf the Git hooks have been setup correctly, the Gerrit `commit-msg` hook will be downloaded automatically when creating\nyour first commit. However, this can also be done manually by downloading the\n[commit-msg](http://review.couchbase.org/tools/hooks/commit-msg) script, marking it as executable and placing it into\nthe `.githooks` directory.\n\n## Coding style\n\nIn this section we will cover notes on the exact coding style to use for this codebase. Most of the style rules are\nenforced by the linters, so here we will only cover ones that are not.\n\n### Documenting\n\n- All public functions should have a matching docstring.\n- Any non-trivial unexported function should also have a matching docstring. Note this is left up to the developer and\n  reviewer consideration.\n- Comments must be wrapped at 120 characters.\n- Notes on interesting/unexpected behavior should have a newline before them and use the `# NOTE:` prefix.\n\nPlease note that not all the code in the repository follows these rules, however, newly added/updated code should\ngenerally adhere to them.\n\n# Related Projects\n- [`backup`](https://github.com/couchbase/backup)\n- [`cbbs`](https://github.com/couchbase/cbbs)\n- [`tools-common`](https://github.com/couchbase/tools-common)\n\n# License\nCopyright 2021 Couchbase Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcouchbase%2Fcouchbase-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcouchbase%2Fcouchbase-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcouchbase%2Fcouchbase-cli/lists"}