Business - page 2


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.

Changelog

Subscribe

Discover new ways to build better

Try Marketplace apps free for 14 days

Learn more