Skip to content

feat: add missing security workflows (dependency-review, trivy, zizmor)#56

Open
Copilot wants to merge 3 commits intomasterfrom
copilot/setup-trustsignal-dev-org
Open

feat: add missing security workflows (dependency-review, trivy, zizmor)#56
Copilot wants to merge 3 commits intomasterfrom
copilot/setup-trustsignal-dev-org

Conversation

Copy link
Contributor

Copilot AI commented Mar 18, 2026

Three GitHub Actions security workflows referenced throughout compliance docs (security-workflows.md, github-settings-checklist.md, security-posture.md) did not exist in the repo, creating a gap between documented controls and implemented controls. This resolves that gap.

Changes

  • .github/workflows/dependency-review.yml — blocks PRs on master/work that introduce HIGH/CRITICAL dependency vulnerabilities via actions/dependency-review-action@v4.7.1
  • .github/workflows/trivy.yml — filesystem scan on every push/PR; uploads SARIF to code scanning; SARIF upload skipped on forked PRs to avoid permissions failure; advisory (non-blocking)
  • .github/workflows/zizmor.yml — audits /.github/workflows/** changes for workflow security issues via pip install zizmor; advisory, emits ::warning:: annotation on findings rather than failing the job

All three workflows:

  • SHA-pin action references
  • persist-credentials: false on checkout
  • permissions: contents: read at workflow level; security-events: write added only where SARIF upload requires it

What still requires manual GitHub UI action

Branch protection rulesets, Dependabot alerts, secret scanning, and CodeQL default setup — see docs/github-settings-checklist.md.

AI Disclosure (optional)

  • AI-assisted changes are included in this PR

Review Checklist

  • Human review requested
  • Tests added or updated where appropriate
  • No secrets, tokens, cookies, or raw PII were added to code, logs, fixtures, or docs
  • Security impact and remaining risks are described

💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

@vercel
Copy link

vercel bot commented Mar 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
api Ready Ready Preview, Comment Mar 20, 2026 4:45am
trustsignal Ready Ready Preview, Comment Mar 20, 2026 4:45am

Copilot AI changed the title [WIP] Set up TrustSignal-dev organization and compliance repositories feat: add missing security workflows (dependency-review, trivy, zizmor) Mar 18, 2026
Copilot AI requested a review from chrismaz11 March 18, 2026 03:27
@chrismaz11
Copy link
Collaborator

Set Complaice

@chrismaz11 chrismaz11 marked this pull request as ready for review March 18, 2026 03:37
Copilot AI review requested due to automatic review settings March 18, 2026 03:37
@github-advanced-security
Copy link

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.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 862d41e3e7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +29 to +30
zizmor --format plain .github/workflows/
EXIT_CODE=$?

Choose a reason for hiding this comment

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

P1 Badge Preserve advisory behavior when zizmor reports findings

This step currently runs zizmor --format plain .github/workflows/ as a standalone command, but GitHub Actions executes run scripts with bash -e, so a non-zero zizmor exit (i.e., findings detected) aborts the script before EXIT_CODE=$? and the warning path run. In practice, workflow-security findings will fail the job and block the PR, which contradicts the documented advisory intent for this workflow.

Useful? React with 👍 / 👎.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds the missing GitHub Actions security workflows referenced in the repo’s compliance/security documentation, closing the gap between documented controls and implemented controls.

Changes:

  • Adds a Dependency Review workflow to block PRs that introduce HIGH/CRITICAL vulnerable dependencies.
  • Adds a Trivy filesystem scan workflow that uploads SARIF results to GitHub Code Scanning (with fork-PR upload safeguards).
  • Adds a zizmor workflow to audit workflow-file changes in advisory mode.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
.github/workflows/dependency-review.yml Adds dependency diff vulnerability gating for PRs into master/work.
.github/workflows/trivy.yml Adds Trivy FS scanning and SARIF upload to Code Scanning with fork-PR upload skip logic.
.github/workflows/zizmor.yml Adds advisory zizmor auditing for changes under .github/workflows/**.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +28 to +34
run: |
zizmor --format plain .github/workflows/
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
echo "::warning::zizmor found workflow security findings (advisory). Review the output above before merging."
fi
exit 0
Comment on lines +15 to +30
permissions:
contents: read
security-events: write

jobs:
trivy:
name: Trivy filesystem scan
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false

- name: Run Trivy filesystem scan
uses: aquasecurity/trivy-action@6e7b7d1fd3e4fef0c5fa8cce1229c54b2c9bd0d8 # v0.30.0
@chrismaz11
Copy link
Collaborator

This is a strong narrow candidate for near-term merge pending focused human review of workflow permissions and SARIF behavior.

@chrismaz11
Copy link
Collaborator

This is a strong, narrow candidate for near-term merge pending focused human review of workflow permissions and SARIF behavior.

@chrismaz11 chrismaz11 added the merge-soon Narrow PR that is a candidate for near-term merge after focused review label Mar 20, 2026
Copilot AI and others added 2 commits March 19, 2026 23:23
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 774b905bf7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +5 to +7
branches:
- master
- work

Choose a reason for hiding this comment

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

P1 Badge Run dependency review on main-targeted pull requests

This trigger only matches PRs into master/work, so PRs targeting main will never execute the blocking dependency diff check. Given the repository’s branch-protection guidance and required-check setup are defined for main, this leaves the intended high/critical dependency gate inactive on the branch where merges are expected; include main (or remove the branch filter) so the control actually enforces there.

Useful? React with 👍 / 👎.

Comment on lines +6 to +10
- master
- work
pull_request:
branches:
- master

Choose a reason for hiding this comment

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

P1 Badge Enable Trivy scan for pushes and PRs on main

The Trivy workflow is scoped to master/work, so it will not run for activity on main; that means no filesystem scan and no SARIF refresh for the primary protected branch described in the repo docs. Add main to both push and pull_request branch filters (or broaden the trigger) to avoid silently losing security coverage on the branch used for compliance checks.

Useful? React with 👍 / 👎.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a6441e5c26

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +55 to +56
if (!parsed.password) {
parsed.password = encodeURIComponent(supabasePassword);

Choose a reason for hiding this comment

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

P1 Badge Override placeholder pooler password before using DATABASE_URL

In the SUPABASE_DB_PASSWORD fallback path, this check only injects the provided password when parsed.password is empty, but Supabase pooler URLs can contain placeholder credentials like [YOUR-PASSWORD] that parse as a non-empty password. In that case, DATABASE_URL is set to a URL with invalid credentials and Prisma startup/auth fails even though the real password is present in SUPABASE_DB_PASSWORD. Treat placeholder/stale passwords as missing (or overwrite unconditionally in this fallback branch).

Useful? React with 👍 / 👎.

Comment on lines +16 to +17
path.resolve(process.cwd(), '../../.env.local'),
path.resolve(process.cwd(), '../../.env')

Choose a reason for hiding this comment

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

P2 Badge Keep fallback .env discovery inside the project tree

These fallback candidates walk two directories up from the current working directory; when the API is started from the repository root, they resolve to /.env.local and /.env. That allows unrelated host-level env files to be loaded and silently influence runtime configuration (including DB credentials), making environment resolution nondeterministic across runners and developer machines. Limit fallback paths to known project locations instead of traversing above repo root.

Useful? React with 👍 / 👎.

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

Labels

merge-soon Narrow PR that is a candidate for near-term merge after focused review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants