受bookmark-summary启发,制作了一套翻译流程,使用浏览器插件收藏文章后,自动翻译并提交pr到github仓库,流程如下:
流程
浏览器插件Memo
浏览器收藏页面,支持添加标签,可以根据标签执行不同的流程,需要翻译的文章我会在增加一个#translate标签
github actions
github actions会监听到浏览器插件的收藏事件(仓库中markdown文件会新增一行),然后调用dify workflow翻译文章,翻译结果会提交到github仓库
dify workflow
使用jina抓取网页内容,返回markdown格式,在调用gpt翻译
创建pr
使用github actions创建pr
配置:
# 创建pr
- name: pr bloguses: peter-evans/create-pull-request@v7with:path: blog # 需要pr的repo位置token: ${{ secrets.GH_TOKEN }} # github accesstokencommit-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: falsebranch: postsdelete-branch: truetitle: "提交翻译到仓库"body: |新增翻译内容- Auto-generated by [create-pull-request][1][1]: https://github.com/peter-evans/create-pull-requestlabels: |automated pr : translatedraft: false
注意
在一个github action 任务中checkout出2个仓库时有些需要注意的点,防止踩坑:
- pr的目标仓库需要先设置允许访问(设置中打开 “Accessible from repositories owned by the user xxx”),否则会报错
- name: Checkout bookmarkuses: actions/checkout@v4with:path: bookmark# 需要再blog repo打开配置 Access-> Accessible from repositories owned by the user 'yiGmMk'
- name: Checkout bloguses: actions/checkout@v4with:token: ${{ secrets.GH_TOKEN }}path: blogrepository: yiGmMk/blogref: master
效果
效果
工具
在这个流程中使用的工具:
- dify,实现翻译工作流:抓取文章,调用gpt翻译
- openrouter,提供各种gpt接口,并按统一的格式返回结果
- github actions,创建pr
- Memo插件
- d2,示意图画图工具