GitHub git 挂钩远程站点以更新 wiki 页面
GitHub git hook on remote site to update wiki pages
GitHub 上的 LTP 项目将 wiki 源存储在 doc/
目录中(但还有其他文件不是 wiki 源)。
有时我会用本地脚本更新 GitHub wiki,
-
将文件从 ltp.git doc/
目录复制到 ltp.wiki.git
git commit .
在 ltp.wiki.git
git push
在 ltp.wiki.git
我想要一个 git 挂钩,它会在推送到远程存储库后执行此操作 (post-update
?)。这可能吗?
GitHub 不支持 Git 挂钩(至少在 GitHub.com 上,它们 在 Git 上受支持枢纽企业)。但是,您可以在推送中使用 GitHub Actions 到 运行 任意代码,尽管是在隔离的 VM 中而不是在实际的 Git 服务器上。
在.github/workflows/wiki-mirror.yml
(或.github/actions
中您想要的任何文件名)中,您可以添加一个操作来进行同步。由于 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
GitHub 上的 LTP 项目将 wiki 源存储在 doc/
目录中(但还有其他文件不是 wiki 源)。
有时我会用本地脚本更新 GitHub wiki,
将文件从 ltp.git
doc/
目录复制到ltp.wiki.git
git commit .
在ltp.wiki.git
git push
在ltp.wiki.git
我想要一个 git 挂钩,它会在推送到远程存储库后执行此操作 (post-update
?)。这可能吗?
GitHub 不支持 Git 挂钩(至少在 GitHub.com 上,它们 在 Git 上受支持枢纽企业)。但是,您可以在推送中使用 GitHub Actions 到 运行 任意代码,尽管是在隔离的 VM 中而不是在实际的 Git 服务器上。
在.github/workflows/wiki-mirror.yml
(或.github/actions
中您想要的任何文件名)中,您可以添加一个操作来进行同步。由于 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