golang基于模糊搜索的终端Jira管理插件fjira的使用

Golang基于模糊搜索的终端Jira管理插件fjira的使用

简介

Fjira是一个强大的命令行工具,旨在简化您与Jira的交互。无论您是开发人员、项目经理还是Jira爱好者,Fjira都能简化您的工作流程,使Jira任务比以往更高效。

Fjira Demo

主要特性

  • 模糊查找界面:轻松搜索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 First Run

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 Issue View

看板视图

Fjira还提供类似看板的视图。打开项目后,按F4访问此视图。

Fjira Board View

自定义JQL查询

您可以创建和执行自定义JQL查询:

fjira jql

Fjira Custom JQL

我的Jira过滤器

您可以使用存储的(收藏的)Jira过滤器进行搜索:

fjira filters

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

1 回复

更多关于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

常用命令组合

  1. 搜索并打开任务:
fjira search | xargs fjira view
  1. 快速切换到进行中状态:
fjira start <issue-key>
  1. 添加工作日志:
fjira logwork <issue-key> "2h 30m" "Work description"

总结

fjira为开发者提供了以下优势:

  • 完全终端操作,无需切换浏览器
  • 模糊搜索提高效率
  • 快速任务状态变更
  • 轻量级且响应迅速
  • 可与其他终端工具集成

通过Go语言实现的fjira展示了如何构建高效的终端生产力工具,开发者可以参考其源码学习终端UI实现和Jira API集成。

回到顶部