mirror of
https://github.com/Sea-Haven-Industries/security-review.git
synced 2026-09-30 06:53:15 +00:00
ci: add org PR policy caller
Refs: PLAT-62
This commit is contained in:
parent
a82092f4ca
commit
e14ae17555
3 changed files with 62 additions and 0 deletions
4
.github/dependabot.yml
vendored
4
.github/dependabot.yml
vendored
|
|
@ -4,6 +4,8 @@ updates:
|
|||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
commit-message:
|
||||
prefix: "chore(deps)"
|
||||
groups:
|
||||
minor-and-patch:
|
||||
update-types:
|
||||
|
|
@ -13,6 +15,8 @@ updates:
|
|||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
commit-message:
|
||||
prefix: "chore(deps)"
|
||||
groups:
|
||||
minor-and-patch:
|
||||
update-types:
|
||||
|
|
|
|||
22
.github/workflows/policy.yaml
vendored
Normal file
22
.github/workflows/policy.yaml
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
name: PR Policy
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, reopened, synchronize, edited, labeled, unlabeled, ready_for_review]
|
||||
|
||||
concurrency:
|
||||
group: "policy-${{ github.event.pull_request.number }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: read
|
||||
pull-requests: read
|
||||
|
||||
jobs:
|
||||
policy:
|
||||
uses: Sea-Haven-Industries/.github/.github/workflows/callable-pr-policy.yaml@9c1ecf942894b19aba5c71b85b41906c6c83b749 # v1.0.5
|
||||
secrets:
|
||||
JIRA_CLOUD_ID: ${{ secrets.JIRA_CLOUD_ID }}
|
||||
JIRA_SERVICE_ACCOUNT_EMAIL: ${{ secrets.JIRA_SERVICE_ACCOUNT_EMAIL }}
|
||||
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
|
||||
36
AGENTS.md
Normal file
36
AGENTS.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# AGENTS.md
|
||||
|
||||
## Sea Haven Governance
|
||||
|
||||
**Standards authority**: The engineering handbook is the single authority for coding standards, naming conventions, and workflow configuration. Do not justify changes by citing it in PR bodies.
|
||||
|
||||
**Work authority**: Jira is the source of truth for work status. Before creating a ticket, search Jira for duplicates. Route product work to DEV, infrastructure and platform work to PLAT, and security work to SEC.
|
||||
|
||||
**Branch names**: Use `feature/`, `fix/`, `hotfix/`, `chore/`, `docs/`, `refactor/`, or `release/` with a kebab-case description. Do not include Jira keys in branch names. Dependabot branches and emergency reverts are exempt.
|
||||
|
||||
**PR title format**: `type(scope): description (DEV-123)` — Jira key required on every non-exempt PR. Dependabot and permission-controlled emergency reverts are exempt.
|
||||
|
||||
**PR body headings** (exact, in this order):
|
||||
1. Summary
|
||||
2. Validation
|
||||
3. Tests
|
||||
4. Notes
|
||||
|
||||
**Prohibited**: AI-attribution footers in commits, PRs, comments, or generated artifacts.
|
||||
|
||||
**Security gates**:
|
||||
- PRs touching payment flows, authentication logic, secret handling, AWS IAM, or untrusted user input require security review.
|
||||
- IAM role, policy, or resource-permission changes require cross-family review.
|
||||
|
||||
**CI workflow refs**: All `uses:` refs must be pinned to a 40-char SHA with a `# vX.Y.Z` comment. No floating tags or branch refs.
|
||||
|
||||
## Repository Notes
|
||||
|
||||
This repository is the source of the org-wide pre-push security hook (`review.sh`, `hooks/pre-push`) and the IAM cross-review script (`cross_review.py`). Changes propagate to every developer workstation that has run `install-hooks.sh`. Treat all modifications here as fleet-wide changes.
|
||||
|
||||
**High-impact areas — review carefully:**
|
||||
|
||||
- **`review.sh` / `hooks/pre-push`**: scanner invocation, suppression logic, and exit-code handling run on every developer push across the fleet.
|
||||
- **`cross_review.py`**: governs which IAM changes trigger mandatory cross-family review. Modifications expand or shrink the review surface org-wide.
|
||||
- **Scanner suppressions** (`.security-review-skip`, per-file markers): each suppression must document the specific threat excluded and why exclusion is safe.
|
||||
- **`canary/`**: intentionally insecure fixtures that validate scanner detection. Treat as test infrastructure, not production code; do not add real secrets or live credentials here.
|
||||
Loading…
Add table
Reference in a new issue