Skip to content

feat(advisories): add provisional GHSA feed#242

Merged
davida-ps merged 12 commits into
mainfrom
davida-ps/ghsa-without-cve-feed
May 24, 2026
Merged

feat(advisories): add provisional GHSA feed#242
davida-ps merged 12 commits into
mainfrom
davida-ps/ghsa-without-cve-feed

Conversation

@davida-ps
Copy link
Copy Markdown
Collaborator

@davida-ps davida-ps commented May 24, 2026

User description

Summary

  • Add a provisional ghsa-without-cve.json advisory feed for public GHSAs before they receive CVE IDs
  • Add lifecycle handling for active, matured, and stale GHSA records with a 60-day stale threshold
  • Publish, sign, and include the provisional feed in Pages checksums alongside the canonical CVE feed

Coverage

  • Covers the current ClawSec core platform slugs: openclaw, nanoclaw, hermes, and picoclaw
  • Polls openclaw/openclaw, qwibitai/nanoclaw, softwarepub/hermes, nousresearch/hermes-agent, and sipeed/picoclaw

Testing

  • node scripts/test-ghsa-without-cve-feed.mjs
  • node node_modules/eslint/bin/eslint.js scripts/ghsa-without-cve-feed.mjs scripts/test-ghsa-without-cve-feed.mjs --max-warnings 0
  • node node_modules/typescript/bin/tsc --noEmit
  • node scripts/generate-wiki-llms.mjs && node node_modules/vite/bin/vite.js build
  • git diff --check

Generated description

Below is a concise technical summary of the changes proposed in this PR:
Deliver a provisional ghsa-without-cve feed generator that polls GitHub Security Advisories, tracks lifecycle states, and wires the signed artifacts into CI, deploy, and pages-validation workflows alongside the canonical CVE stream. Document and version-bump every consumer skill so operators know the consolidated feed now carries NVD CVEs, approved community advisories, and pending GHSA records while release tooling rejects incomplete metadata.

TopicDetails
Skill Feed Docs Update the skill release tooling, import-closure checks, and documentation/types so operators understand the consolidated feed contents, enforce version bumps, and surface the new advisory metadata keys.
Modified files (22)
  • .github/workflows/skill-release.yml
  • scripts/ci/test_verify_skill_release_import_closure.py
  • scripts/ci/verify_skill_release_import_closure.py
  • scripts/test-skill-release-workflow.mjs
  • skills/clawsec-feed/CHANGELOG.md
  • skills/clawsec-feed/SKILL.md
  • skills/clawsec-feed/skill.json
  • skills/clawsec-nanoclaw/CHANGELOG.md
  • skills/clawsec-nanoclaw/SKILL.md
  • skills/clawsec-nanoclaw/lib/types.ts
  • skills/clawsec-nanoclaw/skill.json
  • skills/clawsec-suite/CHANGELOG.md
  • skills/clawsec-suite/SKILL.md
  • skills/clawsec-suite/hooks/clawsec-advisory-guardian/lib/types.ts
  • skills/clawsec-suite/skill.json
  • skills/hermes-attestation-guardian/CHANGELOG.md
  • skills/hermes-attestation-guardian/SKILL.md
  • skills/hermes-attestation-guardian/skill.json
  • skills/picoclaw-security-guardian/CHANGELOG.md
  • skills/picoclaw-security-guardian/SKILL.md
  • skills/picoclaw-security-guardian/skill.json
  • types.ts
Latest Contributors(2)
UserCommitDate
David.a@prompt.securityfix(release): ignore s...May 24, 2026
david@abutbul.comfix(attestation): incl...May 16, 2026
Provisional GHSA Flow Coordinate the provisional GHSA feed lifecycle through scripts/ghsa-without-cve-feed.mjs, the new poll/GHSA workflows, and the deployment/signing/checksum steps that publish both canonical and provisional advisories.
Modified files (9)
  • .github/workflows/ci.yml
  • .github/workflows/deploy-pages.yml
  • .github/workflows/pages-verify.yml
  • .github/workflows/poll-ghsa-without-cve.yml
  • advisories/ghsa-without-cve.json
  • scripts/ghsa-without-cve-feed.mjs
  • scripts/test-deploy-pages-checksums.mjs
  • scripts/test-ghsa-poll-workflow.mjs
  • scripts/test-ghsa-without-cve-feed.mjs
Latest Contributors(2)
UserCommitDate
David.a@prompt.securitytest(advisories): add ...May 24, 2026
david@abutbul.comfix(release): exclude ...May 14, 2026
NVD+GHSA Pipeline Extend the NVD poll workflow to merge signed GHSA records, detect GHSA vs. consolidated-feed churn, and validate the combined workflow via dry-run suites that cover signing, PR generation, and summary updates.
Modified files (3)
  • .github/workflows/poll-nvd-cves.yml
  • scripts/test-nvd-ghsa-consolidation-workflow.mjs
  • scripts/test-nvd-ghsa-pipeline-dry-run.mjs
Latest Contributors(2)
UserCommitDate
David.a@prompt.securitytest(advisories): add ...May 24, 2026
david.a@prompt.securityInclude hermes-agent i...May 07, 2026
Review this PR on Baz | Customize your next review

@baz-reviewer
Copy link
Copy Markdown
Contributor

baz-reviewer Bot commented May 24, 2026

⚠️ Advanced Security cannot run on this PR.

Your organization's Advanced Security usage limit has been reached. To continue using Advanced Security reviews, please upgrade your plan or increase your usage limits in your account settings.

Comment thread .github/workflows/deploy-pages.yml Outdated
Comment thread .github/workflows/deploy-pages.yml
Comment thread skills/clawsec-nanoclaw/lib/types.ts
Comment thread scripts/ghsa-without-cve-feed.mjs Outdated
Comment thread .github/workflows/skill-release.yml Outdated
Comment thread scripts/ci/verify_skill_release_import_closure.py
Comment on lines +69 to +72
async function writeJson(filePath, value) {
await mkdir(path.dirname(filePath), { recursive: true });
await writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`);
}
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.

The new writeJson helper duplicates the mkdir + JSON write logic in scripts/ghsa-without-cve-feed.mjs, should we centralize it in a shared helper so both scripts use the same atomic write path?

Finding type: Code Dedup and Conventions | Severity: 🟢 Low


Want Baz to fix this for you? Activate Fixer

@davida-ps davida-ps merged commit 4dbac42 into main May 24, 2026
19 checks passed
@davida-ps davida-ps deleted the davida-ps/ghsa-without-cve-feed branch May 24, 2026 18:42
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.

1 participant