Git Integration

Git is an essential system for version control. Suppose your Katalon Studio automation project involves several or more members. In that case, you should use Git or another source control system for managing change and configuration on your test project. You can share a Git repository across multiple team members to help improve the team's collaboration and productivity.

About Git Integration

The Git integration supported in Katalon Studio is based on EGit. For detailed instruction, you can refer to the Eclipse Foundation document on EGit/User Guide. A typical workflow of Git integration with Katalon Studio is depicted in the following diagram:

workflow of Git integration with Katalon Studio

You can integrate Katalon Studio with Git and its cloud-hosted services, including:

  • GitHub
  • GitLab
  • BitBucket
  • Microsoft Azure DevOps

Configure Git Integration

  1. Enable Git Integration: To access all Git features, you need to enable Git Integration first. The option is available in the following settings: Katalon Studio > Preferences > Katalon > Git. Once enabled, you can start using Git at Katalon Studio's main toolbar.

    Enable Git Integration
  2. Now, the Git integration feature should be enabled. We are ready to use Git from Katalon Studio.

    Git integration feature enabled
  3. Advanced configurations are available at Katalon Studio > Preferences > Team > Git if you want specific settings.

    Advanced configurations

Clone a Katalon Studio project from a Git repository

After enabling Git Integration, you can clone an existing Git repository into a newly-created directory on the local machine.

  1. In the main toolbar, click on the Git icon and select Clone Project.

    Clone Project
  2. The Clone Git Repository dialog is displayed.

Connect to Git with HTTPS

To let Katalon Studio get details about your repository, enter all required information and click Next.

How to get HTTPS Protocol?

Go to your account on GitHub, GitLab, Bitbucket, or AzureDevOps, then go to the repository you want to clone to Katalon Studio. Click Clone and select HTTPS, then copy the HTTPS Protocol.

Source Git Repository
  • Repository URL: the remote URL to your Git repository in HTTPS protocol. See Git documentation: About remote repositories.
  • Authentication:
    • Username: the username to access the Git repository.
    • Password: the password to access the Git repository.

Notes:

  • To clone your repository from Azure DevOps, you need to click Generate Git Credential.
  • Copy the Username and the generated Password, then paste them accordingly in the Authentication section in Katalon Studio.
git credential

If you cannot access the repository after clicking Next, the connection might have issues with SSL verification. You can use the command below to bypass SSL verification (Not recommended):

git config --global http.sslVerify false

Connect to Git with SSH Keys

To connect to Git with SSH keys, see Git Integration Authentication with SSH Keys.

Publish a local non-Git project as a Git repository

Share Project is a step to enable Git configuration for your new Katalon Studio project.

  1. In the main toolbar, click the Git icon > Share Project.

    git icon
  2. Folder .git and file .gitignore are created within the Katalon project. Folder git and file gitignore

    .gitignore tells Git which files (or patterns) it should ignore. By default, .gitignore contains these files and patterns:

    /bin /Libs .settings .classpath /.svn

Commit

The Commit option allows users to view all current changes and decide which changes are stored in the local branch. For more information on the commit command, refer to this Git document: Commit.

  1. In the main toolbar, click the Git icon > Commit.

    commit
  2. The Git Staging tab is displayed for configuration.

    Git Staging
    Field Description
    Unstaged Changes Changes which have been made.
    Staged Changes Selected changes from Unstaged Changes. These changes are committed.
  3. From the Unstaged Changes list, select the changes to be committed, then right-click on them and select Add To Index. Selected changes are added to the Staged Changes list.

  4. Enter your comments into the Commit Message, then click on Commit to store your staged changes into the local branch.

Manage Branches

New Branch

  1. In the main toolbar, click the Git icon > Manage Branches > New Branch.

    create new branch
  2. The Create Branch dialog displays.

    create new branch dialog
    FieldDescription
    Source

    Select either remote or local branch, which is your source branch.

    select source

    Branch nameThe name to be used for the new branch.
    Checkout new branchOption to let Katalon Studio checkout that branch after created.
  3. Click Finish to create a new branch.

Checkout Branch

The Checkout Branch option allows you to switch from one branch to another.

  1. In the main toolbar, click the Git icon > Manage Branches > Checkout Branch.

    checkout branch
  2. The Select Source dialog displays. Select the local branch you want to check out to be the current branch. The branch with an icon is your current local branch.

    select source
  3. Click OK to finish checking out to the new local branch.

