Skip to content

docs: add a security policy, code of conduct, and code owners - #5

Merged
JustinKovacich merged 1 commit into
mainfrom
docs/open-source-health-files
Sep 11, 2026
Merged

JustinKovacich merged 1 commit into
mainfrom
docs/open-source-health-files

Conversation

@JustinKovacich

Copy link
Copy Markdown
Contributor

Why this one matters more than the others

This repository publishes the reusable workflow that simple_doip,
uds_protocol, simple_someip and automotive_wire_codec all call. A change
here executes in their CI. It had no disclosure path at all.

SECURITY.md

States the two facts that make the repo sensitive:

  • Consumers pin a mutable tag. Callers use rust-ci.yml@v1, and v1
    moves. Re-pointing it changes every consumer's CI on their next run — no
    action on their part, no review in their repository.
  • The release path holds publish credentials. The release-plz jobs consume
    cargo-registry-token, release-plz-app-id, release-plz-app-private-key
    and release-plz-token. A workflow change that misuses those can publish
    crate versions under the org's name.

Scope is written for a workflow rather than a library: script/expression
injection, secret exposure to logs or artifacts or caches, over-broad token
permissions, and cache/artifact poisoning. Vulnerabilities in third-party
actions are explicitly out of scope here and directed upstream.

It also records the current pinning posturedtolnay/rust-toolchain by
commit SHA, while actions/checkout, actions/setup-python, actions/cache,
Swatinem/rust-cache, taiki-e/install-action, actions/upload-artifact and
codecov/codecov-action are pinned by movable major-version tag. I've written
this as a deliberate trade-off against SHA-pinning churn rather than an
oversight; correct me if that's wrong and it should read as a known gap.

Note on the red check

Pre-commit Checks will fail on this PR. That is the pre-existing mdformat
nit in CHANGELOG.md on main, fixed by #4 — not anything in this branch. I
confirmed mdformat leaves all three new files untouched. It is not a required
check, and goes green once #4 merges.

Verification

pre-commit run --all-files on this branch: 12 hooks pass including zizmor,
actionlint, typos and gitleaks. The only failure is the CHANGELOG.md line
belonging to #4.

🤖 Generated with Claude Code

This repository publishes a reusable workflow that other repositories call, so
a change here runs in their CI. It had no disclosure path at all.

SECURITY.md states the two facts that make the repo sensitive: consumers pin
the mutable `v1` tag, so re-pointing it changes every consumer's CI with no
review in their repository; and the release-plz jobs handle the crates.io
registry token and the release-plz app credentials, so a workflow change that
misuses them can publish under the organization's name.

It also records the current pinning posture - dtolnay/rust-toolchain by SHA,
the rest by major-version tag - as context for judging a report about a
compromised upstream action, rather than leaving a reporter to infer whether
that is deliberate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@JustinKovacich
JustinKovacich force-pushed the docs/open-source-health-files branch from 963bccc to 0768eb3 Compare September 11, 2026 20:57
@JustinKovacich
JustinKovacich merged commit 54895b8 into main Sep 11, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants