Introducing GitHub Enterprise 2.12

GitHub Enterprise 2.12 has arrived with new organization tools to help your team stay focused and do their best work. Get project board enhancements, global webhooks, repository archiving, and more by upgrading to our latest release.

Ready to upgrade?
Download GitHub Enterprise 2.12

More accessible project management

Project boards help you keep track of what’s happening with a group of tasks. Now, with automation events, you can let your project boards update the status of your tasks for you. Whether you or a teammate add a new card to a project, close an issue, or merge a pull request, your cards will automatically move between columns in real time.

Learn more about project board automation

If you rely on assistive technology or prefer using the keyboard to manage project boards, you can now use our new keyboard shortcuts to quickly navigate between cards and columns. Simple keystrokes allow you to move cards and columns anywhere on the board, commit changes, or review the keyboard shortcuts in more detail.

Learn more about project navigation

Project boards are a great way to organize tasks, but often, those tasks have external dependencies. With our new Enterprise release, you can use notes to add links to those dependencies. When you reference an issue or pull request in a note, you’ll now see a preview of the cross-referenced link in a summary card, giving you more context.

Learn more about project note summary cards

Global webhooks that keep you in the know

Now you can configure webhooks for an entire enterprise instance instead of one repository or organization at a time. Admins will be notified about new users and organizations, deleted users and organizations, and membership changes.

Learn more about global webhooks

Better repository organization tools

You don’t have to delete repositories when they're inactive. Now you can archive older projects to make them read-only to owners and contributors. While no one will be able to add new issues, pull requests, or comments, you'll be clutter-free and still have access to the repositories if you decide to iterate on them later.

Learn more about archiving repositories

With Enterprise 2.12, you can also search for repositories by their license using license family names or queries like “license:mit” and “license:gpl-3.0”. License searching gives you another way to find projects that fit your licensing requirements or repos you’d like to work on. We’ve even added a license filter on the “Advanced Search” page to help you craft the exact query you need.

Learn more about searching repositories by license

Automatic HTTPS deployment

GitHub Enterprise now supports Let’s Encrypt, a public Certificate Authority (CA), which automatically obtains and renews TLS and SSL certificates. Admins can get a secure “green HTTPS padlock” by running a simple CLI command or requesting a TLS certificate in the Management Console, with no fees or manual steps for certificate renewal.

Learn more about HTTPS deployment

Additional Updates

  • Use hotpatching to schedule patch upgrades during a designated upgrade window
  • Get geo-replication improvements like updated commands, archive generation, and support for GitHub Pages
  • View edit history for comments, use Markdown for topic discussions, and support new contributors with a contribution guidelines sidebar
  • Configure permissions around a repository fork
  • User-level requests for moves from child teams to parent teams

Upgrade today

Download GitHub Enterprise 2.12 to start using these tools. You can also check out the release notes to see what else is new or enable update checks to automatically check for the latest GitHub Enterprise release.

Not using GitHub Enterprise yet?
Request a 45-day free trial

GitHub welcomes all CI tools

GitHub and all CI tools

Continuous Integration (CI) tools help you stick to your team's quality standards by running tests every time you push a new commit and reporting the results to a pull request. Combined with continuous delivery (CD) tools, you can also test your code on multiple configurations, run additional performance tests, and automate every step until production.

There are several CI and CD tools that integrate with GitHub, some of which you can install in a few clicks from GitHub Marketplace. With so many options, you can pick the best tool for the job—even if it's not the one that comes pre-integrated with your system.

The tools that will work best for you depends on many factors, including:

  • Programming language and application architecture
  • Operating system and browsers you plan to support
  • Your team's experience and skills
  • Scaling capabilities and plans for growth
  • Geographic distribution of dependent systems and the people who use them
  • Packaging and delivery goals

Of course, it isn't possible to optimize your CI tool for all of these scenarios. The people who build them have to choose which use cases to serve best—and when to prioritize complexity over simplicity. For example, if you like to test small applications written in a particular programming language for one platform, you won't need the complexity of a tool that tests embedded software controllers on dozens of platforms with a broad mix of programming languages and frameworks.

If you need a little inspiration for which CI tool might work best, take a look at popular GitHub projects. Many show the status of their integrated CI/CD tools as badges in their README.md. We've also analyzed the use of CI tools across more than 50 million repositories in the GitHub community, and found a lot of variety. The following diagram shows the relative percentage of the top 10 CI tools used with GitHub.com, based on the most used commit status contexts used within our pull requests.

Our analysis also showed that many teams use more than one CI tool in their projects, allowing them to emphasize what each tool does best.

Top 10 CI systems used with GitHub.com based on most used commit status contexts

If you'd like to check them out, here are the top 10 tools teams use:

It's tempting to just pick the default, pre-integrated tool without taking the time to research and choose the best one for the job, but there are plenty of excellent choices built for your specific use cases. And if you change your mind later, no problem. When you choose the best tool for a specific situation, you're guaranteeing tailored performance and the freedom of interchangability when it no longer fits.

Ready to see how CI tools can fit into your workflow?

Browse GitHub Marketplace

Introducing GitHub Enterprise 2.11

Enhance performance in high availability environments, define more granular permissions, and seamlessly review code with GitHub Enterprise 2.11. Our latest release brings together some of the most-requested features to make your team's development process smoother and more efficient.

Ready to upgrade?
Download GitHub Enterprise 2.11

Enhance performance with geo-replication

Geo-replication is now out of early access and available in Enterprise 2.11. Geographically distributed data centers use multiple replicas, so requests are always sent to the closest server and fulfilled faster than ever before.

Learn more about geo-replication

Reduce downtime during patch upgrades with hotpatching

Hotpatching is also out of early access and available in GitHub Enterprise 2.11. Now, you'll almost always be able to upgrade to a newer patch release with zero downtime—no need to sweat about last minute security fixes.

Learn more about hotpatching

Define permissions with nested teams

Whether you're working on a project within your team or across departments, nested teams keep information clearly organized. With Enterprise 2.11, you can make sure the right people have access to the right code and reduce noise as contributors grow. Child teams inherit their parent’s access permissions, so repository permissions and mentioning among nested teams work from top to bottom, improving the flow of communication. For example: If your team structure is Employees > Engineering > Application Engineering > Identity, granting Engineering write access to a repository means Application Engineering and Identity also get that access.

how to use nested teams

Learn more about nested teams

Save time with code review improvements

Great reviews can take a village. With team reviews, you can ask an entire team to look at your pull request with one mention. Just tag the team in the "Reviewers" section of your pull request for better reviews from more teammates in less time.

Learn more about team reviews

You can now define exactly which people and teams always need to review projects with code owners. Select code owners, and they’ll automatically be requested for review when a pull request touches the files they own. There’s also a protected branch option, which requires code owners to leave a review before anyone can merge a pull request to the branch. Never worry about mistaken merges going unnoticed again.

Learn more about code owners

With Enterprise 2.11, you can also navigate to changed methods and functions right from your pull request file finder in Go, Javascript, Ruby, Python, or TypeScript files. Your team will have a better understanding of changes in code review and a faster path to shipping the best possible version of your code.

python-changed-functions

Learn more about changed method and function review

Additional updates

Upgrade today

Download GitHub Enterprise 2.11 to start using these features today. You can also check out our release notes to learn more, and enable update checks to automatically check when the next GitHub Enterprise release is available.

Want to try GitHub Enterprise?
Request a free 45-day trial

Introducing GitHub Enterprise 2.10: build tools with the new GitHub GraphQL API, organize with topics, and level up your project management

The latest GitHub Enterprise release is here with updates for developers and admins alike. Customizable workflows and advanced project tracking help your team do more at every step of the development cycle.

Ready to upgrade?
Download GitHub Enterprise 2.10

Create your own tools with the new GitHub GraphQL API

The GitHub GraphQL API is now out of early access on GitHub.com and available in GitHub Enterprise 2.10. Create your own tools with greater access to data than ever before using the same API that we use to build GitHub. Ask for the exact data you need in a single request and get updates in real time—no more hitting multiple endpoints or waiting for new ones after a new enterprise feature has been released.

Check out the GitHub GraphQL API video and get started with the API today!

Find and organize repositories with topics

With Enterprise 2.10, repository admins can manually add tags to their repositories for easy search and discovery. Use topics to add relevant data and group repositories by languages used, project function, or teams responsible for maintaining the repository. Team members can use tags to filter repositories and find new ones related to their projects.

atom-shared-topic

Learn more about topics

Get the full story (or no story) from your project boards

Project boards are a great way to keep your tasks organized on GitHub, and they're especially useful when working with a team. The latest enterprise release helps you accomplish more in project boards with better organization, tracking, and reviews.

When projects get complex with multiple contributors and phases, it can be difficult to keep track of what's getting done and who's doing it. Now teams can see a rich history of all activity (and the teammate behind each action) in one place with project board history.

Screenshot of the Project Activity view

Learn more about project board history

If your team isn't using project boards, admins can disable them by unchecking the Projects box in Settings on the repository or organization level. When they're disabled, you'll no longer see project board information in timelines or audit logs. They can be re-enabled at any time and will be restored exactly as you left them.

Disable GitHub Projects

Learn more about disabling projects

Refine your review process

Review requests help you get the exact feedback you need from the people you need it from. Now you can use filters to find the pull requests that require your attention first. Use the Reviews filter to see the pull requests still awaiting review, unreviewed pull requests on protected branches that require a review, approved pull requests that are ready to merge, pull requests that have a review requesting changes, and pull requests that have been reviewed by a specific user.

Learn more about review request filters

Reinforce your team's code reviews by specifying who in your organization can dismiss reviews on a protected branch. In addition to the ability to leave, manage, request, and dismiss reviews, protect branches, and limit merging rights, you can ensure important feedback gets addressed. Completely remove the ability to dismiss reviews on a protected branch or restrict that ability to a subset of users or teams specified in your branch protection settings for any organization repository.

Learn more about review dismissal

Additional updates

  • Git LFS 2.0.0 includes important bug fixes, an early release of File Locking, and a handful of other new improvements.
  • New options give administrators the ability to configure API rate limiting from the Management Console.
  • Trace changes in any part of your files over time, instead of viewing the entire file history, with improved Git blame.
  • Organization owners can now limit the ability to delete repositories to themselves or members with admin permissions.
  • Choose which TLS protocols to support and deprecate to fit your security policies.
  • Be a part of the Early Access Program:
    • Request access to hotpatching for reduced downtime when you’re upgrading patch releases.
    • If your team is geographically-distributed, request access to geo-replication for better performance in high availability environments.

Upgrade today

Download GitHub Enterprise 2.10 to start using these features and keep improving the way your team works. You can also check out the release notes to see what else is new or enable update checks to automatically check for the latest releases of GitHub Enterprise.

Not on GitHub Enterprise yet and want to give it a try?
Request a 45-day free trial

GitHub Enterprise 2.9 is here with Pull Request improvements, organization-wide Projects, and Google Cloud Platform support

GitHub Enterprise 2.9 is now available with improvements for both developers and administrators. With this release, administrators will see improvements in reliability and developers can get more out of pull requests.

Ready to upgrade? Download GitHub Enterprise 2.9.

Increased reliability and flexibility

Now, with load balancer support, running a load balancer in front of a single GitHub Enterprise appliance or High Availability pair allows for even more reliable deployments.

We’ve also expanded installation flexibility with a new hosting option on Google Compute Engine.

Pull Request enhancements

Starting conversations around code is what Pull Requests and the GitHub Flow are all about. These feature enhancements make that collaboration even more efficient.

  • Resolving merge conflicts in the UI — Accomplish more, right from your pull requests, saving you a trip to the command line and helping your team merge pull requests faster.
  • Review requests — Request reviewers for your Pull Request from the sidebar, and they will be notified. You can also track requested reviewers and the status of each review.
  • Dismiss Pull Request reviews — Remove potential blockers to your team’s progress by dismissing pull request reviews that are no longer valid or are unable to be approved by the reviewer.
  • Rebase and merge Pull Requests — Avoid merge commits by using the "Rebase and merge" option on the pull request merge button.

Organization-wide Projects

GitHub Projects can now be used at the Organization level. All users in your Organization will have access to its Projects, so you and your team can plan and manage work across repositories. With Organization-wide Projects, everyone can see what's already in motion and work together without duplicating efforts.

Other improvements

  • You can search commit messages using either the main search page or within a repository.
  • Creating a new Pages site on GitHub Enterprise is now as easy as 1,2,3.
  • Progressively loaded diffs let you to review more changes than ever in one pull request, making large refactor reviews possible in the GitHub UI. Up to 3,000 files will be loaded progressively as you view them, which keeps your reviewing experience comprehensive and responsive.

Upgrade today

Upgrade to GitHub Enterprise 2.9 today to start using these features and keep improving the way your team works. You can also check out the release notes to see what else is new.

GitHub Enterprise 2.8 is now available with code review, project management tools, and Jupyter notebook rendering

GitHub Enterprise 2.8 adds power and versatility directly into your workflow with Reviews for more streamlined code review and discussion, Projects to bring development-centric project management into GitHub, and Jupyter notebook rendering to visualize data.

Code better with Reviews

Reviews help you build flexible code review workflows into your pull requests, streamlining conversations, reducing notifications, and adding more clarity to discussions. You can comment on specific lines of code, formally "approve" or "request changes" to pull requests, batch comments, and have multiple conversations per line. These initial improvements are only the first step of a much greater roadmap toward faster, friendlier code reviews.

Organize projects while staying close to your code

With Projects, you can manage work directly from your GitHub repositories. Create task cards from pull requests, issues, or notes and drag and drop them into categorized columns. You can use categories like "In-progress", "Done", "Never going to happen", or any other framework your team prefers. Move the cards within a column to prioritize them or from one column to another as your work progresses. And with notes, you can capture every early idea that comes up as part of your standup or team sync, without polluting your list of issues.

Visualize data-driven workflows with Jupyter Notebook rendering

Producing and sharing data on GitHub is a common challenge for researchers and data scientists. Jupyter notebooks make it easy to capture those data-driven workflows that combine code, equations, text, and visualizations. And now they render in all your GitHub repositories.

Share your story as a developer

This release takes the contribution graph to new heights with your GitHub timeline—a snapshot of your most important triumphs and contributions. Curate and showcase your defining moments, from pinned repositories that highlight your best work to a profile timeline that chronicles important milestones in your career.

Amp up administrator visibility and security enforcement

GitHub Enterprise 2.8 gives administrators more ways to enforce security policies, understand and improve performance, and get developers the support they need. Site admins can now enforce the use of two-factor authentication at the organization level, efficiently visualize LDAP authentication-related problems—like polling, repeated failed login attempts, and slow servers—and direct users to their support website throughout the appliance.

Upgrade today

Upgrade to GitHub Enterprise 2.8 today to start using these new features and keep improving the way your team works. You can also check out the release notes to see what else is new or enable update checks to automatically check for the latest releases of GitHub Enterprise.

GitHub Enterprise 2.7 is now available with enhanced security and more powerful APIs

A new release of GitHub Enterprise is now available with improvements for developers and administrators alike. With GitHub Enterprise 2.7, we’re introducing GPG signature verification — a new way for teams to protect their projects and definitively know who authored a commit. The release also includes several API previews to help you create integrations that enforce customized policies and fit your workflows.

Continuing the effort to make collaboration seamless, GitHub Enterprise 2.7 adds new tools for developers, designers, product managers, and team leads to work together and communicate. Updates include the ability to assign multiple people to an issue, reorder task lists, and labels to indicate whether an issue or pull request comment has been edited.

Ready to upgrade? Download GitHub Enterprise 2.7.

Know that code comes from a verified source

When building software with a large or distributed team, it's important to validate that commits and tags are coming from an identified source. Now you can definitively know who authored code or pushed a change to production with GPG signature verification.

gpg sign your git commits on GitHub

When you view a signed commit or tag, you can see a badge indicating if the signature can be verified using any of the contributor's GPG keys uploaded to your GitHub Enterprise appliance. This makes it easy to see if a signature is from a verified key that GitHub trusts. To learn more about how to generate a GPG key and start signing your work, check out our documentation on GPG.

Fine tune the way you work

You know your workflow best. To help you work the way you want to, this update includes a series of significant API updates that allow you to further customize GitHub Enterprise, build integrations, and use automation to enforce policies. Check out the documentation for the pre-receive hooks API, protected branches API, reactions API, locking and unlocking issues via the API, and squashing pull requests in the API.

