前言

最近受到别的 obsidian 插件启发,正在写自己的 obsidian 插件,然后灵光一闪想到之前在 anytype 的项目中有看到过 Roadmap 1 ,于是心血来潮在自己项目里面也加了这个玩意儿~~ Pasted image 20250403010451.png

之前没想那么多,想着加上这个功能就好,于是搞的是非常简单的文本那种的,可读性很差……于是回头看了一下其他项目那种非常直观的 Roadmap 样式,并且尝试着去问了一下 GPT 老师。结果非常喜人~~ Github 本身就支持了这个玩意儿!就是那个 Github Projects

左边的侧边栏能看到自己关注的 Projects: Pasted image 20250403010610.png

右边的侧边栏能看自己的 Projects: Pasted image 20250403010759.png

然后新建 Project 会发现有好多好多特性!!你能随意组织自己的 Project!!非常有意思~~ Pasted image 20250403010842.png

恩……因为发现这个玩意儿太好玩儿了,线上做项目管理嘛,于是本能就想到是否能够把数据导出,然后本地去做一些处理。这样的话,数据在本地相当于有一个冗余备份,心里更踏实一些。

对了!甚至能用这些数据再在 ob 中去写插件实现一个数据的展示、修改,然后和正常 repo 一样能够不断提交、同步~~

嘛,之前喊 Cursor 吭哧吭哧写代码的时候处理过一些 github 的任务,它有提到这个 gh 也就是 Github CLI,某些功能直接用 gh 就一行命令,而正常 git 命令就一大堆了……恰逢好时机,外加之前直接拉包、下载是失败了的,于是这次顺着思路就来研究了一波这个玩意儿。

什么是 GitHub CLI?

GitHub CLI(命令行接口),简称 gh,是 GitHub 官方提供的一款强大的命令行工具。它的设计目标是帮助开发者在终端中直接高效地管理 GitHub 上的项目、Issues、Pull Requests 等资源,而无需频繁切换到浏览器。

为什么使用 GitHub CLI?

  • 效率高:终端内即可管理仓库、issue、PR 等。

  • 易于集成:可以方便地和脚本结合使用,实现自动化操作。

  • 官方支持:由 GitHub 官方维护,和 GitHub 功能深度整合。

GitHub CLI 常见功能

  • 克隆仓库:比传统的 git clone 更加智能和简洁。

  • 创建和管理 Issue:无需打开网页,快速完成问题的创建、分配、标签。

  • Pull Request 操作:轻松创建、审查和合并 PR。

  • 项目管理:配合扩展插件(如 Projects v2 插件)可直接管理 GitHub 项目、卡片及草稿 Issue。

  • 调用 GitHub API:直接从命令行调用 GitHub REST 和 GraphQL API。

适用场景

  • 日常开发工作流中快速管理 GitHub 资源。

  • CI/CD 和自动化脚本。

  • 在服务器或无图形界面的环境中快速进行 GitHub 操作。

GitHub CLI 安装与配置指南

这个部分会介绍如何在 Linux(以 Ubuntu 为例)中安装和配置 GitHub CLI (gh)。

一、安装 GitHub CLI

方法一:通过官方源(推荐)

# 添加 GitHub CLI 的官方源
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | \
  sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] \
https://cli.github.com/packages stable main" | \
  sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
 
# 更新并安装
sudo apt update
sudo apt install gh -y

方法二:手动下载 deb 安装包

如果网络缓慢,可用镜像站下载:

wget https://mirrors.tuna.tsinghua.edu.cn/github-cli/gh_2.69.0_linux_amd64.deb
sudo dpkg -i gh_2.69.0_linux_amd64.deb
sudo apt-get install -f  # 解决依赖

方法三:去项目的 Release 下载包(我就用这个的)

直接跑项目上去,进 Release,选择自己环境对应的包。 Pasted image 20250403011957.png

二、配置与登录 GitHub CLI

推荐:使用 OAuth 登录并指定权限

gh auth login --scopes "repo,read:org,project"

OAuth 登陆的权限登陆过程中无法指定(默认的三个权限),可以用 --scopes 指定权限

这玩意儿后续可以追加权限的

gh auth refresh --scopes "project"

按照提示选择:

  • GitHub.com

  • SSH 或 HTTPS 协议

  • 浏览器登录授权

替代方案:使用个人访问令牌(PAT)

若需要精细控制权限,可手动生成 token 并登录:

  1. https://github.com/settings/tokens/new 创建 PAT,勾选:

    • repo

    • read:org

    • read:project

  2. 在终端登录:

gh auth login --with-token
# 粘贴 PAT

验证是否成功登录

gh auth status

若成功,将看到明确的账户信息。

完成上述操作后,即可愉快地使用 GitHub CLI (gh) 了!

GitHub CLI Projects 插件介绍与使用指南

gh-projects 插件是 GitHub CLI 的扩展插件,用于在命令行中高效地管理 GitHub 的 Projects v2(Beta)项目,支持卡片、草稿 Issue(Draft Issue)等功能。

一、安装插件

gh extension install github/gh-projects

若网络不稳定,可以手动下载编译好的二进制文件并安装。 Pasted image 20250403012347.png

这里下载好以后需要到 ~/.local/share/gh/extensions/ 中新建 gh-projects 然后把文件重命名为 gh-projects 丢进去

二、权限设置

使用 gh-projects 插件时,需要确保 GitHub 登录令牌拥有 read:project 权限。

登录时指定权限:

gh auth login --scopes "repo,read:org,project"

或者添加权限:

gh auth refresh --scopes "project"

再或者手动创建 Token 并登录。

三、基本使用方法

1. 查看 Projects 列表

  • 自己的 Projects:
gh projects list
  • 他人的 Projects:
gh projects list --user USERNAME
  • 组织的 Projects:
gh projects list --org ORG_NAME

2. 查看项目的卡片(包含 Draft Issue)

gh projects item-list --user USERNAME --number PROJECT_NUMBER

例如:

gh projects item-list --user sockingpanda --number 1

3. 创建 Draft Issue 卡片

gh projects item-create --user USERNAME --number PROJECT_NUMBER --title "新草稿 Issue 标题"

示例:

gh projects item-create --user sockingpanda --number 1 --title "完善文档结构"

小结

目前就暂时尝试了这么多,之后可能会继续尝试。嘿嘿,希望这玩意儿能稍微启发一下大伙儿咯~好玩儿!爱玩儿!!

Footnotes

  1. https://github.com/orgs/anyproto/projects/1