Skip to content

FriendsA/flowpilot

Repository files navigation

FlowPilot

Jira & GitLab 工作流自动化工具 — 从开发到发布,一站式搞定

npm version node license


是什么?

FlowPilot 将 JiraGitLab 串联起来,把日常开发工作流中的重复操作自动化:

  • 配置 Jira / GitLab / Jenkins 凭证
  • 创建发布申请(自动提取版本号、创建 Jira Issue)
  • 结束当前任务(rebase → push → 创建 MR → 更新 Jira)
  • 创建 Merge Request(选分支 → push → 创建 MR → 触发流水线)
  • 更多流程持续增加中…

所有凭证仅存储在本地 ~/.flowpilot/config.json,不会发送到任何外部服务。支持中文 / 英文自动切换。


安装

npm install -g flowpilot

需要 Node.js >= 22.13。


首次配置

flowpilot config          # CLI 交互式配置
flowpilot config --open   # 打开 Web 页面配置
配置项 说明
Jira 地址 带协议前缀,如 https://jira.example.com
Jira 账号 用户名(无 @ 后缀)
Jira 密码 仅本地存储
GitLab 地址 带协议前缀,如 http://git.example.com
GitLab Token 在 GitLab Settings → Access Tokens 生成
Jenkins 地址 带协议前缀,如 https://jenkins.example.com
Jenkins 账号 用户名
Jenkins 密码 密码 / API Token,仅本地存储

使用方式

每个命令都支持 CLI 交互和 Web 页面两种操作方式,--open 打开对应的浏览器页面。

所有带输入的命令支持历史记录快速执行:保存每次的输入数据,下次一键复用,无需重新填写。

发布申请

自动从 GitLab 项目分支提取 pom.xml 版本号,在 Jira 创建发布 Issue,链接自动复制到剪贴板。

变量提取规则:

  • 版本号:从 pom.xml<version> 标签提取(自动去除 -SNAPSHOT 等后缀)
  • 项目名称(flowPilotName):从 pom.xml<properties><flowPilotName> 标签提取,用于生成版本名和 Issue 概要。若 <properties> 中无 <flowPilotName>,则回退使用 GitLab 项目名称
  • Jira 版本名{flowPilotName}-{version},如 my-flow-app-1.2.3
  • Issue 概要{flowPilotName}-{version} release request
flowpilot release          # CLI
flowpilot release --open   # Web

结束任务

完成功能分支的全部收尾:rebase、push、创建 MR(自动关联 Jira issue)、更新 Jira 状态。

flowpilot end               # 自动检测源分支
flowpilot end -b develop    # 指定目标分支
flowpilot end --open        # Web

创建 Merge Request

选择源分支与目标分支,自动推送并创建 MR,支持流水线触发和 Jira 状态更新。

flowpilot mr                # CLI 交互式
flowpilot mr -t develop     # 指定目标分支
flowpilot mr --draft        # 创建为草稿 MR
flowpilot mr --open         # Web

服务管理

flowpilot serve     # 启动后台服务
flowpilot stop      # 停止
flowpilot restart   # 重启

License

ISC

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors