#toml #linear #client #cli

应用 linear_templater

从 TOML 文件创建线性工单

4 个版本

0.1.3 2023 年 4 月 11 日
0.1.2 2023 年 3 月 6 日
0.1.1 2023 年 3 月 5 日
0.1.0 2023 年 3 月 5 日

#2775命令行工具

MIT 许可证

20KB
377

线性模板器

Build Status codecov Crates.io

从 TOML 文件创建线性工单,它目前支持创建 1 个父工单和每个 TOML 无限量的子工单。支持标题和描述中的 Handlebars 语法。

从 Crates.io 安装

安装 Rust

# Linux and MacOS
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装 Linear Templater

cargo install linear_templater

用法

您需要设置环境变量 LINEAR_TOKEN。我目前正以这种方式实现,以便每个 TOML 目录可以使用一个 .envrc 文件,并且一个人可以无缝地在多个 Linear 工作区之间切换。您可以从账户设置的 API 部分获取您的线性令牌。

使用帮助标志开始以获取最新的命令

> linear_templater -h

Create Linear Tickets from TOML files

Usage: linear_templater [OPTIONS]

Options:
  -f, --fetch_ids <JSON FILE OUTPUT PATH>
          Fetch ids for player and teams, and output to provided path as a JSON file
  -c, --create_issues <PATH TO TOML FILE>
          Read a TOML file and create a issues from it
  -h, --help
          Print help
  -V, --version
          Print version

示例

检索填写一些 TOML 文件所需的所有 ID

命令

LINEAR_TOKEN=xxxx linear_templater -f ~/Documents/output.json

结果

{
  "data": {
    "viewer": {
      "id": "xxxxxx",
      "name": "Batman",
      "teamMemberships": {
        "nodes": [
          {
            "team": {
              "id": "yyyyyy",
              "name": "Justice League",
              "projects": {
                "nodes": [
                  {
                    "id": "zzzzzz",
                    "name": "Upgrade infrastructure"
                  }
                ]
              }
            }
          }
        ]
      }
    }
  }
}

从 TOML 文件创建一系列工单

输入文件(使用 Handlebars 风格变量

# build_batcave.toml
[variables]
name = "Alfred"

[parent]
title = "This is a parent issue"
team_id = "yyyyyy"
# optional
assignee_id = "xxxxxx"
project_id = "zzzzzz"
description = """
We need to create a batcave

See child tickets
"""

[[children]]
title = "This is a child issue for {{name}} to complete"
# optional
team_id = "yyyyyy"
assignee_id = "xxxxxx"
description = """
Figure out where to put the batcave

 - Some place dark and dingy
 - Make sure to coordinate with {{name}}
"""

[[children]]
title = "This is a second child issue that will be linked to the parent issue"
# optional
team_id = "yyyyyy"
assignee_id = "xxxxxx"
description = """
Make sure that we have enough bats

### Acceptance Criteria

- [ ] They can't bite too much
- [ ] At least a dozen
- [ ] Don't overdo it this time
"""

命令

LINEAR_TOKEN=xxxx linear_templater -c ~/Documents/build_batcave.toml

从目录中的所有 TOML 文件创建一系列工单

当传递一个目录时,Linear Templater 将递归遍历该目录及其所有子目录,并从所有不是 Cargo.toml 的 TOML 文件创建工单。

命令

# Create tickets from all TOML files in the current directory
LINEAR_TOKEN=xxxx linear_templater -c .

使用 direnv 管理您的 LINEAR_TOKEN

使用您选择的包管理器安装 direnv

echo export LINEAR_TOKEN=xxxx > .envrc

这消除了需要在所有命令前加上 LINEAR_TOKEN=xxxx 的需求

依赖项

~7–23MB
~318K SLoC