GitHub Actions:「Input required and not supplied」
アクションが、それが無いと動けない入力を求めたのに、値が空だった、という意味です(「必須の入力が渡されていない」)。確かめているのはアクション自身のコードで(多くの JavaScript のアクションが使う、GitHub の actions toolkit の getInput)、式を書いた入力でも、その式が空になれば、書いていないのと同じ扱いです。その式がシークレットで、この実行からは見えない、という場合がいちばん多くあります。
見え方
2026年11月1日、あるフォークでの定期実行から(dbx #14055):
##[group]Run actions/checkout@v7 with: repository: Gaiokane/dbx ... ##[endgroup] ##[error]Input required and not supplied: token
- ワークフローには
token: ${{ secrets.MCP_RELEASE_TOKEN || secrets.PROJECT_AUTOMATION_TOKEN }}とありました。フォークにはどちらのシークレットも無いので値が空になり、このログではwith:の下にtokenが並んですらいません。 - コロンのあとの名前は、アクションが求めた入力で、アクションの書き方のままです。ワークフローに似た名前の入力を書いているなら、つづりを比べます(下を参照)。
この実行から見えないシークレット
- フォークからのプルリクエスト:GitHub のドキュメントには、フォークしたリポジトリから始まったワークフローには、
GITHUB_TOKENを除いてシークレットがランナーに渡されない、とあります。 - Dependabot が始めた実行:シークレットは Dependabot のシークレットから入り、GitHub Actions のシークレットは使えません。10月には、Dependabot のプルリクエストでレジストリーへのログインが
usernameで(model-validation-operator #196)、シークレット管理のステップがaccess_tokenで(ianua-silvae #51)、このように失敗していました。 - フォーク自身のリポジトリで動くワークフロー。たとえば、持ち主が Actions を有効にしたフォークでの定期実行です。シークレットはフォークに写されないので、上の実行は毎週日曜に失敗し、そのたびにフォークの持ち主にメールが届いていました。
- このリポジトリにまだ作っていないシークレットや、ワークフローでの名前のつづりが違うシークレット。
アクションにもう無い入力
メジャーバージョンを上げたあと、書いていた入力の名前が変わっていて、必須の入力が空になることがあります。actions/first-interaction は v2 から issue_message・pr_message・repo_token を読むので、古い issue-message では「Input required and not supplied: issue_message」になります(ellmos-voice-io #1)。v3 のコードは、Issue にだけあいさつするワークフローでも、両方のメッセージを求めます(cognee #5374)。同じステップで、たいてい古い名前について「Unexpected input(s)」の警告も出ています(「Unexpected input(s)」の警告)。
失敗させない書き方
ワークフロー自身のトークンで足りるなら、それを代わりに使います。actions/checkout はもともとそれが既定なので、token: に空のシークレットを渡すと、かえって悪くなります(RE-UE4SS #1):
- uses: actions/checkout@v7
with:
token: ${{ secrets.RELEASE_PAT || github.token }}
シークレットが無いときはステップを飛ばします。if: では secrets を使えないので、ジョブの env で判定します(理由):
jobs:
upload:
runs-on: ubuntu-latest
env:
HAS_TOKEN: ${{ secrets.UPLOAD_TOKEN != '' }}
steps:
- name: Upload preview
if: env.HAS_TOKEN == 'true'
uses: example/upload-action@v2
with:
token: ${{ secrets.UPLOAD_TOKEN }}
- Dependabot のときだけなら:Settings、Secrets and variables、Dependabot に同じシークレットを足すか、
if: github.actor != 'dependabot[bot]'でジョブを飛ばします。 - フォークのときだけなら:
if: github.repository == 'owner/repo'で自分のリポジトリでだけ動かすか、プルリクエストならif: github.event.pull_request.head.repo.full_name == github.repositoryにします。
見分け方
- 「Unexpected input(s) ...」は、アクションが知らない名前についての警告です。「Input required and not supplied」は、要った名前についてのエラーです。名前が変わったあとは両方出ることがよくあります。
- 「Resource not accessible by integration」:トークンはあるが権限が足りない(「Resource not accessible by integration」)。
- ランナー自体は、
action.ymlのrequired: trueを確かめません。2020年から開いたままの要望です(actions/runner #1070)。なので複合アクション(runs: using: composite)で入力が無いと、ただ空の値になり、あとのコマンドが自分のメッセージで失敗します。
失敗したジョブを IntelliJ IDEA から見るなら
Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べ、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。
GitHub と GitHub Actions は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:「Unexpected input(s)」の警告 · 「Resource not accessible by integration」 · 「Invalid workflow file」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English