Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: Bug Report
about: Report a bug or unexpected behavior
title: "[BUG] "
labels: bug
---

## Description

<!-- A clear and concise description of what the bug is -->

## Steps to Reproduce

1.
2.
3.

## Expected Behavior

<!-- What you expected to happen -->

## Actual Behavior

<!-- What actually happened -->

## Environment

- **OS**: <!-- e.g., macOS 14.0, Ubuntu 22.04, Windows 11 -->
- **Python Version**: <!-- e.g., 3.9.7 -->
- **Cloudsmith CLI Version**: <!-- Run `cloudsmith --version` -->

## Logs/Output

<!-- If applicable, add logs or command output -->

```
paste logs here
```

## Additional Context

<!-- Add any other context about the problem here -->
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Cloudsmith Documentation
url: https://help.cloudsmith.io/docs/cloudsmith-cli
about: Check the official Cloudsmith CLI documentation
- name: Cloudsmith Support
url: https://cloudsmith.io/support/
about: Contact Cloudsmith support for account-specific issues
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: Feature Request
about: Suggest a new feature or enhancement
title: "[FEATURE] "
labels: enhancement
---

## Summary

<!-- A clear and concise description of the feature you'd like -->

## Problem Statement

<!-- What problem does this feature solve? -->

## Proposed Solution

<!-- Describe how you'd like this feature to work -->

## Alternatives Considered

<!-- Any alternative solutions or features you've considered -->

## Use Case

<!-- Describe your use case for this feature -->

## Additional Context

<!-- Add any other context, mockups, or screenshots about the feature request -->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Question
about: Ask a question about using the Cloudsmith CLI
title: "[QUESTION] "
labels: question
---

## Question

<!-- Your question here -->

## Context

<!-- Any relevant context that might help answer your question -->

## What I've Tried

<!-- What have you already tried or researched? -->

## Environment (if relevant)

- **OS**:
- **Python Version**:
- **Cloudsmith CLI Version**:
16 changes: 16 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Description

<!-- Provide a brief description of the changes in this PR -->

## Type of Change

- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
- [ ] Refactoring
- [ ] Other (please describe)

## Additional Notes

<!-- Any additional context or screenshots -->
11 changes: 11 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,14 @@ jobs:

- name: Run pylint
run: pylint --rcfile=.pylintrc cloudsmith_cli

typos:
name: Check for typos (typos)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Run typos
uses: crate-ci/typos@65120634e79d8374d1aa2f27e54baa0c364fff5a # v1.42.1
6 changes: 6 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Pre-Commit hooks
# See: https://pre-commit.com/hooks.html
repos:

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
Expand Down Expand Up @@ -80,3 +81,8 @@ repos:
"-sn", # Don't display the score
"--rcfile=.pylintrc", # Link to your config file
]

- repo: https://github.com/crate-ci/typos
rev: v1.42.1
hooks:
- id: typos
11 changes: 11 additions & 0 deletions .typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[default.extend-identifiers]
# Proper names - do not correct
Mno-hime = "Mno-hime"

[default.extend-words]
# Proper names - do not correct
hime = "hime"
McClory = "McClory"
mcclory = "mcclory"
Clory = "Clory"
repositor = "repositor"
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
### Added

- Added `--force` parameter to the Auth command to be used in conjunction with `--token` to refresh tokens without interactive prompts i.e automatic.
- Added `--force` parameter to the Tokens refresh command to automaticlly refresh without an interactive prompt.
- Added `--force` parameter to the Tokens refresh command to automatically refresh without an interactive prompt.

## [1.8.5] - 2025-10-16

Expand Down
2 changes: 1 addition & 1 deletion cloudsmith_cli/cli/commands/metrics/entitlements.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def _print_metrics_table(opts, data):
type=str,
required=False,
help=(
"A comma seperated list of entitlement token identifiers (i.e. slug_perm) or "
"A comma separated list of entitlement token identifiers (i.e. slug_perm) or "
"token secrets. If a list is not specified then all entitlement tokens will "
"be included for a given namespace or repository."
),
Expand Down
2 changes: 1 addition & 1 deletion cloudsmith_cli/cli/commands/metrics/packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def _print_metrics_table(opts, data):
type=str,
required=False,
help=(
"A comma seperated list of package identifiers (i.e. slug_perm). "
"A comma separated list of package identifiers (i.e. slug_perm). "
"If a list is not specified then all package will be included for "
"a given repository."
),
Expand Down
2 changes: 1 addition & 1 deletion cloudsmith_cli/cli/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def get_storage_name_for(cls, section_name):

@classmethod
def get_default_filepath(cls):
"""Get the default filepath for the configuratin file."""
"""Get the default filepath for the configuration file."""
if not cls.config_files:
return None
if not cls.config_searchpath:
Expand Down
6 changes: 3 additions & 3 deletions cloudsmith_cli/cli/tests/commands/test_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ def parse_table(output):
Results: 1 repository visible
```
"""
seperator = "|"
separator = "|"
column_headers = []
row_values = []

for line in output.split("\n"):
if seperator in line:
raw_values = [raw_value.strip() for raw_value in line.split(seperator)]
if separator in line:
raw_values = [raw_value.strip() for raw_value in line.split(separator)]
if not column_headers:
# If we don't have keys yet, then this must be the column headers
column_headers = raw_values
Expand Down
2 changes: 1 addition & 1 deletion cloudsmith_cli/core/ratelimits.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def from_dict(cls, data):
info.remaining = int(data["remaining"])
if "reset" in data:
info.reset = datetime.datetime.utcfromtimestamp(int(data["reset"]))
if "throtted" in data:
if "throttled" in data:
info.throttled = bool(data["throttled"])
else:
info.throttled = info.remaining == 0
Expand Down
2 changes: 1 addition & 1 deletion cloudsmith_cli/core/tests/test_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def mocked_update_refresh_attempted_at():

class TestInitialiseApi:
def setup_class(cls): # pylint: disable=no-self-argument
# For the purposes of these tests, we need to explcitly call set_default(None) at the
# For the purposes of these tests, we need to explicitly call set_default(None) at the
# outset because other tests in the suite may have called initialise_api() already.
# Resetting Configuration._default to None here effectively reverts the
# Configuration class to its vanilla, unmodified behaviour/state.
Expand Down