繁体   English   中英

GitHub git 挂钩远程站点以更新 wiki 页面

[英]GitHub git hook on remote site to update wiki pages

GitHub 上的 LTP 项目将 wiki 源存储在doc/目录中(但还有其他文件不是 wiki 源)。

我不时使用本地脚本更新 GitHub wiki,其中

  1. ltp.wiki.git

  2. 将文件从 ltp.git doc/目录复制到ltp.wiki.git

  3. git commit. ltp.wiki.git

  4. git pushltp.wiki.git

我想要一个 git 挂钩,它会在推送远程存储库( post-update ?)后完成。 那可能吗?

GitHub doesn't support Git hooks (on GitHub.com at least, they are supported on GitHub Enterprise). 但是,您可以使用GitHub 操作在推送上运行任意代码,尽管是在隔离的 VM 中而不是在实际的 Git 服务器上。

.github/workflows/wiki-mirror.yml (或您想要的.github/actions中的任何文件名)中,您可以添加一个 Action 来进行同步。 由于 GitHub wiki 期望 markdown 文件,这将更改.txt文件的扩展名以匹配:

name: "Mirror doc/ to wiki"

# Run on changes to the `doc` directory on the `master` branch
on:
  push:
    branches:
      - master
    paths:
      - 'doc/**'

jobs:
  mirror:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout main
        uses: actions/checkout@v2
        with:
          path: [repo name]
      - name: Checkout wiki
        uses: actions/checkout@v2
        with:
          repository: "[owner]/[repo name].wiki"
          path: [repo name].wiki
      - name: Copy files
        run: |
          git config --global user.email "actions@github.com"
          git config --global user.name "Wiki mirror"
          cp $GITHUB_WORKSPACE/[repo name]/doc/*.txt $GITHUB_WORKSPACE/[repo name].wiki
          cd $GITHUB_WORKSPACE/[repo name].wiki
          rename.ul -v .txt .md *.txt
          git add .
          # only commit if there are changes
          git diff-index --quiet HEAD -- || git commit -m "sync from doc/"
          git push

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM