例:GitLabにスキャンを組み込む
GitLabにContrast Scanを組み込む前にスキャンのインテグレーション手順について確認してください。
ここでは、GitLabパイプラインを設定して以下の処理を行う例をご紹介します。
リポジトリからコードをプル(pull)
GitLabをコードリポジトリとして使用している場合は、この処理は必要がない場合があります。
コードをビルド
生成されたJARファイルをスキャン
パイプラインの設定例
以下は、GitLabパイプラインを設定するためのサンプルのYAMLファイルです。
stages: # List of stages for jobs, and their order of execution - pull - build - scan # - deploy pull: stage: pull artifacts: paths: - WebGoat script: - git clone -b main https://github.com/WebGoat/WebGoat.git build: stage: build image: maven:3.8.1-openjdk-17-slim artifacts: paths: - $CI_PROJECT_DIR dependencies: - pull script: - apt-get update && apt-get install -y jq - VERSION=$(echo "$(curl --fail --silent "https://search.maven.org/solrsearch/select?q=g:"com.contrastsecurity"&a:"contrast-agent"&rows=20&wt=json" | jq -r '.response.docs[0].latestVersion')") && curl --silent https://repo1.maven.org/maven2/com/contrastsecurity/contrast-agent/${VERSION}/contrast-agent-${VERSION}.jar -o /tmp/contrast.jar - ls -l /tmp - cd WebGoat - export MAVEN_OPTS="-javaagent:/tmp/contrast.jar - Dcontrast.api.url=$AGENT_URL -Dcontrast.api.api_key=$AGENT_API_KEY -Dcontrast.api.service_key=$AGENT_SERVICE_KEY -Dcontrast.api.user_name=$AGENT_USER_NAME -Dcontrast.agent.java.standalone_app_name=Webgoat-gitlab - Dcontrast.server.name=Gitlab -Dcontrast.application.version=$CI_COMMIT_SHORT_SHA" - mvn -DskipTests clean install scan: # This is the step for Contrast Scan stage: scan image: node:18.19-slim dependencies: - build script: - ls -la - npm install -g @contrast/contrast@2 - contrast version - contrast auth --api-key $API_KEY --authorization $AUTH --organization-id $ORG_ID --host $URL - contrast scan -f $CI_PROJECT_DIR/WebGoat/target/webgoat-2023.7.jar --fail --severity high deploy: #TODO