The release also adds ways for you to streamline your development process:

  • Make it a group effort. Assign multiple users to tasks, adding up to 10 people to a given issue or pull request.
  • Easily prioritize task lists without editing markdown. Drag and drop checklist items to position them higher or lower in a list.
  • Know when comments have been edited. When you or your coworker makes an edit, you'll see an "edited" badge in the comment header.

Upgrade today

Upgrade today so you and your team can start using GPG signature verification and keep improving the way you work. You can also check out the release notes to see what else is new or enable update checks to automatically check for the latest releases of GitHub Enterprise.

To learn more about GitHub Enterprise 2.7 and the future of software, come to GitHub Universe on September 13-15.

Migrate your repositories using ghe-migrator

Sometimes customers find themselves needing the unique advantages of GitHub Enterprise and decide to move their private repositories there. Now it's easier than ever to move repositories to GitHub Enterprise from GitHub.com or instances of GitHub Enterprise using ghe-migrator. In fact, it's helped more than 120 organizations migrate more than 2,500 repositories in the last nine months alone.

The advantage of using ghe-migrator instead of manually cloning and pushing repositories is that it includes GitHub data with the repository, including its issues, pull requests, user data, and wiki.

Completed migration to GitHub Enterprise

Before getting started

First off, using the ghe-migrator utility requires GitHub Enterprise version 2.3 or greater. If your version is not recent enough to use ghe-migrator, please refer to the documentation for upgrading GitHub Enterprise. The migration process also requires two other servers to be running. You will need a unix-based server running GitHub Enterprise's backup-utils and another instance of GitHub Enterprise (running the same version as your production instance) to perform dry runs of the migration.

If you are using authentication mechanisms such as LDAP or SAML, or want to enforce user naming conventions, you should also compile a CSV of username mappings. The CSV should look like this (substituting githubenterprise.example.com with the URL of your GitHub Enterprise instance):

model_name,source_url,target_url,action
user,https://github.com/nathos,https://githubenterprise.example.com/nhenderson,map
user,https://github.com/allthedoll,https://githubenterprise.example.com/jstrusz,map
user,https://github.com/jonmagic,https://githubenterprise.example.com/jhoyt,rename
user,https://github.com/mattcantstop,https://githubenterprise.example.com/mduff,map

Where source_url refers to the URL of a given GitHub.com user, and target_url contains the desired username in GitHub Enterprise. Use the map action if the target user already exists on GitHub Enterprise, and rename if the user needs to be created. You can learn more about custom mappings in the GitHub Enterprise Documentation.

All of the commands below will run directly on the GitHub Enterprise instance. Start by logging in to the administrative shell using SSH.

Note: All of the steps below should be performed on the sandbox instance of GitHub Enterprise before running them on the production instance.

You will need a personal access token from GitHub.com with the admin:org permission selected. The token must be generated by an owner of the organization that contains the repositories you wish to migrate. Once obtained, set an environment variable on your GitHub Enterprise instance for easy reference.

export GITHUB_TOKEN=[your personal access token]

You will also need a personal access token from your GitHub Enterprise instance from a site admin user. This will be the user performing the import to GitHub Enterprise.

It is important to make frequent backups of your GitHub Enterprise instance using backup-utils in between each step of the migration process. This affords flexibility in trying different migration strategies.

Exporting from GitHub.com

From your GitHub Enterprise instance, run the following cURL command to start an export job on GitHub.com. Substitute your organization name and list of repositories to export.

curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST \
  -H "Accept: application/vnd.github.wyandotte-preview+json" \
  -d'{"lock_repositories":false,"repositories":["githubschool/example-repository"]}' \
  https://api.github.com/orgs/githubschool/migrations

From the response body, we want to capture the migration url, denoted by the url key in the JSON. Save it to an environment variable.

export MIGRATION_URL=https://api.github.com/orgs/githubschool/migrations/999

Note: When running this command on your sandbox instance, set "lock_repositories" to false. When you do your production migration, set it to true, and it will prevent users from creating commits, pull requests, issues, etc on the repository on GitHub.com.

The previous command will send a response immediately, indicating that the export of your repositories has begun on GitHub.com. You'll need to send a request to the migration status endpoint to monitor the status of the export. This command will poll the migration API every thirty seconds then output exported when it's complete.

unset STATE
until [[ $STATE == *"exported"* ]]
do
  STATE="$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" \
  -H "Accept: application/vnd.github.wyandotte-preview+json" \
  $MIGRATION_URL \
  | grep -E '"state": ".*"')"
  echo $STATE
  sleep 5
done

When the job is complete, it will display "state": "exported" then exit.

Note: If you prefer to check the status of the export manually, and review more information about the export, you may simply send a simple cURL request to the migration API.

curl -s -H "Authorization: token ${GITHUB_TOKEN}" \
-H "Accept: application/vnd.github.wyandotte-preview+json" \
$MIGRATION_URL

This next command will download the exported archive.

ARCHIVE_URL=`curl -H "Authorization: token ${GITHUB_TOKEN}" \
  -H "Accept: application/vnd.github.wyandotte-preview+json" \
  $MIGRATION_URL/archive`; \
  curl "${ARCHIVE_URL}" -o migration_archive.tar.gz

The archive is stored on GitHub's servers, and will automatically be deleted after seven days. However, you can run this command to delete it immediately.

curl -H "Authorization: token ${GITHUB_TOKEN}" -X DELETE \
  -H "Accept: application/vnd.github.wyandotte-preview+json" \
  $MIGRATION_URL/archive

