GitHub Actions,检测子模块中的更改

问题描述 投票:0回答:2

我有两个存储库 A 和 B,都托管在 GitHub 上。

  • Repo A 是静态站点生成器代码。
  • Repo B 是一堆文本文件。

他们必须保持分开。我想在每次仓库 B 收到更新时重建仓库 A。它必须仅使用 GitHub Actions 才能工作。我希望存储库 B 保持无操作状态,即没有 CI/CD 附加到该存储库(我希望它只存储文件)。我在想也许我可以使用 git 子模块让它工作?存储库 B 将是存储库 A 中的子模块。是否可以在存储库 A 中构建 GH 操作,以检测存储库 B 中的更改并从那里拉取?

编辑: Repo A 是静态站点生成器(

nextjs
)我打算与公众分享。 Repo B 充满了用户自带的文本文件(
org-roam
)。他们一起建立了一个个人维基网站。我希望最大限度地减少配置麻烦 - 这就是为什么我希望将所有 CI/CD 和代码封装在 Repo A 中,这样用户就可以分叉它,并使用他们的知识库存储库(repo B)即插即用它)。在两个存储库之间交织在一起的 GitHub Actions 似乎并不理想 - 这就是为什么我正在寻找更好的解决方案

git github github-actions building-github-actions
2个回答
1
投票

感谢@GuiFalourd 和@riQQ,我能够将概念验证的存储库集放在一起

两个存储库共享相同的 GitHub 个人访问令牌。为了填补 blog.marcnuri.com 指南中的空白,这里是完成这项工作所需的最小权限集(假定两个存储库都是公共的,否则您需要

repo
权限: enter image description here


0
投票

每天更新一次似乎还可以。因此,depdendabot 可以成为一个解决方案:

.github/dependabot.yml

version: 2
updates:
  - package-ecosystem: "gitsubmodule"
    directory: "/"
    schedule:
      interval: daily

通过自动合并,这会进入:

name: Auto Merge
on: [pull_request_target,]

permissions:
  contents: write
  pull-requests: write

jobs:
  automerge:
    runs-on: ubuntu-latest
    if: (github.actor == 'dependabot[bot]')
    steps:
      - name: Merge PR
        run: gh pr merge --auto --squash "$PR_URL"
        env:
          PR_URL: ${{github.event.pull_request.html_url}}
          GH_TOKEN: ${{secrets.GH_TOKEN_GH_PR_MERGE}}

用户需要创建秘密

GH_TOKEN_GH_PR_MERGE
。拥有一些具有“正确”权限的个人访问令牌。 (https://github.com/cli/cli/issues/8352#issuecomment-1850344748的讨论并没有完全说明哪些权利是正确的)。

© www.soinside.com 2019 - 2024. All rights reserved.