Skip to content

Conversation

@apoclyps
Copy link
Contributor

@apoclyps apoclyps commented Jan 23, 2026

What's Changed

This pull request introduces an update to the supported package formats to enable Generic uploads and upstreams. The changes ensure compatibility with newer versions of the Cloudsmith API and add support for an additional package type.

Dependency update:

  • Bumped the cloudsmith-api dependency version from >=2.0.22,<3.0 to >=2.0.23,<3.0 in setup.py to ensure compatibility with the latest API features.

depends on:

Supported formats:

  • Added "generic" to the list of supported package formats in cloudsmith_cli/cli/commands/upstream.py.

Additional Notes

Example usage

cloudsmith --version

Versions:
CLI Package Version: 1.11.2
API Package Version: 2.0.24
cloudsmith push generic --help

Usage: cloudsmith push generic [OPTIONS] OWNER/REPO PACKAGE_FILE

  Push/upload a new Generic package upstream.

  PACKAGE_FILE: The main file to create the package from.

  OWNER/REPO: Specify the OWNER namespace (i.e. user or org), and the REPO
  name where the package file will be uploaded to. All separated by a slash.

  Example: 'your-org/awesome-repo'.

Options:
  -C, --config-file PATH          The path to your config.ini file.
  --credentials-file PATH         The path to your credentials.ini file.
  -P, --profile TEXT              The name of the profile to use for
                                  configuration.
  -d, --debug                     Produce debug output during processing.
  -F, --output-format [pretty|json|pretty_json]
                                  Determines how output is formatted. This is
                                  only supported by a subset of the commands
                                  at the moment (e.g. list).
  -v, --verbose                   Produce more output during processing.
  -s, --skip-errors               Skip/ignore errors when copying packages.
  -W, --no-wait-for-sync          Don't wait for package synchronisation to
                                  complete before exiting.
  -I, --wait-interval FLOAT       The minimum time in seconds to wait between
                                  checking sync status after uploading. This
                                  is cumulative, so that status checks happen
                                  with less frequency over time, upto a
                                  maximum of 5 minutes of waiting.  [default:
                                  5.0]
  --sync-attempts INTEGER         Number of times to attempt package
                                  synchronisation. If the package fails the
                                  first time, the client will attempt to
                                  automatically resynchronise it.
  -k, --api-key TEXT              The API key for authenticating with the API.
  --api-host TEXT                 The API host to connect to.
  --api-proxy TEXT                The API proxy to connect through.
  -S, --without-api-ssl-verify    Don't verify the SSL connection for the API.
                                  This is dangerous and should only be used in
                                  an old/broken environment that doesn't
                                  support the same secure ciphers as
                                  Cloudsmith.
  --api-user-agent TEXT           The user agent to use for requests.
  --api-headers TEXT              A CSV list of extra headers (key=value) to
                                  send to the API.
  -R, --without-rate-limit        Don't obey the suggested rate limit
                                  interval. The CLI will otherwise
                                  automatically sleep between commands to
                                  ensure that you do not hit the server-side
                                  rate limit.
  --rate-limit-warning INTEGER    When rate limiting, display information that
                                  it is happening if wait interval is higher
                                  than this setting. By default no information
                                  will be printed. Set to zero to always see
                                  it.
  --error-retry-max INTEGER       The maximum amount of times to retry on
                                  errors received from the API, as determined
                                  by the --error-retry-codes parameter.
  --error-retry-backoff FLOAT     The backoff factor determines how long to
                                  wait in seconds between error retries. The
                                  backoff factor is multiplied by the amount
                                  of retries so far. So if 1.0, then the wait
                                  is 1.0s then 2.0s, then 4.0s, and so forth.
  --error-retry-codes TEXT        The status codes that when received from the
                                  API will cause a retry (if --error-retry-max
                                  is > 0). By default this will be for 429,
                                  500, 502, 503 and 504 error codes.
  -n, --dry-run                   Execute in dry run mode (don't upload
                                  anything.)
  --filepath TEXT                 The full filepath of the package including
                                  filename.  [required]
  --name TEXT                     The name of this package.
  --republish / --no-republish    If true, the uploaded package will overwrite
                                  any others with the same attributes (e.g.
                                  same version); otherwise, it will be flagged
                                  as a duplicate.
  --tags TEXT                     A comma-separated values list of tags to add
                                  to the package.
  --version TEXT                  The raw version for this package.
  -h, --help                      Show this message and exit.

@apoclyps apoclyps self-assigned this Jan 23, 2026
@apoclyps
Copy link
Contributor Author

cloudsmith-io/cloudsmith-api#85 needs to be merged to generate the api bindings before this can be rerun

@apoclyps apoclyps force-pushed the kyleharrison/eng-9722/add-support-for-generic-format-and-upstreams branch from f698098 to 79b7c96 Compare January 26, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

2 participants