Preparing to import

Next, you want to unpack the archive and prepare GitHub Enterprise for the import. In this step, GitHub Enterprise makes note of the objects that will be imported by saving references to them in a database table.

ghe-migrator prepare migration_archive.tar.gz

It's important to capture the Migration GUID from the previous command's output. Save that to an environment variable.

export MIGRATION_GUID=e9ebc5fe-9694-45af-925c-376651d933d7

It's possible that users, repositories, organizations, or other entities will have conflicting names. ghe-migrator comes with a utility to detect and output these conflicts to a CSV file.

ghe-migrator conflicts -g $MIGRATION_GUID > conflicts.csv

conflicts.csv will contain the naming collisions for the import and their suggested actions to resolve those collisions. You may need to rename some models, map them from GitHub.com to their GitHub Enterprise counterpart, or merge them together, as in members of a team. You can read about how to resolve migration conflicts in our GitHub Enterprise documentation.

Once you're satisfied with the mappings you've set in conflicts.csv, you can send that file back to ghe-migrator to be interpreted.

ghe-migrator map -i conflicts.csv -g $MIGRATION_GUID

This is also a good point to include any username mappings you may have set up earlier.

ghe-migrator map -i username_mappings.csv -g $MIGRATION_GUID

Import and audit

With mappings in place, you can now import our archive into GitHub Enterprise.

ghe-migrator import migration_archive.tar.gz -g $MIGRATION_GUID -u AdminUser

Where AdminUser is the username of a Site Admin on the GitHub Enterprise Appliance. After entering this command, you will be prompted to enter the GitHub Enterprise personal access token you set up during preparation.

Tip: To see what records are going to be imported or mapped before importing, you can run ghe-migrator audit -g $MIGRATION_GUID

After the import is complete, you can use ghe-migrator audit to see what was imported. Typically, you'll want to filter for records that failed to import.

ghe-migrator audit -s failed_import,failed_map,failed_rename,failed_merge -g $MIGRATION_GUID

Once you are satisfied that the migration has completed successfully, you need to unlock the repositories on the GitHub Enterprise instance to allow users to access it. They are locked by default to prevent anyone from using them before you're sure you're happy with the import.

You may choose to unlock all repositories from this migration at once from the command line:

ghe-migrator unlock -g $MIGRATION_GUID -u YOUR-USERNAME -p YOUR-TOKEN

Or you may choose to unlock repositories individually using the Site Admin tools:

  1. Go to Admin Tools (stafftools) for each repository that was migrated.

    stafftools shortcut

  2. Click on Admin in the left sidebar.

    Admin link
  3. Click Unlock in the Single Repository Lock area.

    Unlock repo button

Conclusion

Now you'll be able to use your repositories that were once on GitHub.com in your company's instance of GitHub Enterprise. Important related information, such as issues and pull requests, will accompany your repositories. Should you require guidance with the ghe-migrator utility, GitHub Professional Services is here to help by offering on-site and remote migration assistance.

Other Resources

  • To learn more about ghe-migrator's capabilities, you can consult the GitHub Enterprise Migration documentation.
  • A guided video demonstration of the steps in this article is available on our YouTube channel.
  • For importing repositories to GitHub.com, read our blog post about the GitHub Importer.

GitHub Enterprise 2.6 is here with faster, more approachable workflows

A new release of GitHub Enterprise is now available—and includes features requested by developers across the GitHub community. With GitHub Enterprise 2.6, we’re introducing tools and updates that will provide teams with even more options to create efficient, flexible, and friendly processes at every step of their development cycles.

All teams work differently, so it’s important that GitHub Enterprise supports the effort they put into creating efficient, effective tooling. In this release, administrators will find tools that save time throughout their development processes, including Issue templates and support for pre-receive hooks.

GitHub Enterprise 2.6 will also help teams have productive conversations. Developers can more efficiently review code and comments with new ways to view the history of their pull requests. And to make GitHub a better communication tool for all team members, we’ve added the option to drag and drop files into repositories using the GitHub interface and an editor to style issues and comments without markdown.

Ready to upgrade? Upgrade now.

Build a workflow that works for your team

The latest release adds features and support to help you and your team create even more tailored, efficient workflows. Administrators can now:

Protect branches with greater flexibility

With more than 100,000 people pushing to nearly 300,000 Protected Branches every week, we've found a few ways to make them better. Administrators now have more flexibility over their Protected Branches with the option to merge out-of-date pull requests and set restrictions on which users and teams can merge branches. Check out the documentation to learn how.

Let your team know what's happening, fast

From GitHub Enterprise 2.6 onwards administrators can set up custom messages to share with developers on their GitHub Enterprise sign-in page. Administrators can also write custom messages for suspended users to appear when anyone with a suspended account tries to log in. See how you can use custom messages to communicate with your team.

Flexibly review pull requests

Effective code review catches bugs before they’re deployed, improves code consistency, and helps educate new developers. Since our last release, we've worked to make reviewing pull requests faster and more flexible. With GitHub Enterprise 2.6, you can:

  • Quickly find files to review, and filter them by name or extension
  • Filter changes by commit to see how a pull request has evolved through time
  • Pick up where you left off, and view new changes to pull requests since your last visit

Choose how you commit

Shape your workflow however you like. The organization of your Git history is just one of the choices to make, but up until now the merge button on GitHub only created merge commits. Now you also have the option to squash merge—squashing all of your commits into a tidy, easy-to-digest history. Learn more about squash merging.

Communicate better across GitHub, across teams

To help everyone on your team share their ideas, we've added features to streamline feedback and open up your development process to even more team members. Your team can now:

