web: complete AgenticTime integration across all pages and components #37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |