Repo cleanup + CI/CD pipeline#1
Merged
bfritzinger merged 8 commits intomainfrom May 5, 2026
Merged
Conversation
Fix the script-table label "Chowned Thottled" -> "Chown Throttled" and rewrite the Repository Structure tree, which had drifted significantly (typos like pwr-tmp-monitor, Dokerfile, HUng Connections, Health Check, Dir Sync, plus stale dotfiles entries that no longer exist on disk). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Switch 12 scripts from #!/bin/bash to the preferred #!/usr/bin/env bash (per CLAUDE.md style) - Mark all .sh files executable in the index (were committed at 644) - Convert alias-dist/alias-dist.sh from CRLF to LF; without this, shellcheck flags every line as SC1017 - Tighten .gitignore: __pycache__/, *.pyc/*.pyo, and the cloudflare-ip-logger build artifacts (cf-ip-logger, cf-log-parser) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add #!/usr/bin/env python3 shebangs to the 2 scripts that lacked them - Mark all .py files executable in the index (were 644) - Apply ruff auto-fixes for trivial issues: trailing whitespace on blank lines (W293), missing trailing newline (W292), f-strings without placeholders (F541), unused import (F401) - Add ruff.toml selecting E/F/W/B with E722 and B007 ignored (the bare excepts in github-stars.py and the 'best-effort cleanup' loop in hung_connection_killer.py are intentional) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…logparser - Add go.sum so the build is reproducible (Dockerfile already expected it via 'COPY go.mod go.sum* ./' but the file was never committed) - Drop 'RUN go mod tidy' from the Dockerfile -- it would silently mutate go.sum at build time, defeating the point of pinning deps - Add --no-install-recommends and apt-list cleanup to the builder stage (DL3015) and tighten the COPY of go.mod/go.sum - Document cmd/logparser in the cloudflare-ip-logger README, including the cf-log-parser.service systemd unit and run-with-logging.sh wrapper Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ci.yml runs on every push/PR and covers the whole repo:
- shellcheck (errors) on all .sh files
- py_compile + ruff on all .py files
- go vet, gofmt, go build, go test for cloudflare-ip-logger (both the
proxy and the cmd/logparser binary)
- hadolint for the Dockerfile (config in cloudflare-ip-logger/.hadolint.yaml)
- docker buildx smoke build of the cf-ip-logger image
- yamllint for all YAML (config in .yamllint.yml)
release.yml fires on cf-ip-logger-vX.Y.Z tags (or manual dispatch),
builds a multi-arch (amd64 + arm64) image with QEMU/buildx, and
publishes to ghcr.io/<owner>/cf-ip-logger:<version> + :latest.
Auth uses the built-in GITHUB_TOKEN -- no secrets to configure.
dependabot.yml watches Go modules, the Dockerfile base image, and
GitHub Actions versions on a weekly cadence.
Add CI status badge and pipeline overview to the top-level README.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Documents the shape of the repo (collection of independent scripts, no shared library or test suite), per-language conventions (bash shebang style, stdlib-only Python), and the cloudflare-ip-logger architecture so Claude Code has accurate context when assisting on this codebase. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- gofmt -w on cloudflare-ip-logger/main.go and cmd/logparser/main.go (struct field alignment) - Add `# shellcheck shell=bash` to dotfiles/.bashrc and .bash_aliases so SC2148 stops firing on these sourced (no-shebang) files - Disable SC2142 on the localip alias — `$1` is awk's, not a shell positional Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
#!/usr/bin/env bash), executable bits set on all 21 scripts in the index, CRLF→LF onalias-dist/alias-dist.sh, tightened.gitignore.cloudflare-ip-logger/go.sum, drop theRUN go mod tidyfrom the Dockerfile (would silently mutatego.sumat build time), add--no-install-recommends, document thecmd/logparsercompanion binary in its README.f"", unused import) and addruff.toml. Bareexcept:blocks left intact (intentional, ignored in config)..github/workflows/ci.yml) covering shellcheck, ruff + py_compile, go vet/build/test, hadolint, docker buildx smoke build, and yamllint..github/workflows/release.yml) that publishes a multi-arch (amd64+arm64)cf-ip-loggerimage toghcr.iooncf-ip-logger-vX.Y.Ztags..github/dependabot.ymlfor weekly Go module / Docker base-image / GH Actions updates.CLAUDE.mddocumenting repo conventions for Claude Code.Commits
d8e3b71Sync top-level README with actual repo layout2665c90Normalize bash scripts: shebangs, exec bits, line endingse7006fcNormalize Python scripts and add ruff config5f2d67aTidy cloudflare-ip-logger: commit go.sum, clean Dockerfile, document logparser53a1990Add CI/CD pipeline, Dependabot, and lint configs32735c7Add CLAUDE.md with repo conventions for Claude CodeTest plan
cf-ip-logger-v0.1.0and verifyrelease.ymlpublishes the multi-arch image toghcr.io/bfritzinger/cf-ip-loggermainhas a workflow rungit clone)🤖 Generated with Claude Code