Delete Branch

  1. In the main toolbar, click the Git icon > Manage Branches > Delete Branch.

    Delete Branch
  2. In this dialog, both local and remote branches are displayed. Select a branch to be deleted, then click OK.

    Select a branch to be deleted

Fetch

Retrieve all information about changes that have occurred in remote branches. For more information on the fetch command, refer to the Git documentation: Git Fetch.

  1. In the main toolbar, click the Git icon > Fetch.

    fetch
  2. Remote branches, tags, and remote changes are fetched automatically.

    fetch dialog
  3. In the main toolbar, click History.

    show history
  4. Details regarding all the branches and tags you've just fetched are displayed.

    detailed branches and tags

Pull

Incorporate changes from a remote repository into the current branch. For more information on the pull command, refer to the Git documentation: Git Pull.

  1. In the main toolbar, click the Git icon > Pull. The Pull dialog appears.

    pull
  2. In the Pull dialog, select the remote branch to be pulled into your local branch. Click Finish.

    pull dialog
  3. The Pull Result dialog displays all data about pulling requests on the selected branch.

    data about pulling requests

Push

Update the remote branch using the local branch. For more information on the push command, refer to the Git documentation: Git Push.

Before doing any push, you have to commit your changes first.

  1. From the main toolbar, select the Git icon > Push.

    push
  2. The Push to Branch dialog is displayed. Choose from the Remote branch list which branch to be updated (All remote branches in your Git repository are listed here).

    push dialog

    Click Next after finishing selecting your remote branch. The Push Confirmation dialog appears.

    Notes: If you enter a different name besides the listed branches, a new remote branch with that name is created accordingly.

  3. The Push Confirmation dialog displays details regarding your commit.

    Push Confirmation

    Click on Finish to push your commits to the remote repository.

Resolve Git conflicts using Katalon Studio

Why do we have Git conflicts?

  • In a source control system like Git, conflicts occur when two or more people make changes to the same file concurrently. The conflicts may appear at a member's local repository or Git remote repository.

  • To avoid conflicts, the team must collaborate following several Git practices. For example, before pushing new source code to the Git remote repository, one must remember to fetch the latest version from Git remote repository, resolve any conflicts, and merge the code with the local version.

An example of how to resolve Git conflicts using Katalon Studio
  • The chart below demonstrates how conflicts may occur when Tom and Emma are working on the same project. The conflicts occur when Tom and Emma try to push new code to the Git remote repository without updating the changes from each other.

    git conflict

Given situation:

  • Tom and Emma are working on the same test case in a test project. Emma added a new comment ("EMMA ADDED THIS COMMENT"), then committed and pushed the change to the Git remote repository.

    git conflict 2
  • At almost the same time, Tom added a new comment ("TOM ADDED THIS COMMENT"), then committed and tried to push to the Git remote repository.

    git conflict 3
  • Unfortunately, since Emma had pushed the code before Tom, so the version of code in Git was different from the version of code in Tom's local repository. Therefore, Git rejected Tom's push action.

Question: What should Tom do to push its change to the Git remote control?

  • First, Tom has to pull the code from the Git remote repository to his local machine.

    pull the code
  • Obviously, Tom will see a message about the conflict:

    message about the conflict
  • In the Script mode of the test case TC2_Verify Successful Appointment in Tom's Katalon Studio project, there are errors with indicators such as "<<<<<<<" (convention from Git). Let's look at the script more carefully:

    script
  • Recall that the comments were added by Tom and Emma, and the conflict is now on Tom's Katalon Studio project. Everything within "<<<<<<< HEAD" and "=======" is the change from Tom. And, everything within "=======" and ">>>>>>> branch 'master'…" comes from Emma, which is currently in the Git remote repository.

  • Now Tom has to decide which change is correct, or both are correct or wrong. Tom has to replace these lines of code with the correct ones. For example, "THIS IS THE CORRECT COMMENT":

    decide which change is correct
  • After resolving the conflict, Tom is now able to commit and push the change to the Git remote repository.

Best practices

To minimize the conflict in a team having more than one member, you should define a process from the very beginning so that all team members are on the same page when using Git.

Below are some suggestions for good practices:

  • Commit often: do not wait until many scripts are created to commit and push to the Git remote repository. The smaller the set of scripts is pushed, the easier you resolve the conflict.
  • Pull changes from the Git remote repository before working on new scripts and before committing. Each member works on each feature at a time.

Feedback