# idea-gitlab-tool **Repository Path**: LuoHaiCheng/idea-gitlab-tool ## Basic Information - **Project Name**: idea-gitlab-tool - **Description**: A GitLab integration plugin for IntelliJ IDEA that streamlines common GitLab workflows. Just want everything to be simple and quick. IntelliJ IDEA的GitLab集成插件,简化了常见的GitLab工作流程。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-17 - **Last Updated**: 2026-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Idea GitLab Tool 一个 IntelliJ IDEA 平台的 GitLab 集成插件,旨在简化日常 GitLab 工作流,让开发者无需离开 IDE 即可完成 MR 创建、标签管理、流水线监控等常见操作。 --- ## 功能特性 | 功能 | 说明 | |------|------| | **Merge Request** | 创建合并请求,支持源/目标分支选择、审核人分配、可选自动审批 | | **Confirm Merge** | 查看并直接合并当前项目下待处理的 Merge Request | | **Tag Management** | 在任意分支上创建 Git 标签,支持自动递增版本号 | | **Pipeline Viewer** | 监控 CI/CD 流水线状态,支持单项目与多项目两种模式,可跳转/复制链接、重启或取消流水线 | | **Branch Management** | 分支缓存机制,提升分支列表加载效率,支持手动清理缓存 | --- ## 环境要求 - **IntelliJ IDEA**: 2024.3.4 及以上版本(构建号 243 ~ 262.*) - **JDK**: 21 - **Gradle**: 使用 Kotlin DSL 构建 --- ## 技术栈 - [IntelliJ Platform SDK](https://plugins.jetbrains.com/docs/intellij/welcome.html) - Java 21 - Gradle + Kotlin DSL - Gson(JSON 解析) --- ## 项目结构 ``` idea-gitlab-tool/ ├── src/main/java/com/lhc/ │ ├── action/ │ │ └── HelloWorldAction.java # 插件主入口 Action │ ├── constant/ │ │ └── IgtConstant.java # 常量定义 │ ├── git/ │ │ └── GitCommandExecutor.java # Git 命令执行器 │ ├── gitlab/ │ │ ├── GitLabApiClient.java # GitLab API 客户端 │ │ └── GitLabBranchService.java # 分支服务(含缓存逻辑) │ ├── settings/ │ │ ├── GitLabConfigurable.java # 主设置面板 │ │ ├── GitLabSettingsState.java # 设置持久化 │ │ ├── BranchCacheState.java # 分支缓存持久化 │ │ ├── MultipleProjectPipelineConfigurable.java # 多项目流水线配置 │ │ └── OtherConfigurable.java # 其他配置面板 │ ├── ui/ │ │ ├── MergeRequestDialog.java # MR 创建对话框 │ │ ├── ConfirmMergeDialog.java # MR 确认合并对话框 │ │ ├── TagDialog.java # 标签创建对话框 │ │ ├── PipelineDialog.java # 单项目流水线对话框 │ │ ├── MultiProjectPipelineDialog.java # 多项目流水线对话框 │ │ ├── PushDialog.java # 推送对话框 │ │ ├── FilterableComboBoxHelper.java # 可过滤下拉框工具 │ │ ├── MrErrorDialog.java # MR 错误对话框 │ │ └── ProtectedBranchConfirmDialog.java # 受保护分支确认对话框 │ ├── util/ │ │ └── TimeFormatUtil.java # 时间格式化工具 │ └── vo/ │ ├── MergeRequest.java # MR 数据对象 │ ├── MergeRequestStatus.java # MR 状态 │ ├── Pipeline.java # 流水线数据对象 │ ├── Reviewer.java # 审核人对象 │ ├── ProtectedBranchVo.java # 受保护分支数据对象 │ └── enums/ │ ├── MergeStatusEnum.java │ └── PipelineStatus.java # 流水线状态枚举 ├── src/main/resources/META-INF/ │ ├── plugin.xml # 插件配置文件 │ └── pluginIcon.svg # 插件图标 ├── build.gradle.kts # Gradle 构建脚本 └── settings.gradle.kts ``` --- ## 快速开始 ### 1. 安装插件 1. 克隆本仓库到本地 2. 使用 IntelliJ IDEA 打开项目 3. 运行 Gradle 任务 `runIde` 启动测试 IDE,或构建插件后手动安装 ### 2. 配置 GitLab 1. 打开 **Settings → Tools → GitLab Tool** 2. 填写 GitLab 服务器 URL 和 Private Token 3. 点击 **测试连接** 验证配置 ### 3. 使用插件 1. 在 IDE 中打开一个 Git 项目 2. 通过以下方式唤起插件: - **Tools 菜单** → GitLab Tool - **编辑器右键菜单** → GitLab Tool 3. 在弹出的功能列表中选择需要执行的操作 --- ## 核心功能详解 ### Merge Request - 自动识别当前分支作为源分支 - 分支列表按活跃度排序,优先展示 `dev`、`uat`、`master` - 支持选择审核人(从项目成员中拉取) - 可选自动审批(需具备相应权限) - 分支相同时自动禁用确认按钮并给出提示 ### Tag Management - 支持选择目标分支创建标签 - 自动展示当前分支已有标签列表 - 选择标签后自动计算并填充下一个版本号(支持前缀如 `v`、`t` 等) ### Pipeline Viewer - **单项目模式**:查看当前项目最近 5 条流水线 - **多项目模式**:通过 JSON 配置同时监控多个项目的流水线状态 - 支持操作:刷新状态、跳转/复制流水线链接、重启失败流水线、取消运行中流水线 - 状态颜色区分:绿色=成功、红色=失败、灰色=已取消、橙色=等待中 ### Branch Cache - 分支列表默认缓存 24 小时,减少重复请求 - 支持手动清理缓存,下次查询将重新从 GitLab 获取 --- ## 构建与发布 ```bash # 运行测试 IDE ./gradlew runIde # 构建插件 ./gradlew buildPlugin # 运行测试 ./gradlew test ``` --- ## 版本历史 ### v1.3.5 - **受保护分支合并确认**:新增确认弹窗和配置页面,实现合并到受保护分支时的二次确认逻辑 - **默认评审人配置**:添加默认评审人配置功能 - 优化部分代码逻辑 ### v1.3.4 - **MR功能闭环**:Confirm Merge 支持直接合并、关闭 MR、跳转及复制链接 - **MR创建失败处理**:新增错误弹窗,支持失败后直接关闭 MR 或跳转处理 - **多项目流水线模板配置**:支持在设置中配置默认 JSON 模板,一键加载 ### v1.3.3 - 新增多项目流水线监控模式 - 新增分支缓存功能,提升工具效率 - 优化分支名称过滤逻辑 - 优化流水线时间显示内容 --- ## 许可证 本插件特供项目内部适用。 --- ## 作者 - **lhc**