3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub ActionsAdvent Calendar 2024

Day 1

GitHub Actions で npm audit を定期的に実行する

Last updated at Posted at 2024-11-30

概要

GitHub Actions で npm audit の定期実行を行い,パッケージの脆弱性を確認する.

詳細

用語の確認

GitHub Actions で登場する用語を簡単に整理する.詳細は公式ドキュメントなどを参照されたい.

ワークフロー

GitHub Actions で何かをしたいときに作成するもの.

  • 以下の内容を YAML 形式で記述する.
    • いつ (イベント)
    • 何を (ジョブ,アクション)
    • どこで (ランナー)

イベント

ワークフローを実行するきっかけ (トリガー) となるもの.

  • 例えば,リポジトリにコミットがプッシュされたらワークフローを実行する,ということができる.
  • もちろん,手動実行もイベントに含まれる.

ジョブ

ワークフローで実行する具体的な処理.

  • 実行できるのはシェルスクリプトまたはアクションである.

アクション

ジョブで実行できる便利ツール.

  • 例えば,GitHub からの Git リポジトリのプルをやってくれるアクションが用意されている.

ランナー

ジョブの実行が行われるサーバー.

  • OS として Ubuntu Linux,Microsoft Windows,macOS を選択できる.

ワークフローの作成

リポジトリ内の .github/workflows ディレクトリに以下の YAML ファイルを作成する.

daily-npm-audit.yml
# npm auditを毎日18時(JST)に実行する
name: Daily npm audit

on:
  schedule:
    # Runs at every 9:00(UTC) of every day
    - cron: '0 9 * * *'

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN
permissions: {}

jobs:
  # Check job
  check:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Node
        uses: actions/setup-node@v4
      - name: Check dependencies
        run: npm audit

ポイント

  • 決められた時刻にワークフローを実行するには schedule イベントを用いる.
  • 実行時刻の設定は cron 構文で記述する.
  • cron 構文で指定する時刻は協定世界時 (UTC) であることに注意.

イベントトリガーに workflow_dispatch も設定しているため,作成したワークフローを GitHub 上で手動実行できる.

ワークフローの手動実行

ワークフロー実行の通知

ワークフロー実行の通知は https://github.com/settings/notifications で設定できる.基本的にはワークフローが失敗したときだけ通知させればよいだろう.

ワークフロー実行の通知設定

本記事で作成したワークフローが失敗することは,npm audit で脆弱性が報告されたことを意味するので,通知が来たら npm audit fix などの対応を行うことになる.

参考文献

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?