Skip to content

feat: Import/opamp fleet - #1

Open
zenosaaur wants to merge 18 commits into
mainfrom
import/opamp-fleet
Open

zenosaaur wants to merge 18 commits into
mainfrom
import/opamp-fleet

Conversation

@zenosaaur

Copy link
Copy Markdown

No description provided.

Import the tracked files of opamp-fleet (mbrigl/opamp-fleet, commit
d1de86b) into the repository root, without history.

- .editorconfig: take opamp-fleet's version.
- SECURITY.md: take opamp-fleet's version, with the reporting contact
  replaced by the organisation's security address.
…ead of Dependabot

ADR-0049 supersedes ADR-0044. Renovate, from a renovate.json that
extends github>neteye-platform/repo-commons, raises every action and
Cargo update; .github/dependabot.yml goes. Every action, actions/*
included, is pinned to a commit SHA with its ref in a comment. Only the
organisation's own repositories may name a branch (# main), because
repo-commons publishes no tags. Cargo requirements stay ranges
(rangeStrategy: update-lockfile), because the preset's :pinDependencies
does not reach [workspace.dependencies] and the published opamp crate
should not impose exact requirements on its consumers.

ADR only, no implementation. ADR-0044's status line is flipped to
superseded, as docs/adr/README.md and check 8 of check-docs.sh require
in the pull request that proposes the successor. The human confirms
that flip by merging, and it is reverted if ADR-0049 is rejected.
The neteye-platform repositories carry no CODEOWNERS; access and review
are set in org-control-plane (rd-developers, one approving review on
main). Remove .github/CODEOWNERS and every reference to it: the
Enforcement section of ADR-0001, SECURITY.md, the repository-settings
list and tree of README.md, and the CODEOWNERS half of check 13 of
scripts/check-docs.sh with its self-test cases.

ADR-0001 is accepted, and AGENTS.md section 3 changes an accepted ADR
only by supersession. Editing its Enforcement section instead, with no
new ADR, is the human's decision for the migration into the
organisation.
Take the dual licence of repo-commons, as in the organisation's other
repositories. Remove LICENSE and crates/opamp/LICENSE, the Apache text
naming Markus Brigl; LICENSE-MIT and LICENSE-APACHE from repo-commons
stand at the root and are copied into crates/opamp/, which is published
and packages them.

- Cargo.toml and fuzz/Cargo.toml: license = "MIT OR Apache-2.0".
- NOTICE and crates/opamp/NOTICE stay, with the third-party attributions
  unchanged; the copyright line names Würth IT Italy S.r.l. and the
  licence line both licences.
- The Debian package's copyright names the new holder and its
  license-file is LICENSE-APACHE.
- README, CONTRIBUTING, the opamp crate's README, the WiX dialog comment
  and CHANGELOG say MIT OR Apache-2.0.
@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b9b5e0cb-254e-4ed5-9190-98bd8622449a
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

The project lives in neteye-platform/classis now. Move every reference
to mbrigl/opamp-fleet there: the README badges and the attestation
command, the opamp crate's repository field and README, the Supervisor
source of opamp-fleetctl's fetch tool, the tools manual, ADR-0045's
context, and the interop module path.

CHANGELOG keeps mbrigl/opamp-fleet in the entry of the release that
was published from it: that release's attestations name that
repository's workflow, so the command it gives verifies only there.

ADR-0019 clause 39 now says neither MIT nor Apache-2.0 needs a
click-through, and no longer names a single LICENSE file, which the
dual licence replaced. Both ADRs are accepted; editing them in place
rather than superseding them is the human's decision for the migration
into the organisation.
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

Comment thread fuzz/seeds/pem/ec-key Fixed

@github-advanced-security github-advanced-security AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Semgrep OSS found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

The neteye-platform organisation refuses a workflow that references an
action by a tag: "not allowed in neteye-platform/classis because all
actions must be pinned to a full-length commit SHA". Implement ADR-0049.

- Pin actions/attest, checkout, download-artifact, setup-go and
  upload-artifact to the commit of their latest release in the major
  the workflows used, with that release in a '# vX.Y.Z' comment. Each
  major tag pointed to the same commit, so no run changes.
- scripts/check-action-refs.sh: every action, actions/* included, is on
  a full SHA with its ref in a comment; only neteye-platform may name a
  branch ('# main'); --resolve also fetches a commented branch's commit
  graph and checks that it contains the pinned commit. renovate.json
  must extend the organisation preset and carry the cargo rule, and
  .github/dependabot.yml must not exist. The self-test covers each
  clause and now cites ADR-0049.
- Remove .github/dependabot.yml. renovate.json keeps Cargo
  requirements as ranges (rangeStrategy: update-lockfile); validated
  with renovate-config-validator 44.168.0 --strict.
- checks.yml, SECURITY.md, README.md and ADR-0045's two mentions of
  actions/attest on its major tag describe the new rule. ADR-0045 is
  accepted; editing it in place is the human's decision for the
  migration into the organisation.

ADR-0049 stays proposed; its status is the human's to flip.
The Carbon look of the bundled UI was described as IBM's Carbon Design
System as Würth Phoenix's NetEye and SATAYO wear it. Describe it after
Carbon alone, in the stylesheet's header, the handler's doc comment and
CHANGELOG. The look itself does not change.

The neteye-platform organisation stays: it is where the repository,
the Renovate preset and the reusable workflows live, and those
references are addresses, not mentions.
The workflows pin every action to a commit SHA (ADR-0049), so the
release workflow tests no longer match 'actions/attest@v4' and the
like. They compare the action each 'uses:' names, without its ref;
check-action-refs.sh holds the pin and its comment.
@zenosaaur zenosaaur changed the title Import/opamp fleet feat: Import/opamp fleet Oct 20, 2026
…ironment

Semgrep's run-shell-injection flagged the version step, which wrote
${{ github.event_name }} and ${{ inputs.dry_run }} straight into its
script. Neither is attacker-controlled, but an expression expanded into
a script is the pattern the rule exists for. The step now reads
$GITHUB_EVENT_NAME and a DRY_RUN set in its env; the tag check of the
next step reads $GITHUB_EVENT_NAME the same way.
… fuzz seed

The shared Semgrep and Trivy scans of neteye-platform/repo-commons
reported 118 alerts on the import, none of them a finding:

- detect-insecure-websocket (109) is a JavaScript rule that matches
  the ws:// literals of Rust tests, ADRs and the manual. The client
  refuses plaintext off the loopback (ADR-0013).
- detect-non-literal-regexp (6) is in static/shiki.js, vendored and
  minified. The only JavaScript here is vendored.
- detected-private-key and Trivy's private-key are
  fuzz/seeds/pem/ec-key, a throwaway key the PEM target starts from.

.semgrepignorerule, which the shared workflow reads, drops the two
JavaScript rules; .semgrepignore skips fuzz/seeds/ and keeps
.gitignore; trivy.yaml skips the seed. Semgrep --config auto and Trivy
fs (secret) run locally with these files report nothing.
…e hooks that misread them

The shared pre-commit check runs prek over every file, and the import
had only ever met it one change at a time. Some files are right as
they stand:

- trailing-whitespace and end-of-file-fixer skip the Redoc and Shiki
  bundles (Shiki's SHA-256 is pinned in scripts/vendor-shiki.lock) and
  the fuzz seeds, which the fuzzer reads byte for byte.
- check-json skips .vscode/*.json and devcontainer.json, JSON with
  comments.
- detect-private-key skips the PEM fuzz seed and the telemetry test
  that sets a PEM header alone.
- codespell skips the bundles and the lockfiles; .codespellrc, as in
  permissionsync, lists the words that are right where they stand.
  ui-carbon.css says "redeclares".
- The Excalidraw sources end in a newline.
- doris-dashboards.py and the two check-build-hardening scripts have a
  shebang and are now executable.
- ruff format and ruff check --fix on doris-dashboards.py; the
  dashboards it writes are unchanged.
actionlint runs shellcheck over every run: script when shellcheck is on
PATH, as it is in the shared pre-commit check.

- SC2035: the publish job's globs follow `--` in cat, rm and
  gh release create, so no file name is read as an option. The
  release workflow tests read the new lines.
- SC2016: the two rpm scriptlet assertions grep for a literal `$`; a
  directive says so.
… lines

check-docs.sh and check-traceability.sh read the first line of an
ADR's **Status:** and **Applies to:** fields, so a field that wraps
loses what its second line says: a "superseded by" or the end of the
Applies to text the index mirrors. Read them with header_field, as the
Supersedes and Deciders fields already are, wrapped lines joined by
one space. The self-test covers a wrapped Status field and a wrapped
Applies to field, matching the index and not.
… permissionsync does

The shared pre-commit check runs markdownlint-cli2 over every file;
the documents wrapped at 100 columns and broke about 16,000 times.
Adopt permissionsync's configuration: the rules' defaults, with tables
and code blocks exempt from the line length.

- `prettier --prose-wrap always --print-width 80` rewraps every
  document. Rendered to HTML, every file but one is unchanged; in
  ADR-0017 the dynamic linker's message is now a code span of its own,
  where an unmatched backtick had run into the next one.
- .markdownlint-cli2.yaml adds what these documents need: headings
  may run long (an ADR title is one sentence), ordered lists keep
  their clause numbers (ADRs cite clauses by number), headings repeat
  under different parents (CHANGELOG), and a code span may start with
  a space (` CA`, `, `). .github/.markdownlint-cli2.yaml lets a pull
  request template start at "##".
- By hand: commands lose their `$ ` prompt and their block is `sh`;
  unlabelled blocks are `text`; long code spans wrap at a space; the
  manual's bold labels end in a colon; placeholders in the ADR
  template and CONVENTIONS.md are escaped, so they render; the README's
  two notes form one blockquote; CHANGELOG 0.3.0 has one Changed
  section; the issue and pull request templates' comments rewrap.
- The manual's Basic credential example reads $PASSWORD, so gitleaks
  sees no literal password once the prompt is gone.
- .editorconfig sets max_line_length = 80 for Markdown.

ADR text is rewrapped, never reworded; that touches accepted ADRs,
which is the maintainer's call (AGENTS.md section 3).
docs/SECURITY-MODEL.md now holds the Dev Container, secrets, pinned
actions, fleet trust model and supported versions; AGENTS.md and the
README point to it. SECURITY.md keeps its original content.

CHANGELOG.md keeps only its header: the releases it listed no longer
exist, so the manual and the README stop referring to it, and the
markdownlint exception for its repeated headings goes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants