使用另一个仓库的 Github Action 时不能使用仓库的 secret 值吗?

Posted

技术标签:

【中文标题】使用另一个仓库的 Github Action 时不能使用仓库的 secret 值吗?【英文标题】:Can't I use the secret value of the repository when using the Github Action of another repository? 【发布时间】:2022-01-13 23:10:50 【问题描述】:

我正在为 Marketplace 的发布创建一个 Github Action。 https://github.com/dooboolab/relay-schema-bot

在使用另一个仓库的 Github Action 时不能使用该仓库的 secret 值吗?

也就是说,我想使用要调用的存储库的秘密值,而不是调用方的秘密值。

我想以其他方式做到这一点。 因为没有使用 Jay-flow/relay-schema-bot 存储库的秘密值。

name: Relay Schema bot

on:
  push:
    branches:
      - master
    paths:
      - 'schema.graphql'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: dooboolab/relay-schema-bot@master
        with:
          token: $ secrets.PAT 
          repo-url: https://github.com/Jay-flow/artifacts-pro

          # I don't want to enter it as below.
          # because the secret value of the Jay-flow/relay-schema-bot repository is not used.
          app-id: $ secrets.APP_ID 
          app-private-key: $ secrets.APP_PRIVATE_KEY 

从我创建的 Github 应用程序发出拉取请求需要 APP_PRIVATE_KEY 值。问题是用户不应该知道这个值。 有没有办法让这成为可能?

注意 https://github.com/dooboolab/relay-schema-bot/blob/master/src/createPullRequest.ts#L18

【问题讨论】:

【参考方案1】:

这似乎不可能,来自documentation encrypted secret。

您的操作的用户能够提供使所述操作能够在目标存储库上创建 PR 的秘密 或者您的操作可能会对该目标存储库调用一个专用操作,并且该专用操作将负责返回相应的机密。 但是,没有什么能阻止其他用户对目标存储库调用相同的专用操作:秘密将不再是秘密。

【讨论】:

谢谢 :) 我需要另一种方式。

以上是关于使用另一个仓库的 Github Action 时不能使用仓库的 secret 值吗?的主要内容,如果未能解决你的问题,请参考以下文章

套娃:在一个GitHub Action中触发另一个GitHub Action

套娃:在一个GitHub Action中触发另一个GitHub Action

如何使用 GH CLI 对 Github Action 中的远程仓库进行身份验证?

再探CI,Github调戏Action手记——自动构建并发布到另一仓库

在另一个作业中重用 GitHub Action 工作流程步骤

Gradle Github Action 发布