golang基于模糊搜索的终端Jira管理插件fjira的使用
Golang基于模糊搜索的终端Jira管理插件fjira的使用
简介
Fjira是一个强大的命令行工具,旨在简化您与Jira的交互。无论您是开发人员、项目经理还是Jira爱好者,Fjira都能简化您的工作流程,使Jira任务比以往更高效。
主要特性
- 模糊查找界面:轻松搜索Jira项目和问题
- 分配控制:无需导航Jira界面即可快速更改问题分配者
- 状态更新:直接从终端更新Jira问题状态
- 高效评论:轻松为Jira问题添加评论
- 多工作区支持:轻松管理多个Jira工作区
- 自定义搜索:使用Jira Query Language (JQL)进行定制搜索
- 直接CLI访问:直接从命令行访问Jira问题
- 跨平台兼容:在macOS、Linux和Windows上无缝工作
安装
macOS
brew tap mk-5/mk-5
brew install fjira
Linux
Ubuntu/Snap
snap install fjira
Deb
sudo dpkg -i fjira_0.4.0_linux_amd64.deb
AUR
yay -S fjira
二进制
tar -xvzf fjira_0.4.0_Linux_x86_64.tar.gz
cp fjira /usr/local/bin/fjira
Windows
choco install fjira
从源码构建
make
./out/bin/fjira
使用
用法:
fjira [flags]
fjira [command]
可用命令:
[issueKey] 直接从CLI打开Jira问题
completion 为指定shell生成自动完成脚本
filters 使用Jira过滤器搜索
help 关于任何命令的帮助
jql 使用自定义JQL查询搜索
version 打印fjira版本号
workspace 切换到不同的工作区
标志:
-h, --help fjira帮助
-p, --project string 直接从CLI打开项目
附加帮助主题:
fjira 作为默认操作打开项目的模糊查找器
使用"fjira [command] --help"获取命令的更多信息。
快速入门
使用Fjira CLI非常简单,只需在终端运行fjira:
fjira
工作区
第一次运行Fjira时,它会提示您输入Jira API URL和令牌。
Fjira工作区将Jira配置数据存储在~/.fjira
目录下的简单YAML文件中。您可以使用fjira workspace
命令在多个工作区之间切换。
fjira workspace
创建新工作区:
fjira workspace --new abc
编辑现有工作区:
fjira workspace --edit abc
Jira令牌类型
Fjira支持Jira Server和Jira Cloud,它们使用不同的令牌类型进行授权。该工具将在工作区配置期间提示您选择适当的令牌类型。
? Jira Token Type:
1. api token
2. personal token
Enter a number (Default is 1):
YAML配置
如果您更喜欢手动方法,可以选择通过在~/.fjira/
目录中创建fjira.yaml
文件来添加工作区配置。
项目搜索
运行fjira
时的默认视图是项目搜索屏幕。
fjira
直接打开特定项目
您可以直接从CLI打开项目:
fjira --project=PROJ
这将跳过项目搜索屏幕,直接带您进入问题搜索屏幕。
直接打开问题
要从CLI直接打开问题:
fjira PROJ-123
Fjira将跳过所有中间屏幕,直接带您进入问题视图。
看板视图
Fjira还提供类似看板的视图。打开项目后,按F4访问此视图。
自定义JQL查询
您可以创建和执行自定义JQL查询:
fjira jql
我的Jira过滤器
您可以使用存储的(收藏的)Jira过滤器进行搜索:
fjira filters
自定义配色方案
通过创建自定义的~/.fjira/colors.yml
文件来定制fjira配色方案以匹配您的偏好。
路线图(TODO)
- 扩展文档
- 创建和删除Jira过滤器
- 支持更多Linux包管理器(Apt, AUR, YUM)
- 引入更多Jira功能
动机
Fjira是为个人便利而设计的,源于对效率的渴望和对终端工具的热爱。Fjira使您能够直接从终端执行此类任务,您可能已经在终端工作了!😄
更多关于golang基于模糊搜索的终端Jira管理插件fjira的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于golang基于模糊搜索的终端Jira管理插件fjira的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
使用fjira进行终端Jira管理
fjira是一个基于Go语言开发的终端Jira管理工具,提供了模糊搜索功能,让开发者可以在不离开终端的情况下高效管理Jira任务。下面我将介绍fjira的基本使用方法和一些Go代码示例。
安装fjira
# 使用go安装
go install github.com/mk-5/fjira@latest
# 或者使用brew(macOS)
brew install mk-5/fjira/fjira
基本配置
在使用fjira前需要配置Jira连接信息:
fjira config
这会交互式地引导你配置Jira服务器URL、用户名和API令牌。
主要功能
1. 模糊搜索任务
fjira search
这会打开一个交互式界面,可以输入关键字模糊搜索Jira任务。
2. 查看任务详情
fjira view <issue-key>
3. 创建新任务
fjira create
Go代码示例
如果你想在自己的Go项目中集成类似功能,可以参考以下代码:
package main
import (
"fmt"
"github.com/mk-5/fjira/pkg/jira"
"log"
)
func main() {
// 初始化Jira客户端
client, err := jira.NewJiraClient(
"https://your-jira-instance.atlassian.net",
"your-email@example.com",
"your-api-token",
)
if err != nil {
log.Fatal(err)
}
// 搜索Jira任务
searchExample(client)
// 获取任务详情
getIssueExample(client, "PROJ-123")
}
func searchExample(client *jira.JiraClient) {
query := "project = PROJ AND status = Open"
issues, err := client.SearchIssues(query, 10)
if err != nil {
log.Fatal(err)
}
fmt.Println("Found issues:")
for _, issue := range issues {
fmt.Printf("%s: %s\n", issue.Key, issue.Fields.Summary)
}
}
func getIssueExample(client *jira.JiraClient, issueKey string) {
issue, err := client.GetIssue(issueKey)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Issue Details:\n")
fmt.Printf("Key: %s\n", issue.Key)
fmt.Printf("Summary: %s\n", issue.Fields.Summary)
fmt.Printf("Description: %s\n", issue.Fields.Description)
fmt.Printf("Status: %s\n", issue.Fields.Status.Name)
}
自定义开发
如果你想扩展fjira的功能,可以克隆源码进行二次开发:
git clone https://github.com/mk-5/fjira.git
cd fjira
go build
常用命令组合
- 搜索并打开任务:
fjira search | xargs fjira view
- 快速切换到进行中状态:
fjira start <issue-key>
- 添加工作日志:
fjira logwork <issue-key> "2h 30m" "Work description"
总结
fjira为开发者提供了以下优势:
- 完全终端操作,无需切换浏览器
- 模糊搜索提高效率
- 快速任务状态变更
- 轻量级且响应迅速
- 可与其他终端工具集成
通过Go语言实现的fjira展示了如何构建高效的终端生产力工具,开发者可以参考其源码学习终端UI实现和Jira API集成。