GitHub Actions

前提条件

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 の依存関係を維持してください。検査範囲とエラー処理については共通設定を参照してください。

関連ページ1