Skip to content

ci(scorecard): eliminate neutral missing-configuration PR warning without weakening Scorecard evidence #362

Description

@seonghobae

Refs #84 #87 #174 #361.

Valid current finding

Fresh exact-head review of Draft PR #361 at c6d3fd45eba1aceef074cc8b9934937f67b1d41a found one non-terminal-success security signal that must not be silently accepted: GitHub Advanced Security check Scorecard job 103545605700 completed neutral with 1 configuration not found. The check states that code scanning cannot determine alerts introduced by the pull request because the configuration present on refs/heads/main was not found for Actions workflow scorecard-analysis.yml, category supply-chain/branch-protection.

Protected main@f8260f1e03836039ff9463dd99fa982e4e270c4b owns .github/workflows/scorecard-analysis.yml. Its trigger set is branch_protection_rule, scheduled weekly, and push to main; there is no pull-request analysis. Therefore the default-branch Scorecard SARIF configuration exists in code scanning while a PR head normally has no matching Scorecard SARIF analysis for GitHub to compare. This is a causal observability/configuration mismatch, not a Wardnet product-source finding.

Current OpenSSF Scorecard upstream guidance is material to the repair choice: the supported triggers are push and default-branch schedule; pull_request is experimental and fork repositories are not supported. The canonical upstream Scorecard workflow also runs on default-branch push/schedule rather than normal PR analysis. Do not “fix” the warning by blindly enabling an unsupported/unbounded PR workflow, and do not remove Scorecard SARIF publication merely to make the neutral check disappear.

Ownership / single writer

PR #174 is the current sole writer for .github/workflows/scorecard-analysis.yml and already carries the immutable CodeQL SARIF uploader update. Keep this issue as the RED/acceptance record and repair through #174 or a verified complete successor; do not create a competing workflow writer.

RED acceptance

The existing exact #361 evidence is the reproducible RED:

  • head c6d3fd45eba1aceef074cc8b9934937f67b1d41a;
  • Scorecard code-scanning check 103545605700;
  • conclusion neutral;
  • warning 1 configuration not found for scorecard-analysis.yml / supply-chain/branch-protection.

Reproduce on one unchanged same-repository PR head before repair. A central CodeQL failure, queued runner, or unrelated source warning is not this RED.

Minimum causal GREEN

Preserve the protected-main Scorecard scan and its SARIF security evidence while making PR comparison behavior explicit and warning-free on the supported Wardnet contribution path.

  • Keep OpenSSF Scorecard and SARIF uploader actions pinned by immutable SHA.
  • Do not weaken/remove default-branch Scorecard evidence or code-scanning publication merely to suppress the warning.
  • Do not use pull_request_target, execute untrusted PR code with privileged tokens, or grant broader permissions than needed.
  • If a same-repository pull_request lane is selected, prove it against current upstream trigger support, keep fork behavior fail-closed/non-failing, and ensure the SARIF category/configuration identity matches the default-branch configuration GitHub compares.
  • If GitHub cannot provide a supported safe PR comparison path for this default-branch-only scanner, document the upstream limitation and move the comparison/verification to an owner-supported evidence surface without manufacturing SUCCESS; the neutral warning must not simply be ignored.
  • Preserve the existing branch_protection_rule, scheduled and protected-main push purposes unless a narrower supported replacement is proven equivalent.

Exact-head completion gate

On one unchanged #174/successor head require current CI/security/SAST/CodeQL/review/thread evidence plus an actual pull-request Scorecard comparison that no longer emits the missing-configuration warning. Re-fetch the check result after the repair. No force push, destructive rebase, self/model approval, routine bypass, workflow-source duplication, disabled security evidence, mutable action pin, or source churn solely to redispatch.

Traceability

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority: highHigh-priority or P1 work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions