web-dev-qa-db-ja.com

GitHubアクション-空の環境シークレット

私は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は空です。

enter image description here

そして、はい、私はアクションを実行するレポに秘密を設定しています:

enter image description here

私が間違っていることはありますか?

4
lekterable

私は解決策を見つけました、それを回避するために私がやったことは、PRを閉じるときにアクションを実行する代わりに、マスターの新しいコミットでそれを実行しています。これは、したがって、レポシークレットにアクセスできます。

コミットがマージコミットであるかどうかを確認するのは少し難しく、PRに関する詳細情報を明示的に取得する必要がありますが、機能します。誰かが興味を持っている場合に構築しようとしていたアクションのソースコード: https://github.com/lekterable/inclusive-organization-action

0
lekterable