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
17 changes: 0 additions & 17 deletions .github/dependabot.yml

This file was deleted.

20 changes: 17 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,31 @@
name: ci

on:
pull_request:
push:
branches:
- main

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 High · Branches receive no CI checks

When a push or pull request targets a branch other than 17, ci.yml filters both events to 17, so pushes and pull requests targeting main and other branches do not schedule pre-commit, pylint, or tox, leaving those branches without CI validation.

Remove the branch filters from both triggers so the workflow runs for pushes and pull requests to all branches.

Also at .github/workflows/ci.yml:6, .github/workflows/ci.yml:9.

Prompt for AI agents
In `.github/workflows/ci.yml` at line 7:

**Branches receive no CI checks**

When a push or pull request targets a branch other than `17`, `ci.yml` filters both events to `17`, so pushes and pull requests targeting `main` and other branches do not schedule `pre-commit`, `pylint`, or `tox`, leaving those branches without CI validation.

Remove the branch filters from both triggers so the workflow runs for pushes and pull requests to all branches.

Also at `.github/workflows/ci.yml:6`, `.github/workflows/ci.yml:9`.

- '17'
pull_request:
branches:
- '17'

jobs:
pre-commit:
uses: coatl-dev/workflows/.github/workflows/pre-commit.yml@6803f1bf5290b457054db1b58d012c4887b6ada8 # v7.1.1
with:
checkout-ref: ${{ github.ref }}
skip-hooks: 'pylint'
python-version: |
3.12
3.15

pylint:
uses: coatl-dev/workflows/.github/workflows/pylint.yml@d7cf5f9059f9a5fa365b8c9e06ff63f5d968ddb0 # v7.1.0
uses: coatl-dev/workflows/.github/workflows/pylint.yml@6803f1bf5290b457054db1b58d012c4887b6ada8 # v7.1.1
with:
path: src
checkout-ref: ${{ github.ref }}

tox:
if: ${{ github.event_name == 'pull_request' }}
uses: $/.github/workflows/tox.yml
with:
checkout-ref: ${{ github.ref }}
7 changes: 5 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,22 @@ name: publish

on:
release:
types:
- published
types: [published]

jobs:
tox:
uses: $/.github/workflows/tox.yml
with:
checkout-ref: ${{ github.event.release.tag_name }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · Untested code gets published

When the release tag is moved after tox checks it out but before the upload job checks it out, the tox job resolves the release tag when it checks out the source, then the upload job resolves that tag again after tox finishes. If the tag is moved between those checkouts, PyPI receives code that tox did not test.

Resolve the release tag to a commit SHA once and use that SHA for both testing and upload.

Also at .github/workflows/publish.yml:20.

Prompt for AI agents
In `.github/workflows/publish.yml` at line 11:

**Untested code gets published**

When the release tag is moved after tox checks it out but before the upload job checks it out, the tox job resolves the release tag when it checks out the source, then the upload job resolves that tag again after tox finishes. If the tag is moved between those checkouts, PyPI receives code that tox did not test.

Resolve the release tag to a commit SHA once and use that SHA for both testing and upload.

Also at `.github/workflows/publish.yml:20`.


pypi-upload:
needs: tox
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ github.event.release.tag_name }}

- name: Upload package to PyPI
uses: coatl-dev/actions/pypi-upload@499c77f2bc6f909d372849058517ca2e39ce16d4 # v7.1.3
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/tox.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
name: tox

on:
workflow_call:
inputs:
checkout-ref:
required: true
type: string

jobs:
tox-package:
uses: coatl-dev/workflows/.github/workflows/tox-docker.yml@d7cf5f9059f9a5fa365b8c9e06ff63f5d968ddb0 # v7.1.0
uses: coatl-dev/workflows/.github/workflows/tox-docker.yml@6803f1bf5290b457054db1b58d012c4887b6ada8 # v7.1.1
with:
checkout-ref: ${{ inputs.checkout-ref }}

tox-stubs:
uses: coatl-dev/workflows/.github/workflows/tox.yml@d7cf5f9059f9a5fa365b8c9e06ff63f5d968ddb0 # v7.1.0
uses: coatl-dev/workflows/.github/workflows/tox.yml@6803f1bf5290b457054db1b58d012c4887b6ada8 # v7.1.1
with:
python-versions: |
3.10
3.11
3.12
working-directory: stubs
checkout-ref: ${{ inputs.checkout-ref }}
6 changes: 0 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
ci:
autoupdate_commit_msg: 'build(deps): pre-commit autoupdate'
autofix_commit_msg: 'style: apply auto fixes with pre-commit'
skip:
- pylint
Comment on lines -1 to -5

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium · pre-commit.ci checks fail

When pre-commit.ci runs the hooks without a pylint executable, the local language: system pylint hook is no longer skipped, so it invokes an executable the config does not install and the hosted check fails.

Restore pylint in the pre-commit.ci skip list or provision the executable for the hook.

Prompt for AI agents
In `.pre-commit-config.yaml` at lines 1-5:

**pre-commit.ci checks fail**

When pre-commit.ci runs the hooks without a `pylint` executable, the local `language: system` `pylint` hook is no longer skipped, so it invokes an executable the config does not install and the hosted check fails.

Restore `pylint` in the pre-commit.ci skip list or provision the executable for the hook.


repos:
- repo: https://github.com/aio-libs/sort-all
rev: v1.3.0
Expand Down
Loading