// NCCS GitLab


The heart of any collaborative software development project is the use of a revision control system. The NCCS now provides an on-premise GitLab instance to support software projects in a DevOps like environment. GitLab is a complete DevOps platform, delivered as a single application. This instance can be used for software development, the agile management of projects, and soon the addition of continuous integration (CI), regression testing features. A container registry is currently available for the storage of Docker containers that can be then migrated to Singularity.

Migration to GitLab from CVSACL and Progress

This new service will replace NCCS's progress.nccs.nasa.gov and cvsacl.nccs.nasa.gov legacy revision control systems after we have worked with all affected projects and migrated their code to the new environment. It is well understood that the current service provides functionality that needs to be replicated in the new environment first.

We strongly encourage users to begin gathering migration requirements so NCCS staff can be of help during the migration process. We acknowledge that one of the requirements will be the migration of ticket history from the Trac utility and will work with the users to fulfill this requirement. Here are some initial questions to help you start gathering migration requirements:

  • What revision control tool is the project utilizing (Git, CVS, SVN, BZR)?
  • What are the storage requirements?
  • What roles are needed within the team? (Developer, Maintainer, Reporter)
  • Are there any Continuous Integration needs?

Feel free to contact NCCS User Services Group by e-mail at support@nccs.nasa.gov to schedule a meeting with NCCS staff to further assist in the requirements assessment.

Additionally, test/pilot projects are encouraged and can be configured in order to simulate the migration procedures that will help to speed up the process.

Getting an Account and Login

Access to the NCCS GitLab instance can be achieved both over Web UI and CLI. In order to access NCCS GitLab, you will need to submit the NAMS request "NCCS (NASA Center for Climate Simulation) Gitlab Service". If additional access requirements are needed such as Group Membership, Roles, or any other needs, please submit a ticket to support@nccs.nasa.gov with the requirements so they can be provisioned.

After you receive an email confirming that access was provisioned, login to the GitLab website:

GitLab Website

Note that you will need to be inside the NASA network in order to be able to login (login screen should look similar to the following image). From there, press the "NASA Launchpad" tab, and you will immediately be redirected to your profile.

GitLab University

We suggest every user goes to the GitLab University Website to familiarize themselves with GitLab and all the available features. There are several videos that include how to migrate projects into Agile and DevOps processes to speed up development time and productivity.

GitLab University

Creating a New Project

To create a project in GitLab:

  1. In your dashboard, click the green New project button or use the plus icon in the navigation bar. This opens the New project page.
  2. On the New project page, choose if you want to:
    • Create a blank project.
    • Create a project using with one of the available project templates.
    • Import a project from a different repository, if enabled on your GitLab instance. Contact your GitLab admin if this is unavailable.
    • Run CI/CD pipelines for external repositories.

Creating a Personal Access Token

Once a project was created, you will be notified that you need to generate a Personal Access Token to perform operations in the repository. Generate the Personal Access Token following the instructions on the Web UI, and save the Personal Access Token in a safe place since you will need it to perform any CLI operation and you will no longer have access to read the token.

  1. In the top-right corner, select your avatar.
  2. Select Edit profile.
  3. On the left sidebar, select Access Tokens.
  4. Enter a name and an expiration date for the token.
  5. Select the desired scopes. To push and pull changes from internal and private repositories you will need at least read_repository and write_repository permissions.
  6. Select Create personal access token.
  7. Save the personal access token somewhere safe.

If your token is lost, delete the old token, and generate a new one. Permissions can be setup for read, write, and additional API operations. You can generate various tokens for different operations and permission levels.

Performing Git Operations

Performing Git operations with GitLab is the same than any other Git CLI system. Copy the Clone link from your Project, and perform any Git operations. You will be prompted for username and password, where you will add your Agency UID and Personal Access Token that was already generated.