Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/allowed-workflow-secrets.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CHITTYCONNECT_API_KEY
GITHUB_TOKEN
ORG_AUTOMATION_TOKEN
CHITTY_GATEWAY_TOKEN
CHITTY_AGENT_TOKEN
OP_SERVICE_ACCOUNT_TOKEN
CHITTYCONNECT_BROKER_TOKEN
29 changes: 29 additions & 0 deletions .github/secret-catalog.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"vault": "ChittyOS",
"secrets": [
{
"name": "ORG_AUTOMATION_TOKEN",
"op_ref": "op://ChittyOS/GitHub Automation Token/token",
"rotation_days": 30,
"owner": "platform-security"
},
{
"name": "CHITTYCONNECT_BROKER_TOKEN",
"op_ref": "op://ChittyOS/ChittyConnect Broker Token/token",
"rotation_days": 30,
"owner": "platform-security"
},
{
"name": "CHITTY_GATEWAY_TOKEN",
"op_ref": "op://ChittyOS/ChittyGateway API Token/token",
"rotation_days": 30,
"owner": "platform-security"
},
{
"name": "CHITTY_AGENT_TOKEN",
"op_ref": "op://ChittyOS/ChittyAgent Orchestrator Token/token",
"rotation_days": 30,
"owner": "platform-security"
}
]
}
46 changes: 46 additions & 0 deletions .github/workflows/adversarial-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Adversarial Review Orchestrator

on:
pull_request_target:
types: [opened, reopened, synchronize, ready_for_review]

permissions:
contents: read
pull-requests: write
issues: write

jobs:
orchestrate:
runs-on: ubuntu-latest
steps:
- name: Request Reviewer Agents
uses: actions/github-script@v7
with:
script: |
const reviewers = ["coderabbitai"];
try {
await github.rest.pulls.requestReviewers({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
reviewers
});
core.info(`Requested reviewers: ${reviewers.join(", ")}`);
} catch (error) {
core.warning(`Reviewer request failed: ${error.message}`);
}
- name: Trigger Bot Review Comments
uses: actions/github-script@v7
with:
script: |
const lines = [
"@coderabbitai review",
"@copilot review",
"Adversarial review request: evaluate security, policy bypass paths, and regression risk."
];
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: lines.join("\n")
});
11 changes: 11 additions & 0 deletions .github/workflows/governance-gates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Governance Gates

on:
pull_request:
push:
branches: [ main ]

jobs:
gates:
uses: ./.github/workflows/reusable-governance-gates.yml

Choose a reason for hiding this comment

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

P1 Badge Point Governance Gates at a real reusable workflow

This workflow references ./.github/workflows/reusable-governance-gates.yml, but that file is not present in this repository (I checked with rg --files --hidden under /workspace/shared). As written, every pull_request/push trigger for this workflow will fail to start the gates job because GitHub cannot resolve the local reusable workflow target.

Useful? React with 👍 / 👎.

secrets: inherit
17 changes: 17 additions & 0 deletions .github/workflows/identity-context-onboarding.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Identity & Context Onboarding Gate

on:
pull_request:
push:
branches: [ main ]

jobs:
identity-onboarding:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate ChittyID Context Onboarding
shell: bash
run: |
set -euo pipefail
bash scripts/check-chitty-onboarding.sh .chittyconnect.yml

Choose a reason for hiding this comment

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

P1 Badge Call an onboarding validator script that exists in repo

The onboarding gate executes bash scripts/check-chitty-onboarding.sh .chittyconnect.yml, but neither scripts/check-chitty-onboarding.sh nor .chittyconnect.yml exists in this repo (verified via rg --files --hidden in /workspace/shared). That makes this job fail on every PR/push instead of acting as a meaningful policy gate.

Useful? React with 👍 / 👎.

56 changes: 56 additions & 0 deletions .github/workflows/onepassword-rotation-audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: 1Password Rotation Audit

on:
workflow_dispatch:
schedule:
- cron: "25 3 * * *"

permissions:
contents: read
issues: write

jobs:
audit:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.ORG_AUTOMATION_TOKEN }}
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: Validate required secrets
shell: bash
run: |
set -euo pipefail
[[ -n "${GH_TOKEN:-}" ]] || { echo "Missing ORG_AUTOMATION_TOKEN"; exit 1; }
[[ -n "${OP_SERVICE_ACCOUNT_TOKEN:-}" ]] || { echo "Missing OP_SERVICE_ACCOUNT_TOKEN"; exit 1; }
- name: Install 1Password CLI
uses: 1password/install-cli-action@v1
- name: Run rotation audit
id: rotation
shell: bash
run: |
set -euo pipefail
mkdir -p reports/secret-rotation
if bash scripts/onepassword-rotation-audit.sh .github/secret-catalog.json reports/secret-rotation; then

Choose a reason for hiding this comment

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

P1 Badge Invoke an existing rotation-audit script

The audit step runs scripts/onepassword-rotation-audit.sh, but there is no such script in this repository (rg --files --hidden shows no scripts/ tree), so the scheduled/dispatch audit can never actually execute the rotation checks. This turns the workflow into a guaranteed failure path rather than a functioning security control.

Useful? React with 👍 / 👎.

echo "status=pass" >> "$GITHUB_OUTPUT"
else
echo "status=fail" >> "$GITHUB_OUTPUT"
fi
- name: Upload rotation report
uses: actions/upload-artifact@v4
with:
name: onepassword-rotation-report
path: reports/secret-rotation
- name: Open or update rotation issue on failure
if: ${{ steps.rotation.outputs.status == 'fail' }}
shell: bash
run: |
set -euo pipefail
title="[Security] 1Password rotation policy violations"
body="$(cat reports/secret-rotation/latest.md)"
existing="$(gh issue list --state open --search "\"${title}\" in:title" --json number,title --jq '.[] | select(.title=="'"${title}"'") | .number' | head -n1 || true)"
if [[ -n "${existing}" ]]; then
gh issue comment "${existing}" --body "${body}" >/dev/null
else
gh issue create --title "${title}" --body "${body}" >/dev/null
fi
12 changes: 12 additions & 0 deletions .gitleaks.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
title = "chittycommand-gitleaks-config"

[allowlist]
description = "Known test/example files with non-production credential-like strings"
paths = [
'''_ext/chittyid/chittycontext\.config\.js''',
'''_ext/chittyid/monitoring/scripts/setup-monitoring\.sh''',
'''_ext/chittyid/test-security\.sh''',
'''_ext/chittyid/tests/integration/chittyrouter-gateway\.test\.js''',
'''_ext/chittyid/tests/penetration/bypass-attempts\.test\.js''',
'''_ext/chittyops/project-awareness/test/qa-integration-tests\.js''',
]
Loading