Skip to content

chore: refresh org SBOM inventory - #1678

Draft
opencode-agent[bot] wants to merge 123 commits into
mainfrom
automation/sbom-inventory
Draft

chore: refresh org SBOM inventory#1678
opencode-agent[bot] wants to merge 123 commits into
mainfrom
automation/sbom-inventory

Conversation

@opencode-agent

@opencode-agent opencode-agent Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Automated central SBOM inventory refresh for live non-fork repositories. Review reciprocal, restricted, and NOASSERTION license evidence in docs/sbom/inventory.md against the product's actual distribution and hosted-service model.


Devin Review

Current blocking state (2026-09-08)

  • Exact head: e6b292ce5e104212eaa032579afff1514b865019; live main comparison is ahead 70 / behind 0. The effective customer-evidence delta remains docs/sbom/inventory.json and docs/sbom/inventory.md.
  • required-workflow-bootstrap is deterministically RED before policy analysis because the Contents API does not inline the 1,148,611-byte JSON and protected main's policy caps that evidence path at 1 MiB. This is not an Nginx finding.
  • Canonical owner repair #1946 sits at exact head 1cb8cceb8719eb054979d84141cda9a95c0c6873, ahead 5 / behind 0, with bounded Git Blobs fallback plus malicious-content and malformed-evidence tests. Both original and Ready-event same-head Security, SAST, Python Security, and CodeQL PR runs are terminal GREEN. Noema and Strix were materialized but failed on central orchestrator/free availability (HTTP 429 / zero ready routes); OpenCode's derived CHANGES_REQUESTED contains no leaf-source finding. Keep this inventory PR Draft until fix(pingora): read Contents-API-oversized files through the Git Blobs API #1946 reaches protected main, this branch non-force integrates that release, and new exact-head checks plus independent review are valid.
  • Noema's orchestrator/free HTTP 429 is a separate review-transport blocker. Keep this PR Draft until fix(pingora): read Contents-API-oversized files through the Git Blobs API #1946 reaches protected main, this branch non-force integrates that release, and all new exact-head checks plus independent review are valid.

@opencode-agent
opencode-agent Bot requested a review from seonghobae as a code owner September 2, 2026 04:27

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 3 potential issues.

⚠️ 3 issues in files not directly in the diff

⚠️ Partial inventory appears complete

With 34 of 63 SBOM fetches returning 404, repo_count reports all 63 while component totals cover only 29. The inventory presents partial organization evidence as complete.


⚠️ Permitted licenses trigger violations

For MPL-2.0 components without another prohibited license, flagged reports at least 137 policy violations. Governance therefore escalates expressly permitted dependencies.


⚠️ Permissive alternatives trigger violations

When an SPDX expression offers a permissive alternative, flagged rejects it because another alternative is copyleft. Seven selectable permissive dependencies become policy violations.

Devin Review

@seonghobae seonghobae added priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: maintenance Maintenance, build, dependency, or operational upkeep labels Sep 2, 2026 — with ChatGPT Codex Connector

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 0 new potential issues.

Devin Review

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 0 new potential issues.

Devin Review

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

⚠️ 1 issue in files not directly in the diff

⚠️ Restricted licenses escape policy review

Seven LicenseRef-NVIDIA-Proprietary components are marked unflagged. Unknown and non-standard licenses also disappear from the commercial-permissive policy review.

Devin Review

cwl-sbom-inventory[bot] and others added 6 commits September 7, 2026 05:49
Per-language codeql-scan-dispatch runs were occupying the 60-job
ceiling: 149 queued handler runs across 60 PR@SHA tuples, and
duplicate cancel could not collapse them because the language is
absent from the run name, job name, and REST payload.

analyze-head shards still publish the required check name and still
fail pending to release the runner, but they no longer POST.
dispatch-current-head collects this run's language job ids and sends
one codeql-scan payload (matrix + required_jobs). The handler
concurrency group is {workflow}-{repository}-{PR}; language
independence is fail-fast: false on that run's job matrix.

ADR-0025's 2026-09-05 rejection of a full-matrix dispatch is
superseded. The sibling-cancel failure from
contextual-orchestrator#1049 / run 33938784437 is gone because
siblings are jobs in one run.
#2008 made required_jobs mandatory on the default-branch handler.
repository_dispatch runs that file, so payloads that lined up before
the merge still carry required_language + required_job_id and a
one-shard matrix. Validate now synthesizes required_jobs from those
scalars when the array is empty, the matrix length is 1, and the
language matches. A present required_jobs array still wins; missing
or mismatched identity still fails closed. Concurrency stays
{workflow}-{repository}-{PR} with no language suffix.

Developer experience: queued single-language dispatches validate
instead of all failing closed after the cutover.
User experience: required CodeQL compatibility checks for those
in-flight PRs can still complete.

@cwl-noema-review cwl-noema-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Noema LLM review

The PR refreshes several workflow concurrency groups, adds a coordinator job for CodeQL dispatch, improves allowlist parsing to support multiple trusted actors, and enhances audit coverage reporting. The changes are consistent with the stated rationales, preserve the existing authorization invariants, and introduce no confirmed concrete regressions.

