Skip to content
Merged
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
3 changes: 1 addition & 2 deletions .github/workflows/pr-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,7 @@ jobs:
- name: Run Codex PR Review
uses: ./external/ag-shared/github/actions/codex-pr-review
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
codex-auth-json-b64: ${{ secrets.CODEX_AUTH_JSON_B64 }}
codex-api-key: ${{ secrets.CODEX_API_KEY }}
pr-number: ${{ github.event.pull_request.number || github.event.issue.number || inputs.pr_number }}
base-ref: ${{ github.event.pull_request.base.ref || 'latest' }}
head-ref: ${{ github.event.pull_request.head.ref || '' }}
Expand Down
52 changes: 26 additions & 26 deletions .rulesync/commands/docs-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,32 +41,32 @@ Map documentation references to TypeScript definition files:

Map features to source implementation files:

| Feature Category | Implementation Path Pattern |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Row models (CSRM, SSRM, infinite, viewport) | `packages/ag-grid-community/src/clientSideRowModel/**/*.ts`, `packages/ag-grid-community/src/infiniteRowModel/**/*.ts`, `packages/ag-grid-enterprise/src/serverSideRowModel/**/*.ts`, `packages/ag-grid-enterprise/src/viewportRowModel/**/*.ts` |
| Column features (sizing, moving, pinning) | `packages/ag-grid-community/src/columns/**/*.ts`, `packages/ag-grid-community/src/columnMove/**/*.ts`, `packages/ag-grid-community/src/columnResize/**/*.ts`, `packages/ag-grid-community/src/columnAutosize/**/*.ts`, `packages/ag-grid-community/src/pinnedColumns/**/*.ts` |
| Cell editing | `packages/ag-grid-community/src/edit/**/*.ts` |
| Filtering | `packages/ag-grid-community/src/filter/**/*.ts`, `packages/ag-grid-enterprise/src/advancedFilter/**/*.ts` |
| Row grouping / pivoting | `packages/ag-grid-enterprise/src/rowGrouping/**/*.ts`, `packages/ag-grid-enterprise/src/pivot/**/*.ts` |
| Selection | `packages/ag-grid-community/src/selection/**/*.ts`, `packages/ag-grid-enterprise/src/rangeSelection/**/*.ts` |
| Export (CSV/Excel) | `packages/ag-grid-community/src/csvExport/**/*.ts`, `packages/ag-grid-enterprise/src/excelExport/**/*.ts` |
| Master detail | `packages/ag-grid-enterprise/src/masterDetail/**/*.ts` |
| Menu / context menu | `packages/ag-grid-enterprise/src/menu/**/*.ts` |
| Charts integration | `packages/ag-grid-enterprise/src/charts/**/*.ts` |
| Rich select / editors | `packages/ag-grid-enterprise/src/richSelect/**/*.ts` |
| Sorting | `packages/ag-grid-community/src/sort/**/*.ts` |
| Pagination | `packages/ag-grid-community/src/pagination/**/*.ts` |
| Tooltips | `packages/ag-grid-community/src/tooltip/**/*.ts` |
| Drag and drop / row drag | `packages/ag-grid-community/src/dragAndDrop/**/*.ts` |
| Keyboard navigation | `packages/ag-grid-community/src/navigation/**/*.ts` |
| Pinned rows | `packages/ag-grid-community/src/pinnedRowModel/**/*.ts` |
| Clipboard | `packages/ag-grid-enterprise/src/clipboard/**/*.ts` |
| Status bar | `packages/ag-grid-enterprise/src/statusBar/**/*.ts` |
| Side bar / tool panels | `packages/ag-grid-enterprise/src/sideBar/**/*.ts`, `packages/ag-grid-enterprise/src/columnToolPanel/**/*.ts`, `packages/ag-grid-enterprise/src/filterToolPanel/**/*.ts` |
| Set filter | `packages/ag-grid-enterprise/src/setFilter/**/*.ts` |
| Tree data | `packages/ag-grid-enterprise/src/treeData/**/*.ts` |
| Aggregation | `packages/ag-grid-enterprise/src/aggregation/**/*.ts` |
| Sparklines | `packages/ag-grid-enterprise/src/sparkline/**/*.ts` |
| Feature Category | Implementation Path Pattern |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Row models (CSRM, SSRM, infinite, viewport) | `packages/ag-grid-community/src/clientSideRowModel/**/*.ts`, `packages/ag-grid-community/src/infiniteRowModel/**/*.ts`, `packages/ag-grid-enterprise/src/serverSideRowModel/**/*.ts`, `packages/ag-grid-enterprise/src/viewportRowModel/**/*.ts` |
| Column features (sizing, moving, pinning) | `packages/ag-grid-community/src/columns/**/*.ts`, `packages/ag-grid-community/src/columnMove/**/*.ts`, `packages/ag-grid-community/src/columnResize/**/*.ts`, `packages/ag-grid-community/src/columnAutosize/**/*.ts`, `packages/ag-grid-community/src/pinnedColumns/**/*.ts` |
| Cell editing | `packages/ag-grid-community/src/edit/**/*.ts` |
| Filtering | `packages/ag-grid-community/src/filter/**/*.ts`, `packages/ag-grid-enterprise/src/advancedFilter/**/*.ts` |
| Row grouping / pivoting | `packages/ag-grid-enterprise/src/rowGrouping/**/*.ts`, `packages/ag-grid-enterprise/src/pivot/**/*.ts` |
| Selection | `packages/ag-grid-community/src/selection/**/*.ts`, `packages/ag-grid-enterprise/src/rangeSelection/**/*.ts` |
| Export (CSV/Excel) | `packages/ag-grid-community/src/csvExport/**/*.ts`, `packages/ag-grid-enterprise/src/excelExport/**/*.ts` |
| Master detail | `packages/ag-grid-enterprise/src/masterDetail/**/*.ts` |
| Menu / context menu | `packages/ag-grid-enterprise/src/menu/**/*.ts` |
| Charts integration | `packages/ag-grid-enterprise/src/charts/**/*.ts` |
| Rich select / editors | `packages/ag-grid-enterprise/src/richSelect/**/*.ts` |
| Sorting | `packages/ag-grid-community/src/sort/**/*.ts` |
| Pagination | `packages/ag-grid-community/src/pagination/**/*.ts` |
| Tooltips | `packages/ag-grid-community/src/tooltip/**/*.ts` |
| Drag and drop / row drag | `packages/ag-grid-community/src/dragAndDrop/**/*.ts` |
| Keyboard navigation | `packages/ag-grid-community/src/navigation/**/*.ts` |
| Pinned rows | `packages/ag-grid-community/src/pinnedRowModel/**/*.ts` |
| Clipboard | `packages/ag-grid-enterprise/src/clipboard/**/*.ts` |
| Status bar | `packages/ag-grid-enterprise/src/statusBar/**/*.ts` |
| Side bar / tool panels | `packages/ag-grid-enterprise/src/sideBar/**/*.ts`, `packages/ag-grid-enterprise/src/columnToolPanel/**/*.ts`, `packages/ag-grid-enterprise/src/filterToolPanel/**/*.ts` |
| Set filter | `packages/ag-grid-enterprise/src/setFilter/**/*.ts` |
| Tree data | `packages/ag-grid-enterprise/src/treeData/**/*.ts` |
| Aggregation | `packages/ag-grid-enterprise/src/aggregation/**/*.ts` |
| Sparklines | `packages/ag-grid-enterprise/src/sparkline/**/*.ts` |

