Frogbot integrates with GitLab through GitLab CI pipelines.

Step 1: Set CI/CD Variables

In your GitLab project, go to Settings > CI/CD > Variables and add:

VariableValueProtectedMasked
JF_URLYour JFrog Platform URLYesNo
JF_ACCESS_TOKENJFrog Platform access tokenYesYes
JF_GIT_TOKENGitLab personal access token with api scopeYesYes

Step 2: Create the Pipeline Configuration

Add the following to your .gitlab-ci.yml:

frogbot-pr-scan:
  image: releases-docker.jfrog.io/jfrog-ecosystem-integration-env
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
  variables:
    JF_URL: $JF_URL
    JF_ACCESS_TOKEN: $JF_ACCESS_TOKEN
    JF_GIT_TOKEN: $JF_GIT_TOKEN
    JF_GIT_PROVIDER: "gitlab"
    JF_GIT_OWNER: $CI_PROJECT_NAMESPACE
    JF_GIT_REPO: $CI_PROJECT_NAME
    JF_GIT_BASE_BRANCH: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
    JF_GIT_PULL_REQUEST_ID: $CI_MERGE_REQUEST_IID
    FROGBOT_CMD: "scan-pull-request"
  script:
    - |
      getFrogbotVersion=$(curl -s https://api.github.com/repos/jfrog/frogbot/releases/latest | grep "tag_name" | sed -E 's/.*"([^"]+)".*/\1/')
      curl -fLg "https://releases.jfrog.io/artifactory/frogbot/v3/${getFrogbotVersion}/getFrogbot.sh" | sh
      ./frogbot ${FROGBOT_CMD}

frogbot-commit-scan:
  image: releases-docker.jfrog.io/jfrog-ecosystem-integration-env
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
  variables:
    JF_URL: $JF_URL
    JF_ACCESS_TOKEN: $JF_ACCESS_TOKEN
    JF_GIT_TOKEN: $JF_GIT_TOKEN
    JF_GIT_PROVIDER: "gitlab"
    JF_GIT_OWNER: $CI_PROJECT_NAMESPACE
    JF_GIT_REPO: $CI_PROJECT_NAME
    JF_GIT_BASE_BRANCH: $CI_COMMIT_BRANCH
    FROGBOT_CMD: "scan-repository"
  script:
    - |
      getFrogbotVersion=$(curl -s https://api.github.com/repos/jfrog/frogbot/releases/latest | grep "tag_name" | sed -E 's/.*"([^"]+)".*/\1/')
      curl -fLg "https://releases.jfrog.io/artifactory/frogbot/v3/${getFrogbotVersion}/getFrogbot.sh" | sh
      ./frogbot ${FROGBOT_CMD}

GitLab-Specific Variables

VariableDescription
JF_GIT_PROVIDERMust be set to gitlab
JF_GIT_OWNERGitLab namespace (use $CI_PROJECT_NAMESPACE)
JF_GIT_REPOProject name (use $CI_PROJECT_NAME)
JF_GIT_BASE_BRANCHTarget branch for PR scans ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME) or scanned branch for commit scans ($CI_COMMIT_BRANCH)
JF_GIT_PULL_REQUEST_IDMerge request IID for PR scans ($CI_MERGE_REQUEST_IID)