Upgrade today

GitHub Enterprise 2.6 is driven by developer and community feedback and includes some of our most requested improvements. Upgrade today, so your team can start taking advantage of them. You can also check out the release notes to see what else is new or enable update checks to automatically update your instance whenever there is a new release.

GitHub Enterprise 2.5 is now available

We are excited to announce the release of GitHub Enterprise 2.5. With this release, we’re introducing features and updates that will help development teams build software at scale with a focus on scalability, security, and management of GitHub Enterprise for development teams of any size.

It's important that your GitHub Enterprise instance can support the way you work without skipping a beat, even if your team is 10,000 strong and growing exponentially. In this release, we're introducing a better way to add new users to large installations, more ways to collaborate safely, and other tools and updates that will help support your team as it gets bigger.

You'll also find a round of updates from a clean and simple design refresh to added support for Subversion, and more. Ready to upgrade? Download GitHub Enterprise 2.5.

A better way to grow

As your team grows, so does your GitHub Enterprise installation. For our customers with teams of tens of thousands of developers, the 2.5 release introduces clustering—a framework that helps administrators add more users to large installations.

clustering

Clustering was specifically designed for very large installations but requires some additional administrative resources. Check out the documentation to see how it works or contact your GitHub account manager to discuss scaling options.

A new way to cache intensive operations

For teams working on bigger software projects, large CI farms or similar collections of clients that perfom git fetch for large amounts of data at almost the same time can cause a substantial CPU and RAM load on our fileservers. With GitHub Enterprise 2.5, we have improved our resilience to the degraded performance that can happen with "thundering herds."

More ways to protect your branches

GitHub Enterprise 2.4 included Protected Branches and Required Statuses to help teams collaborate safely: When you protect a branch, other developers can't delete or force-push to it. You can also specify status checks that collaborators need to pass before merging a pull request.

With GitHub Enterprise 2.5, we are kicking off a preview period for the Protected Branches API—allowing instance administrators to help maintain a project’s conventions at scale and make sure no one loses any work.

Protected branches and required status checks are configurable per repository. To start using the API, check out the documentation.

Design updates

When you upgrade to GitHub Enterprise 2.5, parts of GitHub will look different. The repository and sign-in screens have updated designs that will make it easier to sign in and use GitHub from your browser.

A new look for repositories

The new repository design improves navigation, simplifies the page layout, and improves code performance under the hood. You can learn more about what's changed from our recent blog post on the new design. In the meantime, here’s a summary:

  • The collapsing side menu is now a single, always present navigation, which improves accessibility and frees up more space for what matters to you—issues and pull requests.
  • The Code tab now more prominently emphasizes cloning and comes with a redesigned protocol switcher containing explicit menu items with explanatory text for each cloning method.

Simple sign-in and authentication screens

In addition to updating how repositories look, we have simplified the sign-in and authentication screens, so you can access your account more efficiently. The sign-up screen also includes a clearer sign-up link for new developers on your team who do not have a GitHub account, yet.

Enhanced Subversion support

For teams who use SVN commands to interact with their repositories, the latest version of GitHub Enterprise extends support for Subversion to versions 1.8 and 1.9. You can now use newer Subversion clients with GitHub, including features from 1.8 and 1.9.

Upgrade today

Check out the release notes to see what else is new or download GitHub Enterprise 2.5 now. You can also enable update checks to automatically update your instance whenever there is a new release.

GitHub Enterprise 2.4 is now available

GitHub Enterprise is the on-premises version of GitHub, which you can deploy and manage in your own, secure environment. The GitHub Enterprise 2.4 release offers users and administrators greater control over their instance—and their workflows. From protected branches to simplified asset management, our latest release includes features and updates that make GitHub more flexible.

Protected branches and required statuses

With protected branches, administrators now have the ability to disable force pushes to specific branches. Required status checks on protected branches make integrations that use our Status API enforceable, and you can disable the merge button until they pass.

Improved organization permissions

Improved permissions give your organization the flexibility to work the way you want. New customizable member privileges, fine-grained team permissions, managed access, and transparent communication with team mentions make it even easier for your team to work together. Learn more about GitHub’s improved organization permissions.

Easier asset management with Git Large File Storage

With the inclusion of Git LFS you can integrate large binary files into your Git workflow. Large files are stored on your server and the custom API allows you to transfer any number of files with ease. Learn more about Git LFS.

More flexibility with GitHub Pages

Your GitHub Pages sites can be public even if your Enterprise instance is private. With the new jekyll-feed plugin, you can automatically generate an Atom (RSS-like) feed of your most recent posts, making it easier for people to subscribe. Learn more about easier feeds for GitHub Pages.

Keep your instance current

Ensure your GitHub Enterprise instance is up-to-date with new features, security patches, and bug fixes by opting in to automatic downloads of new releases, which you can then apply from the management console.

Render map data within GitHub Enterprise

With GeoJSON support, any GeoJSON file in a GitHub repository will now be automatically rendered as an interactive, browsable map, annotated with your geographic data. You can even customize the way your data is displayed, such as coloring and sizing individual markers, or specifying a more descriptive icon.

Merge with confidence

The area above the merge button now contains information on automated status checks, making it easier to see if your proposed changes are ready to go or need more work.

Universal 2nd Factor authentication

Earlier this month we announced that we expanded GitHub's authentication system to support FIDO Universal 2nd Factor (U2F), and this security feature is now available with the GitHub Enterprise 2.4 release. Read more about how U2F keys work or take a look at the documentation to learn how to associate a U2F key with your instance.