### Example Path Pattern

Expand Down
2 changes: 1 addition & 1 deletion documentation/ag-grid-docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
"vue": "^3.5.13"
},
"devDependencies": {
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
"@types/he": "^1.2.3",
"playwright": "^1.56.0",
"playwright-ctrf-json-reporter": "0.0.24",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/usr/bin/env tsx

/* eslint-disable no-console */
import { readdir, stat } from 'fs/promises';
import { dirname, join, relative } from 'path';
Expand Down
4 changes: 2 additions & 2 deletions external/ag-shared/.gitrepo
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
[subrepo]
remote = https://github.com/ag-grid/ag-shared.git
branch = latest
commit = cde57a75f6011deff9c625d6d017061913e81cd6
parent = 08db58bfb47079d97c285e1736efa289a81e0b9a
commit = f999ddabe0d121bf65607f7c2bdab710335fab06
parent = 7aceeb9566b3b77349ffc42d782830af8f155b08
method = rebase
cmdver = 0.4.9
46 changes: 14 additions & 32 deletions external/ag-shared/github/actions/codex-pr-review/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ description: Run a Codex PR review with complete log suppression - no LLM output
# 5. POST RESULTS: Create/update summary comment (<!-- codex-pr-review --> marker)
# and post new inline comments on specific file/line locations
# 6. REACT COMPLETE: Remove 👀 from PR description, add 👍 (no findings) or 👎 (has findings)
# 7. CLEANUP FILES: Remove sensitive review output and auth files
# 7. CLEANUP FILES: Remove sensitive review output files
#
# Re-review behaviour:
# - Summary comment is updated in-place (found via marker)
Expand All @@ -30,12 +30,8 @@ description: Run a Codex PR review with complete log suppression - no LLM output
# | Codex exits 0, 1+ findings (JSON) | Yes then removed | 👎 | Yes (created/updated) | Yes |
#
inputs:
openai-api-key:
description: 'OpenAI API key for Codex CLI (alternative to codex-auth-json-b64)'
required: false
default: ''
codex-auth-json-b64:
description: 'Base64-encoded ~/.codex/auth.json for ChatGPT OAuth auth (alternative to openai-api-key)'
codex-api-key:
description: 'Codex API key for Codex CLI authentication'
required: false
default: ''
pr-number:
Expand Down Expand Up @@ -90,11 +86,10 @@ runs:
id: check-auth
shell: bash
env:
CODEX_AUTH_JSON_B64: ${{ inputs.codex-auth-json-b64 }}
OPENAI_API_KEY: ${{ inputs.openai-api-key }}
CODEX_API_KEY: ${{ inputs.codex-api-key }}
run: |
if [ -z "${CODEX_AUTH_JSON_B64:-}" ] && [ -z "${OPENAI_API_KEY:-}" ]; then
echo "::warning::Skipping PR review - no authentication configured (set OPENAI_API_KEY or CODEX_AUTH_JSON_B64 secret)"
if [ -z "${CODEX_API_KEY:-}" ]; then
echo "::warning::Skipping PR review - no authentication configured (set CODEX_API_KEY secret)"
echo "skipped=true" >> $GITHUB_OUTPUT
else
echo "skipped=false" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -278,24 +273,6 @@ runs:
./external/ag-shared/scripts/setup-prompts/setup-prompts.sh --targets=codexcli --verbose || true
fi

- name: Setup Authentication
if: steps.check-auth.outputs.skipped != 'true'
shell: bash
env:
CODEX_AUTH_JSON_B64: ${{ inputs.codex-auth-json-b64 }}
OPENAI_API_KEY: ${{ inputs.openai-api-key }}
run: |
# Prefer auth.json if provided, fall back to API key
if [ -n "${CODEX_AUTH_JSON_B64:-}" ]; then
echo "Using base64-encoded auth.json for authentication"
mkdir -p "$HOME/.codex"
echo "$CODEX_AUTH_JSON_B64" | base64 -d > "$HOME/.codex/auth.json"
chmod 600 "$HOME/.codex/auth.json"
elif [ -n "${OPENAI_API_KEY:-}" ]; then
echo "Using OpenAI API key for authentication"
# API key already set via env var - Codex will use it
fi

- name: Determine Prompt File
if: steps.check-auth.outputs.skipped != 'true'
id: prompt
Expand All @@ -317,7 +294,8 @@ runs:
id: codex
shell: bash
env:
OPENAI_API_KEY: ${{ inputs.openai-api-key }}
OPENAI_API_KEY: ${{ inputs.codex-api-key }}
CODEX_API_KEY: ${{ inputs.codex-api-key }}
ARGUMENTS: ${{ inputs.pr-number }}
BASE_REF: ${{ inputs.base-ref }}
HEAD_REF: ${{ inputs.head-ref }}
Expand Down Expand Up @@ -349,6 +327,12 @@ runs:

if [ $exit_code -ne 0 ]; then
echo "::error::Codex review failed with exit code ${exit_code}"

# Check if error is authentication-related
if [ -f "${error_file}" ] && grep -qE "(invalid_api_key|token_expired|refresh_token_reused|401 Unauthorized|Incorrect API key|Your access token could not be refreshed|exceeded retry limit.*401)" "${error_file}"; then
echo "::error::Authentication failure detected — the CODEX_API_KEY secret is likely invalid, expired, or has insufficient permissions. Verify the secret in repo/org settings."
fi

# Show stderr for debugging - contains CLI errors, not review content
if [ -f "${error_file}" ] && [ -s "${error_file}" ]; then
echo "::group::Codex CLI Error Output"
Expand Down Expand Up @@ -690,5 +674,3 @@ runs:
shell: bash
run: |
rm -f ".codex-review-${{ inputs.pr-number }}.md" ".codex-review-${{ inputs.pr-number }}.json" ".codex-error-${{ inputs.pr-number }}.log"
# Also clean up auth.json if we created it
rm -f "$HOME/.codex/auth.json"
Loading
Loading