-
Notifications
You must be signed in to change notification settings - Fork 0
chore(release): add Helm chart, Grafana dashboard, GoReleaser + workflows, changelog automation, promotion checklists, evidence harness #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
dd2bbfd
37ca42d
605ea9d
66ca59a
8b6a17f
d45946d
8dac5ed
b223210
8ddbb5a
207ca84
25d8cc7
4918a18
4bb66e0
773b361
f25f669
2a026f3
5ddfd98
842f342
4b1ef37
09eddd7
9ee3e5e
a3dead2
dbd897f
4f44ea6
738e606
202c488
d09edac
59e1d27
11220a1
518d193
72f6e31
190293a
423df1e
203fdf5
698655f
2f598e2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,29 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#!/usr/bin/env bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Markdown lint + autofix staged Markdown files | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
set -euo pipefail | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mapfile -d '' -t _staged < <(git diff --cached --name-only --diff-filter=ACM -z) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
md_files=() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
for f in "${_staged[@]}"; do | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[[ "$f" =~ \.(md|MD|mdx|MDX)$ ]] && md_files+=("$f") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
done | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if [[ ${#md_files[@]} -eq 0 ]]; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "[pre-commit] markdownlint-cli2 --fix on staged Markdown files" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if command -v npx >/dev/null 2>&1; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Run with --fix so minor issues are auto-corrected | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
npx -y markdownlint-cli2 --fix "${md_files[@]}" || true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Re-stage any modified files | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
git add -- "${md_files[@]}" || true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Verify no errors remain; block commit if they do | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if ! npx -y markdownlint-cli2 "${md_files[@]}"; then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+14
to
+21
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Optional: use lint-staged and stop reinventing half a pre-commit framework. Let a battle-tested tool handle staged-only semantics and partial hunks. Keep this hook as a thin wrapper. Minimal change inside this hook: -echo "[pre-commit] markdownlint-cli2 --fix on staged Markdown files"
+echo "[pre-commit] lint-staged: markdownlint on staged Markdown files"
if command -v npx >/dev/null 2>&1; then
- # Run with --fix so minor issues are auto-corrected
- npx -y markdownlint-cli2 --fix "${md_files[@]}" || true
- # Re-stage any modified files
- git add -- "${md_files[@]}" || true
- # Verify no errors remain; block commit if they do
- if ! npx -y markdownlint-cli2 "${md_files[@]}"; then
- echo "Markdownlint errors remain after autofix. Aborting commit." >&2
- exit 1
- fi
+ npx -y lint-staged
else Then configure lint-staged (package.json or .lintstagedrc) to run: 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "Markdownlint errors remain after autofix. Aborting commit." >&2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+15
to
+24
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Stop auto-staging unintended junk; lint the INDEX, not the working tree. Right now you blindly re-add files after mutating the working tree. If a dev staged only some hunks, your hook will slurp in the rest. Hard fail when there are unstaged changes in targeted files, and don’t swallow failures. Apply this diff: if command -v npx >/dev/null 2>&1; then
+ # Refuse to proceed if any targeted file has unstaged changes.
+ for f in "${md_files[@]}"; do
+ if ! git diff --quiet -- "$f"; then
+ echo "Unstaged changes detected in $f; aborting to avoid staging unintended hunks. Stash or fully stage Markdown changes and retry." >&2
+ exit 1
+ fi
+ done
# Run with --fix so minor issues are auto-corrected
- npx -y markdownlint-cli2 --fix "${md_files[@]}" || true
+ npx -y markdownlint-cli2 --fix "${md_files[@]}"
# Re-stage any modified files
- git add -- "${md_files[@]}" || true
+ git add -- "${md_files[@]}"
# Verify no errors remain; block commit if they do
if ! npx -y markdownlint-cli2 "${md_files[@]}"; then
echo "Markdownlint errors remain after autofix. Aborting commit." >&2
exit 1
fi 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "npx not found. Skipping markdownlint autofix. Install Node.js to enable autofix." >&2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit 0 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# CODEOWNERS maps file patterns to required reviewers. | ||
# Patterns the people will be automatically requested for review. | ||
# See: https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners | ||
|
||
# Default owner for entire repository | ||
* @flyingrobots | ||
|
||
# CI/CD and workflows | ||
.github/** @flyingrobots | ||
|
||
# Helm chart and deployment assets | ||
deploy/** @flyingrobots | ||
|
||
# Go source | ||
cmd/** @flyingrobots | ||
internal/** @flyingrobots | ||
test/** @flyingrobots | ||
|
||
flyingrobots marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
name: Update Changelog | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
tags: | ||
- 'v*' | ||
|
||
permissions: | ||
contents: write | ||
|
||
jobs: | ||
changelog: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||
with: | ||
fetch-depth: 0 | ||
fetch-tags: true | ||
ref: ${{ github.event.repository.default_branch }} | ||
- name: Setup Go | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version: '1.25.x' | ||
- name: Install git-chglog | ||
run: go install github.com/git-chglog/git-chglog/cmd/git-chglog@v0.15.4 | ||
- name: Generate CHANGELOG.md | ||
run: | | ||
if ! $(go env GOPATH)/bin/git-chglog -o CHANGELOG.md; then | ||
echo "git-chglog not configured; skipping update"; exit 0 | ||
fi | ||
- name: Commit changes | ||
run: | | ||
git config user.name "github-actions" | ||
git config user.email "github-actions@github.com" | ||
git add CHANGELOG.md | ||
git diff --cached --quiet && echo "no changes" || git commit -m "chore(changelog): update CHANGELOG for ${GITHUB_REF_NAME}" | ||
- name: Push changes | ||
run: | | ||
git push origin HEAD:${{ github.event.repository.default_branch }} || echo "no push" |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,41 @@ | ||||||||||||||||||||||||||||||||
name: GoReleaser | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
on: | ||||||||||||||||||||||||||||||||
push: | ||||||||||||||||||||||||||||||||
tags: | ||||||||||||||||||||||||||||||||
- 'v*' | ||||||||||||||||||||||||||||||||
workflow_dispatch: {} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
permissions: | ||||||||||||||||||||||||||||||||
contents: write | ||||||||||||||||||||||||||||||||
packages: write | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
jobs: | ||||||||||||||||||||||||||||||||
release: | ||||||||||||||||||||||||||||||||
runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||
steps: | ||||||||||||||||||||||||||||||||
- uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||
fetch-depth: 0 | ||||||||||||||||||||||||||||||||
fetch-tags: true | ||||||||||||||||||||||||||||||||
- uses: actions/setup-go@v5 | ||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||
go-version: '1.25.x' | ||||||||||||||||||||||||||||||||
- name: Login to GHCR | ||||||||||||||||||||||||||||||||
uses: docker/login-action@v3 | ||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||
registry: ghcr.io | ||||||||||||||||||||||||||||||||
username: ${{ github.actor }} | ||||||||||||||||||||||||||||||||
password: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||||||||||||||||||
- name: Set up QEMU | ||||||||||||||||||||||||||||||||
uses: docker/setup-qemu-action@v3 | ||||||||||||||||||||||||||||||||
- name: Set up Buildx | ||||||||||||||||||||||||||||||||
uses: docker/setup-buildx-action@v3 | ||||||||||||||||||||||||||||||||
- name: Run GoReleaser | ||||||||||||||||||||||||||||||||
uses: goreleaser/goreleaser-action@v6 | ||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||
distribution: goreleaser | ||||||||||||||||||||||||||||||||
version: latest | ||||||||||||||||||||||||||||||||
args: release --clean | ||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||||||||||||||||||
Comment on lines
+34
to
+41
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Scope permissions narrowly and surface attestations. Consider adding provenance/signing (SLSA/cosign) and setting tighter permissions per step. Not blocking, but you’ll thank me later. 🤖 Prompt for AI Agents
Comment on lines
+35
to
+41
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion “version: latest” is non-deterministic. Pin your toolchain. Releases must be reproducible. - - name: Run GoReleaser
- uses: goreleaser/goreleaser-action@v6
+ - name: Run GoReleaser
+ uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
- version: latest
+ version: v2.6.1 # pin a known-good Goreleaser version
args: release --clean Also consider guarding workflow_dispatch to snapshots to avoid accidental publishes: - args: release --clean
+ args: ${{ github.event_name == 'workflow_dispatch' && 'release --clean --skip=publish --snapshot' || 'release --clean' }} 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,21 @@ | ||||||||||||||||||||||||
name: Markdown Lint | ||||||||||||||||||||||||
|
||||||||||||||||||||||||
on: | ||||||||||||||||||||||||
pull_request: | ||||||||||||||||||||||||
push: | ||||||||||||||||||||||||
branches: [ main ] | ||||||||||||||||||||||||
|
||||||||||||||||||||||||
Comment on lines
+3
to
+7
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Fix YAML lint errors and tighten permissions. Quote the “on” key (truthy warning), remove extra spaces in inline array, and set least-privilege token. -on:
+"on":
pull_request:
push:
- branches: [ main ]
+ branches: [main]
+
+permissions:
+ contents: read 📝 Committable suggestion
Suggested change
🧰 Tools🪛 YAMLlint (1.37.1)[warning] 3-3: truthy value should be one of [false, true] (truthy) [error] 6-6: too many spaces inside brackets (brackets) [error] 6-6: too many spaces inside brackets (brackets) 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||
jobs: | ||||||||||||||||||||||||
lint: | ||||||||||||||||||||||||
runs-on: ubuntu-latest | ||||||||||||||||||||||||
steps: | ||||||||||||||||||||||||
- uses: actions/checkout@v4 | ||||||||||||||||||||||||
with: | ||||||||||||||||||||||||
fetch-depth: 0 | ||||||||||||||||||||||||
- name: Run markdownlint-cli2 | ||||||||||||||||||||||||
uses: DavidAnson/markdownlint-cli2-action@v17 | ||||||||||||||||||||||||
Comment on lines
+12
to
+16
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainPin Actions by commit SHA. Tags are mutable; don’t ship supply-chain roulette. Lock both actions to immutable SHAs and add a comment with the tag for readability. - - uses: actions/checkout@v4
+ - uses: actions/checkout@<COMMIT-SHA> # v4
@@
- - name: Run markdownlint-cli2
- uses: DavidAnson/markdownlint-cli2-action@v17
+ - name: Run markdownlint-cli2
+ uses: DavidAnson/markdownlint-cli2-action@<COMMIT-SHA> # v17 If you want, I can fetch the current SHAs and open a follow-up PR with the exact pins. 🏁 Script executed: #!/bin/bash
set -euo pipefail
if [ -f .github/workflows/markdownlint.yml ]; then
echo "FOUND: .github/workflows/markdownlint.yml"
nl -ba .github/workflows/markdownlint.yml | sed -n '1,200p'
else
echo "NOT_FOUND: .github/workflows/markdownlint.yml"
echo "Searching for markdownlint workflow files..."
rg -n --hidden --glob '!.git' --glob '!node_modules' 'markdownlint' || true
fi Length of output: 82 🏁 Script executed: #!/bin/bash
set -euo pipefail
if [ -f .github/workflows/markdownlint.yml ]; then
echo "FOUND: .github/workflows/markdownlint.yml"
echo "----- start file -----"
sed -n '1,200p' .github/workflows/markdownlint.yml || true
echo "----- end file -----"
else
echo "NOT_FOUND: .github/workflows/markdownlint.yml"
fi Length of output: 495 Pin Actions to immutable commit SHAs — stop using mutable tags. Tags are mutable; don't ship supply‑chain roulette. Pin both actions to exact commit SHAs and add a comment with the tag for readability. File: .github/workflows/markdownlint.yml (lines 12–16) - - uses: actions/checkout@v4
+ - uses: actions/checkout@<COMMIT-SHA> # v4
@@
- - name: Run markdownlint-cli2
- uses: DavidAnson/markdownlint-cli2-action@v17
+ - name: Run markdownlint-cli2
+ uses: DavidAnson/markdownlint-cli2-action@<COMMIT-SHA> # v17 I can fetch the current SHAs and open a follow-up PR with the exact pins.
🤖 Prompt for AI Agents
|
||||||||||||||||||||||||
with: | ||||||||||||||||||||||||
config: .markdownlint.yaml | ||||||||||||||||||||||||
globs: | | ||||||||||||||||||||||||
**/*.md | ||||||||||||||||||||||||
!**/node_modules/** |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,10 +24,17 @@ go.work | |
|
||
# IDE/Editor | ||
.idea/ | ||
.vscode/ | ||
# VS Code: ignore all by default, allow key shared files | ||
.vscode/* | ||
!.vscode/extensions.json | ||
!.vscode/settings.json | ||
!.vscode/launch.json | ||
Comment on lines
+27
to
+31
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Selective .vscode tracking is fine; ensure no secrets slip in. extensions.json/settings.json/launch.json can hold credentials (e.g., debug env). Recommend adding a pre-commit check to block secrets in these files. 🤖 Prompt for AI Agents
|
||
*.swp | ||
*.swo | ||
|
||
# Obsidian | ||
.obsidian/ | ||
|
||
# Logs | ||
*.log | ||
logs/ |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,47 @@ | ||||||
version: 2 | ||||||
|
||||||
project_name: job-queue-system | ||||||
|
||||||
builds: | ||||||
- id: job-queue-system | ||||||
main: ./cmd/job-queue-system | ||||||
env: | ||||||
- CGO_ENABLED=0 | ||||||
goos: [linux, darwin, windows] | ||||||
goarch: [amd64, arm64] | ||||||
ldflags: | ||||||
- -s -w -X main.version={{.Version}} | ||||||
Comment on lines
+12
to
+13
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Harden builds: add -trimpath for reproducibility. Reduces path leakage and improves determinism. ldflags:
- - -s -w -X main.version={{.Version}}
+ - -s -w -trimpath -X main.version={{.Version}}
🤖 Prompt for AI Agents
|
||||||
|
||||||
archives: | ||||||
- id: binaries | ||||||
builds: [job-queue-system] | ||||||
format: tar.gz | ||||||
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" | ||||||
format_overrides: | ||||||
- goos: windows | ||||||
format: zip | ||||||
checksum: | ||||||
name_template: "checksums_{{ .Version }}.txt" | ||||||
|
||||||
changelog: | ||||||
sort: desc | ||||||
use: github | ||||||
|
||||||
dockers: | ||||||
- image_templates: | ||||||
- ghcr.io/{{ .RepoOwner }}/{{ .RepoName }}:{{ .Version }} | ||||||
- ghcr.io/{{ .RepoOwner }}/{{ .RepoName }}:latest | ||||||
Comment on lines
+31
to
+33
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainDon’t slap :latest on alpha builds. Tagging “latest” for pre-releases is how you torch users. Gate “latest” to stable releases only (e.g., via templating/conditions or a separate docker entry that runs only when not prerelease). Verify the exact GoReleaser field to key off (e.g., .Prerelease or similar) and wire it accordingly. 🌐 Web query:
💡 Result: Use GoReleaser template conditionals in image_templates to emit :latest only when .Prerelease is empty (i.e., not a prerelease). Example config snippet: .goreleaser.yaml
References: GoReleaser Docker docs [1], Template variables (.Prerelease) [2]. DO NOT tag prereleases with :latest — gate :latest to stable releases. File: .goreleaser.yaml (lines 31–33) — replace the unconditional :latest with a template conditional that only emits :latest when .Prerelease is empty:
This uses .Prerelease to ensure only stable releases get :latest. 🤖 Prompt for AI Agents
|
||||||
dockerfile: Dockerfile | ||||||
build_flag_templates: | ||||||
- "--pull" | ||||||
|
||||||
Comment on lines
+30
to
+37
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Enable multi-arch Docker images via buildx + add OCI labels. Without buildx/platforms, images will be single-arch (runner default). Add platforms and basic OCI labels. dockers:
- image_templates:
- ghcr.io/{{ .RepoOwner }}/{{ .RepoName }}:{{ .Version }}
- ghcr.io/{{ .RepoOwner }}/{{ .RepoName }}:latest
dockerfile: Dockerfile
+ use: buildx
+ platforms:
+ - linux/amd64
+ - linux/arm64
build_flag_templates:
- "--pull"
+ labels:
+ - "org.opencontainers.image.source={{.GitURL}}"
+ - "org.opencontainers.image.revision={{.FullCommit}}"
+ - "org.opencontainers.image.version={{.Version}}"
🤖 Prompt for AI Agents
|
||||||
release: | ||||||
github: | ||||||
owner: '{{.Env.GITHUB_REPOSITORY_OWNER}}' | ||||||
name: '{{.Env.GITHUB_REPOSITORY_NAME}}' | ||||||
draft: false | ||||||
prerelease: auto | ||||||
|
||||||
snapshot: | ||||||
name_template: SNAPSHOT-{{ .ShortCommit }} | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Kill the stray trailing blank line. YAMLlint already complained. Remove it. - name_template: SNAPSHOT-{{ .ShortCommit }}
-
+ name_template: SNAPSHOT-{{ .ShortCommit }} 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
||||||
|
Original file line number | Diff line number | Diff line change | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,28 @@ | ||||||||||||||||
default: true | ||||||||||||||||
|
||||||||||||||||
# Allow long lines in docs where URLs and code blocks occur | ||||||||||||||||
MD013: false | ||||||||||||||||
|
||||||||||||||||
# Permit duplicate headings at different levels/siblings only | ||||||||||||||||
MD024: | ||||||||||||||||
siblings_only: true | ||||||||||||||||
|
||||||||||||||||
# Heading punctuation rules (common sentence punctuation) | ||||||||||||||||
MD026: | ||||||||||||||||
punctuation: ".,;:!" | ||||||||||||||||
|
||||||||||||||||
# Allow first line not to be a top-level heading (some docs start with metadata) | ||||||||||||||||
MD041: false | ||||||||||||||||
|
||||||||||||||||
# Code block style | ||||||||||||||||
MD046: | ||||||||||||||||
style: fenced | ||||||||||||||||
|
||||||||||||||||
# Inline code spans: allow backticks in text without strict checks | ||||||||||||||||
MD038: false | ||||||||||||||||
|
||||||||||||||||
# Ordered list item prefix flexible (allow any numbering) | ||||||||||||||||
MD029: false | ||||||||||||||||
|
||||||||||||||||
# Allow inline HTML (used in some docs) | ||||||||||||||||
MD033: false | ||||||||||||||||
Comment on lines
+27
to
+28
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Stop blanket-disabling MD033; scope it. Turning off MD033 project-wide is lazy and dangerous. Allow only the minimal elements you actually need. -# Allow inline HTML (used in some docs)
-MD033: false
+# Allow inline HTML for specific safe elements only
+MD033:
+ allowed_elements:
+ - br
+ - img 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,6 @@ | ||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||
"recommendations": [ | ||||||||||||||||||||||||||||||
"golang.go" | ||||||||||||||||||||||||||||||
], | ||||||||||||||||||||||||||||||
"unwantedRecommendations": [] | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
Comment on lines
+1
to
+6
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Add YAML/Helm tooling to match new chart assets Recommend adding Kubernetes/Helm and YAML support to align with the new Helm chart and K8s manifests. {
"recommendations": [
- "golang.go"
+ "golang.go",
+ "redhat.vscode-yaml",
+ "ms-kubernetes-tools.vscode-kubernetes-tools"
],
"unwantedRecommendations": []
} 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{ | ||
"editor.formatOnSave": false, | ||
"[go]": { | ||
"editor.formatOnSave": true, | ||
"[go]": { | ||
"editor.formatOnSave": true, | ||
"editor.codeActionsOnSave": { | ||
"source.organizeImports": "explicit" | ||
} | ||
}, | ||
}, | ||
"gopls": { | ||
"ui.semanticTokens": true, | ||
"build.experimentalWorkspaceModule": true | ||
}, | ||
Comment on lines
+12
to
+15
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainVerify gopls experimental flag; it may be obsolete gopls’s build.experimentalWorkspaceModule has changed across versions; confirm it’s still valid with your pinned Go extension/gopls. If obsolete, drop it. "gopls": {
"ui.semanticTokens": true,
- "build.experimentalWorkspaceModule": true
+ // "build.experimentalWorkspaceModule": true
}, To verify with upstream docs: 🌐 Web query:
💡 Result: Short answer: No — it was deprecated and then removed. Use go.work (multi-module workspace support in the go command) instead. Details / sources:
Sources: Remove deprecated gopls setting "build.experimentalWorkspaceModule" Deprecated in gopls v0.10.x and removed by v0.12.0; use go.work (e.g. 🤖 Prompt for AI Agents
|
||
"go.testFlags": ["-race", "-count=1"], | ||
"go.toolsManagement.autoUpdate": true | ||
Comment on lines
+16
to
+17
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Test flags trade-off Running tests with -race and -count=1 by default is great for catching issues but slower. If dev feedback becomes a concern, consider moving -race to a separate profile/task. 🤖 Prompt for AI Agents
|
||
} |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -23,3 +23,17 @@ tidy: | |||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
version: | ||||||||||||||||||||||||||||||||||||||
@echo $(VERSION) | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
.PHONY: hooks | ||||||||||||||||||||||||||||||||||||||
hooks: | ||||||||||||||||||||||||||||||||||||||
@git config core.hooksPath .githooks | ||||||||||||||||||||||||||||||||||||||
@chmod +x .githooks/pre-commit | ||||||||||||||||||||||||||||||||||||||
@echo "Git hooks enabled (pre-commit markdownlint autofix)." | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
.PHONY: mdlint | ||||||||||||||||||||||||||||||||||||||
mdlint: | ||||||||||||||||||||||||||||||||||||||
@if ! command -v npx >/dev/null 2>&1; then \ | ||||||||||||||||||||||||||||||||||||||
echo "npx not found. Please install Node.js to run markdownlint."; \ | ||||||||||||||||||||||||||||||||||||||
exit 1; \ | ||||||||||||||||||||||||||||||||||||||
fi | ||||||||||||||||||||||||||||||||||||||
@npx -y markdownlint-cli2 "**/*.md" "!**/node_modules/**" | ||||||||||||||||||||||||||||||||||||||
Comment on lines
+33
to
+39
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Add a clean target. Don’t ship a Makefile without it. Satisfies checkmake and basic developer hygiene. .PHONY: mdlint
mdlint:
@if ! command -v npx >/dev/null 2>&1; then \
echo "npx not found. Please install Node.js to run markdownlint."; \
exit 1; \
fi
@npx -y markdownlint-cli2 "**/*.md" "!**/node_modules/**"
+
+.PHONY: clean
+clean:
+ rm -rf bin 📝 Committable suggestion
Suggested change
🧰 Tools🪛 checkmake (0.2.2)[warning] 33-33: Missing required phony target "clean" (minphony) 🤖 Prompt for AI Agents
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
This breaks on macOS’ default Bash (3.2). Ditch mapfile-only path and cover renames.
Bash 3.2 lacks mapfile; your hook dies on vanilla macs. Also you ignore renamed/type-changed files.
Apply this diff:
📝 Committable suggestion
🤖 Prompt for AI Agents