Skip to main content

Enterprise Server 3.6 release notes

Enterprise Server 3.6.0.rc1

Release CandidateDownload GitHub Enterprise Server 3.6.0

July 26, 2022

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."



  • Repository caching is generally available. Repository caching increases Git read performance for distributed developers, providing the data locality and convenience of geo-replication without impact on push workflows. With the general availability release, GitHub Enterprise Server caches both Git and Git LFS data. For more information, see "About repository caching."

  • Instance security

  • GitHub has changed the supported algorithms and hash functions for all SSH connections to GitHub Enterprise Server, disabled the unencrypted and unauthenticated Git protocol, and optionally allowed the advertisement of an Ed25519 host key. For more information, see the GitHub Blog and the following articles.

  • You can require TLS encryption for incoming SMTP connections to your instance. For more information, see "Configuring email for notifications."

  • Audit logs

  • You can stream audit log and Git events for your instance to Amazon S3, Azure Blob Storage, Azure Event Hubs, Google Cloud Storage, or Splunk. Audit log streaming is in public beta and subject to change. For more information, see "Streaming the audit log for your enterprise."

  • GitHub Connect

  • Server Statistics is now generally available. Server Statistics collects aggregate usage data from your GitHub Enterprise Server instance, which you can use to better anticipate the needs of your organization, understand how your team works, and show the value you get from GitHub Enterprise Server. For more information, see "About Server Statistics."

  • Administrator experience

  • Enterprise owners can join organizations on the instance as a member or owner from the enterprise account's Organizations page. For more information, see "Managing your role in an organization owned by your enterprise."

  • Enterprise owners can allow users to dismiss the configured global announcement banner. For more information, see "Customizing user messages for your enterprise."

  • GitHub Advanced Security

  • Users on an instance with a GitHub Advanced Security license can opt to receive a webhook event that triggers when an organization owner or repository administrator enables or disables a code security or analysis feature. For more information, see the following documentation.

  • Users on an instance with a GitHub Advanced Security license can optionally add a comment when dismissing a code scanning alert in the web UI or via the REST API. Dismissal comments appear in the event timeline. Users can also add or retrieve a dismissal comment via the REST API. For more information, see "Triaging code scanning alerts in pull requests" and "Code Scanning" in the REST API documentation.

  • On instances with a GitHub Advanced Security license, secret scanning prevents the leak of secrets in the web editor. For more information, see "Protecting pushes with secret scanning."

  • Enterprise owners and users on an instance with a GitHub Advanced Security license can view secret scanning alerts and bypasses of secret scanning's push protection in the enterprise and organization audit logs, and via the REST API. For more information, see the following documentation.

  • Enterprise owners on an instance with a GitHub Advanced Security license can perform dry runs of custom secret scanning patterns for the enterprise, and all users can perform dry runs when editing a pattern. Dry runs allow you to understand a pattern's impact across the entire instance and hone the pattern before publication and generation of alerts. For more information, see "Defining custom patterns for secret scanning."

  • Users on an instance with a GitHub Advanced Security license can use sort and direction parameters in the REST API when retrieving secret scanning alerts, and sort based on the alert’s created or updated fields. The new parameters are available for the entire instance, or for individual organizations or repositories. For more information, see the following documentation.

  • The contents of the github/codeql-go repository have moved to the github/codeql repository, to live alongside similar libraries for all other programming languages supported by CodeQL. The open-source CodeQL queries, libraries, and extractor for analyzing codebases written in the Go programming language with GitHub's CodeQL code analysis tools can now be found in the new location. For more information, including guidance on migrating your existing workflows, see github/codeql-go#741.

  • Dependabot

  • Enterprise owners on instances with a GitHub Advanced Security license can see an overview of Dependabot alerts for the entire instance, including a repository-centric view of application security risks, and an alert-centric view of all secret scanning and Dependabot alerts. The views are in beta and subject to change, and alert-centric views for code scanning are planned for a future release of GitHub Enterprise Server. For more information, see "Viewing the security overview."

  • Dependabot alerts show users if repository code calls vulnerable functions. Individual alerts display a "vulnerable call" label and code snippet, and users can filter search by has:vulnerable-calls. Vulnerable functions are curated during publication to the GitHub Advisory Database. New incoming Python advisories will be supported, and GitHub is backfilling known vulnerable functions for historical Python advisories. After beta testing with Python, GitHub will add support for other ecosystems. For more information, see "Viewing and updating Dependabot alerts."

  • Users can select multiple Dependabot alerts, then dismiss or reopen or dismiss the alerts. For example, from the Closed alerts tab, you can select multiple alerts that have been previously dismissed, and then reopen them all at once. For more information, see "About Dependabot alerts."

  • Dependabot updates @types dependencies alongside corresponding packages in TypeScript projects. Before this change, users would see separate pull requests for a package and the corresponding @types package. This feature is automatically enabled for repositories containing @types packages in the project's devDependencies within the package.json file. You can disable this behavior by setting the ignore field in your dependabot.yml file to @types/*. For more information, see "About Dependabot version updates" and "Configuration options for the dependabot.yml file."

  • Code security

  • GitHub Actions can enforce dependency reviews on users' pull requests by scanning for dependencies, and will warn users about associated security vulnerabilities. The dependency-review-action action is supported by a new API endpoint that diffs the dependencies between any two revisions. For more information, see "About dependency review."

  • The dependency graph detects Cargo.toml and Cargo.lock files for Rust. These files will be displayed in the Dependency graph section of the Insights tab. Users will receive Dependabot alerts and updates for vulnerabilities associated with their Rust dependencies. Package metadata, including mapping packages to repositories, will be added at a later date. For more information, see "About the dependency graph."

  • If GitHub Connect is enabled for your instance, users can contribute an improvement to a security advisory in the GitHub Advisory Database. To contribute, click Suggest improvements for this vulnerability while viewing an advisory's details. For more information, see the following articles.

  • GitHub Actions

  • Within a workflow that calls a reusable workflow, users can pass the secrets to the reusable workflow with secrets: inherit. For more information, see "Reusing workflows."

  • When using GitHub Actions, to reduce the risk of merging a change that was not reviewed by another person into a protected branch, enterprise owners and repository administrators can prevent Actions from creating pull requests. Organization owners could previously enable this restriction. For more information, see the following articles.

  • Users can write a single workflow triggered by workflow_dispatch and workflow_call, and use the inputs context to access input values. Previously, workflow_dispatch inputs were in the event payload, which increased difficulty for workflow authors who wanted to write one workflow that was both reusable and manually triggered. For workflows triggered by workflow_dispatch, inputs are still available in the github.event.inputs context to maintain compatibility. For more information, see "Contexts."

  • To summarize the result of a job, users can generate Markdown and publish the contents as a job summary. For example, after running tests with GitHub Actions, a summary can provide an overview of passed, failed, or skipped tests, potentially reducing the need to review the full log output. For more information, see "Workflow commands for GitHub Actions."

  • To more easily diagnose job execution failures during a workflow re-run, users can enable debug logging, which outputs information about a job's execution and environment. For more information, see "Re-running workflows and jobs" and "Using workflow run logs."

  • If you manage self-hosted runners for GitHub Actions, you can ensure a consistent state on the runner itself before and after a workflow run by defining scripts to execute. By using scripts, you no longer need to require that users manually incorporate these steps into workflows. Pre- and post-job scripts are in beta and subject to change. For more information, see "Running scripts before or after a job."

  • GitHub Packages

  • Enterprise owners can migrate container images from the GitHub Docker registry to the GitHub Container registry. The Container registry provides the following benefits.

    • Improves the sharing of containers within an organization
    • Allows the application of granular access permissions
    • Permits the anonymous sharing of public container images
    • Implements OCI standards for hosting Docker images

    The Container registry is in beta and subject to change. For more information, see "Migrating your enterprise to the Container registry from the Docker registry."

  • Community experience

  • GitHub Discussions is available for GitHub Enterprise Server. GitHub Discussions provides a central gathering space to ask questions, share ideas, and build connections. For more information, see "GitHub Discussions."

  • Enterprise owners can configure a policy to control whether people's usernames or full names are displayed within internal or public repositories. For more information, see "Enforcing repository management policies in your enterprise."

  • Organizations

  • Users can create member-only READMEs for an organization. For more information, see "Customizing your organization's profile."

  • Organization owners can pin a repository to an organization's profile directly from the repository via the new Pin repository dropdown. Pinned public repositories appear to all users of your instance, while public, private, and internal repositories are only visible to organization members.

  • Repositories

  • While creating a fork, users can customize the fork's name. For more information, see "Fork a repo."

  • Users can block creation of branches that match a configured name pattern with the Restrict pushes that create matching branches branch protection rule. For example, if a repository's default branch changes from master to main, a repository administrator can prevent any subsequent creation or push of the master branch. For more information, see "About protected branches" and "Managing a branch protection rule."

  • Users can create a branch directly from a repository's Branches page by clicking the New branch. For more information, see "Creating and deleting branches within your repository."

  • Users can delete a branch that's associated with an open pull request. For more information, see "Creating and deleting branches within your repository."

  • Repositories with multiple licenses display all of the licenses in the "About" sidebar on the Code tab. For more information, see "Licensing a repository."

  • When a user renames or moves a file to a new directory, if at least half of the file's contents are identical, the commit history indicates that the file was renamed, similar to git log --follow. For more information, see the GitHub Blog.

  • Users can require a successful deployment of a branch before anyone can merge the pull request associated with the branch. For more information, see "About protected branches" and "Managing a branch protection rule."

  • Enterprise owners can prevent organization owners from inviting collaborators to repositories on the instance. For more information, see "Enforcing a policy for inviting collaborators to repositories."

  • Users can grant exceptions to GitHub Apps for any branch protection rule that supports exceptions. For more information, see "About apps" and "Managing a branch protection rule."

  • Commits

  • For public GPG signing keys that are expired or revoked, GitHub Enterprise Server verifies Git commit signatures and show commits as verified if the user made the commit while the key was still valid. Users can also upload expired or revoked GPG keys. For more information, see "About commit signature verification."

  • To affirm that a commit complies with the rules and licensing governing a repository, organization owners and repository administrators can now require developers to sign off on commits made through the web interface. For more information, see "Managing the commit signoff policy for your organization" and "Managing the commit signoff policy for your repository."

  • Pull requests

  • Using the file tree located in the Files changed tab of a pull request, users can navigate modified files, understand the size and scope of changes, and focus reviews. The file tree appears if a pull request modifies at least two files, and the browser window is sufficiently wide. For more information, see "Reviewing proposed changes in a pull request" and "Filtering files in a pull request."

  • Users can default to using pull requests titles as the commit message for all squash merges. For more information, see "Configuring commit squashing for pull requests."

  • Releases

  • When viewing the details for a particular release, users can see the creation date for each release asset. For more information, see "Viewing your repository's releases and tags."

  • While creating a release with automatically generated release notes, users can see the tag identified as the previous release, then choose to select a different tag to specify as the previous release. For more information, see "Automatically generated release notes."

  • Markdown

  • Editing Markdown in the web interface has been improved.

    • After a user selects text and pastes a URL, the selected text will become a Markdown link to the pasted URL.
    • When a user pastes spreadsheet cells or HTML tables, the resulting text will render as a table.
    • When a user copies text containing links, the pasted text will include the link as a Markdown link.

    For more information, see "Basic writing and formatting syntax."

  • When editing a Markdown file in the web interface, clicking the Preview tab will automatically scroll to the place in the preview that you were editing. The scroll location is based on the position of your cursor before you clicked the Preview tab.


  • Interactive elements in the web interface such as links and buttons show a visible outline when focused with a keyboard, to help users find the current position on a page. In addition, when focused, form fields have a higher contrast outline.

  • If a user refreshes the page while creating a new issue or pull request, the assignees, reviewers, labels and projects will all be preserved.

    Known issues

  • 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" is enabled with GitHub Connect, issues in private and internal repositories are not included in 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.

  • In some cases, users cannot convert existing issues to discussions.

  • Custom patterns for secret scanning have .* as an end delimiter, specifically in the "After secret" field. This delimiter causes inconsistencies in scans for secrets across repositories, and you may notice gaps in a repository's history where no scans completed. Incremental scans may also be impacted. To prevent issues with scans, modify the end of the pattern to remove the .* delimiter.