diff --git a/Dockerfile b/Dockerfile index ecced7e4af59..32fd39deaa54 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ # --------------------------------------------------------------- # To update the sha: # https://github.com/github/gh-base-image/pkgs/container/gh-base-image%2Fgh-base-noble -FROM ghcr.io/github/gh-base-image/gh-base-noble:20251008-224804-g33b3d6bf5 AS base +FROM ghcr.io/github/gh-base-image/gh-base-noble:20251009-110343-g5a525d4e1 AS base # Install curl for Node install and determining the early access branch # Install git for cloning docs-early-access & translations repos diff --git a/content/copilot/reference/allowlist-reference.md b/content/copilot/reference/allowlist-reference.md index 84745453dff4..75007deea01f 100644 --- a/content/copilot/reference/allowlist-reference.md +++ b/content/copilot/reference/allowlist-reference.md @@ -25,6 +25,7 @@ If your company employs security measures like a firewall or proxy server, you s | `https://api.github.com/user` | User Management | | `https://api.github.com/copilot_internal/*` | User Management | | `https://copilot-telemetry.githubusercontent.com/telemetry` | Telemetry | +| `https://collector.github.com/*` | Analytics telemetry | | `https://default.exp-tas.com` | Telemetry | | `https://copilot-proxy.githubusercontent.com` | API service for {% data variables.product.prodname_copilot_short %} suggestions | | `https://origin-tracker.githubusercontent.com` | API service for {% data variables.product.prodname_copilot_short %} suggestions | diff --git a/content/get-started/learning-about-github/github-language-support.md b/content/get-started/learning-about-github/github-language-support.md index 7b09b64dd992..4ab9c7c2b5f5 100644 --- a/content/get-started/learning-about-github/github-language-support.md +++ b/content/get-started/learning-about-github/github-language-support.md @@ -19,27 +19,37 @@ Most {% data variables.product.prodname_dotcom %} features work regardless of wh Some {% data variables.product.prodname_dotcom %} products have features that are currently only supported for a subset of programming languages. -## Core languages supported by {% data variables.product.prodname_dotcom %} features - Core languages for {% data variables.product.prodname_dotcom %} features include C, C++, C#, Go, Java, JavaScript,{% ifversion kotlin-supported-language %} Kotlin,{% endif %} PHP, Python, Ruby, Rust, Scala, and TypeScript. For features that support package managers, the currently supported package managers are included in the table with their relevant languages. Some features are supported for additional languages or package managers. If you want to know whether another language is supported for a feature or to request support for a language, visit {% data variables.contact.community_support_forum %}. -{% data reusables.supported-languages.products-table-header %} -{% data reusables.supported-languages.C %} -{% data reusables.supported-languages.Cpp %} -{% data reusables.supported-languages.Cs %} -{% data reusables.supported-languages.go %} -{% data reusables.supported-languages.java %} -{% data reusables.supported-languages.javascript %} -{% data reusables.supported-languages.kotlin %} -{% data reusables.supported-languages.php %} -{% data reusables.supported-languages.python %} -{% data reusables.supported-languages.ruby %} -{% data reusables.supported-languages.rust %} -{% data reusables.supported-languages.scala %} -{% data reusables.supported-languages.swift %} -{% data reusables.supported-languages.typescript %} + + +{% ifversion fpt or ghec %} + +## Core languages supported in {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_ghe_cloud %} + +| Language{%- for featureEntry in tables.supported-code-languages.features %}{%- assign featureKey = featureEntry[0] %}{%- assign featureData = featureEntry[1] %}{%- if featureData.fptAndGhec %} | [{{ featureData.name }}]({{ featureData.link }}){%- endif %}{%- endfor %} | +|:----{%- for featureEntry in tables.supported-code-languages.features %}{%- assign featureData = featureEntry[1] %}{%- if featureData.fptAndGhec %}|:----:{%- endif %}{%- endfor %}| +{%- for languageEntry in tables.supported-code-languages.languages %} +{%- assign language = languageEntry[0] %} +{%- assign languageData = languageEntry[1] %} +| {{ language }}{%- for featureEntry in tables.supported-code-languages.features -%}{%- assign featureKey = featureEntry[0] -%}{%- assign featureData = featureEntry[1] -%}{%- if featureData.fptAndGhec -%}{%- assign supportLevel = languageData[featureKey] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "not-supported" %}✗{%- else %}{{ supportLevel }}{%- endcase -%}{%- endif -%}{%- endfor %} | +{%- endfor %} +{% endif %} + +{% ifversion ghes %} + +## Core languages supported in {% data variables.product.prodname_ghe_server %} + +| Language{%- for featureEntry in tables.supported-code-languages.features %}{%- assign featureKey = featureEntry[0] %}{%- assign featureData = featureEntry[1] %}{%- if featureData.ghes %} | [{{ featureData.name }}]({{ featureData.link }}){%- endif %}{%- endfor %} | +|:----{%- for featureEntry in tables.supported-code-languages.features %}{%- assign featureData = featureEntry[1] %}{%- if featureData.ghes %}|:----:{%- endif %}{%- endfor %}| +{%- for languageEntry in tables.supported-code-languages.languages %} +{%- assign language = languageEntry[0] %} +{%- assign languageData = languageEntry[1] %} +| {{ language }}{%- for featureEntry in tables.supported-code-languages.features -%}{%- assign featureKey = featureEntry[0] -%}{%- assign featureData = featureEntry[1] -%}{%- if featureData.ghes -%}{%- assign supportLevel = languageData[featureKey] %} | {%- case supportLevel -%}{%- when "supported" %}✓{%- when "not-supported" %}✗{%- else %}{{ supportLevel }}{%- endcase -%}{%- endif -%}{%- endfor %} | +{%- endfor %} +{% endif %} > [!NOTE] > {% ifversion fpt or ghec %}The language support for {% data variables.product.prodname_copilot %} varies depending on the volume and diversity of training data for that language.{% endif %} diff --git a/data/tables/supported-code-languages.yml b/data/tables/supported-code-languages.yml new file mode 100644 index 000000000000..fe0c57438509 --- /dev/null +++ b/data/tables/supported-code-languages.yml @@ -0,0 +1,145 @@ +# Rendering code lives in content/get-started/learning-about-github/github-language-support.md + +# Features configuration - simplified structure +features: + copilot: + name: 'GitHub Copilot' + link: '/copilot/about-github-copilot/what-is-github-copilot' + fptAndGhec: true + ghes: false + codeNavigation: + name: 'Code navigation' + link: '/repositories/working-with-files/using-files/navigating-code-on-github' + fptAndGhec: true + ghes: false + codeScanning: + name: 'Code scanning' + link: '/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning' + fptAndGhec: true + ghes: true + depGraph: + name: 'Dependency graph, Dependabot alerts' + link: '/code-security/supply-chain-security/understanding-your-software-supply-chain/dependency-graph-supported-package-ecosystems#supported-package-ecosystems' + fptAndGhec: true + ghes: true + depUpdates: + name: 'Dependabot version updates, Dependabot security updates' + link: '/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates#supported-repositories-and-ecosystems' + fptAndGhec: true + ghes: true + actions: + name: 'GitHub Actions' + link: '/actions/automating-builds-and-tests/about-continuous-integration#supported-languages' + fptAndGhec: true + ghes: true + packages: + name: 'GitHub Packages' + link: '/packages/learn-github-packages/introduction-to-github-packages#supported-clients-and-formats' + fptAndGhec: true + ghes: true + +languages: + C: + copilot: 'supported' + codeNavigation: 'not-supported' + codeScanning: 'supported' + depGraph: 'not-supported' + depUpdates: 'not-supported' + actions: 'supported' + packages: 'not-supported' + C++: + copilot: 'supported' + codeNavigation: 'not-supported' + codeScanning: 'supported' + depGraph: 'not-supported' + depUpdates: 'not-supported' + actions: 'supported' + packages: 'not-supported' + C#: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: '`dotnet` CLI' + depUpdates: '`dotnet` CLI' + actions: 'supported' + packages: '`dotnet` CLI' + Go: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: 'Go modules' + depUpdates: 'Go modules' + actions: 'supported' + packages: 'not-supported' + Java: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: 'Maven, Gradle' + depUpdates: 'Maven, Gradle' + actions: 'supported' + packages: 'Maven, Gradle' + JavaScript: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: 'npm, Yarn' + depUpdates: 'npm' + actions: 'supported' + packages: 'npm' + Kotlin: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: 'Maven, Gradle' + depUpdates: 'Maven, Gradle' + actions: 'supported' + packages: 'Maven, Gradle' + PHP: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'third-party [^1]' + depGraph: 'Composer' + depUpdates: 'Composer' + actions: 'supported' + packages: 'not-supported' + Python: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: 'pip' + depUpdates: 'pip' + actions: 'supported' + packages: 'not-supported' + Ruby: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: 'RubyGems' + depUpdates: 'RubyGems' + actions: 'supported' + packages: 'RubyGems' + Scala: + copilot: 'supported' + codeNavigation: 'not-supported' + codeScanning: 'third-party [^1]' + depGraph: 'Maven' + depUpdates: 'Maven, Gradle' + actions: 'supported' + packages: 'not-supported' + Swift: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: 'supported' + depUpdates: 'supported' + actions: 'supported' + packages: 'Swift Package Manager' + TypeScript: + copilot: 'supported' + codeNavigation: 'supported' + codeScanning: 'supported' + depGraph: 'npm, Yarn' + depUpdates: 'npm' + actions: 'supported' + packages: 'npm' diff --git a/src/data-directory/lib/data-schemas/index.ts b/src/data-directory/lib/data-schemas/index.ts index 160483e39d6d..f74735770fbb 100644 --- a/src/data-directory/lib/data-schemas/index.ts +++ b/src/data-directory/lib/data-schemas/index.ts @@ -10,6 +10,8 @@ const dataSchemas: DataSchemas = { 'data/code-languages.yml': '@/data-directory/lib/data-schemas/code-languages', 'data/glossaries/candidates.yml': '@/data-directory/lib/data-schemas/glossaries-candidates.js', 'data/glossaries/external.yml': '@/data-directory/lib/data-schemas/glossaries-external.js', + 'data/tables/supported-code-languages.yml': + '@/data-directory/lib/data-schemas/supported-code-languages.js', } export default dataSchemas diff --git a/src/data-directory/lib/data-schemas/supported-code-languages.ts b/src/data-directory/lib/data-schemas/supported-code-languages.ts new file mode 100644 index 000000000000..a298f709ef15 --- /dev/null +++ b/src/data-directory/lib/data-schemas/supported-code-languages.ts @@ -0,0 +1,214 @@ +// This schema enforces the structure in data/tables/supported-code-languages.yml + +export default { + type: 'object', + additionalProperties: false, + required: ['features', 'languages'], + properties: { + features: { + type: 'object', + additionalProperties: false, + required: [ + 'copilot', + 'codeNavigation', + 'codeScanning', + 'depGraph', + 'depUpdates', + 'actions', + 'packages', + ], + properties: { + copilot: { + type: 'object', + additionalProperties: false, + required: ['name', 'link', 'fptAndGhec', 'ghes'], + properties: { + name: { + type: 'string', + lintable: true, + }, + link: { + type: 'string', + }, + fptAndGhec: { + type: 'boolean', + }, + ghes: { + type: 'boolean', + }, + }, + }, + codeNavigation: { + type: 'object', + additionalProperties: false, + required: ['name', 'link', 'fptAndGhec', 'ghes'], + properties: { + name: { + type: 'string', + lintable: true, + }, + link: { + type: 'string', + }, + fptAndGhec: { + type: 'boolean', + }, + ghes: { + type: 'boolean', + }, + }, + }, + codeScanning: { + type: 'object', + additionalProperties: false, + required: ['name', 'link', 'fptAndGhec', 'ghes'], + properties: { + name: { + type: 'string', + lintable: true, + }, + link: { + type: 'string', + }, + fptAndGhec: { + type: 'boolean', + }, + ghes: { + type: 'boolean', + }, + }, + }, + depGraph: { + type: 'object', + additionalProperties: false, + required: ['name', 'link', 'fptAndGhec', 'ghes'], + properties: { + name: { + type: 'string', + lintable: true, + }, + link: { + type: 'string', + }, + fptAndGhec: { + type: 'boolean', + }, + ghes: { + type: 'boolean', + }, + }, + }, + depUpdates: { + type: 'object', + additionalProperties: false, + required: ['name', 'link', 'fptAndGhec', 'ghes'], + properties: { + name: { + type: 'string', + lintable: true, + }, + link: { + type: 'string', + }, + fptAndGhec: { + type: 'boolean', + }, + ghes: { + type: 'boolean', + }, + }, + }, + actions: { + type: 'object', + additionalProperties: false, + required: ['name', 'link', 'fptAndGhec', 'ghes'], + properties: { + name: { + type: 'string', + lintable: true, + }, + link: { + type: 'string', + }, + fptAndGhec: { + type: 'boolean', + }, + ghes: { + type: 'boolean', + }, + }, + }, + packages: { + type: 'object', + additionalProperties: false, + required: ['name', 'link', 'fptAndGhec', 'ghes'], + properties: { + name: { + type: 'string', + lintable: true, + }, + link: { + type: 'string', + }, + fptAndGhec: { + type: 'boolean', + }, + ghes: { + type: 'boolean', + }, + }, + }, + }, + }, + languages: { + type: 'object', + additionalProperties: false, + patternProperties: { + // Language names like C, C++, C#, Go, Java, JavaScript, etc. + '^[a-zA-Z+#]+$': { + type: 'object', + additionalProperties: false, + required: [ + 'copilot', + 'codeNavigation', + 'codeScanning', + 'depGraph', + 'depUpdates', + 'actions', + 'packages', + ], + properties: { + copilot: { + type: 'string', + enum: ['supported', 'not-supported'], + }, + codeNavigation: { + type: 'string', + enum: ['supported', 'not-supported'], + }, + codeScanning: { + type: 'string', + // Allow "supported", "not-supported", or custom text like "third-party [^1]" + }, + depGraph: { + type: 'string', + // Allow "supported", "not-supported", or specific package managers like "npm, Yarn" + }, + depUpdates: { + type: 'string', + // Allow "supported", "not-supported", or specific package managers + }, + actions: { + type: 'string', + enum: ['supported', 'not-supported'], + }, + packages: { + type: 'string', + // Allow "supported", "not-supported", or specific package managers + }, + }, + }, + }, + }, + }, +}