Move Copilot vendor API and telemetry domains out of engine defaults - #55382
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot resolve the merge conflicts on this branch. |
|
@copilot this PR still needs forward progress. Please refresh the branch, resolve the remaining merge state, and then run the Run: https://github.com/github/gh-aw/actions/runs/32748984422
|
There was a problem hiding this comment.
Pull request overview
Narrows Copilot’s default network access and introduces an explicit copilot-vendor opt-in ecosystem.
Changes:
- Removes plan-specific API and telemetry hosts from Copilot defaults.
- Adds documentation and regression coverage for the opt-in ecosystem.
- Updates generated workflow and WASM outputs.
Show a summary per file
| File | Description |
|---|---|
pkg/workflow/domains.go |
Narrows defaults and registers the ecosystem. |
pkg/workflow/domains_test.go |
Tests vendor-domain opt-in behavior. |
pkg/workflow/data/ecosystem_domains.json |
Defines copilot-vendor. |
docs/src/content/docs/reference/network.md |
Documents the ecosystem. |
.github/aw/network.md |
Adds the ecosystem reference. |
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/smoke-copilot.golden |
Updates Go-compiler golden output. |
.github/workflows/unbloat-docs.lock.yml |
Regenerates domain configuration. |
.github/workflows/spec-enforcer.lock.yml |
Regenerates domain configuration. |
.github/workflows/smoke-ci.lock.yml |
Regenerates domain configuration. |
.github/workflows/schema-consistency-checker.lock.yml |
Regenerates domain configuration. |
.github/workflows/pr-sous-chef.lock.yml |
Regenerates domain configuration. |
.github/workflows/pr-code-quality-reviewer.lock.yml |
Regenerates domain configuration. |
.github/workflows/poem-bot.lock.yml |
Regenerates domain configuration. |
.github/workflows/lint-monster.lock.yml |
Regenerates domain configuration. |
.github/workflows/eslint-monster.lock.yml |
Regenerates domain configuration. |
.github/workflows/daily-news.lock.yml |
Regenerates domain configuration. |
.github/workflows/daily-hippo-learn.lock.yml |
Regenerates domain configuration. |
.github/workflows/daily-function-namer.lock.yml |
Regenerates domain configuration. |
.github/workflows/daily-doc-updater.lock.yml |
Regenerates domain configuration. |
.github/workflows/daily-awf-spec-compiler-surfacing.lock.yml |
Regenerates domain configuration. |
.github/workflows/commit-changes-analyzer.lock.yml |
Regenerates domain configuration. |
.github/workflows/chaos-pr-bundle-fuzzer.lock.yml |
Regenerates domain configuration. |
.github/workflows/auto-triage-issues.lock.yml |
Regenerates domain configuration. |
.github/workflows/agent-persona-explorer.lock.yml |
Regenerates domain configuration. |
.github/workflows/ab-testing-advisor.lock.yml |
Regenerates domain configuration. |
Review details
- Files reviewed: 30/206 changed files
- Comments generated: 3
- Review effort level: Balanced
| @@ -3,6 +3,7 @@ | |||
| "chrome": ["*.google.com", "*.googleapis.com", "*.gvt1.com"], | |||
| "clojure": ["repo.clojars.org", "clojars.org"], | |||
| "containers": ["ghcr.io", "registry.hub.docker.com", "*.docker.io", "*.docker.com", "production.cloudflare.docker.com", "dl.k8s.io", "pkgs.k8s.io", "quay.io", "mcr.microsoft.com", "gcr.io", "auth.docker.io"], | |||
| "copilot-vendor": ["api.business.githubcopilot.com", "api.enterprise.githubcopilot.com", "api.individual.githubcopilot.com", "telemetry.enterprise.githubcopilot.com"], | |||
| @@ -88,6 +88,7 @@ Mix ecosystem identifiers with specific domains for fine-grained control: | |||
| | `terraform` | HashiCorp registry, apt/yum releases | | |||
| | `bazel` | Bazel build system (`releases.bazel.build`, `bcr.bazel.build`) | | |||
| | `clojure` | Clojure packages (`clojars.org`) | | |||
| | `copilot-vendor` | Plan-specific Copilot API hosts (`api.business.githubcopilot.com`, `api.enterprise.githubcopilot.com`, `api.individual.githubcopilot.com`) and Copilot telemetry (`telemetry.enterprise.githubcopilot.com`) — not enabled by default, since agents route inference through the firewall gateway | | |||
| @@ -206,7 +206,7 @@ jobs: | |||
| id: sanitized | |||
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 | |||
| env: | |||
| GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.npms.io,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,bun.sh,cdn.jsdelivr.net,cdn.playwright.dev,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,deb.nodesource.com,deno.land,docs.github.com,esm.sh,get.pnpm.io,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,go.dev,golang.org,googleapis.deno.dev,googlechromelabs.github.io,goproxy.io,host.docker.internal,json-schema.org,json.schemastore.org,jsr.io,keyserver.ubuntu.com,lfs.github.com,nodejs.org,npm.pkg.github.com,npmjs.com,npmjs.org,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,patch-diff.githubusercontent.com,patchdiff.githubusercontent.com,pkg.go.dev,playwright.download.prss.microsoft.com,ppa.launchpad.net,proxy.golang.org,raw.githubusercontent.com,registry.bower.io,registry.npmjs.com,registry.npmjs.org,registry.yarnpkg.com,repo.yarnpkg.com,s.symcb.com,s.symcd.com,security.ubuntu.com,skimdb.npmjs.com,storage.googleapis.com,sum.golang.org,telemetry.enterprise.githubcopilot.com,telemetry.vercel.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com,www.npmjs.com,www.npmjs.org,yarnpkg.com" | |||
| GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,api.github.com,api.githubcopilot.com,api.npms.io,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,bun.sh,cdn.jsdelivr.net,cdn.playwright.dev,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,deb.nodesource.com,deno.land,docs.github.com,esm.sh,get.pnpm.io,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,go.dev,golang.org,googleapis.deno.dev,googlechromelabs.github.io,goproxy.io,host.docker.internal,json-schema.org,json.schemastore.org,jsr.io,keyserver.ubuntu.com,lfs.github.com,nodejs.org,npm.pkg.github.com,npmjs.com,npmjs.org,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,patch-diff.githubusercontent.com,patchdiff.githubusercontent.com,pkg.go.dev,playwright.download.prss.microsoft.com,ppa.launchpad.net,proxy.golang.org,raw.githubusercontent.com,registry.bower.io,registry.npmjs.com,registry.npmjs.org,registry.yarnpkg.com,repo.yarnpkg.com,s.symcb.com,s.symcd.com,security.ubuntu.com,skimdb.npmjs.com,storage.googleapis.com,sum.golang.org,telemetry.vercel.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com,www.npmjs.com,www.npmjs.org,yarnpkg.com" | |||
…-move-vendor-api # Conflicts: # .github/workflows/ab-testing-advisor.lock.yml # .github/workflows/ace-editor.lock.yml # .github/workflows/agent-performance-analyzer.lock.yml # .github/workflows/agent-persona-explorer.lock.yml # .github/workflows/agentic-token-audit.lock.yml # .github/workflows/agentic-token-optimizer.lock.yml # .github/workflows/agentic-token-trend-audit.lock.yml # .github/workflows/archie.lock.yml # .github/workflows/architecture-guardian.lock.yml # .github/workflows/artifacts-summary.lock.yml # .github/workflows/auto-triage-issues.lock.yml # .github/workflows/bot-detection.lock.yml # .github/workflows/breaking-change-checker.lock.yml # .github/workflows/chaos-pr-bundle-fuzzer.lock.yml # .github/workflows/ci-coach.lock.yml # .github/workflows/cli-consistency-checker.lock.yml # .github/workflows/code-scanning-fixer.lock.yml # .github/workflows/code-simplifier.lock.yml # .github/workflows/commit-changes-analyzer.lock.yml # .github/workflows/constraint-solving-potd.lock.yml # .github/workflows/contribution-check.lock.yml # .github/workflows/copilot-centralization-drilldown.lock.yml # .github/workflows/copilot-centralization-optimizer.lock.yml # .github/workflows/copilot-cli-deep-research.lock.yml # .github/workflows/copilot-opt.lock.yml # .github/workflows/copilot-pr-merged-report.lock.yml # .github/workflows/copilot-pr-nlp-analysis.lock.yml # .github/workflows/copilot-pr-prompt-analysis.lock.yml # .github/workflows/craft.lock.yml # .github/workflows/daily-action-setup-security-audit.lock.yml # .github/workflows/daily-agent-of-the-day-blog-writer.lock.yml # .github/workflows/daily-ambient-context-optimizer.lock.yml # .github/workflows/daily-architecture-diagram.lock.yml # .github/workflows/daily-assign-issue-to-user.lock.yml # .github/workflows/daily-awf-spec-compiler-surfacing.lock.yml # .github/workflows/daily-byok-ollama-test.lock.yml # .github/workflows/daily-cli-performance.lock.yml # .github/workflows/daily-cli-tools-tester.lock.yml # .github/workflows/daily-community-attribution.lock.yml # .github/workflows/daily-compiler-quality.lock.yml # .github/workflows/daily-compiler-threat-spec-optimizer.lock.yml # .github/workflows/daily-credit-limit-test.lock.yml # .github/workflows/daily-doc-updater.lock.yml # .github/workflows/daily-documentation-diagram.lock.yml # .github/workflows/daily-experiment-report.lock.yml # .github/workflows/daily-file-diet.lock.yml # .github/workflows/daily-firewall-report.lock.yml # .github/workflows/daily-formal-spec-verifier.lock.yml # .github/workflows/daily-function-namer.lock.yml # .github/workflows/daily-geo-optimizer.lock.yml # .github/workflows/daily-github-docs-seo-optimizer.lock.yml # .github/workflows/daily-go-test-parallelizer.lock.yml # .github/workflows/daily-graft-intelligence.lock.yml # .github/workflows/daily-hippo-learn.lock.yml # .github/workflows/daily-issues-report.lock.yml # .github/workflows/daily-malicious-code-scan.lock.yml # .github/workflows/daily-max-ai-credits-test.lock.yml # .github/workflows/daily-mcp-concurrency-analysis.lock.yml # .github/workflows/daily-model-inventory.lock.yml # .github/workflows/daily-model-resolution.lock.yml # .github/workflows/daily-multi-device-docs-tester.lock.yml # .github/workflows/daily-news.lock.yml # .github/workflows/daily-performance-summary.lock.yml # .github/workflows/daily-pr-review-cursor.lock.yml # .github/workflows/daily-regression-audit-kiro.lock.yml # .github/workflows/daily-regulatory.lock.yml # .github/workflows/daily-repo-chronicle.lock.yml # .github/workflows/daily-safe-output-integrator.lock.yml # .github/workflows/daily-schema-audit-cursor.lock.yml # .github/workflows/daily-secrets-analysis.lock.yml # .github/workflows/daily-security-observability.lock.yml # .github/workflows/daily-semgrep-scan.lock.yml # .github/workflows/daily-spdd-spec-planner.lock.yml # .github/workflows/daily-spec-coverage-kiro.lock.yml # .github/workflows/daily-spending-forecast.lock.yml # .github/workflows/daily-squid-image-scan.lock.yml # .github/workflows/daily-storify.lock.yml # .github/workflows/daily-syntax-error-quality.lock.yml # .github/workflows/daily-team-status.lock.yml # .github/workflows/daily-testify-uber-super-expert.lock.yml # .github/workflows/daily-trajectory-grader-implementer.lock.yml # .github/workflows/daily-windows-terminal-integration-builder.lock.yml # .github/workflows/daily-workflow-updater.lock.yml # .github/workflows/dataflow-pr-discussion-dataset.lock.yml # .github/workflows/dead-code-remover.lock.yml # .github/workflows/delight.lock.yml # .github/workflows/dependabot-burner.lock.yml # .github/workflows/dependabot-go-checker.lock.yml # .github/workflows/deployment-incident-monitor.lock.yml # .github/workflows/designer-drift-audit.lock.yml # .github/workflows/dev-hawk.lock.yml # .github/workflows/dictation-prompt.lock.yml # .github/workflows/docs-noob-tester.lock.yml # .github/workflows/draft-pr-cleanup.lock.yml # .github/workflows/duplicate-code-detector.lock.yml # .github/workflows/eslint-miner.lock.yml # .github/workflows/eslint-monster.lock.yml # .github/workflows/evoskill-evolver.lock.yml # .github/workflows/example-failure-category-filter.lock.yml # .github/workflows/example-permissions-warning.lock.yml # .github/workflows/firewall-escape.lock.yml # .github/workflows/firewall.lock.yml # .github/workflows/functional-pragmatist.lock.yml # .github/workflows/github-remote-mcp-auth-test.lock.yml # .github/workflows/glossary-maintainer.lock.yml # .github/workflows/gpclean.lock.yml # .github/workflows/impeccable-skills-reviewer.lock.yml # .github/workflows/issue-arborist.lock.yml # .github/workflows/issue-monster.lock.yml # .github/workflows/issue-triage-agent.lock.yml # .github/workflows/jsweep.lock.yml # .github/workflows/layout-spec-maintainer.lock.yml # .github/workflows/lint-monster.lock.yml # .github/workflows/linter-miner.lock.yml # .github/workflows/mattpocock-skills-reviewer.lock.yml # .github/workflows/mcp-inspector.lock.yml # .github/workflows/mergefest.lock.yml # .github/workflows/metrics-collector.lock.yml # .github/workflows/notion-issue-summary.lock.yml # .github/workflows/objective-impact-report.lock.yml # .github/workflows/org-health-report.lock.yml # .github/workflows/outcome-collector.lock.yml # .github/workflows/pdf-summary.lock.yml # .github/workflows/plan.lock.yml # .github/workflows/poem-bot.lock.yml # .github/workflows/ponytail-reviewer.lock.yml # .github/workflows/pr-code-quality-reviewer.lock.yml # .github/workflows/pr-description-caveman.lock.yml # .github/workflows/pr-nitpick-reviewer.lock.yml # .github/workflows/pr-sous-chef.lock.yml # .github/workflows/pr-triage-agent.lock.yml # .github/workflows/purelock.lock.yml # .github/workflows/python-data-charts.lock.yml # .github/workflows/q.lock.yml # .github/workflows/refactoring-cadence.lock.yml # .github/workflows/refiner.lock.yml # .github/workflows/release.lock.yml # .github/workflows/repo-audit-analyzer.lock.yml # .github/workflows/repo-tree-map.lock.yml # .github/workflows/repository-quality-improver.lock.yml # .github/workflows/research.lock.yml # .github/workflows/schema-consistency-checker.lock.yml # .github/workflows/security-compliance.lock.yml # .github/workflows/security-review.lock.yml # .github/workflows/sighthound-security-scan.lock.yml # .github/workflows/skillet.lock.yml # .github/workflows/slide-deck-maintainer.lock.yml # .github/workflows/smoke-checkout-pr-dispatch.lock.yml # .github/workflows/smoke-codex.lock.yml # .github/workflows/smoke-copilot-aoai-apikey.lock.yml # .github/workflows/smoke-copilot-aoai-entra.lock.yml # .github/workflows/smoke-copilot-arm.lock.yml # .github/workflows/smoke-copilot-auto.lock.yml # .github/workflows/smoke-copilot-mai.lock.yml # .github/workflows/smoke-copilot-sdk.lock.yml # .github/workflows/smoke-copilot-small.lock.yml # .github/workflows/smoke-copilot-sub-agents.lock.yml # .github/workflows/smoke-copilot.lock.yml # .github/workflows/smoke-create-cross-repo-pr.lock.yml # .github/workflows/smoke-drive.lock.yml # .github/workflows/smoke-multi-pr.lock.yml # .github/workflows/smoke-otel-backends.lock.yml # .github/workflows/smoke-project.lock.yml # .github/workflows/smoke-service-ports.lock.yml # .github/workflows/smoke-temporary-id.lock.yml # .github/workflows/smoke-test-tools.lock.yml # .github/workflows/smoke-update-cross-repo-pr.lock.yml # .github/workflows/smoke-workflow-call-with-inputs.lock.yml # .github/workflows/smoke-workflow-call.lock.yml # .github/workflows/spec-enforcer.lock.yml # .github/workflows/spec-extractor.lock.yml # .github/workflows/spec-librarian.lock.yml # .github/workflows/squad-game-planner.lock.yml # .github/workflows/squad-implement-worker.lock.yml # .github/workflows/squad-plan.lock.yml # .github/workflows/squad.lock.yml # .github/workflows/stale-pr-cleanup.lock.yml # .github/workflows/stale-repo-identifier.lock.yml # .github/workflows/sub-issue-closer.lock.yml # .github/workflows/super-linter.lock.yml # .github/workflows/technical-doc-writer.lock.yml # .github/workflows/terminal-stylist.lock.yml # .github/workflows/test-quality-sentinel.lock.yml # .github/workflows/tidy.lock.yml # .github/workflows/ubuntu-image-analyzer.lock.yml # .github/workflows/uk-ai-operational-resilience.lock.yml # .github/workflows/unbloat-docs.lock.yml # .github/workflows/update-astro.lock.yml # .github/workflows/video-analyzer.lock.yml # .github/workflows/visual-regression-checker.lock.yml # .github/workflows/weekly-blog-post-writer.lock.yml # .github/workflows/weekly-editors-health-check.lock.yml # .github/workflows/weekly-issue-summary.lock.yml # .github/workflows/weekly-network-domains-audit.lock.yml # .github/workflows/weekly-safe-outputs-spec-review.lock.yml # .github/workflows/workflow-generator.lock.yml # .github/workflows/workflow-health-manager.lock.yml # .github/workflows/workflow-normalizer.lock.yml # .github/workflows/workflow-skill-extractor.lock.yml Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Branch merged with origin/main, conflicts resolved, and lock files regenerated in 4e84503. Tests pass.
Merge conflicts resolved (all were in generated |
|
/smoke-copilot |
|
📰 BREAKING: Smoke Copilot is now investigating this issue comment. Sources say the story is developing... |
Smoke Test Summary — Run 32755907509PR: "Move Copilot vendor API and telemetry domains out of engine defaults" ✅ github tool (gh-proxy) · ✅ mcpscripts-gh · ❌ Serena find_symbol (no Go/Node) · ✅ Playwright · ✅ web-fetch · ✅ file+bash · ✅ discussion comment · ✅ build · ✅ artifact upload · ✅ discussion create · ✅ workflow dispatch · ✅ PR review tools · ✅ comment memory · ✅ sub-agent · ✅ check run · ✅ LSP TS (12 functions) Overall status: FAIL (1 of 16 tests failed) cc Warning Firewall blocked 6 domainsThe following domains were blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "accounts.google.com"
- "android.clients.google.com"
- "clients2.google.com"
- "contentautofill.googleapis.com"
- "www.google.com"
- "www.gstatic.com"See Network Configuration for more information.
|
Comment MemoryNote This comment is managed by comment memory.It stores persistent context for this thread in the code block at the top of this comment. Warning Firewall blocked 6 domainsThe following domains were blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "accounts.google.com"
- "android.clients.google.com"
- "clients2.google.com"
- "contentautofill.googleapis.com"
- "www.google.com"
- "www.gstatic.com"See Network Configuration for more information.
|
There was a problem hiding this comment.
Automated smoke-test review (test #12).
Warning
Firewall blocked 6 domains
The following domains were blocked by the firewall during workflow execution:
accounts.google.comandroid.clients.google.comclients2.google.comcontentautofill.googleapis.comwww.google.comwww.gstatic.com
To allow these domains, add them to the network.allowed list in your workflow frontmatter:
network:
allowed:
- defaults
- "accounts.google.com"
- "android.clients.google.com"
- "clients2.google.com"
- "contentautofill.googleapis.com"
- "www.google.com"
- "www.gstatic.com"See Network Configuration for more information.
📰 BREAKING: Report filed by Smoke Copilot · copilot · auto · 42.7 AIC · ⌖ 2.21 AIC · ⊞ 9.1K
Comment /smoke-copilot to run again
Add label smoke to run again
Comments that could not be inline-anchored
.github/aw/network.md:1
Smoke test: automated inline review comment (test #12).
|
🎉 This pull request is included in a new release. Release: |
CopilotDefaultDomainsunconditionally granted every Copilot workflow access to plan-specific inference hosts and a telemetry host, even though agents route inference through the AWF api-proxy. This moves those hosts behind an explicit opt-in.Changes
pkg/workflow/domains.go—CopilotDefaultDomainsreduced to the shared gateway/GitHub transport baseline (api.github.com,api.githubcopilot.com,github.com,host.docker.internal,raw.githubusercontent.com). Droppedapi.business/enterprise/individual.githubcopilot.comandtelemetry.enterprise.githubcopilot.com.pkg/workflow/data/ecosystem_domains.json— newcopilot-vendorecosystem holding the four removed hosts; registered inecosystemPriorityand theGetAllowedDomainsdoc list.copilot-vendoradded to the ecosystem tables indocs/.../reference/network.mdand.github/aw/network.md.TestCopilotDefaultDomainsupdated; newTestCopilotVendorDomainsRequireOptInasserts the vendor hosts are absent from Copilot/Pi defaults, present incopilot-vendor, and reachable through normal allow-list expansion.make recompile(lock files) and thesmoke-copilotwasm golden fixture.Workflows that genuinely need the plan-specific endpoints (e.g. enterprise accounts bypassing the proxy) opt in:
Note on
api.githubcopilot.comKept in both Copilot and Pi defaults. It is the Copilot routing hub used as the api-proxy target (
awf_config.goapiProxycopilot), i.e. the engine's inference endpoint — analogous toapi.openai.com(Codex) andapi.anthropic.com(Claude), which remain defaults. The issue's own table also leaves it inCopilotDefaultDomains; keeping it inPiDefaultDomainspreserves consistency withgetPiDefaultDomains(), which resolves the same host for the default provider. Worth confirming during review if the intent was to strip it from Pi as well.