私はGitHubアクションを試し始めましたが、envとして渡すリポジトリシークレットへのアクセスに苦労しています。
私のワークフローファイル:
name: Invite
on:
pull_request:
branches: [master]
types: [closed]
jobs:
invite:
runs-on: ubuntu-latest
steps:
- name: Hello world action
uses: lekterable/inclusive-organization-action@master
env:
SECRET_TOKEN: ${{ secrets.SECRET_TOKEN }}
organization: string
SUPER_SECRET: ${{ secrets.SUPER_SECRET }}
アクションインデックスファイル
const core = require('@actions/core')
const github = require('@actions/github')
const run = async () => {
try {
...
console.log('env', process.env)
const token = process.env.SECRET_TOKEN
const secret = process.env.SUPER_SECRET
const organization = process.env.organization
console.log('organization', organization)
console.log('token?', !!token)
console.log('secret?', !!secret)
console.log('token length', token.length)
...
} catch (error) {
core.setFailed(error.message)
}
}
run()
ご覧のとおり、3つの環境変数を渡しているため、 'string'の値を持つ組織は期待どおりに存在しますが、SECRET_TOKENおよびSUPER_SECRETは空です。
そして、はい、私はアクションを実行するレポに秘密を設定しています:
私が間違っていることはありますか?
私は解決策を見つけました、それを回避するために私がやったことは、PRを閉じるときにアクションを実行する代わりに、マスターの新しいコミットでそれを実行しています。これは、したがって、レポシークレットにアクセスできます。
コミットがマージコミットであるかどうかを確認するのは少し難しく、PRに関する詳細情報を明示的に取得する必要がありますが、機能します。誰かが興味を持っている場合に構築しようとしていたアクションのソースコード: https://github.com/lekterable/inclusive-organization-action