{"id":34039199,"url":"https://github.com/cloudsmith-io/cloudsmith-cli","last_synced_at":"2026-01-22T18:10:38.189Z","repository":{"id":26900977,"uuid":"74998694","full_name":"cloudsmith-io/cloudsmith-cli","owner":"cloudsmith-io","description":"Cloudsmith Command Line Interface (CLI)","archived":false,"fork":false,"pushed_at":"2026-01-15T15:45:27.000Z","size":1134,"stargazers_count":69,"open_issues_count":13,"forks_count":37,"subscribers_count":21,"default_branch":"master","last_synced_at":"2026-01-15T15:51:18.191Z","etag":null,"topics":["api","cli","cloudsmith","cloudsmith-cli","command-line"],"latest_commit_sha":null,"homepage":"https://help.cloudsmith.io/docs/cli/","language":"Python","has_issues":true,"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/cloudsmith-io.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"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":"2016-11-28T17:48:33.000Z","updated_at":"2026-01-09T18:01:55.000Z","dependencies_parsed_at":"2023-11-28T21:29:03.268Z","dependency_job_id":"710bfc2d-3c79-4a3d-92c1-39ab15c18f7e","html_url":"https://github.com/cloudsmith-io/cloudsmith-cli","commit_stats":{"total_commits":386,"total_committers":18,"mean_commits":"21.444444444444443","dds":"0.27461139896373055","last_synced_commit":"c7b48836466c45ab6271ef36c8571d3dd3d712a3"},"previous_names":[],"tags_count":121,"template":false,"template_full_name":null,"purl":"pkg:github/cloudsmith-io/cloudsmith-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsmith-io%2Fcloudsmith-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsmith-io%2Fcloudsmith-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsmith-io%2Fcloudsmith-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsmith-io%2Fcloudsmith-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudsmith-io","download_url":"https://codeload.github.com/cloudsmith-io/cloudsmith-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsmith-io%2Fcloudsmith-cli/sbom","scorecard":{"id":293270,"data":{"date":"2025-08-11","repo":{"name":"github.com/cloudsmith-io/cloudsmith-cli","commit":"b1edd94ade87c86d2864b6da8b21c69a367d0ab7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":3,"reason":"4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/release.yml:10","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudsmith-io/cloudsmith-cli/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudsmith-io/cloudsmith-cli/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudsmith-io/cloudsmith-cli/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudsmith-io/cloudsmith-cli/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudsmith-io/cloudsmith-cli/release.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating python:3.12-alpine to python:3.12-alpine@sha256:02a73ead8397e904cea6d17e18516f1df3590e05dc8823bd5b1c7f849227d272","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:23","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.8.3 not signed: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/222464530","Warn: release artifact v1.8.2 not signed: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/220991912","Warn: release artifact v1.8.1 not signed: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/216864853","Warn: release artifact v1.8.0 not signed: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/216204349","Warn: release artifact v1.7.2 not signed: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/215143135","Warn: release artifact v1.8.3 does not have provenance: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/222464530","Warn: release artifact v1.8.2 does not have provenance: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/220991912","Warn: release artifact v1.8.1 does not have provenance: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/216864853","Warn: release artifact v1.8.0 does not have provenance: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/216204349","Warn: release artifact v1.7.2 does not have provenance: https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/215143135"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":5,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'master'","Warn: 'stale review dismissal' is disabled on branch 'master'","Warn: required approving review count is 1 on branch 'master'","Warn: codeowners review is not required on branch 'master'","Warn: 'last push approval' is disabled on branch 'master'","Info: status check found to merge onto on branch 'master'","Info: PRs are required in order to make changes on branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:12"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2024-187 / GHSA-rqc4-2hc7-8c8v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":9,"reason":"SAST tool is not run on all commits -- score normalized to 9","details":["Warn: 28 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T18:51:21.598Z","repository_id":26900977,"created_at":"2025-08-17T18:51:21.599Z","updated_at":"2025-08-17T18:51:21.599Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28667881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T17:07:18.858Z","status":"ssl_error","status_checked_at":"2026-01-22T17:05:02.040Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api","cli","cloudsmith","cloudsmith-cli","command-line"],"created_at":"2025-12-13T21:28:17.273Z","updated_at":"2026-01-22T18:10:38.180Z","avatar_url":"https://github.com/cloudsmith-io.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloudsmith Command Line Interface (CLI)\n\n[![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/badges/version/cloudsmith/cli/python/cloudsmith-cli/latest/xf=bdist_wheel;xn=cloudsmith-cli;xv=py2.py3/?render=true)](https://cloudsmith.io/~cloudsmith/repos/cli/packages/detail/python/cloudsmith-cli/latest/xf=bdist_wheel;xn=cloudsmith-cli;xv=py2.py3/)\n[![Python Versions](https://img.shields.io/pypi/pyversions/cloudsmith-cli.svg)](https://pypi.python.org/pypi/cloudsmith-cli)\n[![PyPI Version](https://img.shields.io/pypi/v/cloudsmith-cli.svg)](https://pypi.python.org/pypi/cloudsmith-cli)\n[![GitHub Actions](https://github.com/cloudsmith-io/cloudsmith-cli/actions/workflows/test.yml/badge.svg)](https://github.com/cloudsmith-io/cloudsmith-cli/actions/workflows/test.yml)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\n\nThe [Cloudsmith](https://cloudsmith.io) Command Line Interface (CLI) is a Python 3 text-based interface to the [API](https://api.cloudsmith.io). This allows users, machines and other services to access and integrate smoothly with Cloudsmith without requiring explicit plugins or tools. [Be awesome. Automate Everything](https://cloudsmith.com/company/the-tao-of-cloudsmith/).\n\nThe following asciinema video demonstrates some of the CLI commands:\n[![asciicast](https://asciinema.org/a/DkNXQWQGBjWkfGPAkDAPNz7xe.svg)](https://asciinema.org/a/DkNXQWQGBjWkfGPAkDAPNz7xe)\n\nWe also have a [demo video on YouTube](https://youtu.be/R-g8ZhDwTKk):\n\nYou can also read our [blog article](https://blog.cloudsmith.io/2017/11/25/automation-as-simple-as-a-b-cli/) that introduced the first version of the CLI and the Cloudsmith RESTful API.\n\n\n## Changelog\n\nPlease see the [changelog](https://github.com/cloudsmith-io/cloudsmith-cli/blob/master/CHANGELOG.md) for the list of changes by version. The current version is displayed in the PyPi badge at the top.\n\n\n## Features\n\nThe CLI currently supports the following commands (and sub-commands):\n\n- `authenticate`|`auth`:  Authenticate the CLI against an organization's SAML configuration.\n- `check`:                Check rate limits and service status.\n- `copy`|`cp`:            Copy a package to another repository.\n- `delete`|`rm`:          Delete a package from a repository.\n- `dependencies`|`deps`:  List direct (non-transitive) dependencies for a package.\n- `docs`:                 Launch the help website in your browser.\n- `entitlements`|`ents`:  Manage the entitlements for a repository.\n  - `create`|`new`:         Create a new entitlement in a repository.\n  - `delete`|`rm`:          Delete an entitlement from a repository.\n  - `list`|`ls`:            List entitlements for a repository.\n  - `refresh`:              Refresh an entitlement in a repository.\n  - `sync`:                 Sync entitlements from another repository.\n  - `update`|`set`:         Update (patch) a entitlement in a repository.\n- `help`:                 Display the delightful help message and exit.\n- `list`|`ls`:            List distros, packages, repos and entitlements.\n  - `dependencies`|`deps`   List direct (non-transitive) dependencies for a package.\n  - `distros`:              List available distributions.\n  - `entitlements`|`ents`:  List entitlements for a repository.\n  - `packages`:             List packages for a repository. (Aliases `repos list`)\n  - `repos`:                List repositories for a namespace (owner).\n- `login`|`token`:        Retrieve your API authentication token/key via login.\n- `metrics`:              Metrics and statistics for a repository.\n  - `tokens`:               Retrieve bandwidth usage for entitlement tokens.\n  - `packages`:             Retrieve package usage for repository.\n- `move`|`mv`|`promote`:  Move (promote) a package to another repo.\n- `policy`:               Manage policies for an organization.\n  - `deny`:                 Manage deny policies for an organization.\n  - `license`:              Manage license policies for an organization.\n  - `vulnerability`:        Manage vulnerability policies for an organization.\n- `push`|`upload`:        Push (upload) a new package to a repository.\n  - `alpine`:               Push (upload) a new Alpine package upstream.\n  - `cargo`:                Push (upload) a new Cargo package upstream.\n  - `composer`:             Push (upload) a new Composer package upstream.\n  - `cocoapods`:            Push (upload) a new CocoaPods package upstream.\n  - `conan`:                Push (upload) a new Conan (C++) package upstream.\n  - `cran`:                 Push (upload) a new R/CRAN package upstream.\n  - `deb`:                  Push (upload) a new Debian package upstream.\n  - `docker`:               Push (upload) a new Docker image upstream.\n  - `go`:                   Push (upload) a new Go module upstream.\n  - `helm`:                 Push (upload) a new Helm package upstream.\n  - `luarocks`:             Push (upload) a new Lua module upstream.\n  - `maven`:                Push (upload) a new Maven package upstream.\n  - `npm`:                  Push (upload) a new Npm package upstream.\n  - `nuget`:                Push (upload) a new NuGet package upstream.\n  - `python`:               Push (upload) a new Python package upstream.\n  - `raw`:                  Push (upload) a new Raw package upstream.\n  - `rpm`:                  Push (upload) a new RedHat package upstream.\n  - `ruby`:                 Push (upload) a new Ruby package upstream.\n  - `terraform`:            Push (upload) a new Terraform package upstream.\n  - `vagrant`:              Push (upload) a new Vagrant package upstream.\n- `quarantine`|`block`:   Manage quarantined packages in a repository.\n  - `add`:                  Add a package to quarantine.\n  - `remove`|`rm`|`restore`: Add a package to quarantine.\n- `quota`:                Quota limits and history for a organisation.\n  - `limits`:               Display the Quota (bandwidth \u0026 storage usage/limits) for a specific organisation.\n  - `history`:              Display the Quota History (upload, download, and storage usage/limits) for a specific organisation.\n- `repositories`|`repos`: Manage repositories.\n  - `create`|`new`:         Create a new repository in a namespace.\n  - `get`|`list`|`ls`:      List repositories for a user, in a namespace or get details for a specific repository.\n  - `update`:               Update a repository in a namespace.\n  - `delete`|`rm`:          Delete a repository from a namespace.\n- `resync`:               Resynchronise a package in a repository.\n- `status`:               Get the synchronisation status for a package.\n- `tags`|`tag`:           Manage the tags for a package in a repository.\n  - `add`:                  Add tags to a package in a repository.\n  - `clear`:                Clear all existing (non-immutable) tags from a package in a repository.\n  - `list`|`ls`:            List tags for a package in a repository.\n  - `remove`|`rm`:          Remove tags from a package in a repository.\n  - `replace`:              Replace all existing (non-immutable) tags on a package in a repository.\n- `tokens`:               Manage API tokens.\n  - `list`|`ls`:            List API tokens.\n  - `refresh`:              Refresh an API token.\n- `upstream`:             Manage upstreams for a repository.\n  - `cran`:                 Manage cran upstreams for a repository.\n  - `dart`:                 Manage dart upstreams for a repository.\n  - `deb`:                  Manage deb upstreams for a repository.\n  - `docker`:               Manage docker upstreams for a repository.\n  - `helm`:                 Manage helm upstreams for a repository.\n  - `hex`:                  Manage hex upstreams for a repository.\n  - `maven`:                Manage maven upstreams for a repository.\n  - `npm`:                  Manage npm upstreams for a repository.\n  - `nuget`:                Manage nuget upstreams for a repository.\n  - `python`:               Manage python upstreams for a repository.\n  - `rpm`:                  Manage rpm upstreams for a repository.\n  - `ruby`:                 Manage ruby upstreams for a repository.\n  - `swift`:                Manage swift upstreams for a repository.\n- `whoami`:               Retrieve your current authentication status.\n\n## Installation\n\nYou can install the latest CLI application from:\n\n- [Official CLI Repository @ PyPi](https://pypi.python.org/pypi/cloudsmith-cli)\n- [Official CLI Repository @ Cloudsmith](https://cloudsmith.io/~cloudsmith/repos/cli/packages/)\n\nThe simplest way is to use `pip`, such as:\n\n```\npip install --upgrade cloudsmith-cli\n```\n\nOr you can get the latest pre-release version from Cloudsmith:\n\n```\npip install --upgrade cloudsmith-cli --extra-index-url=https://dl.cloudsmith.io/public/cloudsmith/cli/python/index/\n```\n\n## Configuration\n\nThere are two configuration files used by the CLI:\n\n- `config.ini`: For non-credentials configuration.\n- `credentials.ini`: For credentials (authentication) configuration.\n\nBy default, the CLI will look for these in the following locations:\n\n- The current working directory.\n- A directory called `cloudsmith` in the OS-defined application directory. For example:\n  - Linux:\n    - `$HOME/.config/cloudsmith`\n    - `$HOME/.cloudsmith`\n  - Mac OS:\n    - `$HOME/Library/Application Support/cloudsmith`\n    - `$HOME/.cloudsmith`\n  - Windows:\n    - `C:\\Users\\\u003cuser\u003e\\AppData\\Local\\cloudsmith` (Win7+, not roaming)\n    - `C:\\Users\\\u003cuser\u003e\\AppData\\Roaming\\cloudsmith` (Win7+, roaming)\n    - `C:\\Documents and Settings\\\u003cuser\u003e\\Application Data\\cloudsmith` (WinXP, not roaming)\n    - `C:\\Documents and Settings\\\u003cuser\u003e\\Local Settings\\Application Data\\cloudsmith` (WinXP, roaming)\n    - `C:\\Documents and Settings\\\u003cuser\u003e\\.cloudsmith`\n\nBoth configuration files use the simple INI format, such as:\n\n```\n[default]\napi_key=1234567890abcdef1234567890abcdef\n```\n\nAdditionally, the CLI will store SSO access and refresh tokens in the system keyring\nusing the [`keyring`](https://github.com/jaraco/keyring) library.\n\n\n### Non-Credentials (config.ini)\n\nSee the [default config](https://raw.githubusercontent.com/cloudsmith-io/cloudsmith-cli/master/cloudsmith_cli/data/config.ini) in GitHub:\n\nYou can specify the following configuration options:\n\n- `api_host`: The API host to connect to.\n- `api_proxy`: The API proxy to connect through.\n- `api_ssl_verify`: Whether or not to use SSL verification for requests.\n- `api_user_agent`: The user agent to use for requests.\n\n### Credentials (credentials.ini)\n\nSee the [default config](https://raw.githubusercontent.com/cloudsmith-io/cloudsmith-cli/master/cloudsmith_cli/data/credentials.ini) in GitHub:\n\nYou can specify the following configuration options:\n\n- `api_key`: The API key for authenticating with the API.\n\n\n### Authenticating\n\nYou'll need to provide authentication to Cloudsmith for any CLI actions that result in accessing private data or making changes to resources (such as pushing a new package to a repository)..\n\n#### SAML authentication\n\nYou can authenticate using your organization's SAML provider, if configured, with the `cloudsmith auth` command:\n```\ncloudsmith auth --owner example\nBeginning authentication for the example org ...\nOpening your organization's SAML IDP URL in your browser: https://example.com/some-saml-idp\n\nStarting webserver to begin authentication ...\n\nAuthentication complete\n```\n\n#### Getting Your API Key\n\nYou can retrieve your API key using the `cloudsmith login` command:\n\n```\ncloudsmith login\nLogin: you@example.com\nPassword:\nRepeat for confirmation:\n```\n\n*Note:* Please ensure you use your email for the 'Login' prompt and not your user slug/identifier.\n\nThe resulting output looks something like:\n\n```\nRetrieving API token for 'you@example.com' ... OK\nYour API token is: 1234567890abcdef1234567890abcdef\n```\n\nOnce you have your API key you can then put this into your `credentials.ini`, use it as an environment variable `export CLOUDSMITH_API_KEY=your_key_here` or pass it to the CLI using the `-k your_key_here` flag.\n\nFor convenience the CLI will ask you if you want to install the default configuration files, complete with your API key, if they don't already exist. Say 'y' or 'yes' to create the configuration files.\n\nIf the configuration files already exist, you'll have to manually put the API key into the configuration files, but the CLI will print out their locations.\n\n\n## Uploading Packages\n\nAlthough native uploads, i.e. those supported by the native ecosystem of a package format, are often preferred; it's easy to publish with the Cloudsmith CLI too!\n\nFor example, if you wanted to upload a Debian package, you can do it in one-step. Assuming you have a package filename **libxml2-2.9.4-2.x86_64.deb**, representing **libxml 2.9.4**, for the **Ubuntu 16.04** distribution (which has a cloudsmith identifier of **ubuntu/xenial**):\n\n```\ncloudsmith push deb your-account/your-repo/ubuntu/xenial libxml2-2.9.4-2.x86_64.deb\n```\n\nWant to know how to do it with another packaging format? Easy, just ask for help:\n\n```\ncloudsmith push rpm --help\n```\n\n\n## Contributing\n\nYes! Please do contribute, this is why we love open source.  Please see [CONTRIBUTING](https://github.com/cloudsmith-io/cloudsmith-cli/blob/master/CONTRIBUTING.md) for contribution guidelines when making code changes or raising issues for bug reports, ideas, discussions and/or questions (i.e. help required).\n\n\n## License\n\nCopyright 2018 Cloudsmith Ltd\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\n\n     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\n\n## EOF\n\nThis quality product was brought to you by [Cloudsmith](https://cloudsmith.io) and the [fine folks who have contributed](https://github.com/cloudsmith-io/cloudsmith-cli/blob/master/CONTRIBUTORS.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudsmith-io%2Fcloudsmith-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudsmith-io%2Fcloudsmith-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudsmith-io%2Fcloudsmith-cli/lists"}