From 03bb323813d93ed3d9248ddb08450de8a33e0f24 Mon Sep 17 00:00:00 2001 From: "salt-extensions-renovatebot[bot]" <182623858+salt-extensions-renovatebot[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 19:27:51 +0000 Subject: [PATCH 1/2] Update dependency https://github.com/lkubb/salt-extension-copier to v0.8.0 --- .copier-answers.yml | 4 +- .github/workflows/ci.yml | 4 +- .github/workflows/deploy-docs-action.yml | 4 +- .github/workflows/deploy-package-action.yml | 2 +- .github/workflows/docs-action.yml | 12 ++-- .github/workflows/get-changed-files.yml | 2 +- .github/workflows/package-action.yml | 8 +-- .github/workflows/pre-commit-action.yml | 6 +- .github/workflows/prepare-release-action.yml | 6 +- .github/workflows/tag.yml | 4 +- .github/workflows/test-action.yml | 63 ++++++++++---------- .pre-commit-config.yaml | 28 ++++----- .pylintrc | 35 +++++++---- docs/conf.py | 4 +- noxfile.py | 8 +-- pyproject.toml | 13 ++-- tools/helpers/cmd.py | 11 ++-- 17 files changed, 108 insertions(+), 106 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 65ba1ce6..0066038f 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,6 +1,6 @@ # Autogenerated. Do not edit this by hand, use `copier update`. --- -_commit: 0.7.5 +_commit: 0.8.0 _src_path: https://github.com/lkubb/salt-extension-copier author: EITR Technologies, LLC author_email: devops@eitr.tech @@ -21,7 +21,7 @@ os_support: - Windows package_name: github project_name: github -python_requires: '3.9' +python_requires: '3.10' relax_pylint: true salt_version: '3006' source_url: https://github.com/salt-extensions/saltext-github diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1f0ecc24..74f69834 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,7 +60,7 @@ jobs: news-fragments-available: ${{ steps.check-available.outputs.available }} steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check if news fragments are available id: check-available @@ -150,7 +150,7 @@ jobs: steps: - name: Download Exit Status Files if: always() - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: path: exitstatus pattern: exitstatus-* diff --git a/.github/workflows/deploy-docs-action.yml b/.github/workflows/deploy-docs-action.yml index 646863f8..9e2e89e6 100644 --- a/.github/workflows/deploy-docs-action.yml +++ b/.github/workflows/deploy-docs-action.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Download built docs - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: ${{ inputs.artifact-name }} path: html-docs @@ -71,7 +71,7 @@ jobs: - name: Upload Exit Status if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: exitstatus-${{ github.job }} path: exitstatus diff --git a/.github/workflows/deploy-package-action.yml b/.github/workflows/deploy-package-action.yml index fe8b9ea7..869b7f5a 100644 --- a/.github/workflows/deploy-package-action.yml +++ b/.github/workflows/deploy-package-action.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Download Python Package Artifacts - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: salt-extension-${{ inputs.version }}-packages path: dist diff --git a/.github/workflows/docs-action.yml b/.github/workflows/docs-action.yml index cfe7d16f..182571bc 100644 --- a/.github/workflows/docs-action.yml +++ b/.github/workflows/docs-action.yml @@ -10,12 +10,12 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: Set up Python 3.10 For Nox - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: "3.10" @@ -24,8 +24,8 @@ jobs: python -m pip install --upgrade pip pip install "nox==$NOX_VERSION" "uv==$UV_VERSION" env: - NOX_VERSION: '2025.5.1' - UV_VERSION: '0.8.18' + NOX_VERSION: '2025.11.12' + UV_VERSION: '0.9.27' - name: Install Doc Requirements run: | @@ -38,7 +38,7 @@ jobs: nox --force-color -e docs - name: Upload built docs as artifact - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: html-docs path: docs/_build/html @@ -51,7 +51,7 @@ jobs: - name: Upload Exit Status if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: exitstatus-${{ github.job }} path: exitstatus diff --git a/.github/workflows/get-changed-files.yml b/.github/workflows/get-changed-files.yml index 9c8ad878..85404a98 100644 --- a/.github/workflows/get-changed-files.yml +++ b/.github/workflows/get-changed-files.yml @@ -17,7 +17,7 @@ jobs: changed-files: ${{ toJSON(steps.changed-files.outputs) }} steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Get Changed Files id: changed-files diff --git a/.github/workflows/package-action.yml b/.github/workflows/package-action.yml index 16967ac3..165ae6a9 100644 --- a/.github/workflows/package-action.yml +++ b/.github/workflows/package-action.yml @@ -14,12 +14,12 @@ jobs: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 - name: Set up Python 3.10 - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: "3.10" @@ -42,7 +42,7 @@ jobs: PIP_CONSTRAINT="$RUNNER_TEMP/build-constraints.txt" python -m build --outdir dist/ - name: Upload build artifacts - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 if: always() with: name: salt-extension-${{ inputs.version }}-packages @@ -57,7 +57,7 @@ jobs: - name: Upload Exit Status if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: exitstatus-${{ github.job }} path: exitstatus diff --git a/.github/workflows/pre-commit-action.yml b/.github/workflows/pre-commit-action.yml index cee3aaff..b5ef1155 100644 --- a/.github/workflows/pre-commit-action.yml +++ b/.github/workflows/pre-commit-action.yml @@ -14,7 +14,7 @@ jobs: name: Pre-Commit runs-on: ubuntu-24.04 container: - image: 'docker.io/library/python:3.10.18-slim-bookworm@sha256:e7eed6c2e7fd1ecc43f0a37da7a115f4c9c9f50f247e9cba086c2f4583412fd9' + image: 'docker.io/library/python:3.10.19-slim-bookworm@sha256:ac7bf2ae912299e41783a8e4eff07369dc6de3444bdc1cc29626a05241f957d7' steps: - name: Install System Deps @@ -23,7 +23,7 @@ jobs: apt-get install -y enchant-2 git gcc make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev git config --global --add safe.directory "$(pwd)" - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install Pre-Commit run: | @@ -49,7 +49,7 @@ jobs: - name: Upload Exit Status if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: exitstatus-${{ github.job }} path: exitstatus diff --git a/.github/workflows/prepare-release-action.yml b/.github/workflows/prepare-release-action.yml index bab6a7eb..db088cb7 100644 --- a/.github/workflows/prepare-release-action.yml +++ b/.github/workflows/prepare-release-action.yml @@ -22,10 +22,10 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Python 3.10 - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.10' @@ -49,7 +49,7 @@ jobs: python -m pre_commit run --files=CHANGELOG.md || true - name: Create/update release PR - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 + uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0 with: commit-message: Release v${{ (github.event_name == 'workflow_dispatch' && inputs.version != '') && inputs.version || steps.next-version.outputs.version }} branch: release/auto diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml index c62a7634..a60a72f3 100644 --- a/.github/workflows/tag.yml +++ b/.github/workflows/tag.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Extract tag name id: get_version_tag @@ -82,7 +82,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Extract version of merged release PR id: get_version_pr diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index fcc0c037..d8af6a7c 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -12,20 +12,19 @@ jobs: strategy: fail-fast: false - max-parallel: 3 + max-parallel: 2 matrix: include: - - {salt-version: "3006.15", python-version: "3.9"} - - {salt-version: "3006.15", python-version: "3.10"} - - {salt-version: "3007.7", python-version: "3.10"} + - {salt-version: "3006.19", python-version: "3.10"} + - {salt-version: "3007.11", python-version: "3.10"} steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 2 # coverage: Issue detecting commit SHA - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.python-version }} @@ -34,8 +33,8 @@ jobs: python -m pip install --upgrade pip pip install "nox==$NOX_VERSION" "uv==$UV_VERSION" env: - NOX_VERSION: '2025.5.1' - UV_VERSION: '0.8.18' + NOX_VERSION: '2025.11.12' + UV_VERSION: '0.9.27' - name: Install Test Requirements env: @@ -57,7 +56,7 @@ jobs: echo "flags=$(python -c "import sys; print('{},{},salt_{}'.format('${{ runner.os }}'.replace('-latest', ''), 'py{}{}'.format(*sys.version_info), '_'.join(str(v) for v in '${{ matrix.salt-version }}'.replace('==', '_').split('.'))))")" >> "$GITHUB_OUTPUT" - name: Upload Project Code Coverage - uses: codecov/codecov-action@af09b5e394c93991b95a5e7646aeb90c1917f78f # v5.5.1 + uses: codecov/codecov-action@0561704f0f02c16a585d4c7555e57fa2e44cf909 # v5.5.2 with: files: artifacts/coverage-project.xml disable_search: true @@ -68,7 +67,7 @@ jobs: version: v10.4.0 - name: Upload Tests Code Coverage - uses: codecov/codecov-action@af09b5e394c93991b95a5e7646aeb90c1917f78f # v5.5.1 + uses: codecov/codecov-action@0561704f0f02c16a585d4c7555e57fa2e44cf909 # v5.5.2 with: files: artifacts/coverage-tests.xml disable_search: true @@ -80,7 +79,7 @@ jobs: - name: Upload Logs if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: runtests-${{ runner.os }}-py${{ matrix.python-version }}-Salt${{ matrix.salt-version }}.log path: artifacts/runtests-*.log @@ -93,7 +92,7 @@ jobs: - name: Upload Exit Status if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: exitstatus-${{ github.job }}-Py${{ matrix.python-version }}-Salt${{ matrix.salt-version }} path: exitstatus @@ -108,16 +107,16 @@ jobs: max-parallel: 2 matrix: include: - - {salt-version: "3006.15", python-version: "3.9"} - - {salt-version: "3007.7", python-version: "3.9"} + - {salt-version: "3006.19", python-version: "3.10"} + - {salt-version: "3007.11", python-version: "3.10"} steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.python-version }} @@ -126,8 +125,8 @@ jobs: python -m pip install --upgrade pip pip install "nox==$env:NOX_VERSION" "uv==$env:UV_VERSION" env: - NOX_VERSION: '2025.5.1' - UV_VERSION: '0.8.18' + NOX_VERSION: '2025.11.12' + UV_VERSION: '0.9.27' - name: Install Test Requirements shell: bash @@ -154,7 +153,7 @@ jobs: echo "flags=$(python -c "import sys; print('{},{},salt_{}'.format('${{ runner.os }}'.replace('-latest', ''), 'py{}{}'.format(*sys.version_info), '_'.join(str(v) for v in '${{ matrix.salt-version }}'.replace('==', '_').split('.'))))")" >> "$GITHUB_OUTPUT" - name: Upload Project Code Coverage - uses: codecov/codecov-action@af09b5e394c93991b95a5e7646aeb90c1917f78f # v5.5.1 + uses: codecov/codecov-action@0561704f0f02c16a585d4c7555e57fa2e44cf909 # v5.5.2 with: files: artifacts/coverage-project.xml disable_search: true @@ -165,7 +164,7 @@ jobs: version: v10.4.0 - name: Upload Tests Code Coverage - uses: codecov/codecov-action@af09b5e394c93991b95a5e7646aeb90c1917f78f # v5.5.1 + uses: codecov/codecov-action@0561704f0f02c16a585d4c7555e57fa2e44cf909 # v5.5.2 with: files: artifacts/coverage-tests.xml disable_search: true @@ -177,7 +176,7 @@ jobs: - name: Upload Logs if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: runtests-${{ runner.os }}-py${{ matrix.python-version }}-Salt${{ matrix.salt-version }}.log path: artifacts/runtests-*.log @@ -190,7 +189,7 @@ jobs: - name: Upload Exit Status if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: exitstatus-${{ github.job }}-Py${{ matrix.python-version }}-Salt${{ matrix.salt-version }} path: exitstatus @@ -205,16 +204,16 @@ jobs: max-parallel: 2 matrix: include: - - {salt-version: "3006.15", python-version: "3.10"} - - {salt-version: "3007.7", python-version: "3.10"} + - {salt-version: "3006.19", python-version: "3.10"} + - {salt-version: "3007.11", python-version: "3.10"} steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.python-version }} @@ -223,8 +222,8 @@ jobs: python -m pip install --upgrade pip pip install "nox==$NOX_VERSION" "uv==$UV_VERSION" env: - NOX_VERSION: '2025.5.1' - UV_VERSION: '0.8.18' + NOX_VERSION: '2025.11.12' + UV_VERSION: '0.9.27' - name: Install Test Requirements env: @@ -246,7 +245,7 @@ jobs: echo "flags=$(python -c "import sys; print('{},{},salt_{}'.format('${{ runner.os }}'.replace('-latest', ''), 'py{}{}'.format(*sys.version_info), '_'.join(str(v) for v in '${{ matrix.salt-version }}'.replace('==', '_').split('.'))))")" >> "$GITHUB_OUTPUT" - name: Upload Project Code Coverage - uses: codecov/codecov-action@af09b5e394c93991b95a5e7646aeb90c1917f78f # v5.5.1 + uses: codecov/codecov-action@0561704f0f02c16a585d4c7555e57fa2e44cf909 # v5.5.2 with: files: artifacts/coverage-project.xml disable_search: true @@ -257,7 +256,7 @@ jobs: version: v10.4.0 - name: Upload Tests Code Coverage - uses: codecov/codecov-action@af09b5e394c93991b95a5e7646aeb90c1917f78f # v5.5.1 + uses: codecov/codecov-action@0561704f0f02c16a585d4c7555e57fa2e44cf909 # v5.5.2 with: files: artifacts/coverage-tests.xml disable_search: true @@ -269,7 +268,7 @@ jobs: - name: Upload Logs if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: runtests-${{ runner.os }}-py${{ matrix.python-version }}-Salt${{ matrix.salt-version }}.log path: artifacts/runtests-*.log @@ -282,7 +281,7 @@ jobs: - name: Upload Exit Status if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: exitstatus-${{ github.job }}-Py${{ matrix.python-version }}-Salt${{ matrix.salt-version }} path: exitstatus diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d2f9e023..27e6bc70 100755 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -56,26 +56,26 @@ repos: args: [--silent, -E, fix_docstrings] - repo: https://github.com/asottile/pyupgrade - rev: 37bfa06d791fd38fb4e54910b36a2ff57641b074 # v3.20.0 + rev: 75992aaa40730136014f34227e0135f63fc951b4 # v3.21.2 hooks: - id: pyupgrade - name: Rewrite Code to be Py3.9+ + name: Rewrite Code to be Py3.10+ args: [ - --py39-plus, + --py310-plus, ] exclude: src/saltext/github/version.py - repo: https://github.com/PyCQA/isort - rev: c8ab4a5b21bac924d106e3103dd7c979fdd0f9bc # 6.0.1 + rev: 0a09c783808cfe77bb3269250f663ff733d23302 # 7.0.0 hooks: - id: isort args: [ - --py 39, + --py 310, ] exclude: src/saltext/github/(__init__|version).py - repo: https://github.com/psf/black - rev: 8a737e727ac5ab2f1d4cf5876720ed276dc8dc4b # 25.1.0 + rev: 6305bf1ae645ab7541be4f5028a86239316178eb # 26.1.0 hooks: - id: black args: [-l 100] @@ -88,12 +88,12 @@ repos: args: [--skip-errors] files: ^(docs/.*\.rst|src/saltext/github/.*\.py)$ additional_dependencies: - - black==25.1.0 + - black==26.1.0 # <---- Formatting ----------------------------------------------------------------------------- # ----- Security ------------------------------------------------------------------------------> - repo: https://github.com/PyCQA/bandit - rev: 2d0b675b04c80ae42277e10500db06a0a37bae17 # 1.8.6 + rev: 765f00d3f202f83f61d03f882f80a2d5142d81f8 # 1.9.3 hooks: - id: bandit alias: bandit-salt @@ -102,7 +102,7 @@ repos: exclude: src/saltext/github/version.py - repo: https://github.com/PyCQA/bandit - rev: 2d0b675b04c80ae42277e10500db06a0a37bae17 # 1.8.6 + rev: 765f00d3f202f83f61d03f882f80a2d5142d81f8 # 1.9.3 hooks: - id: bandit alias: bandit-tests @@ -123,8 +123,8 @@ repos: files: ^((setup|noxfile)|src/.*)\.py$ require_serial: true additional_dependencies: - - nox==2025.5.1 - - uv==0.8.18 # Makes this hook much faster + - nox==2025.11.12 + - uv==0.9.27 # Makes this hook much faster - id: nox alias: lint-tests @@ -134,11 +134,11 @@ repos: files: ^tests/.*\.py$ require_serial: true additional_dependencies: - - nox==2025.5.1 - - uv==0.8.18 # Makes this hook much faster + - nox==2025.11.12 + - uv==0.9.27 # Makes this hook much faster - repo: https://github.com/Mateusz-Grzelinski/actionlint-py - rev: f999ae59ac949d9b57aaa5569c2d60eb846b3a00 # v1.7.7.24 + rev: 85c37735ea69e5baf0681530e57e63deee0ce733 # v1.7.10.24 hooks: - id: actionlint additional_dependencies: diff --git a/.pylintrc b/.pylintrc index 037c08e4..c5cfe453 100755 --- a/.pylintrc +++ b/.pylintrc @@ -93,7 +93,7 @@ prefer-stubs=no # Minimum Python version to use for version dependent checks. Will default to # the version used to run pylint. -py-version=3.9 +py-version=3.10 # Discover python modules and packages in the file system subtree. recursive=no @@ -104,10 +104,6 @@ recursive=no # source root. source-roots= -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages. -suggestion-mode=yes - # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no @@ -234,6 +230,11 @@ name-group= # not require a docstring. no-docstring-rgx=^_ +# Regular expression matching correct parameter specification variable names. +# If left empty, parameter specification variable names will be checked with +# the set naming style. +#paramspec-rgx= + # List of decorators that produce properties, such as abc.abstractproperty. Add # to this list to register other decorators that produce valid properties. # These decorators are taken in consideration only for invalid-name. @@ -247,6 +248,10 @@ property-classes=abc.abstractproperty # variable names will be checked with the set naming style. #typevar-rgx= +# Regular expression matching correct type variable tuple names. If left empty, +# type variable tuple names will be checked with the set naming style. +#typevartuple-rgx= + # Naming style matching correct variable names. variable-naming-style=snake_case @@ -341,7 +346,9 @@ indent-after-paren=4 # tab). indent-string=' ' -# Maximum number of characters on a single line. +# Maximum number of characters on a single line. Pylint's default of 100 is +# based on PEP 8's guidance that teams may choose line lengths up to 99 +# characters. max-line-length=120 # Maximum number of lines in a module. @@ -471,6 +478,9 @@ timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests. [MISCELLANEOUS] +# Whether or not to search for fixme's in docstrings. +check-fixme-in-docstring=yes + # List of note tags to take in consideration, separated by a comma. notes=FIXME, XXX, @@ -510,10 +520,10 @@ evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor # used to format the message information. See doc for all details. msg-template= -# Set the output format. Available formats are: text, parseable, colorized, -# json2 (improved json format), json (old json format) and msvs (visual -# studio). You can also give a reporter class, e.g. -# mypackage.mymodule.MyReporterClass. +# Set the output format. Available formats are: 'text', 'parseable', +# 'colorized', 'json2' (improved json format), 'json' (old json format), msvs +# (visual studio) and 'github' (GitHub actions). You can also give a reporter +# class, e.g. mypackage.mymodule.MyReporterClass. #output-format= # Tells whether to display a full report or only the messages. @@ -546,8 +556,7 @@ min-similarity-lines=4 # Limits count of emitted suggestions for spelling mistakes. max-spelling-suggestions=4 -# Spelling dictionary name. No available dictionaries : You need to install -# both the python package and the system dependency for enchant to work. +# Spelling dictionary name. Available dictionaries: en_US (hunspell). spelling-dict= # List of comma separated words that should be considered directives if they @@ -615,7 +624,7 @@ ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace # of finding the hint is based on edit distance. missing-member-hint=yes -# The minimum edit distance a name should have in order to be considered a +# The maximum edit distance a name should have in order to be considered a # similar match for a missing member name. missing-member-hint-distance=1 diff --git a/docs/conf.py b/docs/conf.py index 5a924225..20845c29 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -73,9 +73,7 @@ rst_prolog = """ {} -""".format( - "\n".join(site_vars[:]) -) +""".format("\n".join(site_vars[:])) # -- General configuration --------------------------------------------------- diff --git a/noxfile.py b/noxfile.py index cfd338f5..6c7fb490 100755 --- a/noxfile.py +++ b/noxfile.py @@ -22,7 +22,7 @@ nox.options.default_venv_backend = "uv|virtualenv" # Python versions to test against -PYTHON_VERSIONS = ("3", "3.9", "3.10") +PYTHON_VERSIONS = ("3", "3.10") # Be verbose when running under a CI context CI_RUN = ( os.environ.get("JENKINS_URL") or os.environ.get("CI") or os.environ.get("DRONE") is not None @@ -31,7 +31,7 @@ SKIP_REQUIREMENTS_INSTALL = os.environ.get("SKIP_REQUIREMENTS_INSTALL", "0") == "1" EXTRA_REQUIREMENTS_INSTALL = os.environ.get("EXTRA_REQUIREMENTS_INSTALL") -COVERAGE_REQUIREMENT = os.environ.get("COVERAGE_REQUIREMENT") or "coverage==7.10.6" +COVERAGE_REQUIREMENT = os.environ.get("COVERAGE_REQUIREMENT") or "coverage==7.13.2" SALT_REQUIREMENT = os.environ.get("SALT_REQUIREMENT") or "salt>=3006" if SALT_REQUIREMENT == "salt==master": SALT_REQUIREMENT = "git+https://github.com/saltstack/salt.git@master" @@ -73,8 +73,8 @@ def _get_session_python_version_info(session): def _get_pydir(session): version_info = _get_session_python_version_info(session) - if version_info < (3, 9): - session.error("Only Python >= 3.9 is supported") + if version_info < (3, 10): + session.error("Only Python >= 3.10 is supported") return f"py{version_info[0]}.{version_info[1]}" diff --git a/pyproject.toml b/pyproject.toml index 37c56a5a..02dd25ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta" [tool.setuptools_scm] write_to = "src/saltext/github/version.py" -write_to_template = "__version__ = \"{version}\"" +write_to_template = "__version__ = \"{version}\"\n" [project] name = "saltext.github" @@ -25,13 +25,12 @@ classifiers = [ "Programming Language :: Cython", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", ] -requires-python = ">= 3.9" +requires-python = ">= 3.10" dynamic = ["version"] dependencies = [ "salt>=3006", @@ -59,9 +58,9 @@ dev = [ # When initializing the dev env using the included automation, pass # `--extras` to install them automatically. dev_extra = [ - "black==25.1.0", - "isort==6.0.1", - "coverage==7.10.6", + "black==26.1.0", + "isort==7.0.0", + "coverage==7.13.2", ] docs = [ "sphinx", @@ -76,7 +75,7 @@ docs = [ ] docsauto = ["sphinx-autobuild"] lint = [ - "pylint==3.3.5", + "pylint==4.0.4", ] tests = [ "pytest>=7.2.0", diff --git a/tools/helpers/cmd.py b/tools/helpers/cmd.py index 619e2bbc..31cee6a9 100644 --- a/tools/helpers/cmd.py +++ b/tools/helpers/cmd.py @@ -30,8 +30,8 @@ class ProcessResult: """ retcode: int - stdout: Union[str, bytes] - stderr: Union[str, bytes] + stdout: str | bytes + stderr: str | bytes argv: tuple def check(self, retcode=None): @@ -200,7 +200,7 @@ class Command: A command object, can be instantiated directly. Does not follow ``Local``. """ - exe: Union[Executable, str] + exe: Executable | str args: tuple[str, ...] = () def __post_init__(self): @@ -275,10 +275,7 @@ class LocalCommand(Command): Command returned by Local()["some_command"]. Follows local contexts. """ - if sys.version_info >= (3, 10): - _local: Local = field(kw_only=True, repr=False, default=local) - else: - _local: Local = field(repr=False, default=local) + _local: Local = field(kw_only=True, repr=False, default=local) def _which(self, exe): return shutil.which(exe, path=self._local._env.get("PATH", "")) From 005f22595565eeb7b6f17f442926fcbd42c683e9 Mon Sep 17 00:00:00 2001 From: jeanluc <2163936+lkubb@users.noreply.github.com> Date: Tue, 27 Jan 2026 20:39:58 +0100 Subject: [PATCH 2/2] Fix pylint --- src/saltext/github/modules/github.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/saltext/github/modules/github.py b/src/saltext/github/modules/github.py index 9a596954..bb25e428 100644 --- a/src/saltext/github/modules/github.py +++ b/src/saltext/github/modules/github.py @@ -35,7 +35,6 @@ import salt.utils.json from salt.exceptions import CommandExecutionError -HAS_LIBS = False try: # pylint: disable=no-name-in-module import github @@ -46,7 +45,7 @@ # pylint: enable=no-name-in-module HAS_LIBS = True except ImportError: - pass + HAS_LIBS = False log = logging.getLogger(__name__)