microsoftgbb/Safe Outputs for Agentic Workflows

Security gate for AI agent outputs in GitHub Actions. Validates constraints, sanitizes secrets, and applies actions through a controlled write pipeline. Inspired by GitHub Next Agentic Workflows (gh-aw).

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
artifact-pathPath to the agent output JSON fileyes
max-issuesMaximum number of issues the agent can create per runno1
max-commentsMaximum number of issue comments the agent can create per runno3
max-pull-requestsMaximum number of pull requests the agent can create per runno1
max-labelsMaximum number of add-labels actions per runno5
title-prefixRequired prefix for issue and PR titles (e.g., "[bot] ")no""
allowed-labelsComma-separated list of allowed labels. Empty means all labels are allowed.no""
custom-secret-patternsAdditional regex patterns to scan for sensitive data (one per line)no""
protected-filesGlob patterns for protected files (one per line). Uses .gitignore-compatible syntax via picomatch. Merged with built-in defaults unless override is set. Use ! prefix to create exceptions.no""
protected-files-actionAction when protected files are modified: "block" (fail the check) or "warn" (annotate but continue)noblock
protected-files-override-defaultsWhen true, built-in default patterns are NOT applied. Only user-provided patterns are used.nofalse
threat-detectionEnable AI-powered threat detection via Copilot CLI. Scans for prompt injection, credential leaks, malicious code, and social engineering. Requires Copilot CLI on the runner.nofalse
workflow-idWorkflow identifier for lifecycle features. Enables marker embedding in all created content. When empty, lifecycle features are disabled. Normalized to kebab-case.no""
close-older-issuesWhen true and workflow-id is set, auto-close previous open issues with the same workflow-id marker when creating a new issue. Closes as "not planned" with a linking comment.nofalse
close-older-issues-maxMaximum number of older issues to close per run. Safety limit to prevent runaway closures.no10
group-by-dayWhen true and workflow-id is set, append to an existing same-day issue (UTC) instead of creating a new one. Posts the content as a comment on the existing issue.nofalse
dry-runWhen true, validates and sanitizes but does not apply actionsnofalse
fail-on-sanitizeWhen true, fails the action if any content is redacted instead of applying the sanitized versionnofalse
tokenGitHub token for write operations. Should have issues:write and/or pull-requests:write scope.no${{ github.token }}
namedescription
applied-countNumber of actions successfully applied
blocked-countNumber of actions blocked by constraints
sanitized-countNumber of fields that had sensitive content redacted
summaryJSON summary of validation, sanitization, and execution results