跳转到主要内容

克服倦怠。保持有序。

项目描述

单队列

克服倦怠。保持有序。

目的

此项目统一了您跨各种来源的支持队列,例如

  • GitHub问题和PR
  • 在线论坛的主题
  • 帮助台软件的工单
  • 任何可以用URL表示的操作

单队列的目标受众是管理大量行动项的人

  • 开源软件项目的维护者
  • 公共社区论坛的支持人员
  • 有更多行动项而无法完成的人

队列中的项目根据可定制的规则集进行评分,因此您可以按顺序处理它们,最大化时间和精力的效率,同时最小化决策瘫痪和重复评估下一个要处理的项目带来的疲劳。

它设计用于在项目列表超过单个人可以完全处理的情况下进行扩展。与其屈服于西西弗斯的枯燥,定义你的评分标准,让单队列排序你的项目,尽你所能!

你只是凡人;在有限的时间预算内,使用单队列来发挥你的最佳状态。

设计目标

安装

pip install monoqueue

或从源代码安装

pip install --user git+https://github.com/ctrueden/monoqueue.git#egg=monoqueue

并将 ~/.local/bin 添加到你的路径中。

配置

vi ~/.config/monoqueue.conf

然后添加以下格式的内容

[rules]
rule01 = bookmark                                   -> +20: action bookmark

rule10 = issue/pull_request                         -> +20: pull request
rule11 = "ctrueden" in issue/assignees/login        -> +5: assigned to me
rule12 = ["ctrueden"] == issue/assignees/login      -> +5: assigned to only me
rule13 = "/monoqueue/" in issue/url                 -> +5: favorite project (monoqueue)
rule14 = issue/milestone/title == "next-release"    -> +3: next-release milestone
rule15 = "@ctrueden" in issue/body                  -> +2: mentions me
rule16 = issue/author_association == "CONTRIBUTOR"  -> +5: issue author is non-member
rule17 = issue/state == "open"                      -> +1: open issue
rule18 = issue/reactions/total_count                -> +X: number of reactions
rule19 = issue/comments                             -> +X: number of comments
rule20 = issue/draft                                -> -2: draft PR

rule50 = topic/has_accepted_answer is False         -> +5: has no accepted answer
rule51 = "monoqueue" in topic/tags                  -> +5: monoqueue tag

# 10 min = +12960; 1 hour = +2160; 8 hours = +270; 1 day = +90; 1 week = +10; 2 weeks = +5; 1 month = +2
rule77 = 7776000 / seconds_since_update             -> +X: time since last update (rapid response)
#rule77 = seconds_since_update / 86400               -> +X: days since last update (backlog tackle)

rule99 = issue/milestone/title == "unscheduled"     -> /100: unscheduled milestone

[firefox]
folder = ACTION

[github]
token = <your-github-api-token>
query = is:open+org:my-favorite-org+org:my-other-favorite-org+repo:a-repo-I-manage

[forum.example.com]
handler = discourse
username = <your-discourse-username-on-forum.example.com>
key = <discourse-api-key-for-forum.example.com>
query = #a-category-to-search tags:foo,bar,stuff status:open status:unsolved

然后保护你的秘密

chmod 600 ~/.config/monoqueue.conf

规则

规则以 Python 语法编写,由 Python 的 ast 模块解析,并使用自定义评估器评估,以避免调用不安全的 eval 函数。单队列评估器支持标准的 Python 单目和双目运算符,以及一个用于轻松挖掘嵌套数据结构的特殊重载除法运算符(/)。

为了了解你的规则,首先设置你的 ,然后运行 mq up,然后在 ~/.local/share/monoqueue/items.json 中浏览单队列数据,同时研究上述规则以获取灵感。你可以做到的,我相信你! <3

除了 [rules],每个配置部分都声明了一个源。

Firefox

Firefox 处理器扫描你的本地 Firefox 安装的收藏夹,并为任何与配置匹配的名称正则表达式匹配的文件夹中的每个项目创建一个操作项目。

GitHub

GitHub 处理器通过指定的个人访问令牌连接到 GitHub,并拉取所有匹配给定查询的 GitHub 问题(包括拉取请求)。

如何创建个人访问令牌

  • https://github.com/settings/tokens → 生成新令牌 → 生成新令牌(经典)
  • 命名令牌,使用你想要的任何过期时间
  • 范围:repo(私有仓库的完全控制权)
  • 点击绿色的“生成令牌”按钮
  • 将生成的令牌复制到剪贴板
  • 将其粘贴到 ~/.config/monoqueue.conf 中的 [github] 部分,作为 token = <your-token> 对。

Discourse

Discourse 处理器通过其 API 连接到指定的 Discourse 论坛实例,并使用指定的 API 密钥。

如何创建 Discourse API 密钥

  • https://forum.yourdiscourseinstance.com/admin/api/keys → 新 API 密钥
  • 描述:monoqueue(或你想要的任何内容)
  • 用户级别:单个用户(你的用户名)
  • 范围:只读
  • 点击蓝色的“保存”按钮
  • 将生成的密钥复制到剪贴板
  • 将其粘贴到 ~/.config/monoqueue.conf 中相关的 Discourse 部分,作为 key = <your-api-key> 对。
  • 还要在该部分添加一个 username = <your-username> 对。

使用方法

命令 描述
mq up 从配置的源(Firefox、GitHub、Discourse 等)获取项目。
mq ui 启动交互式用户界面。
mq ls 以纯文本形式列出操作项目。
mq ls --html 以 HTML 报告形式列出操作项目。
mq info <url> 显示关于操作项目的详细信息。

限制和陷阱

我是在赶时间,还是时间在赶我?
时间是什么,不过是消磨、保留、购买、失去或生活的东西?
我必须加快速度,保持节奏
只是为了保持在人类行列中

——Bad Religion - Supersonic

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

monoqueue-1.1.0.tar.gz (19.3 kB 查看哈希值)

上传时间

构建分布

monoqueue-1.1.0-py3-none-any.whl (19.2 kB 查看哈希值)

上传时间 Python 3

支持者