This request has already been treated.

  1. oshiro

    fixed typo

    oshiro
Changes in body
Source | HTML | Preview
@@ -1,74 +1,74 @@
Security Alerts に怒られる前になんとかしたい!
## やりたいこと
Node.js であれば```npm audit fix```で行える依存ライブラリの更新のような保守作業…。
日頃意識していないとなかなか手につかないので自動で Pull Request 作成までできるようにしたい。
欲を言えば、Approve や Merge も自動でやってほしい。(今回はやらない)
## Github Actions
11月13日ごろに正式リリースとなる Github Actions のβ版を試してみました。
### なぜ Github Actions なのか
[Github Marketplace](https://github.com/marketplace?type=actions) で公開されているツールを使って Workflow が組めるので、他の CI/CD サービスよりも Github の操作がしやすいのではと思いました。
## 実装
今回は [Create Pull Request](https://github.com/marketplace/actions/create-pull-request) を使って PR作成までを自動化することにしました。
Github Actions は Push や Create Pull Request がトリガーできる他、スケジュール起動ができるので今回はそれを使ってみます。
(Security Alerts で発火できるようにならないですかねー)
Push トリガーや、Pull Request トリガーはそのブランチ上で Workflow が実行されますが、 スケジュール起動の場合は master ブランチ上でのみ動作します。Workflow も master ブランチ上に置いてあるものが読み込まれます。
こんな感じで Workflow を用意し、master ブランチに展開します。
スケジュール設定はなんとなくで週一としました。
[Create Pull Request](https://github.com/marketplace/actions/create-pull-request) は Github のアクセストークンを使うので、リポジトリの "Settings" -> "Secrets" から予め登録しておきます。
``` ./.github/workflows/createPullRequest.yml
name: Create Security Fix Pull Request
on:
schedule:
- cron: '0 3 * * 3' # 毎週水曜日の正午に実行 ( 12+JST = 3+UTC )
jobs:
patch:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v1 # Node.js 環境の構築
with:
node-version: '10.x'
- uses: actions/checkout@master # リポジトリを読み込み
- run: npm install -g npm
- - rum: npm -v
+ - run: npm -v
- run: npm audit fix
- name: Create Pull Request # ブランチを作成して PullRequest を作成
id: cpr
uses: peter-evans/create-pull-request@v1.7.0
with:
title: Security Update into master.
labels: Auto PR
branch: securityFix #作成されるブランチは securityFix-xxxxxxx
token: ${{ secrets.GITHUB }}
```
## 動作確認
こんな感じに Workflow が動き、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172469/d4b00bf4-2e63-7e78-af07-66e5d4833df7.png)
PR が作成されています。(Approve、Merge は手動です)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172469/a2658165-e71f-2dfa-8f50-5d54f33c389c.png)
## 感想
今回は Pull Request 作成まででしたが、[Auto Approve](https://github.com/marketplace/actions/auto-approve) や [Merge pull requests](https://github.com/marketplace/actions/merge-pull-requests) を組み合わせればリリース作業も完全に自動化できそうです。