This site requires JavaScript to be enabled

Migrating from GitLab to GitHub - Getting Started

644 views

3.0 - Updated on 12-11-2024 by Gretchen Kuwahara (gzk2)

2.0 - Updated on 12-11-2024 by Gretchen Kuwahara (gzk2)

1.0 - Authored on 10-02-2024 by Gretchen Kuwahara (gzk2)

Article Intended For

Penn State faculty, staff, and students who are currently using Penn State GitLab instance and is getting ready to migrate to Penn State's GitHub Service.

Introduction

As Penn State transitions from its GitLab service to the new GitHub service, understanding the critical steps in the migration process is essential for a smooth switch. This guide will walk you through the initial setup of your GitHub account, the tools available for migrating repositories and projects, and how to adapt your workflows to GitHub's environment. Whether you are an individual contributor or managing multiple projects, this guide will help you get started with Penn State's GitHub service, ensuring continuity and ease in your migration to Penn State's GitHub Service.

Overview of Migration Process

As you begin transitioning from GitLab to GitHub, it's essential to familiarize yourself with the differences in terminology between the two platforms. Our Terminology Comparison article provides a detailed breakdown of GitLab terms and their GitHub equivalents, helping you navigate the new environment more easily.

Migrating your GitLab projects to Penn State's GitHub service can be accomplished in these steps:

  1. Setting up your account
  2. Transferring Repositories
  3. Adapting CI/CD Workflows (if applicable)
    • Note: This step is only necessary if you are using CI/CD in GitLab. If you're not using CI/CD, you can skip this step.
  4. Managing Access and Permissions
  5. Utilizing GitHub Features
  6. Decommissioning your GitLab Projects

Patience is key during the migration process, as some steps may require more time to complete. Give yourself enough time to ensure a smooth transition. 

If you have questions during your migration, check out this article's Resources and Support and Frequently Asked Questions sections.

Setting up your GitHub Account

Setting up your GitHub account is the first crucial step in migrating to Penn State's new GitHub service. It enables you to customize your profile and configure security settings for a seamless transition.

First, you and everyone requiring access to the repositories you are migrating must sign up for Penn State's GitHub.  Details can be found in our 'Signing up for Penn State's GitHub Service' article.  Please note that the account provisioning process can take up to 24 hours, so it's advisable to initiate this process as soon as possible.

Next, you need to decide if you or your team needs your own organization.  By default, all Penn State GitHub users are automatically invited to the Penn State University Organization (https://github.com/psu-edu). This Organization provides GitHub's core features with no extra-cost add-ons. It serves as a GitHub home for users who do not need those features and are not in a unit with an existing Organization. However, if you need add-on features, you can review our articles about 'Penn State GitHub Organizations' and 'Terms and Conditions for Penn State GitHub Organization Owners'.

Lastly, to help with your repository permissions, you can create teams to organize users and permissions. These teams can be managed within GitHub or tied to a UMG/Azure AD group. This article on creating and managing teams in GitHub can help you manage your groups.

Transferring Repositories

Now that you have your Penn State GitHub account set up and have decided where your repositories will live, you need to migrate them to GitHub.

This Penn State KB article, "Migrating Git Repositories to Penn State's GitHub Service," discusses your options for migrating your repositories from GitLab to Penn State's GitHub Service.

Once you've transferred your repository, double-check that your repository settings are set up for your needs, including protected branchesrepository visibility (private or public), and other security settings.

Adapting CI/CD Workflows

If you use GitLab CI/CD in your projects in GitLab, now is the time to start adapting those workflows to GitHub Actions.  This article, Migrating from GitLab to GitHub -  GitLab CI/CD to GitHub Actions, provides an introduction to GitHub Actions, a high-level comparison of standard GitLab CI/CD features—such as variables, secrets, artifacts, caching, scheduled jobs, security scanning, and container image management—and their equivalents in GitHub Actions, and some migrations methods available.

Please note: GitHub Actions usage is free for standard GitHub-hosted runners in public repositories, and for self-hosted runners. Penn State's GitHub account offers a limited number of GitHub-hosted runner minutes per month for private repositories.  If you believe your GitHub Actions may use more than 30 minutes per month, and you do not wish to use self-hosted runners, please contact us about billing options.

Managing Access and Permissions

Managing access and permissions is crucial for ensuring that the right people have appropriate levels of control over your repositories. GitHub offers flexible access control through organizations, teams, and repository roles, allowing for effective collaboration.

To learn more about access management in GitHub, check out this KB: Penn State GitHub - Access Management for Internal and External Collaborators

Now that your repositories are set up and ready for use, you can begin assigning these teams to your repositories so your whole team can work together.  If you haven't done so, this article on creating and managing teams in GitHub can help you manage your groups.

Lastly, if you used personal access tokens in GitLab, you can easily set them up in GitHub by following this GitHub article on managing your personal access tokens.

Utilizing GitHub Features

Now that you've settled into GitHub and established your repositories, actions, and members, it's a great time to explore what Penn State's GitHub service offers! Popular features include GitHub PagesDependabot, and integrations with communication tools.

Check out our feature comparison between GitLab and GitHub to find a feature you want to use in Penn State's GitHub Service.

Decommissioning your GitLab Projects

Now that you've completed your migration from GitLab to GitHub, it's essential to ensure that any remaining GitLab resources are properly decommissioned.  Follow this article this article, Migrating from GitLab to GitHub - Decommissioning your GitLab project, on the steps to take to decommission your GitLab Project

Resources and Support

Github provides substantial documentation and training about their services. You can check these out:

Note: Since you are using the GitHub Enterprise Cloud offering, please make sure you have the version "Enterprise Cloud" select when reading their articles.

If you need support for the Penn State GitHub Service, checkout our Knowledge Base article: Penn State GitHub - How to Request Support

Frequently Asked Questions

We are sure you have many questions about migrating from Penn State's GitLab service (git.psu.edu) to Penn State's GitHub service.  Here are some links to assist you!

Migrating from GitLab to GitHub - Frequently Asked Questions

Penn State GitHub - Frequently Asked Questions