前提条件
XEIZE Token
GitHub ActionsでXEIZEを使用するには、XEIZE_TOKEN を取得してください。
GitHub Actionsの権限設定
GitHub Actionsからコメントを投稿するには、以下の権限が必要です。設定例を参考に追加してください。
- checks: write
- contents: read
- pull-requests: write
例に示すように、XEIZE_GITHUB_API_TOKEN には ${{ secrets.GITHUB_TOKEN }} を渡します。
検出結果の言語設定
ジョブの env に LANG を追加すると、SAST、Secret、IaCがプルリクエストに投稿する検出結果とコメントの言語を設定できます。
yaml
env:
LANG: EN
対応する値は KO(韓国語)、EN(英語)、JP(日本語)です。LANG が未設定の場合は韓国語を使用します。
設定例
SASTの設定
yaml
name: XEIZE SAST Workflow
on:
pull_request:
jobs:
sast:
name: xez-sast
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
pull-requests: write
env:
XEIZE_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
XEIZE_TOKEN: ${{ secrets.XEIZE_TOKEN }}
LANG: EN
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Run XEZ SAST
run: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN" && chmod +x xez_ci
./xez_ci
Secretの設定
yaml
name: XEIZE SECRET Workflow
on:
pull_request:
jobs:
secret:
name: xez-secret
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
pull-requests: write
env:
XEIZE_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
XEIZE_TOKEN: ${{ secrets.XEIZE_TOKEN }}
MODE: secret
LANG: EN
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Run XEZ Secret
run: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN" && chmod +x xez_ci
./xez_ci
IaCの設定
yaml
name: XEIZE IaC Workflow
on:
pull_request:
jobs:
iac:
name: xez-iac
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
pull-requests: write
env:
XEIZE_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
XEIZE_TOKEN: ${{ secrets.XEIZE_TOKEN }}
MODE: iac
LANG: EN
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Run XEZ IaC
run: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN" && chmod +x xez_ci
./xez_ci
LEVELによるマージの制限
yaml
name: XEIZE Workflow
on:
pull_request:
jobs:
sast:
name: xez-sast
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
pull-requests: write
env:
XEIZE_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
XEIZE_TOKEN: ${{ secrets.XEIZE_TOKEN }}
LEVEL: high
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Run XEZ SAST
run: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN" && chmod +x xez_ci
./xez_ci
AUDIT LEVELによる結果の絞り込み
yaml
name: XEIZE Workflow
on:
pull_request:
jobs:
iac:
name: xez-iac
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
pull-requests: write
env:
XEIZE_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
XEIZE_TOKEN: ${{ secrets.XEIZE_TOKEN }}
MODE: iac
AUDIT_LEVEL: low
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Run XEZ IaC
run: |
curl -L -o xez_ci "https://download.xeize.dev/ci/ci_linux_x64" -H "X-XEZ-TOKEN: $XEIZE_TOKEN" && chmod +x xez_ci
./xez_ci
PRを作成しないプッシュワークフロー
develop へのプッシュ時に MODE=all でSAST、Secret、IaCを実行し、成功後にビルドとデプロイを実行します。XEIZE_TOKEN をActionsのシークレットに登録してください。
yaml
name: XEIZE push security
on:
push:
branches: [develop]
permissions:
contents: read
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Scan pushed changes
env:
XEIZE_TOKEN: ${{ secrets.XEIZE_TOKEN }}
MODE: all
LEVEL: medium
run: |
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
/tmp/xez_ci
build:
needs: [security]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- run: ./ci/build.sh
deploy:
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- run: ./ci/deploy.sh
ビルド・デプロイのコマンドはプロジェクトに合わせて変更し、security → build → deploy の依存関係を維持してください。検査範囲とエラー処理については共通設定を参照してください。