编程笔记

lifelong learning & practice makes perfect

AI|dify工作流+github actions实现翻译并创建PR

bookmark-summary启发,制作了一套翻译流程,使用浏览器插件收藏文章后,自动翻译并提交pr到github仓库,流程如下:

翻译流程

流程

浏览器插件Memo

浏览器收藏页面,支持添加标签,可以根据标签执行不同的流程,需要翻译的文章我会在增加一个#translate标签

收藏网页

github actions

github actions会监听到浏览器插件的收藏事件(仓库中markdown文件会新增一行),然后调用dify workflow翻译文章,翻译结果会提交到github仓库

bookmark,markdown文件

dify workflow

使用jina抓取网页内容,返回markdown格式,在调用gpt翻译

dify,翻译

创建pr

使用github actions创建pr

配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建pr
- name: pr blog
uses: peter-evans/create-pull-request@v7
with:
path: blog # 需要pr的repo位置
token: ${{ secrets.GH_TOKEN }} # github accesstoken
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

# 需要再blog repo打开配置 Access-> Accessible from repositories owned by the user 'yiGmMk'
- name: Checkout blog
uses: actions/checkout@v4
with:
token: ${{ secrets.GH_TOKEN }}
path: blog
repository: yiGmMk/blog
ref: master

效果

pr

工具

在这个流程中使用的工具:

欢迎关注我的其它发布渠道