以下ページに書いてた内容をメモ。
たとえば、👇️のように書くとプルリクのタイトルを出力できるGitHub Actionsになります。
name: Contexts
on: push
jobs:
print:
runs-on: ubuntu-latest
steps:
- run: echo "${{ github.event.pull_request.title }}"
ただ、プルリクのタイトルに「some; rm -rf *」のような文字列が含まれたとすると、rm -rf *という最悪のコマンドが実行されることになります(GitHub Actions上で実行されたところで別の問題はないですがあくまで「そういうことも起こり得ますよね」的な意味です)。
こういうとき、👇️のようにクォートで囲むと、ただの文字列として安全に処理できます。
name: Intermediate environment variables
on: push
jobs:
print:
runs-on: ubuntu-latest
env:
TITLE: ${{ github.event.pull_request.title }} # コンテキストの値を環境変数へセット
steps:
- run: echo "${TITLE}" # 環境変数経由でコンテキストのプロパティを参照
というかこれはGitHub Actionsの話というより、シェルスクリプトの話です。
たとえば、👇️のように書くと、シェルはmy file*
内の空白や*
を特別な意味で解釈し、もし現在のディレクトリにmy file1
やmy file2
といったファイルがあれば、echo my file1 my file2
となってしまいます。
FILENAME="my file*"
echo $FILENAME
こういうとき、クォートをつけると事故を防げます。
FILENAME="my file*"
echo "${FILENAME}"
おわり
コメント