GitHub Upgrade – 3.8.0/3.8.1

On Monday, April 17th beginning at 5:00 PM EST, we will be taking the github.ncsu.edu service offline for an upgrade to GitHub Enterprise 3.8.1.

The upgrade is expected to take no more than an hour to complete.

Features

Projects beta

  • 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 (beta).”

Identity and access management

  • 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.”

Dependabot

  • 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.lock and pubspec.yaml files.
    • 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, and yarn.lock files.For more information, see the following articles.
  • Python developers who use supported package managers on an instance with the dependency graph enabled can receive Dependabot alerts for dependencies within pyproject.toml files 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-necessary versioning strategy. For more information, see “Configuration options for the dependabot.yml file.”
  • 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.

Code security

  • 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.md file. 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.
  • 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.

GitHub Actions

  • To prevent untrusted logging of data from the set-state and set-output workflow 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-state or set-output commands. These commands will be fully disabled in a future release.
    • To use the updated saveState and setOutput functions, workflows using the GitHub Actions Toolkit must call @actions/core v1.10.0 or later.For more information, see “Workflow commands for GitHub Actions.”
  • 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.
  • 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-name accepts 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-on key.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 subject claim 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/cache can manage caches from the instance’s web UI. For more information, see “Caching dependencies to speed up workflows.”

Community experience

  • 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.”

GitHub Discussions

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

Organizations

  • 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.”

Repositories

  • 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.”

Issues

Pull Requests

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

Releases

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

Integrations

  • 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 “GitHub extensions and integrations.”

Changes

  • 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. For more information, see “Configuration options for the dependabot.yml file.”
    • Bundler
    • Docker
    • Gradle
    • Maven
    • npm
    • Nuget
    • Python
    • Yarn
  • 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_alert webhook. This webhook replaces the repository_vulnerability_alert webhook. 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_TOKEN with workflow_dispatch and repository_dispatch events. Prior to this change, events triggered by GITHUB_TOKEN would 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_job webhook supports a new waiting state whenever a job is awaiting an environment protection rule. Also, when a job refers to an environment key in its YAML definition, the workflow_job webhook payload will also include a new property, deploymentdeployment contains 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_response and org.sso_response events appear in the REST API and payloads for audit log streaming.
    • repo.renameproject.rename, and protected_branch.update_name events include the current and past names for these renamed within the old_name field.
    • Events for Dependabot alerts contain alert_numberghsa_iddismiss_reason, and dismiss_comment fields, 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-ort strategy. 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.

Bug Fixes

  • On an instance with GitHub Actions enabled, a workflow job for GitHub Actions would not start if a matching runner group was unavailable when the job was initially queued, even if a matching runner group became available after the job entered the queue.
  • On an instance with GitHub Actions enabled, GitHub Actions will now properly execute after restoration of a deleted repository.
  • On an instance with GitHub Actions enabled, nested calls to reusable workflows within a reusable workflow job with a matrix correctly evaluate contexts within expressions, like strategy: ${{ inputs.strategies }}.
  • After a user imported a repository with push protection enabled, the repository was not immediately visible in the security overview’s “Security Coverage” view.
  • Responses from the /repositories REST API endpoint erroneously included deleted repositories.
  • If a repository contained a CODEOWNERS file with check annotations, pull requests “Files changed” tab returned a 500 error and displayed “Oops, something went wrong” in the “Unchanged files with check annotations” section.
  • On an instance with GitHub Actions enabled, if a user manually triggered a workflow using the REST API but did not specify values for optional booleans, the API failed to validate the request and returned a 422 error.
  • When users searched for gists, the text in the search field was not visible in some cases because the texts color was identical to the color of the fields background.
  • In some cases on an instance with multiple nodes, GitHub Enterprise Server erroneously stopped writing to replica fileservers, causing repository data to fall out of sync.
  • On an instance with GitHub Connect enabled, if “Users can search GitHub.com” was enabled, users would not see issues in private and internal repositories in search results for GitHub.com.