Skip to content

Add DCO check workflow for pull requests - #38

Merged
mosheabr merged 1 commit into
NVIDIA:mainfrom
sayalinvidia:add-dco-check
May 1, 2026
Merged

Add DCO check workflow for pull requests#38
mosheabr merged 1 commit into
NVIDIA:mainfrom
sayalinvidia:add-dco-check

Conversation

@sayalinvidia

Copy link
Copy Markdown
Collaborator

CONTRIBUTING.md requires every commit to carry a Signed-off-by trailer, but enforcement was honor-system — recent PRs (#29, #30, #32) merged via --admin override because contributors forgot the sign-off and there was no automated check.

This workflow runs on every pull_request open/synchronize/reopen, walks each commit in base..head, and fails if any commit lacks a Signed-off-by trailer. The failure log surfaces the recovery command (git rebase --signoff origin/main && git push --force-with-lease) so contributors can self-serve.

The automated/sync-skills branch is exempt — it's the daily mirror bot, not a contributor; the legal anchor for synced content lives on the human onboarding PR that registered the component in components.yml.

Onboarding type

  • New product onboarding (components.yml entry)
  • Other (catalog change, README fix, infrastructure, etc.)

For new product onboarding — author affirmations

By submitting this PR, I confirm on behalf of my team:

  • Skills cleared for open source release per NVIDIA's internal IP review process (six-question check, all answers affirmative)
  • License selected: Apache 2.0 / CC-BY 4.0 / Dual (Apache 2.0 + CC-BY 4.0). Specify: _____
  • No new license or new third-party component introduced beyond what the source repo already carries
  • Source repo is public and under an NVIDIA-owned GitHub org
  • .agents/skills/ or skills/ path used for new entries (or existing path retained for legacy entries per components.yml)

NVIDIA contributors: see the internal onboarding guide for the IP review process details and license selection.

Reviewer checklist (OSS Skills PIC)

  • Author confirmations above are checked
  • components.yml entry valid (required fields, unique catalog_dir, path exists in source repo)
  • SKILL.md frontmatter spec-compliant (at least one sampled)
  • README rows added (Available Skills + Getting Help & Contributing)
  • No new license or third-party dependency requiring OSRB filing

All PRs

  • All commits signed off with DCO (git commit -s).
    If you forgot, run git rebase --signoff origin/main && git push --force-with-lease to retroactively sign all commits in your branch.

Other context (for non-onboarding PRs)

CONTRIBUTING.md requires every commit to carry a Signed-off-by
trailer, but enforcement was honor-system — recent PRs (NVIDIA#29, NVIDIA#30,
NVIDIA#32) merged via --admin override because contributors forgot the
sign-off and there was no automated check.

This workflow runs on every pull_request open/synchronize/reopen,
walks each commit in base..head, and fails if any commit lacks a
Signed-off-by trailer. The failure log surfaces the recovery
command (git rebase --signoff origin/main && git push
--force-with-lease) so contributors can self-serve.

The automated/sync-skills branch is exempt — it's the daily mirror
bot, not a contributor; the legal anchor for synced content lives
on the human onboarding PR that registered the component in
components.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Sayali Kandarkar <skandarkar@nvidia.com>
@sayalinvidia
sayalinvidia marked this pull request as ready for review April 30, 2026 23:12
@sayalinvidia
sayalinvidia requested a review from mosheabr as a code owner April 30, 2026 23:12

@mosheabr mosheabr left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approve.

DCO workflow walks base..head with native git trailer extraction (git show --format='%(trailers:key=Signed-off-by,valueonly)'), surfaces the rebase --signoff recovery command in the failure log, and exempts automated/sync-skills as discussed. Least-privilege permissions. Closes the honor-system gap that's been forcing --admin overrides on recent PRs (#29, #30, #32).

@mosheabr
mosheabr merged commit 77d66bb into NVIDIA:main May 1, 2026
1 check passed
sayalinvidia pushed a commit that referenced this pull request May 5, 2026
The DCO check (#38) verifies every commit carries a Signed-off-by
trailer but doesn't validate that the author email matches an
NVIDIA-affiliated address. Catalog content is published externally
under NVIDIA's name — accepting commits from arbitrary personal/
external email addresses creates IP-traceability gaps that are
hard to clean up after the fact.

PR #47 surfaced this gap concretely: an external contributor opened
a catalog onboarding PR with commits authored from gmail.com and
eduquencher.com addresses. Detection happened during human review
only; this workflow makes it an automated gate.

The check walks every non-merge commit between base and head, and
fails if any commit's author OR committer email isn't @nvidia.com or
@users.noreply.github.com (github-noreply covers NVIDIA-org members
who hide their personal email).

The automated/sync-skills branch is exempt — same rationale as the
DCO check, it's the bot mirror, not a contributor.

Companion change: catalog-pr-reviewer skill updated with the same
check inline so reviewers see the violation locally before opening
the PR rather than after CI fails.

Signed-off-by: Moshe Abramovitch <moshea@nvidia.com>
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.

2 participants