#issue #github #comments #github-issues #todo #git-repository

app todo-to-issue

将遗忘的 TODO 注释转换为可操作的 GitHub 问题

2 个版本

0.1.1 2019年7月28日
0.1.0 2019年7月27日

#1124 in 文本处理

MIT 许可证

29KB
585

todo-to-issue

将遗忘的 TODO 注释转换为可操作的 GitHub 问题的 CLI 工具。

Screenshot

安装

MacOS

brew tap sergeichestakov/taproom
brew install todo-to-issue

Ubuntu/Debian

wget https://github.com/sergeichestakov/todo-to-issue/raw/master/dist/todo-to-issue_amd64.deb
sudo dpkg -i todo-to-issue_amd64.deb

Cargo

cargo install todo-to-issue

确保 ${HOME}/.cargo/bin 在您的 PATH 中,以便运行已安装的二进制文件。

如何使用

  1. 在 GitHub 上确保您生成了一个具有 public_reporepo 范围的 个人访问令牌

  2. 进入您想要检查的目录,并确保它是一个启用远程问题的 git 仓库。

  3. 运行 todo-to-issue $TOKEN,其中 $TOKEN 是您的个人访问令牌。或者,您也可以不带令牌参数运行该命令,系统将提示您将其粘贴到隐藏的密码输入中。如果您只是进行测试运行(-n 标志),则根本不需要令牌。

工作原理

运行此命令将读取 git 跟踪的每个文件中的 TODO 注释,为每个注释生成一个标题和正文。然后,对于每个找到的 TODO,它将提示您以下选项

1. Open Issue
2. Edit Issue
3. Skip Issue
4. Exit
  • 打开问题 将基于生成的标题和正文创建一个新的 GitHub 问题,并带有 TODO 标签。

默认情况下,这里的标题是注释中 TODO: 之后的所有内容,而描述包含注释所在的行和文件。

  • 编辑问题 将打开您的默认编辑器,允许您在打开问题之前更改标题和正文。唯一的限制是编辑的问题必须符合以下格式
Title: Your one line title here.
Body: Your description here.

This can span multiple lines and include markdown just like normal GitHub issues.

Everything after the second line is considered part of the description so this can be arbitrarily long.

换句话说,第一行必须以 标题: 开头,第二行必须以 正文: 开头。这样做只是为了方便解析,不会作为您问题的部分。如果在保存和退出时文件包含无效格式,则不会创建问题。您也可以不保存直接退出,以跳转到下一个评论而不创建问题。

  • 跳过 将跳转到下一个找到的评论。

  • 退出 将终止程序。

如果您不是进行干运行,运行此命令还将查询所有之前的 GH 问题(开放和关闭)以及带有 TODO 标签的问题。如果其中任何问题具有相同的标题,则将被忽略。这是为了防止为同一评论创建多个 GH 问题。

注意:这也意味着干运行的输出是实际找到的 TODO 注释数量,而默认行为则输出不匹配远程仓库中带有 TODO 标签的现有问题标题的 TODO 注释数量。

选项

选项 描述
-n, --dry-run 输出 TODO 注释的数量,而不打开任何问题。
-h, --help 打印帮助信息。
-p, --pattern"<PATTERN>" 设置 glob 模式以缩小搜索范围,仅针对特定文件搜索 TODO 注释。
-V, --version 打印版本信息。
-v, --verbose 使输出更详细。

本地开发

确保您已安装 Rust 安装.

在 Linux 上,您还必须通过 sudo apt-get install pkg-config libssl-dev 安装 OpenSSL。更多信息请参阅 文档.

git clone https://github.com/sergeichestakov/todo-to-issue.git
cd todo-to-issue
cargo build

# Running the program and passing params
cargo run -- $TOKEN -n -v

# To test on other repos create a symlink
sudo ln -s $PWD/target/debug/todo-to-issue /usr/local/bin
cd ../another_repo
todo-to-issue $TOKEN

依赖关系

~21–34MB
~596K SLoC