For the full list of features and updates, check out the release notes. If you're currently using GitHub Enterprise, you can download this release now. If you want to give GitHub Enterprise a try, request a 45-day free trial.

GitHub Enterprise security best practices

We want to free up your administrator's time by providing a tool that requires little maintenance and great out-of-the-box security. By following a few simple steps, GitHub Enterprise can be ready for your developers to test the same day it you install it.

Sometimes in the excitement to get up and running, it is easy to pass over simple solutions for security. This post will guide you through some of the settings GitHub Enterprise provides to ensure your company's installation is secure without inhibiting collaboration. We will also discuss monitoring and auditing tools that give greater insight into the health and security of your installation.

Initial instance setup

Instance password

The password for the Enterprise Management Console, as shown in step #8 of this guide, is the main gateway to administer GitHub Enterprise. This shared password gives a user unfettered access to the GitHub Enterprise environment, so we recommend that you only share it with a select few individuals and save it in an encrypted vault such as 1Password or a similar password management tool. Using this password, you can establish SSH keys through the /setup page in GitHub Enterprise. After setting up a key, an administrator can SSH into the GitHub Enterprise instance and gain access to all the ghe- command line utilities available.

Private Mode

private-mode

In the /setup page of GitHub Enterprise you will find a setting that enables Private Mode. With this setting enabled, GitHub Enterprise hides all content from users who are not authenticated, including public repositories.

Enabling Private Mode is required for GitHub Enterprise instances that are accessible to users outside of the firewall without a VPN. This helps to ensure a user does not inadvertently make a repository public externally that should remain private within a company.

If your GitHub Enterprise install is only available from a VPN outside of your firewall Private Mode does not need to be turned on. This lets unauthenticated people within the firewall view public repositories and public GitHub Pages.

Subdomain isolation

subdomain

We strongly recommend that everyone turn on subdomain isolation for their GitHub Enterprise instance. Subdomain isolation securely separates user-supplied content from other portions of your GitHub Enterprise appliance, which mitigates cross-site scripting and other related vulnerabilities. You can make these changes by creating a wildcard DNS entry or by whitelisting each subdomain individually. A full list of these subdomains is available in the link above.

Improved monitoring

If you navigate to the /setup/monitor page in GitHub Enterprise you will notice GitHub Enterprise now ships (as of Enterprise version 2.3) with more graphs to monitor activity on the instance. This permits an administrator to spot suspicious activity and maintain stability in the environment.

Another feature that helps you keep GitHub Enterprise secure is the audit log, which is available at the /stafftools/audit_log endpoint. It records actions that are occurring and makes them visible to a site administrator. These audit logs reveal what action occurred (for instance, a user login), who performed the action, and the IP address of the request. This gives you great visibility into what is happening on an instance level.

Authentication

Certain authentication methods provide additional levels of security and control. Two we'll highlight here are restricted user groups and universal two-factor authentication.

Restricted user groups

Both LDAP Sync and SAML with Okta allow GitHub Enterprise administrators to segment users and fine-tune control of GitHub Enterprise. In addition to securing your instance, these tools let you control the number of licensed seats in use at any given time.

LDAP Sync permits an administrator to set up a Restricted Group (in Active Directory, for example) that limits access to GitHub Enterprise to only users found in that group.

ldap-settings

SAML with Okta lets an administrator control access to GitHub Enterprise by setting it up as an "application" and assigning users to that application to give them access.

With fine tuned controls over who can access the instance, and great reporting from those tools about group membership, an administrator can feel confident in both controlling and monitoring access.

Universal second factor authentication

In partnership with Yubico, GitHub also supports Universal Second Factor Authentication (U2F). If you are not using GitHub's built in authentication in your instance, however, your identity management provider must provide U2F.

We strongly encourage companies and individuals to reach out to their identity providers and request support for U2F if it is not yet supported.

Organizational security options

GitHub's revamped organizations and teams are another way to secure your GitHub Enterprise installation. Administrators of GitHub Enterprise will now have the ability to set access levels for a team on a per repository basis. This granularity will reduce the number of teams that administrators must set up and maintain.

Any questions, don't hesitate to reach out

If you are administering GitHub Enterprise for your team, putting these best practices into play is a great step toward ensuring that your instance stays healthy, secure, and as easy to maintain as it was to install. For a deeper dive into securing your GitHub Enterprise installation, check out this recording from GitHub Universe.

If you have any questions about securing your GitHub Enterprise installation you can reach out to enterprise@github.com to get clarifications or help.

The GitHub Services team is happy to help get you up and running with GitHub Enterprise. We can help you get GitHub Enterprise deployed quickly while following the best practices for security, availability and redundancy. If you would like to learn more about how we can help, don't hesitate to reach out to services@github.com.

GitHub Enterprise 2.3 is now available

GitHub Enterprise 2.3 offers users and administrators greater control over their instance—and their workflows. From expanded monitoring to a hi-fidelity migration tool, our latest release includes features, APIs, and ongoing security updates that make GitHub more flexible and secure.

New Administrator APIs

New enterprise-only APIs give administrators more flexibility when setting up and provisioning new accounts, as well as when listing details about their users and organizations. You can check out the full list of APIs included in GitHub Enterprise 2.3 the release notes.

Simpler migrations

Whether you’re consolidating GitHub Enterprise instances or moving your organization from GitHub.com, the ability to easily migrate data is important. To simplify this process, you can now use ghe-migrator—a hi-fidelity tool for migrating repositories and all of their supporting data from one GitHub instance to another.

Advanced monitoring

