Git Cloud Providers
By integrating with popular Git providers, the platform empowers users to seamlessly access, collaborate, and manage their repositories, leveraging the robust features and security mechanisms. This section explores the supported Git providers and their integration within the platform.
Supported Git Providers
The GobletQA Platform currently supports the following Git providers:
GitHub
GitHub (opens in a new tab) is a widely-used web-based hosting service for Git repositories. It offers version control functionality, collaboration features, and extensive community support. The GobletQA Platform integrates seamlessly with GitHub, allowing users to authenticate with their GitHub accounts and access their repositories.
GitLab
GitLab (opens in a new tab) is another popular web-based Git repository management solution. It provides a comprehensive set of features for version control, issue tracking, continuous integration, and more. With the GobletQA Platform's integration with GitLab, users can authenticate using their GitLab accounts and utilize their repositories within the platform.
Bitbucket
Authentication Process
By following security best practices, the platform ensures that user authentication is handled securely and that user data remains protected throughout their testing sessions. This is achived through the following steps:
-
User Authorization
When users sign in to the GobletQA Platform, they are prompted to authorize the platform's access to their repositories on the chosen Git provider. This authorization is essential to enable synchronization of repository changes and collaboration functionalities. -
Authentication Token
Upon successful authorization, the GobletQA Platform obtains an authentication token from the provider which is later used for syncing changes between the two. -
API Integration
By leveraging the authentication token and the APIs provded by the Git providers, the platform retrieves the meta-data of a user's repositories, including both public and private repositories when authorized. -
Repository Selection
After the retriving the users repositories meta-data, the users is presented with the option to select a specific repository and branch. They can choose create a new repository or branch instead directly from the user interface. Which is then synced bacl to the users git provider, -
Cloned Repository Isolation
Each user's session within the GobletQA Platform is associated with a session container that operates in an isolated environment. When the session container is started, it clones the user's selected repository and checks out the specified branch. This isolation ensures that a user's session and repository are independent of others. -
Proxy-Based Access
To access the session container, all requests must pass through a proxy. The proxy authenticates each request using JWT (JSON Web Token) authentication generated from the user's encrypted authentication token. This proxy-based access control adds an extra layer of security, protecting the session container from unauthorized access. -
Token Expiration
The generated JWT tokens have a limited lifespan. They expire after one hour, upon user sign-out, or if the user's session remains inactive for an extended amount of time. These measures minimize the risk of prolonged access to a user's session by unauthorized entities.
Git Provider Benefits
The integration with Git providers offers several advantages over using a database:
-
Version Control
Git providers provide robust version control capabilities, enabling users to track changes, review commit history, and manage branches effectively. The GobletQA Platform leverages these capabilities, ensuring that users can work with their preferred repository structure and utilize Git's powerful version control features. -
Secure Access
By utilizing the authentication mechanisms of the Git providers, the platform ensures that only authorized users can access the repositories. This authentication process enhances the security and integrity of users' code and prevents unauthorized access to sensitive information. -
Ownership
By using the user git provider, the user always owns and has full control of the repository. The platform never permently stores any of the users data, which further eliminates potential risks unauthorized access to the repository files. -
Collaboration
Users can easily collaborate with teammates by granting access to shared repositories. The integration ensures that all team members can work on the same codebase, facilitating smooth collaboration and streamlined development processes.
Authentication By Provider
Github
- GobletQA platform
- Navigate your browser to http://dev.gobletqa.app (opens in a new tab)
- When presented with the modal to login select the
GitHub
button - An external window will open, which will ask you to autozied the GobletQA application
- Once authorized, the external window will close
- The Goblet platform will present you with the Repo Connect modal
- From the dropdown, select the repo you wish to mount into the session container
GitLab
Due to how Gitlab handles OAuth, an application must be configured before logging via the GitLab provider and registering the GobletQA application. This is done in the oauth/applications
section of the public gitlab.com (opens in a new tab) of a hosted version of the GitLab application
For more information, see GitLab documentation (opens in a new tab)
Configure GitLab OAuth 2.0
-
GitLab Account
- Create an Application by navigating to
Edit Profile > Applications
- In the Add new application form
- Specify the name
GobletQA
in the Name field - Next, in Redirect URI field enter
https://dev.gobletqa.app
- Specify the name
- In the Scopes section, ensure that you select the following check boxes:
api
email
openid
- Leave the remaining fields empty (default).
- Click Save application
- The application should now be created.
- Note down the
Application ID
andSecret
- This will be used later in Goblet
- This will be used later in Goblet
- Create an Application by navigating to
-
GobletQA platform
- Navigate your browser to http://dev.gobletqa.app (opens in a new tab)
- When presented with the modal to login select the
GitLab
button - Then enter in the
Application ID
noted down from the GitLab steps above, and hitnext
- An external window will open, which will ask you to autozied the GobletQA application
- Once authorized, the external window will close
- The Goblet platform will present you with the Repo Connect modal
- From the dropdown, select the repo you wish to mount into the session container