GitLab Version Control for Zeppelin Notebooks

To configure the version control for Notebooks using GitLab, you must perform the following tasks:

  1. Configure Version Control Settings
  2. Generate GitLab Token in the GitLab Profile
  3. Configure a GitLab Token
  4. Link Notebooks to GitLab

After configuring the GitLab Repository, you can perform the following tasks to manage the notebook versions:

Configuring Version Control Settings

You must have the Account Admin privileges to perform this task.

  1. Navigate to Home >> Control Panel >> Account Settings.
  2. On the Account Settings page, scroll down to the Version Control Settings section.
  3. From the Version Control Provider drop-down list, select GitLab.
  4. From the Repository Hosting Type drop-down list, select Service-managed.
  5. The API Endpoint is auto-populated. Click Save.

The following figure shows a sample Version Control Settings section.

../../../../../_images/vcs-gitlab1.png

Generating a GitLab Token in the GitLab Profile

As a prerequisite, you must obtain a GitLab token. Perform the following steps:

  1. Log in to GitLab.
  2. In the upper-right corner, click your avatar and select Settings.
  3. On the User Settings menu, select Access Tokens.
  4. Select a name and optional expiry date for the token.
  5. Select the scope as api or write_repository for the read-write access.
  6. Click the Create personal access token button.
  7. The new token is displayed. Copy it to configure it in the Qubole account.

For more information, see the GitLab Documentation.

Configuring a GitLab Token

You can configure a GitLab Token for notebooks at per user setting level from the My Accounts or Notebooks UI.

  • Configuring the GitLab token for notebooks at your account level:

    1. Navigate to Control Panel >> My Accounts.
    2. For your account, under GitLab Token column, click Configure.
    3. Add the generated GitLab token and click Save.
  • Configuring the GitLab token from notebooks:

    1. Navigate to Notebooks and click a notebook.

    2. Click Manage notebook versions that is on the top-right of the notebook. The Versions panel expands as shown in the following figure.

      ../../../../../_images/ConfigGitHubinNote.png
    3. Click Configure now.

    4. In the dialog box add the generated GitLab token and click Save.

    The GitLab token is now configured for your account.

Linking Notebooks to GitLab

After configuring the GitLab token, you can link the GitLab repository from notebooks.

  1. Navigate to the GitLab profile and copy the URL from the browser’s address-bar.

    Note

    If you want to add HTTPS *.git link as the GitLab repository URL, click Clone or Download. A drop-down text box is displayed. Copy the HTTPS URL or click Use HTTP (if it exists) to copy the HTTPS URL.

  2. Click Manage notebook versions icon that is on the top-right of the notebook. The Versions panel expands as shown in the following figure.

    ../../../../../_images/ConfigGitLabinNote.png
  3. Click the Link Now option.

  4. In the Link Notebook to GitLab dialog box, perform the following actions:

    1. Add the GitLab repository URL in the Repository Web URL text field. Ensure that the GitLab profile token has read permissions for the repository to checkout a commit and write permissions for the repository to push a commit.

    2. Select a branch from the Branch drop-down list.

    3. Add an object path file in the Object Path text field.

      A sample is as shown in the following figure.

      ../../../../../_images/LinkGitLabVersion1.png
    4. Click Save.

Pushing Commits to GitLab

After you link notebooks with a GitLab repository, you can start using the notebook to push commits to the GitLab directly from a notebook associated with a running cluster.

Before you push the commits, ensure that the following requirements are met:

  • The GitLab profile token must have write permissions for the repository to push commits.
  • The associated cluster must be running.

Steps

  1. Click Manage notebook versions that is on the top-right of the notebook. It expands and provides the version details.

  2. Click the Push icon to commit. A dialog opens to push commits. The following figure shows the version details and the Push to GitLab dialog.

    ../../../../../_images/PushtoGitLab11.png
  3. Add a commit message and click Save to push the commit to the GitLab repository. You can use the option force commit to force push over the old commit (irrespective of any conflict).

Note

Qubole does not store commits or revisions of notebooks. However, commits or revisions of notebooks can be fetched from users’ GitLab account whenever required.

Restoring a Commit from GitLab

  1. Click Manage notebook versions that is on the top-right of the notebook. It expands and provides the version details.

  2. Select a version from the list and click Restore to checkout that version as shown the following figure.

    ../../../../../_images/restoreGitLab1.png
  3. Click OK to checkout that version in the confirmation dialog box.

Note

Qubole does not store commits or revisions of notebooks. However, commits or revisions of notebooks can be fetched from users’ GitLab account whenever required.

Creating a Pull Request from Notebooks

  1. Open the required notebook.

  2. Click on the Gear icon on the top right corner of the notebook, and select Configure GitLab Link. The Link Notebook to GitLab dialog is displayed.

  3. Click on the Create PR hyperlink.

  4. Proceed with the steps in GitLab to create the PR.

    For more information, see GitLab Documentation.

Resolving Conflicts While Using GitLab

There may be conflicts while pushing/checking out commits in the GitLab versions.

Note

You can use the option force commit to force push over the old commit (irrespective of any conflict).

Perform the following steps to resolve conflicts in commits:

  1. Clone the notebook.
  2. Link the cloned notebook to the same GitLab repo branch and path as the original notebook.
  3. Checkout the latest version of the cloned notebook.
  4. Manually port changes from the original notebook to the cloned notebook.
  5. You can commit the cloned notebook after porting changes.