
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
codex-review
Advanced tools
Automated code review library for GitHub/GitLab with AI integration (OpenAI/Anthropic).
Automated code review for GitHub/GitLab with AI (OpenAI/Anthropic), ESLint, npm audit, and basic security checks. Runs locally or in CI, posts a summary comment and optional inline file comments on PRs/MRs.
package.json.@typescript-eslint/parser and @typescript-eslint/eslint-plugin in this tool’s environment.npm to be in PATH. It reads package.json without needing to install dependencies.GITHUB_TOKEN with Pull Requests write permissionGITLAB_TOKEN with API scopeOPENAI_API_KEY (default model gpt-4o-mini)ANTHROPIC_API_KEY (default model claude-3-5-sonnet-latest)npm install
# optional: create .env for defaults
cp .env.example .env
Environment variables can be set inline or via .env.
AI_PROVIDER: openai | anthropic | noneOPENAI_API_KEY, OPENAI_MODEL (default: gpt-4o-mini)ANTHROPIC_API_KEY, ANTHROPIC_MODEL (default: claude-3-5-sonnet-latest)GITHUB_TOKEN: Personal Access Token or GitHub Actions GITHUB_TOKENGITLAB_TOKEN: GitLab Personal Access Token with API scopeWORKDIR: default .codex-workdirReview a branch (prints JSON only):
node examples/review-branch.js https://github.com/owner/repo.git main
Review a PR and post comments on GitHub (summary + inline):
AI_PROVIDER=openai OPENAI_API_KEY=... GITHUB_TOKEN=... \
node examples/post-github-comment.js https://github.com/owner/repo.git 123
Notes:
AI_PROVIDER=none.filePath and line (primarily ESLint results). Summary comment includes all categories and AI text.const {
reviewRepository,
formatResultAsMarkdown,
postFeedbackToPlatform,
postInlineFeedbackToGithub
} = require('codex-review');
async function run(repoUrl, prNumber) {
const { result } = await reviewRepository({ repoUrl, refType: 'pr', ref: prNumber, ai: true });
const summaryComment = await postFeedbackToPlatform({ repoUrl, prNumber, result });
const inline = await postInlineFeedbackToGithub({ repoUrl, prNumber, result, maxComments: 15 });
return { summaryComment, inline };
}
name: Codex Review
on:
pull_request:
types: [opened, synchronize, reopened]
permissions:
contents: read
pull-requests: write
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: npm ci
- run: node bin/review-ci.js
env:
AI_PROVIDER: openai # or anthropic or none
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
stages: [review]
codex_review:
stage: review
image: node:18
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
script:
- npm ci
- node bin/review-ci.js
variables:
AI_PROVIDER: "openai" # or "anthropic" or "none"
OPENAI_API_KEY: "$OPENAI_API_KEY"
ANTHROPIC_API_KEY: "$ANTHROPIC_API_KEY"
GITLAB_TOKEN: "$GITLAB_TOKEN"
examples/post-github-comment.js to run analysis and posting.@typescript-eslint/parser and @typescript-eslint/eslint-plugin in this tool’s environment.npm audit fails or exits non-zero: We parse its JSON even on non-zero exit; results still included.pull_request_target carefully.{
"summary": { "counts": { "lint": 0, "security": 0, "dependency": 0 }, "total": 0 },
"issues": [
{ "type": "lint", "filePath": "...", "severity": "warning", "message": "...", "line": 1 }
],
"bestPractices": [ { "ruleId": "no-console", "filePath": "..." } ],
"aiReview": "string (AI-provided JSON or text)"
}
npm should be available in PATH for npm audit.AI_PROVIDER=none to disable.FAQs
Automated code review library for GitHub/GitLab with AI integration (OpenAI/Anthropic).
We found that codex-review demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.