Skip to content

feat(apollo-vertex): ai-chat message actions — copy, feedback, edit, regenerate [3/5] #2592

feat(apollo-vertex): ai-chat message actions — copy, feedback, edit, regenerate [3/5]

feat(apollo-vertex): ai-chat message actions — copy, feedback, edit, regenerate [3/5] #2592

name: Dependency Review
on: [pull_request]
permissions:
contents: read
pull-requests: write
env:
GH_NPM_REGISTRY_TOKEN: ${{ secrets.GH_NPM_REGISTRY_TOKEN }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
jobs:
dependency-review:
name: Dependencies license check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Check licenses
id: check
run: npx -y tsx scripts/check-licenses.ts
continue-on-error: true
- name: Post or update PR comment
if: "!github.event.pull_request.head.repo.fork"
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
with:
script: |
const fs = require('fs');
const reportPath = '${{ runner.temp }}/license-report.md';
const marker = '<!-- dependency-license-review -->';
let report;
try {
report = fs.readFileSync(reportPath, 'utf8');
} catch {
report = '# Dependency License Review\n\n:x: License check script failed before generating a report. Check the workflow logs.';
}
const body = `${marker}\n${report}`;
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
});
const existing = comments.find(c => c.body.includes(marker));
if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body,
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body,
});
}
- name: Fail if license violations found
if: steps.check.outcome == 'failure'
run: exit 1