{"id":19325304,"url":"https://github.com/duplocloud/duploctl","last_synced_at":"2025-10-24T22:39:14.967Z","repository":{"id":151960566,"uuid":"619988199","full_name":"duplocloud/duploctl","owner":"duplocloud","description":"A simple Python client for DuploCloud API. ","archived":false,"fork":false,"pushed_at":"2025-10-16T19:12:19.000Z","size":1215,"stargazers_count":58,"open_issues_count":9,"forks_count":3,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-10-17T08:58:57.742Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/duplocloud.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-27T20:08:52.000Z","updated_at":"2025-10-16T06:19:35.000Z","dependencies_parsed_at":"2023-09-25T22:49:38.968Z","dependency_job_id":"b8f81969-7631-49ea-9d41-448202e416a5","html_url":"https://github.com/duplocloud/duploctl","commit_stats":null,"previous_names":["duplocloud/duploctl"],"tags_count":91,"template":false,"template_full_name":null,"purl":"pkg:github/duplocloud/duploctl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Fduploctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Fduploctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Fduploctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Fduploctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duplocloud","download_url":"https://codeload.github.com/duplocloud/duploctl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Fduploctl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280878344,"owners_count":26406641,"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-24T02:00:06.418Z","response_time":73,"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":"2024-11-10T02:09:37.207Z","updated_at":"2025-10-24T22:39:14.934Z","avatar_url":"https://github.com/duplocloud.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Duplocloud Py Client\n\n[![Unit Tests](https://github.com/duplocloud/duploctl/actions/workflows/test_unit.yml/badge.svg)](https://github.com/duplocloud/duploctl/actions/workflows/test_unit.yml) [![PyPI - Version](https://img.shields.io/pypi/v/duplocloud-client?logo=pypi)](https://pypi.org/project/duplocloud-client/) [![Docker Image Version](https://img.shields.io/docker/v/duplocloud/duploctl?sort=semver\u0026logo=Docker\u0026label=docker\u0026color=blue\u0026link=https%3A%2F%2Fhub.docker.com%2Fr%2Fduplocloud%2Fduploctl)](https://hub.docker.com/r/duplocloud/duploctl) [![GitHub Release](https://img.shields.io/github/v/release/duplocloud/duploctl?logo=github\u0026label=Github\u0026color=purple)\n](https://github.com/duplocloud/duploctl) [![Static Badge](https://img.shields.io/badge/Docs-lightblue?logo=github)\n](https://cli.duplocloud.com/)\n\n```duploctl``` is a cli and package to work with a Duplocloud portal. It is a CLI for interacting with Duplocloud resources, such as Tenants, and is designed to work seamlessly within CLI-based CI/CD pipelines. It is a fully extensible package and can be used as both a Python module and a CLI.\n\n## Installation\n\nFrom PyPi:\n\n```sh\npip install duplocloud-client\n```\n\nFrom Homebrew:\n\n```sh\nbrew install duplocloud/tap/duploctl\n```\n\n## Usage\n\nUse ```duploctl``` as a CLI or as a standalone Python module called by your custom script.\n\n### Configuration\n\nUse the following syntax for these global arguments:\n\n| Arg | Env Var | Description | Default | Required |\n| --- | ------- | ----------- | ------- | -------- |\n| --host, -H | DUPLO_HOST | The host to connect to |  | Yes |\n| --token, -T | DUPLO_TOKEN | The token to use for auth |  | Yes |\n| --tenant, -t | DUPLO_TENANT | The tenant to use for auth | default | No |\n\n### CLI\n\nCLI command syntax for invoking ```duploctl```\n\n```sh\nduploctl \u003cresource\u003e \u003ccommand\u003e \u003cargs...\u003e\n```\n\n### Example Usages\n\nFull documentation is in the Wiki section.\n\nConfigure `duploctl` access with environment variables:\n\n```sh\nexport DUPLO_HOST=https://example.duplocloud.net\nexport DUPLO_TOKEN=AQAAA...\nexport DUPLO_TENANT=dev01\n```\n\nList the services in a tenant:\n\n```sh\nduploctl service list\n```\n\nRegister Profile for AWS:\n\n```sh\nduploctl jit update_aws_config myportal\n```\n\nOpen AWS Web Console:\n\n```sh\nduploctl jit web\n```\n\nGet Kubernetes config:\n\n```sh\nduploctl jit update_kubeconfig myinfra\n```\n\n### Python Module\n\nSpawn your client from a Python script using the ```DuploClient.from_env()``` method and arguments. The second return value are the unparsed arguments from the command line. This example uses the client as a callable using command like syntax.\n\n```python\nduplo, args = DuploClient.from_env()\nt = duplo(\"tenant\", \"find\", \"mytenant\")\nprint(t)\n```\n\nSpawn a client with a custom host and token from a Python script. This example loads a resource and runs a method manually.\n\n```python\nduplo = DuploClient.from_creds(host=\"https://example.duplocloud.net\", token=\"mytoken\")\ntenants = duplo.load(\"tenant\")\nt = tenants.find(\"mytenant\")\nprint(t)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduplocloud%2Fduploctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduplocloud%2Fduploctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduplocloud%2Fduploctl/lists"}