With more ways to monitor your instance, your team can react to small issues before they get bigger. Administators can now see the current state of queues for background jobs and emails, along with more extensive request metrics and additional dashboard information for MySQL, Redis, and ElasticSearch.

Filter pull requests by status

You can sort pull requests by the status of commits with the status: filter—giving you greater control over an important part of the development process. This works especially well if you're using The Status API or an integration service that does.

And more

  • Outbound HTTP proxies for third party tools and services
  • Previewing for comments
  • Better RSA key validations that prevent weak SSH keys
  • Read-only deploy keys
  • Referrer sanitization

For the full list of features and updates, check out the release notes. If you're currently using GitHub Enterprise, you can download this release now. If you want to give GitHub Enterprise a try, request a 45-day free trial.

Announcing GitHub Enterprise 2.1.0

hero-2-1-release

It's a new year and we couldn't think of a better way to start it off than with a new release of GitHub Enterprise. We've included a number of highly-requested features, along with some of the best stuff recently shipped on GitHub.com - all to give developers and admins the best tools to build and ship software at work.

Let's talk about some of the features you'll find in this release.

Automate user and team management with LDAP Sync

Many of you have told us that you want it to be easier to use GitHub Enterprise with LDAP, especially for organizations managing lots of users. With this release, GitHub Enterprise integrates with your LDAP directory more deeply than ever before, automating identity and access management for your organization. This means you can provision and deprovision user accounts in GitHub Enterprise directly from LDAP with user sync, and automatically grant users access to repositories with team sync. While we were at it, we also improved LDAP performance across the board, increasing reliability and throughput.

Deploy GitHub Enterprise on OpenStack KVM

One of our goals with last year's rebuild of GitHub Enterprise was to make it available in more of the environments where you want to run it, whether you're managing your infrastructure on servers you own or on an internal cloud-based platform. That's why we're excited to announce that with this release, GitHub Enterprise is available on OpenStack KVM, in addition to Amazon Web Services and VMware. If your tech stack is built on KVM, you can now easily set up GitHub Enterprise and integrate with other parts of your internal system.

Audit all user actions across your instance

The Organization Audit Log that shipped with the November release of GitHub Enterprise has now been expanded to the instance level, giving administrators a skimmable and searchable record of every action performed across GitHub Enterprise in the past 90 days. Events like repository creation, team deletion, the addition of webhooks, and more are surfaced in a running log, along with information about who performed the action and when it occurred. These events can be filtered for deeper analysis, and you can create a wide range of custom search queries to make sure you're always aware of what's taking place on your instance.

audit-log

Monitor the performance of GitHub Enterprise

If you're administering GitHub Enterprise, you should be able to identify whether your instance is performing correctly and quickly locate what's wrong when it isn't. With the new Instance Monitoring Dashboard, you now can. With data displayed for things like data disk usage, memory, CPUs, and more, you'll be able to answer questions like:

  • Are my users experiencing errors?
  • Are things fast or slow for my users?
  • What is a typical traffic pattern? What is abnormal?
  • Should I upgrade CPU, memory, or IO to improve the performance of my instance?
  • When should I plan to increase my disk space given my current growth rate?

monitoring-dashboard

Even more betterness

GitHub Enterprise 2.1.0 also includes:

To see the full list of features and bug fixes, check out the release notes for GitHub Enterprise 2.1.0.

Take 2.1.0 for a spin

If you're an existing GitHub Enterprise customer, you can download the latest release from the GitHub Enterprise website. If you want to give GitHub Enterprise a try, start a 45-day free trial on OpenStack KVM, AWS, or VMware.

The story behind the new GitHub Enterprise

Today we're releasing the fastest and most flexible version of GitHub Enterprise ever, including high availability and disaster recovery options, dramatically improved LDAP and SAML integration, major improvements to features like code review and project management, and support for deploying on Amazon Web Services.

jetpack

We're proud to share this release with you not just because it's our finest work yet, but because it represents a major milestone in our mission to change the way the world builds software together.

Over seven million people and hundreds of thousands of organizations are working together on over 17 million repositories on github.com, but that only begins to scratch the surface. With this release of GitHub Enterprise we're making social coding available to anyone who wants to host code in their AWS-powered cloud, while also shipping a better product experience for the thousands of administrators and developers already using GitHub Enterprise daily.

When GitHub launched in 2008, it was all about sharing. You could quickly sign up for an account and share your open source with the world, or, purchase private repositories and control precisely who has access to your source code. But our goal wasn't workflow or collaboration - it was making it easy to share your git repositories with others.

As GitHub grew we saw the power in working together. This led us to create Organizations in 2010: group accounts which allow open source projects, non-profits, schools, governments, companies, and teams of all kinds to create a presence on GitHub and more easily build software together. Our focus expanded from simply publishing git repositories to helping people build software together.

People quickly created thousands of Organization accounts, but the feedback from larger organizations was resounding: they loved features like Pull Requests, yet many wanted data isolation for their code and support for enterprise-level features such as integration with their authentication system. This led us to create GitHub Enterprise, a VM-based on-premises version of GitHub we released in November 2011.

In the three years since that release, we've seen GitHub Enterprise change the way entire companies build software together. We've witnessed cultures evolve, companies thrive, and developers rave about how GitHub has changed their workflow. But we've also spent countless hours talking to our customers about how we can improve, and we've taken that feedback seriously.

Today's release is the culmination of months of hard work to make GitHub Enterprise more accessible to more people and even better for our current customers. Whether you're hacking on open source on github.com or coding the next version of your company's Android app using GitHub Enterprise, our goal is to help you build better software.

We hope you love this release as much as we do.