跳到主要内容
  1. 所有文章/

使用 Notion 管理 GitHub Star 项目

·893 字·约 2 分钟

前言 #

随着时间线的推移,我们在 GitHub 上 Star 的项目越来越多,尽管 GitHub 现在提供了 Star List,但是实际管理起来还是不太方便,最近逛 v2ex 发现了 一个使用 Notion 自动管理 GitHub Star 的 repo 小工具

与 Notion 应用集成,将 Star 的项目导入到 Notion Database,支持自动打标签并且可以使用 GitHub Actions 定时自动更新,平时管理和查找起来更方便了,这里记录下部署过程。

Fork 项目存储库 #

该项目源代码开源在 GitHub,访问 项目地址,并 Fork 一份到你的 GitHub 账户,稍等片刻即可完成

Fork Repo
Fork Repo

复制 Notion 模板 #

访问作者的 Notion Template,点击右上角 Duplicate 将 Notion 模板复制到你的工作区(WorkSpace)

Duplicate Template
Duplicate Template

获取所需 Secrets #

接下来需要三个必须的 Secrets:

  • NOTION_DATABASE_ID Notion 数据库 ID(Star 管理页面的数据库)
  • NOTION_API_KEY Notion Integration Token(Notion 集成应用 API Token)
  • TOKEN_OF_GITHUB GitHub Personal Access Token

获取 NOTION_DATABASE_ID #

点击刚才 Duplicate 模板的 My Starred Repo Database 数据库,查看浏览器地址栏,这时候在用户名 username?v 之前的一段字符串就是目标 NOTION_DATABASE_ID,复制保存备用

Get DatebaseID
Get DatebaseID

获取 NOTION_API_KEY #

进入 Notion - My integrations 创建一个新的集成应用,Integration type 选择 Internal Integration

Get API KEY
Get API KEY

集成应用名称和图标自己定义,然后 Capabilities 按照下图选择即可

Get API Secret
Get API Secret

完成后点击 Submit 提交后会出现 Internal Integration Token 点击 Show 显示 Secrets 复制备用,即所需的 NOTION_API_KEY

Copy API KEY
Copy API KEY

完成后下滑到页面底部点击 Save chages 保存

获取 TOKEN_OF_GITHUB #

在 GitHub 生成新的 Personal access token,不需要任何权限,有效期是 No expiration (永不过期)

Get GitHub Token
Get GitHub Token

点击 Generate token 后,将 Token 值复制保留备用,这就是所需的 TOKEN_OF_GITHUB

添加 Environments Secrets #

将上面获取的 Secrets 及值分别添加进 Fork 下来存储库的 Environments 下的 notion-sync

Add Secrets
Add Secrets

Notion 启用 Integration #

进入目标 Notion Database 后,点击右上角 Share 按钮,选择刚才创建的 Integration 点击 Invite 即可

Enable Integration
Enable Integration

启用 GitHub Actions #

切换到 Fork 的 GitHub 存储库 Actions 栏,点击 I understand my workflows, go ahead and enable them 启用 GitHub Actions

FullSync Notion Star #

全量更新 Actions,默认设置是限制 2000 个 Star 项目。可以修改 workflowsfull-sync.yml 文件的 ULLSYNC_LIMIT 参数,比如允许数量限制为 3000

FULLSYNC_LIMIT: 3000

Partial Sync Notion Star #

增量更新 Actions,如果启用默认是每 2 个小时运行一次。可以修改 workflowspartial-sync.yml 文件的 cron 表达式,比如我只需要每 6 个小时运行一次增量更新

# /blob/main/.github/workflows/partial-sync.yml
on:
  schedule:
    - cron: '0 */6 * * *'

你可以根据自己需求启用或修改里面的两个 Actions 项目

最终效果 #

Actions 运行完成后,可以看到 Notion Database 已经有了 Star 项目的表了,可以更方便的进行管理和查找了 😋

Final Preview
Final Preview

Dejavu Moe
作者
Dejavu Moe
Not for success, just for growing.