Source Control Management (SCM) Authenticators generate authorization tokens to authenticate OAuth based Single-Sign-On requests from gopaddle. Authenticators need to be registered in gopaddle based on the type of gopaddle installation and the SCM environment.

Please check the reference table for creating SCM authenticators :

Follow the step below to create and register an SCM authenticator in gopaddle :

Step 1 : Create Application in Source Control Environment

a) github Application

  1. In the github portal, under Profile or Company Settings, navigate to the Developer Settings and choose OAuth Apps
  2. Create a new application by choosing New OAuth App
  3. In the New OAuth App creation wizard, provide the Name and the home page URL
  4. For the Authorization callback URL,  specify the call back URL. If you are using managed gopaddle (SaaS), then specify the callback URL as https://portal.gopaddle.io/codes. If you are using the on-premise edition of gopaddle, then specify the callback URL as the home URL of the gopaddle service. Please check the SCM Authenticator reference table above for more information.
  5. Once the application is created, copy the Client ID and the Client Secret generated for the github account

b) gitlab Application

  1. In the gitlab portal, open Profile settings and navigate to the Applications section in the left panel.
  2. Create a New Application with the following permissions and specify the Redirect URI. If you are using managed gopaddle (SaaS), then specify the Redirect URI as https://portal.gopaddle.io/codes. If you are using the on-premise edition of gopaddle, then specify the Redirect URI as the home URL of the gopaddle service. Please check the SCM Authenticator reference table above for more information.
  • api (Access the authenticated user's API)
  • read_user (Read the authenticated user's personal information)
  • read_repository (Allows read-only access to the repository)
  • profile (Allows read-only access to the user's personal information using OpenID Connect)
  • email (Allows read-only access to the user's primary email address using OpenID Connect)

3. Once the application is created, copy the Application ID and the Secret

c) bitbucket Application

  1. In the bitbucket portal, under user profile select Bitbucket Settings and navigate to the Access Management Section and select OAuth
  2. Provider the Name and URL of the application and specify the Callback URL. If you are using managed gopaddle (SaaS), then specify the Callback URL as https://portal.gopaddle.io/codes. If you are using the on-premise edition of gopaddle, then specify the Callback URL as the home URL of the gopaddle service. Please check the SCM Authenticator reference table above for more information.
  3. Under Permissions, select the following permissions
  • Accounts (Read)
  • Pull Requests (Read)
  • Issues (Read)
  • Projects (Read)
  • Repositories (Read)
  • Webhooks (Read and Write)

4. Once the application is created, copy the generated Key and Secret.

Step 2 : Register SCM authenticator in gopaddle

  1. In the gopaddle portal, navigate to the Build Configuration section in the left panel and select the Source Control option
  2. Select the Source Control Authenticators tab, and choose Add Authenticator in the wizard.
  3. Choose the type of the Provider as either github or gitlab or bitbucket.
  4. Choose the Provider Type as Custom
  5. Under Provider URL, specify the home URL of the on-premise Source Control environment
  6. Provide the credentials created in Step 1 (Create Application in Source Control Environment).
  • Client ID & Client Secret in case of github
  • Application ID and Secret in case of gitlab¬†
  • Key and Secret in case of bitbucket

Redirect URL : In case of gopaddle SaaS subscription, Redirect URL will be automatically discovered. In case you are using the on-premise edition of gopaddle, set the Redirect URL to the home URL of gopaddle service. Ensure that the correct endpoint protocol is specified ie., http or https and also ensure there are no trailing / (slash) in the endpoint.

Did this answer your question?