chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:30:05 +08:00
commit 51d876a392
274 changed files with 121542 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
name: Bug report
description: File a bug report for chrome-devtools-mcp
title: '<short description of the bug>'
type: 'Bug'
body:
- id: description
type: textarea
attributes:
label: Description of the bug
description: >
A clear and concise description of what the bug is.
placeholder:
validations:
required: true
- id: reproduce
type: textarea
attributes:
label: Reproduction
description: >
Steps to reproduce the behavior:
placeholder: |
1. Use tool '...'
2. Then use tool '...'
- id: expectation
type: textarea
attributes:
label: Expectation
description: A clear and concise description of what you expected to happen.
- id: mcp-configuration
type: textarea
attributes:
label: MCP configuration
- id: chrome-devtools-mcp-version
type: input
attributes:
label: Chrome DevTools MCP version
validations:
required: true
- id: chrome-version
type: input
attributes:
label: Chrome version
- id: coding-agent-version
type: input
attributes:
label: Coding agent version
- id: model-version
type: input
attributes:
label: Model version
- id: chat-log
type: input
attributes:
label: Chat log
- id: node-version
type: input
attributes:
label: Node version
description: >
Please verify you have the minimal supported version listed in the README.md
- id: operating-system
type: dropdown
attributes:
label: Operating system
description: What supported operating system are you running?
options:
- Windows
- Windows Subsystem for Linux (WSL)
- macOS
- Linux
- type: checkboxes
id: provide-pr
attributes:
label: Extra checklist
options:
- label: I want to provide a PR to fix this bug
+44
View File
@@ -0,0 +1,44 @@
name: Feature
description: Suggest an idea for chrome-devtools-mcp
title: '<short description of the feature request>'
type: 'Feature'
labels:
- feature
body:
- id: description
type: textarea
attributes:
label: Is your feature request related to a problem? Please describe.
description: >
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
placeholder:
validations:
required: true
- id: solution
type: textarea
attributes:
label: Describe the solution you'd like
description: >
A clear and concise description of what you want to happen.
placeholder:
validations:
required: true
- id: alternatives
type: textarea
attributes:
label: Describe alternatives you've considered
description: >
A clear and concise description of any alternative solutions or features you've considered.
placeholder:
validations:
required: true
- id: additional-context
type: textarea
attributes:
label: Additional context
description: >
Add any other context or screenshots about the feature request here.
placeholder:
+17
View File
@@ -0,0 +1,17 @@
name: Task
description: Work tracking for maintainers only!
title: '[Task]:'
type: 'Task'
body:
- type: markdown
attributes:
value: |
### This issue type should be used only by mainainers!
Task are to track small non user facing issue or improvements.
The issue will be closed if it does not follow those rules.
- type: textarea
attributes:
label: 'Task to do:'
id: task
validations:
required: true
+1
View File
@@ -0,0 +1 @@
blank_issues_enabled: false
+58
View File
@@ -0,0 +1,58 @@
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule:
interval: weekly
day: 'sunday'
time: '02:00'
timezone: Europe/Berlin
cooldown:
default-days: 7
exclude:
- 'chrome-devtools-frontend'
- 'puppeteer*'
- 'lighthouse'
- '@google/genai'
groups:
dependencies:
dependency-type: production
patterns:
- '*'
dev-dependencies:
dependency-type: development
exclude-patterns:
- 'puppeteer*'
- 'chrome-devtools-frontend'
- '@modelcontextprotocol/sdk'
- 'yargs'
- 'debug'
- 'core-js'
patterns:
- '*'
# breaks often so better to roll separetely.
bundled-devtools:
patterns:
- 'chrome-devtools-frontend'
bundled:
patterns:
- 'puppeteer*'
- '@modelcontextprotocol/sdk'
- 'yargs'
- 'debug'
- 'core-js'
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
day: 'sunday'
time: '04:00'
timezone: Europe/Berlin
cooldown:
default-days: 7
exclude:
- 'googleapis/*'
groups:
all:
patterns:
- '*'
+13
View File
@@ -0,0 +1,13 @@
{
"name": "chrome-devtools-mcp",
"version": "1.5.0",
"description": "Reliable automation, in-depth debugging, and performance analysis in Chrome using Chrome DevTools and Puppeteer",
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"chrome-devtools-mcp@1.5.0"
]
}
}
}
+26
View File
@@ -0,0 +1,26 @@
name: 'Conventional Commit'
on:
merge_group:
pull_request_target:
types:
# Defaults
# https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request_target
- opened
- reopened
- synchronize
# Tracks editing PR title or description, or base branch changes
# https://docs.github.com/en/webhooks/webhook-events-and-payloads?actionType=edited#pull_request
- edited
jobs:
main:
name: '[Required] Validate PR title'
runs-on: ubuntu-latest
permissions:
pull-requests: read
steps:
- if: github.event_name != 'merge_group'
uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+44
View File
@@ -0,0 +1,44 @@
name: Pre-release
permissions: read-all
on:
workflow_dispatch:
push:
branches:
- release-please-*
jobs:
pre-release:
name: 'Verify artifacts before release'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
cache: npm
node-version-file: '.nvmrc'
registry-url: 'https://registry.npmjs.org'
# Ensure npm 11.5.1 or later is installed
- name: Update npm
run: npm install -g npm@latest
- name: Install dependencies
run: npm ci
- name: Build and bundle
run: npm run bundle
env:
NODE_ENV: 'production'
- name: Verify server.json
run: npm run verify-server-json-version
- name: Verify npm package
run: npm run verify-npm-package
+67
View File
@@ -0,0 +1,67 @@
name: Check code before submitting
permissions: read-all
on:
merge_group:
push:
branches:
- main
pull_request:
jobs:
check-format:
name: '[Required] Check correct format'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
cache: npm
node-version-file: '.nvmrc'
- name: Install dependencies
run: npm ci
- name: Run format check
run: npm run check-format
check-docs:
name: '[Required] Check docs updated'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
cache: npm
node-version-file: '.nvmrc'
- name: Install dependencies
run: npm ci
- name: Generate
run: npm run gen
- name: Check if autogenerated code and docs are out of date
run: |
diff_file=$(mktemp doc_diff_XXXXXX)
git diff --color > $diff_file
if [[ -s $diff_file ]]; then
echo "Please update the documentation by running 'npm run gen'. The following was the diff"
cat $diff_file
rm $diff_file
exit 1
fi
rm $diff_file
+101
View File
@@ -0,0 +1,101 @@
name: publish-on-tag
on:
push:
tags:
- 'chrome-devtools-mcp-v*'
workflow_dispatch:
inputs:
npm-publish:
description: 'Try to publish to npm'
default: false
type: boolean
mcp-publish:
description: 'Try to publish to MCP registry'
default: true
type: boolean
permissions:
id-token: write # Required for OIDC
contents: read
jobs:
publish-to-npm:
runs-on: ubuntu-latest
if: ${{ (github.event_name != 'workflow_dispatch') || (inputs.npm-publish && always()) }}
steps:
- name: Check out repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
cache: npm
node-version-file: '.nvmrc'
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
- name: Build and bundle
run: npm run bundle
env:
NODE_ENV: 'production'
- name: Publish chrome-devtools-mcp
run: |
npm publish --provenance --access public
- name: Publish chrome-devtools
run: |
node --input-type=module --eval '
import * as fs from "node:fs/promises";
const json = await fs.readFile("package.json", "utf8");
const pkg = JSON.parse(json);
pkg.name = "chrome-devtools";
await fs.writeFile("package.json", JSON.stringify(pkg, null, 2) + "\n");
'
echo 'This is the **Chrome DevTools for agents** package. Docs: https://github.com/ChromeDevTools/chrome-devtools-mcp' > README.md
npm publish --provenance --access public
publish-to-mcp-registry:
runs-on: ubuntu-latest
needs: publish-to-npm
if: ${{ (github.event_name != 'workflow_dispatch' && needs.publish-to-npm.result == 'success') || (inputs.mcp-publish && always()) }}
steps:
- name: Check out repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
cache: npm
node-version-file: '.nvmrc'
registry-url: 'https://registry.npmjs.org'
# Ensure npm 11.5.1 or later is installed
- name: Update npm
run: npm install -g npm@latest
- name: Install dependencies
run: npm ci
- name: Build and bundle
run: npm run bundle
env:
NODE_ENV: 'production'
- name: Install MCP Publisher
run: |
export OS=$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_${OS}.tar.gz" | tar xz mcp-publisher
- name: Login to MCP Registry
run: ./mcp-publisher login github-oidc
- name: Publish to MCP Registry
run: ./mcp-publisher publish
+18
View File
@@ -0,0 +1,18 @@
on:
push:
branches:
- main
permissions: read-all
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v5
with:
token: ${{ secrets.BROWSER_AUTOMATION_BOT_TOKEN }}
target-branch: main
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
+83
View File
@@ -0,0 +1,83 @@
name: Compile and run tests
permissions: read-all
on:
merge_group:
push:
branches:
- main
pull_request:
jobs:
run-tests:
name: Tests on ${{ matrix.os }} with node ${{ matrix.node }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
node:
- 22
- 24
- 26
steps:
- name: Check out repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
cache: npm
node-version: 22 # build works only with 22+.
- name: Install dependencies
shell: bash
run: npm ci
env:
PUPPETEER_SKIP_DOWNLOAD: true
- name: Install browser
shell: bash
run: npx puppeteer browsers install chrome
- name: Build
run: npm run bundle
env:
NODE_OPTIONS: '--max_old_space_size=4096'
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
cache: npm
node-version: ${{ matrix.node }}
- name: Disable AppArmor
if: ${{ matrix.os == 'ubuntu-latest' }}
shell: bash
run: echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns
- name: Run tests
shell: bash
# Retry tests if they fail in the merge queue.
run: >
npm run test:no-build --
${{ matrix.os == 'windows-latest' && '--test-concurrency=1' || '' }}
${{ github.event_name == 'merge_group' && '--retry' || '' }}
# Gating job for branch protection.
test-success:
name: '[Required] Tests passed'
runs-on: ubuntu-latest
needs: run-tests
if: ${{ !cancelled() }}
steps:
- if: ${{ needs.run-tests.result != 'success' }}
run: 'exit 1'
- run: 'exit 0'