Skip to content

web: complete AgenticTime integration across all pages and components #37

web: complete AgenticTime integration across all pages and components

web: complete AgenticTime integration across all pages and components #37

name: Docs Sync Guardrails
on:
push:
paths:
- "docs/**"
- "scripts/sync-ecosystem-docs.mjs"
- "scripts/check-docs-sync.sh"
- "scripts/check-docs-nav-contract.mjs"
- "scripts/check-release-doc-readiness.sh"
- "scripts/check-public-docs.sh"
- "app/docs/layout.tsx"
- "package.json"
- ".github/workflows/docs-sync-guardrails.yml"
pull_request:
paths:
- "docs/**"
- "scripts/sync-ecosystem-docs.mjs"
- "scripts/check-docs-sync.sh"
- "scripts/check-docs-nav-contract.mjs"
- "scripts/check-release-doc-readiness.sh"
- "scripts/check-public-docs.sh"
- "app/docs/layout.tsx"
- "package.json"
- ".github/workflows/docs-sync-guardrails.yml"
jobs:
validate-docs-sync:
runs-on: ubuntu-latest
steps:
- name: Checkout web repo
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: "pnpm"
- name: Clone canonical ecosystem workspace
env:
AGENTRALABS_REPO_READ_TOKEN: ${{ secrets.AGENTRALABS_REPO_READ_TOKEN }}
run: |
if [ -z "${AGENTRALABS_REPO_READ_TOKEN}" ]; then
echo "::error::Missing secret AGENTRALABS_REPO_READ_TOKEN. Add a read-only PAT with access to agentralabs-tech and sister repos."
exit 1
fi
if ! command -v jq >/dev/null 2>&1; then
echo "::error::jq is required for sister auto-discovery"
exit 1
fi
clone_with_token() {
local repo="$1"
local dest="$2"
git clone --depth 1 \
"https://x-access-token:${AGENTRALABS_REPO_READ_TOKEN}@github.com/${repo}.git" \
"${dest}"
}
clone_with_token "agentralabs/agentralabs-tech" "$RUNNER_TEMP/agentra-workspace"
list_agentic_repos() {
local page=1
while true; do
local batch
batch="$(curl -fsSL \
-H "Authorization: Bearer ${AGENTRALABS_REPO_READ_TOKEN}" \
-H "Accept: application/vnd.github+json" \
"https://api.github.com/orgs/agentralabs/repos?per_page=100&page=${page}&type=all")"
echo "${batch}" | jq -r '.[] | select((.archived|not) and (.name|startswith("agentic-"))) | .full_name'
local count
count="$(echo "${batch}" | jq 'length')"
if [ "${count}" -lt 100 ]; then
break
fi
page=$((page + 1))
done
}
mapfile -t SISTER_REPOS < <(list_agentic_repos | sort -u)
if [ "${#SISTER_REPOS[@]}" -eq 0 ]; then
echo "::error::No agentic-* sister repos discovered from agentralabs org"
exit 1
fi
for repo in "${SISTER_REPOS[@]}"; do
repo_name="${repo##*/}"
clone_with_token "${repo}" "$RUNNER_TEMP/agentra-workspace/${repo_name}"
done
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Validate docs sync contract
run: AGENTRA_WORKSPACE_ROOT="$RUNNER_TEMP/agentra-workspace" pnpm docs:sync:check
- name: Public docs quality guardrail
run: ./scripts/check-public-docs.sh