Reviewed changed lines

  • .github/workflows/agent-mention-noema-dispatch.yml:17 (RIGHT): Moves concurrency from the job level to workflow level. The workflow has a single job and the job-level block is removed, so there is no same-group self-wait risk and queued runs coalesce earlier.
  • .github/workflows/agent-mention-opencode-dispatch.yml:17 (RIGHT): Moves concurrency from the job level to workflow level. The workflow has a single job and the job-level block is removed, so there is no same-group self-wait risk and queued runs coalesce earlier.
  • .github/workflows/codeql-scan-dispatch.yml:157 (RIGHT): Parses ALLOWED_DISPATCH_ACTOR as a comma-separated allowlist while requiring non-empty actors; an empty allowlist continues to admit nothing.
  • .github/workflows/codeql-scan-dispatch.yml:524 (RIGHT): The wake job condition reads validated output required_jobs and only proceeds when non-empty, avoiding a wake with missing job bindings.
  • .github/workflows/opencode-review-dispatch.yml:150 (RIGHT): Uses the same comma-separated allowlist parsing with a non-empty guard, permitting multiple trusted dispatch identities without weakening empty-list denial.

Adversarial validation

  • .github/workflows/agent-mention-noema-dispatch.yml:17 (RIGHT) falsified: Moving concurrency to workflow level could cause a run to wait on its own group when job-level and workflow-level groups match. — The diff removes the job-level concurrency block entirely, leaving only the workflow-level group, so no job requests the group its own run already holds.
  • .github/workflows/agent-mention-opencode-dispatch.yml:17 (RIGHT) falsified: Moving concurrency to workflow level could cause a run to wait on its own group when job-level and workflow-level groups match. — The diff removes the job-level concurrency block entirely, leaving only the workflow-level group, so no job requests the group its own run already holds.
  • .github/workflows/codeql-scan-dispatch.yml:157 (RIGHT) falsified: Parsing ALLOWED_DISPATCH_ACTOR with IFS=',' could produce an empty actor that is admitted. — The loop checks allowed_actor is non-empty before comparing against DISPATCH_ACTOR and DISPATCH_SENDER, so an empty allowlist admits nothing.
  • .github/workflows/codeql-scan-dispatch.yml:524 (RIGHT) falsified: Using validated output required_jobs in the wake condition could let a wake job run when no valid job ids were bound. — The wake job condition explicitly requires needs.validate-dispatch.outputs.required_jobs != '', preventing an empty jobs list from triggering the job.
  • .github/workflows/opencode-review-dispatch.yml:150 (RIGHT) falsified: Parsing ALLOWED_DISPATCH_ACTOR with IFS=',' could produce an empty actor that is admitted. — The loop checks allowed_actor is non-empty before comparing against DISPATCH_ACTOR and DISPATCH_SENDER, so an empty allowlist admits nothing.
  • Residual risk: Low. The audited probes attempted concrete regressions around deadlocks, empty allowlists, and malformed job wake inputs and were all falsified against the changed lines.

Findings

  • No blocking findings.
  • Result: APPROVE
  • Head SHA: 5f264b19eea2559b4d8ce765e158d7d414bf90eb
  • Reviewer credential: noema-review-github-app-refresh
  • Actor: cwl-noema-review[bot]

@opencode-agent

opencode-agent Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

OpenCode Review Overview

  • Head SHA: ceea8ab13058fd2d9dcfa2d02bf563e61777169e
  • Workflow run: 34194023190
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES
  • Coverage gate: success
  • Model pool: exhausted
  • Verdict: REQUEST_CHANGES

cwl-sbom-inventory[bot] and others added 11 commits September 7, 2026 17:36
* fix(codeql): keep a clean dispatch scan when status publish 403s

opencode-agent is installed with statuses:read, so POST /statuses to a
target repo returns HTTP 403 after the SARIF gate already passed. Treat
the completed dispatch scan job as terminal evidence and let the
required shard consume that public run on rerun instead of fail-closing
a clean scan.

* fix(codeql): dispatch remaining languages on workflow reruns

Attempt 2 of .github#2028 skipped Dispatch current-head because the
coordinator required github.run_attempt == 1, so no codeql-scan was
posted. Later attempts still skip when every language already has a
terminal opencode-agent verdict.

* test(codeql): require paginated dispatch evidence lookup

* test(codeql): require paginated dispatch job lookup

* fix(codeql): paginate exact dispatch evidence

* test(codeql): parse paginated gh endpoint options

* style(codeql): normalize pagination fixture spacing

* test(codeql): match paginated empty dispatch fixtures

Signed-off-by: Seongho Bae <me@seonghobae.me>

* fix(codeql): bind dispatch fallback to live base and required run

The completed-scan fallback matched only repo#PR@head plus language, so a
same-head retarget could consume a predecessor-base scan and a different
waiting required run could satisfy this shard. Encode live base SHA and
required_run_id in the public dispatch run-name, look up that identity
from the required shard, and POST the live base on later attempts.
Concurrency stays repository+PR per #2008/#2009.

---------

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae
seonghobae marked this pull request as draft September 8, 2026 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: maintenance Maintenance, build, dependency, or operational upkeep

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant