Enterprise Server 3.8 release notes
February 07, 2023
Note: If your GitHub Enterprise Server instance is running a release candidate build, you can't upgrade with a hotpatch. We recommend that you only run release candidates in a test environment.
For upgrade instructions, see "Upgrading GitHub Enterprise Server."
Projects, the flexible tool for planning and tracking work on GitHub Enterprise Server, is now available as a beta. A project is an adaptable spreadsheet that integrates issues and pull requests to help users plan and track work effectively. Users can create and customize multiple views, and each view can filter, sort, and group issues and pull requests. Users can also define custom fields to track the unique metadata for a team or project, allowing customization for any needs or processes. This feature is subject to change. For more information, see "About Projects."
Site administrators can improve the security of an instance by creating dedicated user accounts for the Management Console. Only the root site administrator can create user accounts. To control access for the user accounts, assign either the editor or operator role. Operators can manage administrative SSH access for the instance. For more information, see "Managing access to the Management Console."
To establish or comply with internal policies, site administrators can use the Management Console to configure an instance's policy for retention of data related to checks, including checks data generated by GitHub Actions and the Statuses API. Administrators can enable or disable retention, set a custom retention threshold, or set a custom hard-delete threshold.
When generating support bundles using the
ghe-support-bundlecommand-line utility, site administrators can specify the exact duration to use for collection of data in the bundle. For more information, see "Command-line utilities."Users can review and revoke both browser and GitHub Mobile sessions for a GitHub Enterprise Server instance. For more information, see "Viewing and managing your sessions."
Enterprise owners can configure whether repository administrators can enable or disable Dependabot alerts. On instances with a GitHub Advanced Security license, enterprise owners can also set policies to control whether repository administrators can enable GitHub Advanced Security features or secret scanning. For more information, see "Enforcing policies for code security and analysis for your enterprise."
Enterprise and organization owners can support adherance to the principle of least privilege by granting access to audit log endpoints without providing full administrative privileges. To provide this access, personal access tokens and OAuth apps now support the
read:audit_logscope. For more information, see "Using the audit log API for your enterprise."Enterprise owners can more easily detect and trace activity associated with authentication tokens by viewing token data in audit log events. For more information, see "Identifying audit log events performed by an access token."
Enterprise owners can configure audit log streaming to a Datadog endpoint. For more information, see "Streaming the audit log for your enterprise."
Enterprise owners on an instance with a GitHub Advanced Security license can view changes to GitHub Advanced Security, secret scanning, and push protection enablement in the audit log. Organization owners can view changes to custom messages for push protection in the audit log. For more information, see the following documentation.
- "
business_secret_scanningcategory actions," "business_secret_scanning_push_protectioncategory actions," and "business_secret_scanning_push_protection_custom_messagecategory actions" in "Audit log events for your enterprise" - "Reviewing the audit log for your organization"
- "
Enterprise owners on an instance with a GitHub Advanced Security license can ensure compliance and simplify the rollout of secret scanning and push protection to all organizations on the instance using the REST API. This endpoint supplements the existing web UI, as well as the endpoints for repositories and organizations. For more information, see "Code security and analysis" in the REST API documentation.
Enterprise and organization owners who use secret scanning on an instance with a GitHub Advanced Security license can use the REST API to specify a custom link to display when push protection blocks a push containing a secret. For more information, see "Code security and analysis" or "Organizations" in the REST API documentation.
Users on an instance with a GitHub Advanced Security license who dismiss a secret scanning alert can help other users understand the reason for dismissal by providing an optional comment using the web UI or REST API. For more information, see the following documentation.
- "Managing alerts from secret scanning"
- "Secret scanning" in the REST API documentation
Users on an instance with a GitHub Advanced Security license can filter results from the Code Scanning API based on alert severity at either the repository or organization levels. Use the
severityparameter to return only code scanning alerts with a specific severity. For more information, see "Code Scanning" in the REST API documentation.Users on an instance with a GitHub Advanced Security license can analyze two additional languages for vulnerabilities and errors using CodeQL code scanning. Support for Ruby is generally available, and support for Kotlin is in beta and subject to change.
- Ruby analysis can detect more than twice the number of common weaknesses (CWEs) it could detect during beta. A total of 30 rules can identify a range of vulnerabilities, including cross-site scripting (XSS), regular expression denial-of-service (ReDoS), SQL injection, and more. Additional library and framework coverage for Ruby-on-Rails ensures that web service developers get even more precise results. GitHub Enterprise Server supports all common Ruby versions, up to and including 3.1.
- Kotlin support is an extension of existing Java support, and benefits from the existing CodeQL queries for Java, which apply to both mobile and server-side applications. GitHub has also improved and added a range of mobile-specific queries, covering issues such as handling of Intents, Webview validation problems, fragment injection, and more.
For more information about code scanning, see "About code scanning with CodeQL."
Users on an instance with a GitHub Advanced Security license who use CodeQL code scanning can customize the build configuration for Go analysis within the GitHub Actions workflow file. Existing CodeQL workflows for Go analysis require no changes, and will continue to be supported. For more information, see "Configuring the CodeQL workflow for compiled languages."
To improve code security and simplify the process of updating vulnerable dependencies, more users can receive automatic pull requests with dependency updates.
- GitHub Actions authors can automatically update dependencies within workflow files.
- Dart or Flutter developers who use Pub can automatically update dependencies within their projects.
For more information, see "About Dependabot security updates."
Dart and JavaScript developers on an instance with the dependency graph enabled can receive Dependabot alerts for known vulnerabilities within a project's dependencies.
- For Dart, the dependency graph detects
pubspec.lockandpubspec.yamlfiles. - JavaScript developers who use Node.js and npm can receive alerts for known vulnerabilities within Yarn v2 and v3 manifests. This supplements the existing support for v1 manifests. The dependency graph detects
package.json, andyarn.lockfiles.
For more information, see the following articles.
- For Dart, the dependency graph detects
Python developers who use supported package managers on an instance with the dependency graph enabled can receive Dependabot alerts for dependencies within
pyproject.tomlfiles that follow the PEP 621 standard. For more information, see "About Dependabot version updates."Python developers who receive Dependabot alerts can reduce the number of version updates when a current dependency requirement is already satisfied by a new version. To configure this behavior, use the
increase-if-necessaryversioning strategy. For more information, see "Configuration options for the dependabot.yml file."Enterprise owners can retrieve Dependabot alerts for the instance using the REST API. This endpoint is in beta and subject to change. For more information, see "Dependabot alerts" in the REST API documentation.
Organization owners can retrieve Dependabot alerts for the organization using the REST API. This endpoint is in beta and subject to change. For more information, see "Dependabot alerts."
Users can programmatically view and act on Dependabot alerts using the REST API. New endpoints to view, list, and update Dependabot alerts are available in beta. These endpoints are subject to change. For more information, see "Dependabot alerts" in the REST API documentation.
To increase visibility into security posture and improve risk analysis, users can access coverage and risk views within the security overview. The coverage view shows enablement across repositories, while the risk view surfaces alerts across repositories. Organization owners, security managers, and repository administrators on an instance with a GitHub Advanced Security license can enable security features from the security overview's coverage view. The views replace the "Overview" page, and are in public beta and subject to change. For more information, see "About the security overview."
Contributors can define a repository's security policy by creating a
SECURITY.mdfile. To increase the policy's visibility, GitHub Enterprise Server will link to the policy from the repository's Code tab. For more information, see "Adding a security policy to your repository."The Dependency review API is generally available, and the associated GitHub Action now allows users to reference a local or external configuration file. For more information, see the following documentation.
- "Dependency review" in the REST API documentation
- "Configuring dependency review"
The GraphQL API provides access to a repository's dependency graph. This feature is in preview and subject to change. For more information, see "Objects" in the GraphQL API documentation.
During configuration of storage for GitHub Actions, site administrators can avoid risks associated with the input of sensitive secrets and access keys by using OIDC to connect to object storage providers. GitHub Actions on GitHub Enterprise Server supports OIDC for connections to AWS, Azure, and Google Cloud Platform. This feature is in beta and subject to change. For more information, see "Enabling GitHub Actions for GitHub Enterprise Server."
To prevent untrusted logging of data from the
set-stateandset-outputworkflow commands, action authors can use environment files for the management of state and output.- To use this feature, the runner application must be version 2.297.0 or later. Versions 2.298.2 and later will warn users who use the
save-stateorset-outputcommands. These commands will be fully disabled in a future release. - To use the updated
saveStateandsetOutputfunctions, workflows using the GitHub Actions Toolkit must call@actions/corev1.10.0 or later.
For more information, see "Workflow commands for GitHub Actions."
- To use this feature, the runner application must be version 2.297.0 or later. Versions 2.298.2 and later will warn users who use the
The ability to share actions and reusable workflows from private repositories is generally available. Users can share workflows in a private repository with other private repositories owned by the same organization or user account, or with all private repositories on the instance. For more information, see the following documentation.
- "Managing GitHub Actions settings for a repository"
- "GitHub Actions Permissions" in the REST API documentation
Users can improve workflow readability and avoid the need to store non-sensitive configuration data as encrypted secrets by defining configuration variables, which allow reuse across workflows in a repository or organization. This feature is in beta and subject to change. For more information, see "Variables."
Users can dynamically name workflow runs.
run-nameaccepts expressions, and the dynamic name appears in the list of workflow runs. For more information, see "Workflow syntax for GitHub Actions."Users can prevent a job from running on a runner outside the intended group by defining the names of the intended runner groups for a workflow within the
runs-onkey.runs-on: group: my-group labels: [ self-hosted, label-1 ]Additionally, GitHub Enterprise Server will no longer allow the creation of runner groups with identical names at the organization and enterprise level. A warning banner will appear for any runner groups within an organization that share a name with a runner group for the enterprise.
Users can enforce standard CI/CD practices across all of an organization's repositories by defining required workflows. These workflows are triggered as required status checks for all pull requests that target repositories' default branch, which blocks merging until the check passes. This feature is in beta and subject to change. For more information, see "Required workflows."
To enable standardization of OIDC configurations across cloud deployment workflows, organization owners and repository administrators can configure the
subjectclaim format within OIDC tokens by defining a custom template. For more information, see "About security hardening with OpenID Connect."To enable more transparency and control over cache usage within repositories, users who cache dependencies and other reused files with
actions/cachecan manage caches from the instance's web UI. For more information, see "Caching dependencies to speed up workflows."Users can set expectations surrounding availability by displaying a local timezone within their profiles. People who view the user's profile or hovercard will see the timezone, as well as how many hours behind or ahead they are of the user's local time. For more information, see "Personalizing your profile."
To improve discoverability, GitHub Discussions features the following improvements.
- Repository owners can pin discussions to a specific category.
- Category titles and descriptions are displayed on the category's page.
To manage how organization members fork repositories, organization owners can set a dedicated forking policy for any organization. This policy must be stricter than an a forking policy set for the enterprise. For more information, see "Managing the forking policy for your organization."
Organization owners can improve organization security by preventing outside collaborators from requesting the installation of GitHub and OAuth apps. For more information, see "Limiting OAuth App and GitHub App access requests."
To avoid providing full administrative access to a repository when unnecessary, repository administrators can create a custom role that allows users to bypass branch protections. To enforce branch protections for all users with administrative access or bypass permissions, administrators can enable Do not allow bypassing the above settings. For more information, see "Managing custom repository roles for an organization" and "About protected branches."
Repository administrators can ensure the security and stability of branches by requiring pull request approval by someone other than the last pusher, or by locking the branch. For more information, see "About protected branches."
In scenarios where someone should review code within a GitHub Actions workflow before the workflow runs, repository administrators can require approval from a user with write access to the repository before a workflow run can be triggered from a private fork. For more information, see "Managing GitHub Actions settings for a repository."
The GraphQL API supports creation and removal of the link between a branch and an issue. For more information, see the following documentation.
- "Creating a branch to work on an issue"
- "createLinkedBranch" and "deleteLinkedBranch" in the "Mutations" GraphQL API documentation
- "Objects" in the GraphQL API documentation
Users with multiple email addresses associated with their accounts can better ensure that Git commits created by squash-merging are associated with the correct email address. When merging the pull request, a drop-down menu will appear, allowing the user to select the email address to use as the commit's author.
Users can mark a specific release within a repository as the latest release using the web UI, REST API, or GraphQL API. For more information, see the following documentation.
- "Managing releases in a repository"
- "Releases" in the REST API documentation
- "Objects" in the GraphQL API documentation
Users can save time and switch context less often by receiving and acting on real-time updates about GitHub Enterprise Server activity directly within Slack or Microsoft Teams. GitHub's integrations for these services are now generally available. For more information, see "About integrations."
Features
Projects beta
Instance administration
Identity and access management
Policies
Audit logs
GitHub Advanced Security
Dependabot
Code security
GitHub Actions
Community experience
GitHub Discussions
Organizations
Repositories
Issues
Pull requests
Releases
Integrations
When a site administrator runs a command using administrative SSH access, the command is now logged. To help GitHub Support troubleshoot and debug, support bundles include a log containing these commands.
To simplify the discovery of events within enterprise, organization, or user audit logs, the search bar now displays a list of available filters.
Before a site administrator can migrate away from GitHub Enterprise Server using the GitHub Enterprise Importer CLI, the startRepositoryMigration GraphQL API, or the Start an organization migration REST API, the administrator must use the Management Console to configure a blob storage provider for the storage of migration archives. Supported provides include Amazon S3 and Azure Blob Storage. Previously, blob storage was not required and could optionally be configured using
gh gei. This change adds support for migrations where the Git source or metadata is larger than 1 GB.To help users on an instance with a GitHub Advanced Security license better understand detected secrets and take action, secret scanning alerts concerning third-party API keys now include a link to the provider's documentation. For more information, see "About secret scanning."
Users on an instance with a GitHub Advanced Security license will now see the actions that users took on a secret scanning alert directly within the alert's timeline, including when a contributor bypassed push protection for a secret.
Instances with a GitHub Advanced Security license will regularly run a historical scan to detect newly added secret types on repositories with GitHub Advanced Security and secret scanning enabled. Previously, users needed to manually run a historical scan.
On instances with a GitHub Advanced Security license, to ensure that secret scanning can always display a preview of a detected secret in the APIs or web UI, the detected secrets are now stored separately from source code. Detected secrets are stored using symmetric encryption.
When using private registries for Dependabot updates, GitHub Enterprise Server behaves more securely. If a private registry is configured for any of the following ecosystems, the instance will no longer make any package requests to public registries.
- Bundler
- Docker
- Gradle
- Maven
- npm
- Nuget
- Python
- Yarn
For more information, see "Configuration options for the dependabot.yml file."
Elixir developers who use self-hosted Hex repositories can configure a private registry for Dependabot version updates on GitHub Enterprise Server. For more information, see "Configuration options for the dependabot.yml file."
Dependabot alerts features the following usability improvements.
- The page for an alert refreshes automatically after Dependabot attempts to create a pull request for an update.
- Alerts are more accurately mapped to pull requests from Dependabot updates.
- To improve the alert for the community, users can suggest improvements to alerts directly in the GitHub Advisory Database.
Users can more easily mention @dependabot. When mentioning users, the Dependabot user account now appears as an autocomplete suggestion.
In repositories with vulnerable dependencies, Dependabot will no longer display a yellow banner. To notify contributors of vulnerable dependencies, the Security tab displays an alert counter.
If a user forks a repository with an existing Dependabot configuration in
dependabot.yml, Dependabot updates will be disabled in the fork by default. To enable updates in the fork, the user must visit the repository's code security and analysis settings. For more information, see "Configuring Dependabot version updates."Integrators who wish to receive a webhook for Dependabot alerts must use the new
dependabot_alertwebhook. This webhook replaces therepository_vulnerability_alertwebhook. For more information, see "Webhook events and payloads."To improve readability of GitHub Actions workflows that reference other actions by commit SHA, action authors often write a comment including the corresponding semantic version on the line that calls the action. To save time, pull requests for Dependabot version updates will now automatically update the semantic version in these comments.
JavaScript developers who use Node.js, npm, and Dependabot security updates can save time when updating npm projects with transitive dependencies.
- Dependabot can update both parent and child dependencies together. Previously, Dependabot would not update transitive dependencies when the parent required an incompatible specific version range, requiring manual upgrades.
- Dependabot can create pull requests that resolve alerts where an update to a direct dependency would remove the vulnerable transitive dependency from the tree.
For more information, see "About Dependabot security updates."
For people who use Dependabot for version updates in the Docker ecosystem, Dependabot will proactively update Docker image tags in Kubernetes manifests. For more information, see "Configuring Dependabot version updates" and "Configuration options for the dependabot.yml file."
A number of improvements are available to users who contribute to security advisories on GitHub.com, including the following changes.
- To ensure faster review, GitHub prompts users to add a reason for the change.
- To ensure that the contribution matches the user's intent, GitHub will not reorder reference links in the diff.
GitHub Actions features the following discoverability and accessibility improvements.
- The navigation experience for searching workflows and workflow runs is improved.
- Added structure better represents the hierarchy between caller and called reusable workflows.
- The mobile browsing experience is more consistent, and supports multiple viewport sizes.
GitHub Actions workflows will no longer trigger endlessly when using
GITHUB_TOKENwithworkflow_dispatchandrepository_dispatchevents. Prior to this change, events triggered byGITHUB_TOKENwould not create a new workflow run. For more information, see "Triggering a workflow."For scheduled runs of GitHub Actions workflows, users will see additional information about the repository, organization, and enterprise within the payload for
github.event.Users of GitHub Actions have better insight into the progress of a job when using environment protection rules. The
workflow_jobwebhook supports a newwaitingstate whenever a job is awaiting an environment protection rule. Also, when a job refers to anenvironmentkey in its YAML definition, theworkflow_jobwebhook payload will also include a new property,deployment.deploymentcontains metadata about the deployment that the check run created. For more information, see "Using environments for deployment."Organization owners can find more meaningful context within audit log events.
business.sso_responseandorg.sso_responseevents appear in the REST API and payloads for audit log streaming.repo.rename,project.rename, andprotected_branch.update_nameevents include the current and past names for these renamed within theold_namefield.- Events for Dependabot alerts contain
alert_number,ghsa_id,dismiss_reason, anddismiss_commentfields, in addition to a link back to the alert and an accurate timestamp.
Users can view a list that contains all of an organization's followers from the organization's profile.
The banner displayed atop an archived repository in the web UI now includes the repository's archival date.
The Conversations and Files tabs in pull requests now load more quickly due to deferred syntax highlighting.
To provide a more consistent experience between the web UI and users' workstations, and to speed up the process of checking whether users can merge a pull request automatically, GitHub Enterprise Server now uses the
merge-ortstrategy. For more information, see Merge strategies in the Git documentation.To improve the display of the initial comment in pull requests that contain one commit, GitHub Enterprise Server now automatically reformats detailed commit messages to adhere to GitHub's Markdown conventions.
When squash-merging a pull request, the author of the Git commit is displayed before merging. Previously, the commit author was only displayed when merging with a merge commit.
Changes
On a freshly set up GitHub Enterprise Server instance without any users, an attacker could create the first admin user.
Custom firewall rules are removed during the upgrade process.
Git LFS tracked files uploaded through the web interface are incorrectly added directly to the repository.
Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters.
When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results.
The GitHub Packages npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues.
Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail.
Actions services need to be restarted after restoring an instance from a backup taken on a different host.
In a repository's settings, enabling the option to allow users with read access to create discussions does not enable this functionality.
During the validation phase of a configuration run, a
No such objecterror may occur for the Notebook and Viewscreen services. This error can be ignored as the services should still correctly start.
Known issues
GitHub has disabled the use of unsecure algorithms for SSH connections to the administrative shell.
For integrators who wish to receive webhooks for Dependabot alerts activity, the
dependabot_alertwebhook replaces therepository_vulnerability_alertwebhook. For more information, see "Webhook events and payloads."