Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
16fd5c1
Track mise.lock
nnutter Oct 31, 2026
b2c5ce6
Upgrade Go tool dependencies to latest
nnutter Oct 31, 2026
799ca62
Use setup as the only name for the hook task
nnutter Oct 31, 2026
79d3b58
Use hk task names for fix, check, and test
nnutter Nov 1, 2026
4639992
Upgrade hk to 2.10.0
nnutter Nov 1, 2026
c154299
Provide testifylint from mise
nnutter Nov 1, 2026
a9a2f81
Use hk-config builtins for the hk steps
nnutter Nov 1, 2026
b2d7913
Run CI with mise 2026.10.21
nnutter Nov 2, 2026
61e958c
Pin the GitHub Actions to their latest releases
nnutter Nov 2, 2026
6853ac6
Run CI with mise 2026.10.25
nnutter Nov 2, 2026
68905dc
Test on macOS and pin the runner images
nnutter Nov 2, 2026
8e03ba1
Align the tap workflow with the other repositories
nnutter Nov 2, 2026
39ef49f
Remove the unused Go tool directives
nnutter Nov 2, 2026
77e0140
Use Go 1.27.3 in go.mod
nnutter Nov 2, 2026
5ae1467
Standardize the ignore list
nnutter Nov 2, 2026
0951fec
Refactor: Sort the tools and hk steps
nnutter Nov 2, 2026
ca0ee31
Refactor: Align the CI wording and merge flags
nnutter Nov 2, 2026
dba5417
Remove the last task alias
nnutter Nov 2, 2026
68394e9
Use the singular check step name
nnutter Nov 2, 2026
2f694d6
Move the constable skill into skills/
nnutter Nov 2, 2026
96c56b2
Check trailing whitespace and final newlines
nnutter Nov 2, 2026
b005b3c
Use hk-config v2.10.0-4
nnutter Nov 2, 2026
8c9b685
Validate skills with the skills_ref builtin
nnutter Nov 2, 2026
eec7acc
Give the PyPI tool the graph and interpreter CI needs
nnutter Nov 2, 2026
e1f7924
Install uv so the locked PyPI graph resolves
nnutter Nov 2, 2026
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
25 changes: 21 additions & 4 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
cancel-in-progress: true
jobs:
validation:
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
timeout-minutes: 15
steps:
- name: Check out repository
Expand All @@ -18,10 +18,27 @@ jobs:
fetch-depth: 0
persist-credentials: false
- name: Install mise
uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
uses: jdx/mise-action@6612f0ef07ed2a736cd1e00a94a065522dd41195 # v5.2.5
with:
version: 2026.8.5
- name: Run checks
version: 2026.10.25
- name: Run check
run: mise run check
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os: [ubuntu-26.04, macos-26]
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Install mise
uses: jdx/mise-action@6612f0ef07ed2a736cd1e00a94a065522dd41195 # v5.2.5
with:
version: 2026.10.25
- name: Run tests
run: mise run ci-test
13 changes: 5 additions & 8 deletions .github/workflows/update-tap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,13 @@ on:
description: Release tag to publish to nnutter/homebrew-tap
required: true
type: string
permissions:
contents: read
permissions: {}
concurrency:
group: update-tap
cancel-in-progress: false
jobs:
update-formula:
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
timeout-minutes: 15
env:
FORMULA_NAME: constable
Expand All @@ -40,7 +39,7 @@ jobs:
echo "tag=$tag" >> "$GITHUB_OUTPUT"
- name: Generate a token
id: app-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
uses: actions/create-github-app-token@64ab729a6294000f5aa4a4bc0b73d1f32bc45510 # v3.3.0
with:
client-id: ${{ vars.APP_CLIENT_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
Expand All @@ -60,8 +59,7 @@ jobs:
FORMULA_NAME: ${{ env.FORMULA_NAME }}
TAG: ${{ steps.release.outputs.tag }}
run: |
if grep -Fq "/archive/refs/tags/${TAG}.tar.gz" "Formula/${FORMULA_NAME}.rb" ||
grep -Fq "/tarball/${TAG}" "Formula/${FORMULA_NAME}.rb"; then
if grep -Fq "/archive/refs/tags/${TAG}.tar.gz" "Formula/${FORMULA_NAME}.rb"; then
echo "needed=false" >> "$GITHUB_OUTPUT"
echo "Formula ${FORMULA_NAME} already uses ${TAG}."
else
Expand All @@ -85,7 +83,6 @@ jobs:
if: steps.needed.outputs.needed == 'true'
env:
FORMULA_NAME: ${{ env.FORMULA_NAME }}
HOMEBREW_GITHUB_API_TOKEN: ${{ github.token }}
TAG: ${{ steps.release.outputs.tag }}
run: bin/update-formula "$FORMULA_NAME" "$TAG"
- name: Push the formula branch
Expand Down Expand Up @@ -140,6 +137,6 @@ jobs:
run: |
gh pr merge \
--repo "${TAP_OWNER}/${TAP_REPOSITORY}" \
--merge \
--auto \
--merge \
"$BRANCH_NAME"
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.tmp/
/constable
coverage.html
coverage.out

/tmp/
tmp/
5 changes: 5 additions & 0 deletions .mise/locks/pypi-agentskills-tools/0.8.0/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[project]
name = "mise-pypi-tool-environment"
version = "0.0.0"
requires-python = ">=3.12, <4.0"
dependencies = ["agentskills-tools==0.8.0"]
127 changes: 127 additions & 0 deletions .mise/locks/pypi-agentskills-tools/0.8.0/uv.lock

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,20 +94,20 @@ The check also covers `for` conditions and bool assignments such as `c := a && b

## Development

Run all fixers,
Run all fixes,

```sh
mise run fixers
mise run fix
```

Run all tests,

```sh
mise run tests
mise run test
```

Run all linters,
Run all checks,

```sh
mise run linters
mise run check
```
136 changes: 4 additions & 132 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,143 +1,15 @@
module github.com/nnutter/constable

go 1.27.0
go 1.27.3

require (
github.com/stretchr/testify v1.12.1
golang.org/x/tools v0.50.0
golang.org/x/tools v0.52.0
)

require (
cloud.google.com/go v0.123.0 // indirect
cloud.google.com/go/auth v0.23.2 // indirect
cloud.google.com/go/compute/metadata v0.9.0 // indirect
dario.cat/mergo v1.0.2 // indirect
github.com/Antonboom/testifylint v1.6.4 // indirect
github.com/BobuSumisu/aho-corasick v1.0.3 // indirect
github.com/BurntSushi/toml v1.6.0 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver/v3 v3.5.0 // indirect
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
github.com/STARRY-S/zip v0.2.3 // indirect
github.com/alecthomas/go-check-sumtype v0.3.1 // indirect
github.com/andybalholm/brotli v1.2.4 // indirect
github.com/anthropics/anthropic-sdk-go v1.66.0 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/bahlo/generic-list-go v0.2.0 // indirect
github.com/bodgit/plumbing v1.3.0 // indirect
github.com/bodgit/sevenzip v1.6.5 // indirect
github.com/bodgit/windows v1.0.1 // indirect
github.com/buger/jsonparser v1.6.1 // indirect
github.com/ccojocar/zxcvbn-go v1.0.4 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/charmbracelet/colorprofile v0.4.3 // indirect
github.com/charmbracelet/lipgloss v1.1.0 // indirect
github.com/charmbracelet/x/ansi v0.11.8 // indirect
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/term v0.2.2 // indirect
github.com/clipperhouse/displaywidth v0.11.0 // indirect
github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
github.com/fatih/semgroup v1.3.0 // indirect
github.com/felixge/httpsnoop v1.1.0 // indirect
github.com/fsnotify/fsnotify v1.10.1 // indirect
github.com/gitleaks/go-gitdiff v0.9.1 // indirect
github.com/go-logr/logr v1.4.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/s2a-go v0.1.9 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.20 // indirect
github.com/googleapis/gax-go/v2 v2.24.0 // indirect
github.com/gookit/color v1.6.1 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
github.com/h2non/filetype v1.1.3 // indirect
github.com/hashicorp/go-version v1.9.0 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/huandu/xstrings v1.6.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/invopop/jsonschema v0.14.0 // indirect
github.com/kisielk/errcheck v1.20.0 // indirect
github.com/klauspost/compress v1.20.0 // indirect
github.com/klauspost/pgzip v1.2.6 // indirect
github.com/lucasb-eyer/go-colorful v1.4.1 // indirect
github.com/mattn/go-colorable v0.1.15 // indirect
github.com/mattn/go-isatty v0.0.24 // indirect
github.com/mattn/go-runewidth v0.0.30 // indirect
github.com/mholt/archives v0.1.5 // indirect
github.com/mikelolasagasti/xz v1.0.1 // indirect
github.com/minio/minlz v1.2.0 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/muesli/termenv v0.16.0 // indirect
github.com/nwaples/rardecode/v2 v2.4.1 // indirect
github.com/openai/openai-go/v3 v3.52.0 // indirect
github.com/pb33f/ordered-map/v2 v2.3.1 // indirect
github.com/pelletier/go-toml/v2 v2.4.3 // indirect
github.com/pierrec/lz4/v4 v4.1.30 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rs/zerolog v1.35.1 // indirect
github.com/sagikazarmark/locafero v0.12.0 // indirect
github.com/securego/gosec/v2 v2.29.0 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/sorairolake/lzip-go v0.3.8 // indirect
github.com/spf13/afero v1.15.0 // indirect
github.com/spf13/cast v1.10.0 // indirect
github.com/spf13/cobra v1.10.2 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/spf13/viper v1.21.0 // indirect
github.com/standard-webhooks/standard-webhooks/libraries v0.0.1 // indirect
github.com/stangelandcl/ppmd v0.1.1 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
github.com/tetratelabs/wazero v1.12.0 // indirect
github.com/tidwall/gjson v1.19.0 // indirect
github.com/tidwall/match v1.2.0 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
github.com/tidwall/sjson v1.2.5 // indirect
github.com/ulikunitz/xz v0.5.16 // indirect
github.com/wasilibs/go-re2 v1.12.0 // indirect
github.com/wasilibs/wazero-helpers v0.0.0-20250123031827-cd30c44769bb // indirect
github.com/xo/terminfo v1.2.0 // indirect
github.com/zricethezav/gitleaks/v8 v8.30.1 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.70.0 // indirect
go.opentelemetry.io/otel v1.45.0 // indirect
go.opentelemetry.io/otel/metric v1.45.0 // indirect
go.opentelemetry.io/otel/trace v1.45.0 // indirect
go.uber.org/nilaway v0.0.0-20260808063849-8649a03c818a // indirect
go.yaml.in/yaml/v3 v3.0.5 // indirect
go.yaml.in/yaml/v4 v4.0.0-rc.6 // indirect
go4.org v0.0.0-20260112195520-a5071408f32f // indirect
golang.org/x/crypto v0.57.0 // indirect
golang.org/x/exp v0.0.0-20260908205506-85c1c2202aba // indirect
golang.org/x/exp/typeparams v0.0.0-20260611194520-c48552f49976 // indirect
golang.org/x/mod v0.41.0 // indirect
golang.org/x/net v0.59.0 // indirect
golang.org/x/sync v0.23.0 // indirect
golang.org/x/sys v0.48.0 // indirect
golang.org/x/telemetry v0.0.0-20260908163034-4bcc4b2ee518 // indirect
golang.org/x/text v0.42.0 // indirect
golang.org/x/vuln v1.7.0 // indirect
google.golang.org/api v0.293.0 // indirect
google.golang.org/genai v1.69.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260908043556-f8649ddbbfe6 // indirect
google.golang.org/grpc v1.83.2 // indirect
google.golang.org/protobuf v1.36.12 // indirect
honnef.co/go/tools v0.8.0 // indirect
mvdan.cc/gofumpt v0.11.0 // indirect
)

tool (
github.com/Antonboom/testifylint
github.com/alecthomas/go-check-sumtype/cmd/go-check-sumtype
github.com/kisielk/errcheck
github.com/nnutter/constable/cmd/constable
github.com/securego/gosec/v2/cmd/gosec
github.com/zricethezav/gitleaks/v8
go.uber.org/nilaway/cmd/nilaway
golang.org/x/tools/cmd/goimports
golang.org/x/vuln/cmd/govulncheck
honnef.co/go/tools/cmd/staticcheck
mvdan.cc/gofumpt
golang.org/x/mod v0.42.0 // indirect
golang.org/x/sync v0.24.0 // indirect
)
Loading
Loading