受bookmark-summary 启发,制作了一套翻译流程,使用浏览器插件收藏文章后,自动翻译并提交pr到github仓库,流程如下:
流程 浏览器插件Memo 浏览器收藏页面,支持添加标签,可以根据标签执行不同的流程,需要翻译的文章我会在增加一个#translate标签
github actions github actions会监听到浏览器插件的收藏事件(仓库中markdown文件会新增一行 ),然后调用dify workflow翻译文章,翻译结果会提交到github仓库
dify workflow 使用jina抓取网页内容,返回markdown格式,在调用gpt翻译
创建pr 使用github actions 创建pr
配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - name: pr blog uses: peter-evans/create-pull-request@v7 with: path: blog token: ${{ secrets.GH_TOKEN }} commit-message: 提交翻译到仓库 committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> author: ${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com> signoff: false branch: posts delete-branch: true title: "提交翻译到仓库" body: | 新增翻译内容 - Auto-generated by [create-pull-request][1] [1]: https://github.com/peter-evans/create-pull-request labels: | automated pr : translate draft: false
注意 在一个github action 任务中checkout出2个仓库时有些需要注意的点,防止踩坑:
pr的目标仓库需要先设置允许访问(设置中打开 “Accessible from repositories owned by the user xxx”),否则会报错
1 2 3 4 5 6 7 8 9 10 11 12 13 - name: Checkout bookmark uses: actions/checkout@v4 with: path: bookmark - name: Checkout blog uses: actions/checkout@v4 with: token: ${{ secrets.GH_TOKEN }} path: blog repository: yiGmMk/blog ref: master
效果
工具 在这个流程中使用的工具: