前提条件
CI/CD変数として XEIZE_TOKEN とGitLab APIトークンが必要です。GitLab APIトークンは XEIZE_GITLAB_API_TOKEN または GITLAB_API_TOKEN という名前で設定できます。
XEIZE Token
GitLab WorkflowでXEIZEを使用するには、XEIZE_TOKEN を取得してください。
GitLab PAT Token
コメントを投稿するには、以下のスコープを持つGitLabの個人用アクセストークンを XEIZE_GITLAB_API_TOKEN または GITLAB_API_TOKEN に設定します。両方が設定されている場合は XEIZE_GITLAB_API_TOKEN を優先し、その値が空の場合に限り GITLAB_API_TOKEN を使用します。
- api
トークンのユーザーには、対象プロジェクトのコードを閲覧し、マージリクエストにコメントできるメンバー権限も必要です。read_api は読み取り専用のため不十分で、write_repository はREST APIの認証権限ではありません。GitLabのアクセストークンのスコープとプロジェクト権限を参照してください。
トークンの作成方法はGitLab PATのガイドを参照してください。
検出結果の言語設定
variables に LANG を追加すると、SAST、Secret、IaCがMRに投稿する検出結果とコメントの言語を設定できます。
variables:
LANG: "JP"
対応する値は KO(韓国語)、EN(英語)、JP(日本語)です。LANG が未設定の場合は韓国語を使用します。
設定例
SASTの設定
image: alpine:3.24
stages:
- sast
before_script:
- apk update && apk add --no-cache git curl
variables:
GIT_STRATEGY: clone
GIT_DEPTH: 0
LANG: "JP"
sast:
stage: sast
script: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN"
chmod +x xez_ci
GIT_PLATFORM=gitlab ./xez_ci
Secretの設定
image: alpine:3.24
stages:
- secret
before_script:
- apk update && apk add --no-cache git curl
variables:
GIT_STRATEGY: clone
GIT_DEPTH: 0
MODE: secret
LANG: "JP"
secret:
stage: secret
script: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN"
chmod +x xez_ci
GIT_PLATFORM=gitlab ./xez_ci
IaCの設定
image: alpine:3.24
stages:
- iac
before_script:
- apk update && apk add --no-cache git curl
variables:
GIT_STRATEGY: clone
GIT_DEPTH: 0
MODE: iac
LANG: "JP"
iac:
stage: iac
script: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN"
chmod +x xez_ci
GIT_PLATFORM=gitlab ./xez_ci
LEVELによるマージの制限
image: alpine:3.24
stages:
- sast
before_script:
- apk update && apk add --no-cache git curl
variables:
GIT_STRATEGY: clone
GIT_DEPTH: 0
sast:
stage: sast
script: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN"
chmod +x xez_ci
GIT_PLATFORM=gitlab LEVEL=high ./xez_ci
AUDIT LEVELによる結果の絞り込み
image: alpine:3.24
stages:
- iac
before_script:
- apk update && apk add --no-cache git curl
variables:
GIT_STRATEGY: clone
GIT_DEPTH: 0
iac:
stage: iac
script: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN"
chmod +x xez_ci
GIT_PLATFORM=gitlab MODE=iac LEVEL=high AUDIT_LEVEL=low ./xez_ci
MRを作成しないプッシュパイプライン
develop へのプッシュ時に MODE=all でSAST、Secret、IaCを実行し、成功後にビルドとデプロイを実行します。XEIZE_TOKEN をCI/CD変数に登録してください。
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
stages: [security, build, deploy]
security:
stage: security
image: alpine:3.24
allow_failure: false
variables:
GIT_DEPTH: "0"
MODE: all
LEVEL: medium
before_script:
- apk add --no-cache git curl
script: |
curl -fsSL -H "X-XEZ-TOKEN: $XEIZE_TOKEN" https://download.xeize.dev/ci/ci_linux_x64 -o /tmp/xez_ci
chmod +x /tmp/xez_ci
GIT_PLATFORM=gitlab /tmp/xez_ci
build:
stage: build
needs: [security]
script:
- ./ci/build.sh
deploy:
stage: deploy
needs: [build]
script:
- ./ci/deploy.sh
ビルド・デプロイのコマンドとRunnerの設定はプロジェクトに合わせて変更し、security → build → deploy の依存関係を維持してください。検査範囲とエラー処理については共通設定を参照してください。