diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository.md index 5055bb9eb5ca..f86ee2daa3de 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository.md @@ -25,8 +25,7 @@ When you enable automatic dependency submission for a repository, {% data variab Using automatic dependency submission counts toward your {% data variables.product.prodname_actions %} minutes. For more information, see [AUTOTITLE](/billing/managing-billing-for-github-actions/about-billing-for-github-actions). -Optionally, you can choose to configure self-hosted runners or {% data variables.product.company_short %}-hosted {% data variables.actions.hosted_runners %} for automatic dependency submission. For more information, see [Using self-hosted runners for automatic dependency submission](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository#using-self-hosted-runners-for-automatic-dependency-submission -) and [Using GitHub-hosted larger runners for automatic dependency submission](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository#using-github-hosted-larger-runners-for-automatic-dependency-submission +Optionally, you can choose to configure self-hosted runners or {% data variables.product.company_short %}-hosted {% data variables.actions.hosted_runners %} for automatic dependency submission. For more information, see [Accessing private registries with self-hosted runners](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository#accessing-private-registries-with-self-hosted-runners) and [Using GitHub-hosted larger runners for automatic dependency submission](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository#using-github-hosted-larger-runners-for-automatic-dependency-submission ). ## Prerequisites @@ -55,9 +54,9 @@ You can view details about the automatic workflows run by viewing the **Actions* > [!NOTE] After you enable automatic dependency submission, we'll automatically trigger a run of the action. Once enabled, it'll run each time a commit to the default branch updates a manifest. -## Using self-hosted runners for automatic dependency submission +## Accessing private registries with self-hosted runners -You can configure self-hosted runners to run automatic dependency submission jobs, instead of using the {% data variables.product.prodname_actions %} infrastructure. +You can configure self-hosted runners to run automatic dependency submission jobs, instead of using the {% data variables.product.prodname_actions %} infrastructure. This is necessary to access private Maven registries. 1. Provision one or more self-hosted runners, at the repository or organization level. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners) and [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners). The self-hosted runners must be running on Linux or macOS, and must have Docker installed. 1. Assign a `dependency-submission` label to each runner you want automatic dependency submission to use. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners#assigning-a-label-to-a-self-hosted-runner). diff --git a/data/release-notes/enterprise-server/3-14/14.yml b/data/release-notes/enterprise-server/3-14/14.yml new file mode 100644 index 000000000000..90724f8a6e0f --- /dev/null +++ b/data/release-notes/enterprise-server/3-14/14.yml @@ -0,0 +1,52 @@ +date: '2025-07-01' +sections: + security_fixes: + - | + Packages have been updated to the latest security versions. + bugs: + - | + The Management Console would become unresponsive when saving settings after a failed config apply run. + - | + Users sometimes received a JSON response instead of a web page when clicking "Back" after viewing files in raw format. + - | + Pull requests were blocked from merging due to unhandled merge attempt timeouts. + - | + Pull requests were temporarily blocked from merging due to delayed purging of failed background jobs. + changes: + - | + The babeld service no longer reports log messages about some common client-induced networking errors, reducing noise in the logs. + known_issues: + - | + Applying a new GitHub Enterprise Server license using the Management Console can sometimes fail with an HTTP 500 error. + - | + During the validation phase of a configuration run, a `No such object` error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start. + - | + If the root site administrator is locked out of the Management Console after failed login attempts, the account does not unlock automatically after the defined lockout time. Someone with administrative SSH access to the instance must unlock the account using the administrative shell. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/troubleshooting-access-to-the-management-console#unlocking-the-root-site-administrator-account)." + - | + On an instance with the HTTP `X-Forwarded-For` header configured for use behind a load balancer, all client IP addresses in the instance's audit log erroneously appear as 127.0.0.1. + - | + {% data reusables.release-notes.large-adoc-files-issue %} + - | + Admin stats REST API endpoints may timeout on appliances with many users or repositories. Retrying the request until data is returned is advised. + - | + When following the steps for [Replacing the primary MySQL node](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-the-primary-mysql-node), step 14 (running `ghe-cluster-config-apply`) might fail with errors. If this occurs, re-running `ghe-cluster-config-apply` is expected to succeed. + - | + Running a config apply as part of the steps for [Replacing a node in an emergency](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-node-in-an-emergency) may fail with errors if the node being replaced is still reachable. If this occurs, shutdown the node and repeat the steps. + - | + {% data reusables.release-notes.2024-06-possible-frontend-5-minute-outage-during-hotpatch-upgrade %} + - | + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + - | + An organization-level code scanning configuration page is displayed on instances that do not use GitHub Advanced Security or code scanning. + - | + In the header bar displayed to site administrators, some icons are not available. + - | + When enabling automatic update checks for the first time in the Management Console, the status is not dynamically reflected until the "Updates" page is reloaded. + - | + When restoring from a backup snapshot, a large number of `mapper_parsing_exception` errors may be displayed. + - | + After a restore, existing outside collaborators cannot be added to repositories in a new organization. This issue can be resolved by running `/usr/local/share/enterprise/ghe-es-search-repair` on the appliance. + - | + After a geo-replica is promoted to be a primary by running `ghe-repl-promote`, the actions workflow of a repository does not have any suggested workflows. + - | + Unexpected elements may appear in the UI on the repo overview page for locked repositories. diff --git a/data/release-notes/enterprise-server/3-15/9.yml b/data/release-notes/enterprise-server/3-15/9.yml new file mode 100644 index 000000000000..28e38f4dc176 --- /dev/null +++ b/data/release-notes/enterprise-server/3-15/9.yml @@ -0,0 +1,52 @@ +date: '2025-07-01' +sections: + security_fixes: + - | + Packages have been updated to the latest security versions. + bugs: + - | + The Management Console would become unresponsive when saving settings after a failed config apply run. + - | + Users sometimes received a JSON response instead of a web page when clicking "Back" after viewing files in raw format. + - | + The secret scanning metrics page displayed data for expired delegated bypass requests. + - | + When users added a team with a repository role to the `CODEOWNERS` file, an unknown error was displayed. Teams with repository roles are now correctly recognized as valid owners of files. + changes: + - | + The babeld service no longer reports log messages about some common client-induced networking errors, reducing noise in the logs. + known_issues: + - | + Applying a new GitHub Enterprise Server license using the Management Console can sometimes fail with an HTTP 500 error. + - | + During the validation phase of a configuration run, a `No such object` error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start. + - | + If the root site administrator is locked out of the Management Console after failed login attempts, the account does not unlock automatically after the defined lockout time. Someone with administrative SSH access to the instance must unlock the account using the administrative shell. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/troubleshooting-access-to-the-management-console#unlocking-the-root-site-administrator-account)." + - | + On an instance with the HTTP `X-Forwarded-For` header configured for use behind a load balancer, all client IP addresses in the instance's audit log erroneously appear as 127.0.0.1. + - | + {% data reusables.release-notes.large-adoc-files-issue %} + - | + Admin stats REST API endpoints may timeout on appliances with many users or repositories. Retrying the request until data is returned is advised. + - | + When following the steps for [Replacing the primary MySQL node](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-the-primary-mysql-node), step 14 (running `ghe-cluster-config-apply`) might fail with errors. If this occurs, re-running `ghe-cluster-config-apply` is expected to succeed. + - | + Running a config apply as part of the steps for [Replacing a node in an emergency](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-node-in-an-emergency) may fail with errors if the node being replaced is still reachable. If this occurs, shutdown the node and repeat the steps. + - | + {% data reusables.release-notes.2024-06-possible-frontend-5-minute-outage-during-hotpatch-upgrade %} + - | + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + - | + An organization-level code scanning configuration page is displayed on instances that do not use GitHub Advanced Security or code scanning. + - | + In the header bar displayed to site administrators, some icons are not available. + - | + When enabling automatic update checks for the first time in the Management Console, the status is not dynamically reflected until the "Updates" page is reloaded. + - | + When restoring from a backup snapshot, a large number of `mapper_parsing_exception` errors may be displayed. + - | + When initializing a new GHES cluster, nodes with the `consul-server` role should be added to the cluster before adding additional nodes. Adding all nodes simultaneously creates a race condition between nomad server registration and nomad client registration. + - | + Admins setting up cluster high availability (HA) may encounter a spokes error when running `ghe-cluster-repl-status` if a new organization and repositories are created before using the `ghe-cluster-repl-bootstrap` command. To avoid this issue, complete the cluster HA setup with `ghe-cluster-repl-bootstrap` before creating new organizations and repositories. + - | + After a restore, existing outside collaborators cannot be added to repositories in a new organization. This issue can be resolved by running `/usr/local/share/enterprise/ghe-es-search-repair` on the appliance. diff --git a/data/release-notes/enterprise-server/3-16/5.yml b/data/release-notes/enterprise-server/3-16/5.yml new file mode 100644 index 000000000000..80ee00b2339d --- /dev/null +++ b/data/release-notes/enterprise-server/3-16/5.yml @@ -0,0 +1,60 @@ +date: '2025-07-01' +sections: + security_fixes: + - | + Packages have been updated to the latest security versions. + bugs: + - | + The Management Console would become unresponsive when saving settings after a failed config apply run. + - | + Users sometimes received a JSON response instead of a web page when clicking "Back" after viewing files in raw format. + - | + The secret scanning metrics page displayed data for expired delegated bypass requests. + - | + Users could not create or view secret scanning push protection bypass requests for forked repositories because bypass requests were incorrectly associated with the root repository rather than the fork. Forked repositories now support their own bypass requests. + - | + When users added a team with a repository role to the `CODEOWNERS` file, an unknown error was displayed. Teams with repository roles are now correctly recognized as valid owners of files. + changes: + - | + The babeld service no longer reports log messages about some common client-induced networking errors, reducing noise in the logs. + known_issues: + - | + Applying a new GitHub Enterprise Server license using the Management Console can sometimes fail with an HTTP 500 error. + - | + Custom firewall rules are removed during the upgrade process. + - | + During the validation phase of a configuration run, a `No such object` error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start. + - | + If the root site administrator is locked out of the Management Console after failed login attempts, the account does not unlock automatically after the defined lockout time. Someone with administrative SSH access to the instance must unlock the account using the administrative shell. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/troubleshooting-access-to-the-management-console#unlocking-the-root-site-administrator-account)." + - | + On an instance with the HTTP `X-Forwarded-For` header configured for use behind a load balancer, all client IP addresses in the instance's audit log erroneously appear as 127.0.0.1. + - | + {% data reusables.release-notes.large-adoc-files-issue %} + - | + Admin stats REST API endpoints may timeout on appliances with many users or repositories. Retrying the request until data is returned is advised. + - | + When following the steps for [Replacing the primary MySQL node](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-the-primary-mysql-node), step 14 (running `ghe-cluster-config-apply`) might fail with errors. If this occurs, re-running `ghe-cluster-config-apply` is expected to succeed. + - | + Running a config apply as part of the steps for [Replacing a node in an emergency](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-node-in-an-emergency) may fail with errors if the node being replaced is still reachable. If this occurs, shutdown the node and repeat the steps. + - | + {% data reusables.release-notes.2024-06-possible-frontend-5-minute-outage-during-hotpatch-upgrade %} + - | + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + - | + An organization-level code scanning configuration page is displayed on instances that do not use GitHub Advanced Security or code scanning. + - | + When enabling automatic update checks for the first time in the Management Console, the status is not dynamically reflected until the "Updates" page is reloaded. + - | + When restoring from a backup snapshot, a large number of `mapper_parsing_exception` errors may be displayed. + - | + When initializing a new GHES cluster, nodes with the `consul-server` role should be added to the cluster before adding additional nodes. Adding all nodes simultaneously creates a race condition between nomad server registration and nomad client registration. + - | + Admins setting up cluster high availability (HA) may encounter a spokes error when running `ghe-cluster-repl-status` if a new organization and repositories are created before using the `ghe-cluster-repl-bootstrap` command. To avoid this issue, complete the cluster HA setup with `ghe-cluster-repl-bootstrap` before creating new organizations and repositories. + - | + In a cluster, the host running restore requires access the storage nodes via their private IPs. + - | + On an instance hosted on Azure, commenting on an issue via email meant the comment was not added to the issue. + - | + After a restore, existing outside collaborators cannot be added to repositories in a new organization. This issue can be resolved by running `/usr/local/share/enterprise/ghe-es-search-repair` on the appliance. + - | + After a geo-replica is promoted to be a primary by running `ghe-repl-promote`, the actions workflow of a repository does not have any suggested workflows. diff --git a/data/release-notes/enterprise-server/3-17/2.yml b/data/release-notes/enterprise-server/3-17/2.yml new file mode 100644 index 000000000000..73f745293f06 --- /dev/null +++ b/data/release-notes/enterprise-server/3-17/2.yml @@ -0,0 +1,58 @@ +date: '2025-07-01' +sections: + security_fixes: + - | + **MEDIUM**: An incorrect authorization vulnerability was identified in GitHub Enterprise Server that allowed a user-to-server token with no scopes to disclose private repository names within an organization via Search API endpoint. This requires an organization admin to install a malicious GitHub App in the organizations repositories. GitHub has requested CVE ID [CVE-2025-6600](https://www.cve.org/cverecord?id=CVE-2025-6600) for this vulnerability, which was reported via the [GitHub Bug Bounty program](https://bounty.github.com/). + - | + Packages have been updated to the latest security versions. + bugs: + - | + The Management Console would become unresponsive when saving settings after a failed config apply run. + - | + Users sometimes received a JSON response instead of a web page when clicking "Back" after viewing files in raw format. + - | + Repositories belonging to organizations with unbundled GitHub Advanced Security licenses did not receive webhooks for scan complete events. + - | + The secret scanning metrics page displayed data for expired delegated bypass requests. + - | + When users added a team with a repository role to the `CODEOWNERS` file, an unknown error was displayed. Teams with repository roles are now correctly recognized as valid owners of files. + - | + Users could not create or view secret scanning push protection bypass requests for forked repositories because bypass requests were incorrectly associated with the root repository rather than the fork. Forked repositories now support their own bypass requests. + - | + In some cases, uploading a new license with unbundled GitHub Advanced Security did not fully unbundle all security configurations on the instance. Users saw errors such as "Advanced Security is not purchased" or "Validation failed: Secret scanning non provider patterns" when they tried to apply configurations to new repositories. + changes: + - | + The babeld service no longer reports log messages about some common client-induced networking errors, reducing noise in the logs. + known_issues: + - | + Applying a new GitHub Enterprise Server license using the Management Console can sometimes fail with an HTTP 500 error. + - | + Custom firewall rules are removed during the upgrade process. + - | + During the validation phase of a configuration run, a `No such object` error may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start. + - | + If the root site administrator is locked out of the Management Console after failed login attempts, the account does not unlock automatically after the defined lockout time. Someone with administrative SSH access to the instance must unlock the account using the administrative shell. For more information, see "[AUTOTITLE](/admin/configuration/administering-your-instance-from-the-management-console/troubleshooting-access-to-the-management-console#unlocking-the-root-site-administrator-account)." + - | + {% data reusables.release-notes.large-adoc-files-issue %} + - | + Admin stats REST API endpoints may timeout on appliances with many users or repositories. Retrying the request until data is returned is advised. + - | + When following the steps for [Replacing the primary MySQL node](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-the-primary-mysql-node), step 14 (running `ghe-cluster-config-apply`) might fail with errors. If this occurs, re-running `ghe-cluster-config-apply` is expected to succeed. + - | + Running a config apply as part of the steps for [Replacing a node in an emergency](/admin/monitoring-managing-and-updating-your-instance/configuring-clustering/replacing-a-cluster-node#replacing-a-node-in-an-emergency) may fail with errors if the node being replaced is still reachable. If this occurs, shutdown the node and repeat the steps. + - | + When restoring data originally backed up from a 3.13 or greater appliance version, the Elasticsearch indices need to be reindexed before some of the data will show up. This happens via a nightly scheduled job. It can also be forced by running `/usr/local/share/enterprise/ghe-es-search-repair`. + - | + When initializing a new GHES cluster, nodes with the `consul-server` role should be added to the cluster before adding additional nodes. Adding all nodes simultaneously creates a race condition between nomad server registration and nomad client registration. + - | + Admins setting up cluster high availability (HA) may encounter a spokes error when running `ghe-cluster-repl-status` if a new organization and repositories are created before using the `ghe-cluster-repl-bootstrap` command. To avoid this issue, complete the cluster HA setup with `ghe-cluster-repl-bootstrap` before creating new organizations and repositories. + - | + In a cluster, the host running restore requires access the storage nodes via their private IPs. + - | + On an instance hosted on Azure, commenting on an issue via email meant the comment was not added to the issue. + - | + After a restore, existing outside collaborators cannot be added to repositories in a new organization. This issue can be resolved by running `/usr/local/share/enterprise/ghe-es-search-repair` on the appliance. + - | + After a geo-replica is promoted to be a primary by running `ghe-repl-promote`, the actions workflow of a repository does not have any suggested workflows. + - | + When publishing npm packages in a workflow after restoring from a backup to GitHub Enterprise Server 3.13.5.gm4 or 3.14.2.gm3, you may encounter a `401 Unauthorized` error from the GitHub Packages service. This can happen if the restore is from an N-1 or N-2 version and the workflow targets the npm endpoint on the backup instance. To avoid this issue, ensure the access token is valid and includes the correct scopes for publishing to GitHub Packages. diff --git a/data/reusables/dependency-graph/supported-package-ecosystems.md b/data/reusables/dependency-graph/supported-package-ecosystems.md index e9d381ab9f7e..14189039f2c5 100644 --- a/data/reusables/dependency-graph/supported-package-ecosystems.md +++ b/data/reusables/dependency-graph/supported-package-ecosystems.md @@ -2,7 +2,7 @@ | --- | --- | --- | --- | --- | ---| | Cargo | Rust | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `Cargo.lock` | `Cargo.toml` | | Composer | PHP | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `composer.lock` | `composer.json` | -| NuGet | .NET languages (C#, F#, VB), C++ | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj` | `packages.config` | +| NuGet | .NET languages (C#, F#, VB), C++ | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj` | `packages.config` | | {% data variables.product.prodname_actions %} workflows | YAML | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `.yml`, `.yaml` | {% octicon "x" aria-label="None" %} | | Go modules | Go | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | `go.mod`| {% octicon "x" aria-label="None" %} | | Gradle | Java | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="None" %} | {% octicon "x" aria-label="None" %} | diff --git a/next.config.js b/next.config.js index d97371239620..00ad1ad9da5c 100644 --- a/next.config.js +++ b/next.config.js @@ -24,7 +24,13 @@ export default { }, sassOptions: { quietDeps: true, - silenceDeprecations: ['import'], + silenceDeprecations: [ + 'legacy-js-api', + 'import', + 'global-builtin', + 'color-4-api', + 'mixed-decls', + ], }, async rewrites() { const DEFAULT_VERSION = 'free-pro-team@latest' diff --git a/src/content-linter/scripts/post-lints.js b/src/content-linter/scripts/post-lints.js index 7ec81c7bf30e..b11ba5fbfcec 100644 --- a/src/content-linter/scripts/post-lints.js +++ b/src/content-linter/scripts/post-lints.js @@ -6,6 +6,9 @@ import github from '#src/workflows/github.ts' import { getEnvInputs } from '#src/workflows/get-env-inputs.ts' import { createReportIssue, linkReports } from '#src/workflows/issue-report.js' +// GitHub issue body size limit is ~65k characters, so we'll use 60k as a safe limit +const MAX_ISSUE_BODY_SIZE = 60000 + // [start-readme] // // This script runs once a week via a scheduled GitHub Action to lint @@ -45,10 +48,30 @@ async function main() { core.info(`Creating issue for errors and warnings...`) + const parsedResults = JSON.parse(lintResults) + const totalFiles = Object.keys(parsedResults).length let reportBody = 'The following files have markdown lint warnings/errors:\n\n' - for (const [file, flaws] of Object.entries(JSON.parse(lintResults))) { - reportBody += `File: \`${file}\`:\n` - reportBody += `\`\`\`json\n${JSON.stringify(flaws, null, 2)}\n\`\`\`\n` + let filesIncluded = 0 + let truncated = false + + for (const [file, flaws] of Object.entries(parsedResults)) { + const fileEntry = `File: \`${file}\`:\n\`\`\`json\n${JSON.stringify(flaws, null, 2)}\n\`\`\`\n` + + // Check if adding this file would exceed the size limit + if (reportBody.length + fileEntry.length > MAX_ISSUE_BODY_SIZE) { + truncated = true + break + } + + reportBody += fileEntry + filesIncluded++ + } + + // Add truncation notice if needed + if (truncated) { + const remaining = totalFiles - filesIncluded + reportBody += `\n---\n\n⚠️ **Output truncated**: Showing ${filesIncluded} of ${totalFiles} files with lint issues. ${remaining} additional files have been omitted to stay within GitHub's issue size limits.\n` + reportBody += `\nTo see all results, run the linter locally:\n\`\`\`bash\nnpm run lint-content -- --paths content data\n\`\`\`\n` } const reportProps = { diff --git a/src/ghes-releases/lib/enterprise-dates.json b/src/ghes-releases/lib/enterprise-dates.json index 87d91ab61de6..7a5922930759 100644 --- a/src/ghes-releases/lib/enterprise-dates.json +++ b/src/ghes-releases/lib/enterprise-dates.json @@ -149,7 +149,7 @@ }, "3.13": { "releaseDate": "2024-05-16", - "deprecationDate": "2025-06-04" + "deprecationDate": "2025-06-19" }, "3.14": { "releaseDate": "2024-08-06",