IcePanel Docs
Search
K

GitLab

Only organization Admins can create, edit and delete integrations.
IcePanel only supports projects which belong to a group or shared group. Personal projects are not supported at this time.

Using GitLab

IcePanel uses OAuth to authenticate with GitLab.com users.

Linking an account

  1. 1.
    From your landscape homepage, click on the organization dropdown at the top of the navigation bar
  2. 2.
    Click on the Manage link for the organization you want to setup
  3. 3.
    Go to the Integrations tab
  4. 4.
    Click on the New integration button
  5. 5.
    Select GitLab and accept the requested permissions
  6. 6.
    Choose a GitLab group that you’d like to synchronize with IcePanel
  7. 7.
    You should now see your code repos in the Links section of an object

Unlinking an account

  1. 1.
    Navigate to Integrations in IcePanel by clicking Manage in the organization dropdown
  2. 2.
    Select the GitLab tab and click Remove
  3. 3.
    Navigate to your GitLab Applications tab and revoke the authorization for IcePanel

Using self-hosted GitLab

IcePanel uses access tokens to authenticate with self-hosted GitLab instances.
  1. 1.
    Create one of the following GitLab access tokens with read_api and read_repository scopes.
  2. 2.
    Navigate to API keys in IcePanel by clicking Manage in the organization dropdown
  3. 3.
    Create an API key with admin permissions
  4. 4.
    Run the IcePanel CLI docker image in gitlab-sync mode with the following parameters
⠀docker run icepanel/cli gitlab-sync \\
--api-key $ICEPANEL_KEY \\
--url <https://gitlab.com> \\
--token $GITLAB_TOKEN
Or with environment variables.
docker run \\
-e API_KEY=$ICEPANEL_KEY \\
-e GITLAB_URL=https://gitlab.com \\
-e GITLAB_TOKEN=$GITLAB_TOKEN \\
icepanel/cli gitlab-sync
  1. 5.
    Once the synchronization is complete you should see your code repos in the IcePanel reality tab.

CLI command reference

Usage: IcePanel gitlab-sync [options]
Synchronize IcePanel code repos with a GitLab instance
Options:
--api-url <value> IcePanel API URL (default: "<https://api.icepanel.io/v1>")
-k, --api-key <value> IcePanel API key
-s, --url <value> GitLab URL (default: "<https://gitlab.com>")
-t, --token <value> GitLab token
-g, --group-id <value> GitLab group ID, comma separated
-i, --interval <secs> Interval for synchronization (default: "1800")
-f, --force Force refresh of code repos and trees
--concurrency <value> Number of jobs that can be processed in parallel (default: "10")
-h, --help display help for command
Environment variables:
API_URL IcePanel API URL
API_KEY IcePanel API key
GITLAB_URL GitLab URL
GITLAB_TOKEN GitLab token
GITLAB_GROUP_ID GitLab group ID, comma-separated
SYNC_INTERVAL Interval for synchronization
CONCURRENCY Number of jobs that can be processed in parallel
LOG_LEVEL Options are fatal, error, warn, info, debug, trace, silent