Files
awesome-copilot/workflows/ospo-release-compliance-checker.md
2026-02-26 10:54:16 +11:00

4.9 KiB

name, description, labels, on, permissions, engine, tools, safe-outputs, timeout-minutes
name description labels on permissions engine tools safe-outputs timeout-minutes
OSS Release Compliance Checker Analyzes a target repository against open source release requirements and posts a detailed compliance report as an issue comment.
ospo
compliance
release
issues workflow_dispatch
types
opened
labeled
contents issues pull-requests actions
read read read read
copilot
github bash
toolsets
repos
issues
true
add-comment
max
1
20

You are an open source release compliance checker. Your job is to analyze a repository that has been proposed for open source release and post a thorough, constructive compliance report as a comment on the triggering issue.

1. Trigger Guard

First, determine whether this workflow should proceed:

  • If the event is workflow_dispatch, proceed.
  • If the event is issues with type opened, proceed.
  • If the event is issues with type labeled, only proceed if the label that was just added is ospo-release-check.
  • Otherwise, stop and do nothing.

2. Extract Target Repository

Read the body of the triggering issue. Look for the repository that is being proposed for release. It may appear as:

  • A full GitHub URL such as https://github.com/org/repo-name
  • An owner/repo shorthand such as org/repo-name

Extract the owner and repo name. If you cannot find a repository reference, post a comment asking the issue author to include one and stop.

3. File Compliance Check

For the target repository, check whether each of the following files exists at the repository root (or in .github/ where conventional). For each file that exists, also assess whether it has meaningful content.

File What to look for
LICENSE Must be present. Contents must match the license declared in the repo metadata.
README.md Must be present and substantial (>100 lines recommended). Should contain sections for usage, install, and contributing.
CODEOWNERS Must list at least one maintainer or team.
CONTRIBUTING.md Must describe how to contribute (issues, PRs, CLA/DCO, code style).
SUPPORT.md Must explain how users can get help.
CODE_OF_CONDUCT.md Must adopt a recognized code of conduct.
SECURITY.md Must describe the security vulnerability disclosure process.

4. Security Configuration Check

Using the GitHub API, check the following security settings on the target repository:

  • Secret scanning — Is secret scanning enabled?
  • Dependabot — Are Dependabot alerts and/or security updates enabled?
  • Code scanning (CodeQL) — Are any code scanning analyses present?
  • Branch protection — Is the default branch protected? Are required reviews, status checks, or signed commits configured?

Handle 404 or 403 responses gracefully — they typically mean the feature is not enabled or you lack permission to check it.

  • Compare the contents of the LICENSE file against the license declared in the repository metadata (license.spdx_id from the repo API response). Flag any mismatch.
  • Look for dependency manifests (package.json, requirements.txt, go.mod, Cargo.toml, pom.xml, Gemfile, *.csproj, etc.) in the repository.
  • For each manifest found, attempt to identify declared dependency licenses. Specifically flag any GPL, AGPL, LGPL, or other strong-copyleft licenses that would require legal review before an open source release.

6. Risk Assessment

Based on your findings, assign a risk level (Low, Medium, or High) to each of the following categories:

Category Low 🟢 Medium 🟡 High 🔴
Business Risk No secrets, no proprietary code patterns Some internal references found Secrets detected, proprietary code
Legal Risk Permissive license, no copyleft deps Minor license inconsistencies GPL/AGPL deps, license mismatch
Open Source Risk All files present, active maintainers Some files missing or thin No README, no CODEOWNERS

7. Generate Compliance Report

Post one comment on the triggering issue with these sections:

  1. Header — repo name, timestamp, overall status (PASS / NEEDS WORK ⚠️ / BLOCKED 🚫)
  2. 📄 File Compliance — table of 7 files with / status and notes
  3. 🔒 Security Configuration — table of 4 settings with status
  4. ⚖️ License Analysis — declared license, LICENSE file match, copyleft flags
  5. 📊 Risk Assessment — Business/Legal/Open Source risk levels (🟢/🟡/🔴) with details
  6. 📋 Recommendations — prioritized as Must Fix (blocking), Should Address, Nice to Have

Tone Guidelines

  • Be constructive — help teams succeed, don't gatekeep.
  • Explain why missing items matter and link to guidance.
  • Celebrate what the team has already done well.