【开发者自荐】放弃 Linear 后,我开发了 Gitstride:一个基于 Github Projects 的开源 macOS 原生项目管理软件

软件名称

GitStride

一句简介

一个基于 Github Projects 的开源 macOS 原生项目管理软件

应用平台

MacOS

推荐类型

【开发者自荐】

是否收费

开源免费

应用简介

我之前半年,开发个人项目的时候一直在用 Linear 来进行项目管理。本来我以为免费配额是够用的,但最近几个月,我同时开发多个项目,Issue 就多了起来,Linear 的免费配额就不够用了,因此,我就转向了 GitHub Projects,毕竟这些项目的代码本来就托管在 GitHub 上。

迁移到 GitHub Projects 之后,我发现它内置的 PR 与 Issue 联动工作流不如 Linear 完善,也不太符合我的需求。比如,当我给一个 Issue 关联 Draft PR 时,我希望这个 Issue 的状态能自动变成 In Progress;当 PR 准备好 Review 的时候,Issue 的状态也能跟着变成 In review。如果一个 Issue 关联了多个 PR,我希望等这些 PR 全部合并之后,它才会进入 Done,而不是合并其中一个 PR 就算完成了。

此外,我也不太喜欢每次都要打开网页来管理项目,还是更想用本地客户端来操作。

所以,在 codex 的协助下,我用 Swift 6 开发了 GitStride,一个 GitHub Projects 的 macOS 原生客户端。

GitStride 实现了前面提到的状态联动规则,我不用再随着 PR 的进度手动修改 Issue 状态。如果 Project 里没有 In review 这个状态,设置 GitStride 的 PR 自动化后,GitStride 默认会按需为你自动在 Project 中添加这个状态。

设置 PR 自动化时,也可以选择后续不追加 In review 这个状态。

GitStride 在菜单栏会常驻一个图标,点击图标可以快速查看项目 Issue;等我真的要整理任务时,再打开主窗口,在看板或表格视图中创建和编辑 Issue。

pn1K2rt.png
pn1KrPe.png

为了确保创建 Issue、更新 Issue 描述等需要向 Github 多次发送请求的操作的跟手,GitStride 开发时借鉴了 Linear 的 local-first 的理念。GitStride 会把项目快照缓存在本机。修改改状态后,界面会先显示变化,再同步到 GitHub;创建或编辑 Issue 提交后,app 会马上显示新内容,后台处理向 Github 发起的请求。

GitStride 还支持创建 Backlog 状态的 Issue,新建 Issue 时可以直接选择 Backlog 状态;如果 Project 里没有这个状态,GitStride 会自动补上。

项目已经开源在 GitHub。如果你也在用 GitHub Projects,欢迎试试,如果觉得好用,还请给个 Star。

下一步计划

  1. 添加命令面板功能、完善 app 内的快捷键操作
  2. 添加甘特图视图

官方网站

GitStride