# tools for openharmony repo dev **Repository Path**: milkpotatoes/tools-for-openharmony-repo_dev ## Basic Information - **Project Name**: tools for openharmony repo dev - **Description**: dev of tools for openharmony repo - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-12-10 - **Last Updated**: 2026-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenHarmony PR 实用工具 **语言:** 中文 | [English](README_en.md) 本项目为 OpenHarmony Pull Request (PR) 管理提供实用工具,包括一个用户脚本,可在 PR 页面添加便捷的快捷操作按钮,实现触发 CI 检查、页面导航以及添加自定义按钮等功能。 --- ## 目录 - [PR 助手](#pr-助手) - [快速安装](#快速安装) - [支持的快捷指令](#支持的快捷指令) - [添加自定义按钮](#添加自定义按钮) - [配置示例](#配置示例) - [配置属性说明](#配置属性说明) - [更新日志](#更新日志) - [API 参考](#api-参考) --- ## PR 助手 PR 助手是一个用户脚本,为 OpenHarmony 仓库的 Pull Request 页面提供快捷操作功能。 ### 快速安装 - ~~[Gitee Version](https://gitee.com/milkpotatoes/tools-for-openharmony-repo/raw/master/pull-request/ci-helper.user.js)~~ - [GitCode Version](https://gitee.com/milkpotatoes/tools-for-openharmony-repo/raw/master/pull-request/ci-helper-gitcode.user.js) ### 支持的快捷指令 | 功能 | 说明 | |------|------| | 触发/停止 OpenHarmony 门禁 | 快速控制 CI 门禁检查 | | 触发/停止 GGWatcher | 控制 arkcompiler 系列仓库的 Watcher | | 定位评论输入框 | 快速跳转到评论输入区域 | | 跳转到底部 | 快速滚动到页面底部 | | 回到顶部 | 双击底部按钮可快速回到页面顶部 | --- ## 添加自定义按钮 脚本支持通过配置添加自定义按钮,实现个性化的快捷操作功能。 ### 配置示例 ```json [{ "name": "open-workspace", "label": {"default": "open_in_new"}, "style": ["material-icons", "transparent"], "enable": ["arkcompiler_*", "page:COMMENTS"], "events": { "click": "open /pulls" } }] ``` ### 配置属性说明 #### 名称 `name` 按钮的唯一标识符,不可重复。部分命令依赖该名称进行存储。 #### 显示名称 `label` 按钮的显示文本,可以是字符串或多语言资源对象。当按钮具有 `material-icons` 样式时,将显示为图标。 #### 气泡提示 `comment` 鼠标悬浮时显示的提示文本,支持字符串或多语言资源对象。 #### 元素类型 `type` 元素的类型,可选值: - `button`(默认) - `group` #### 样式 `style` 脚本内置的样式类: | 样式名 | 说明 | |--------|------| | `red` | 红色主题 | | `green` | 绿色主题 | | `transparent` | 透明背景 | | `note-style` | 笔记风格 | | `material-icons` | Material Design 图标 | | `hover-effect` | 悬浮时显示高透明度黑色背景 | | `hover-darkness` | 移除默认的悬浮时变暗效果 | > **提示:** 可使用 `css:name: value` 语法自定义 CSS 样式。 #### 按钮启用规则 `enable` 支持三种匹配规则,可组合使用: 1. **仓库名称匹配** - 使用 `*` 作为通配符 - `arkcompiler_*` 匹配所有 `arkcompiler_` 开头的仓库 - `arkui_napi` 精确匹配 `arkui_napi` 仓库 - > **注意:** 脚本仅在 `OpenHarmony` 系列仓库下生效 2. **页面匹配** - 使用 `page:` 语法 - `COMMENTS` - 评论页面 - `COMMITS` - 提交页面 - `FILES` - 文件页面 - `CHECKS` - 检查页面(GitCode 专有) 3. **PR 状态匹配** - 使用 `state:` 语法 - `CLOSED` - 已关闭 - `OPEN` - 打开中 - `MERGED` - 已合并 - `CONFLICTED` - 存在冲突 - `DRAFT` - 草稿状态 #### 按钮定位 `position` 控制按钮在操作条中的位置: | 定位规则 | 说明 | |----------|------| | `begin` | 放置在操作条最前端(左侧) | | `end` | 放置在操作条最末端(右侧,默认值) | | `before:` | 放置在指定按钮前方 | | `after:` | 放置在指定按钮后方 | | `append:` | 添加到指定按钮组中 | > **提示:** 按钮名称和组名称可参考 [`pull-request/ci-helper-buttons.js`](pull-request/ci-helper-buttons.js) #### 按钮资源 `resources` 通过 `resource` 命令读取的资源声明,支持多语言和常量: ```json5 { // 多语言资源示例 "res0": { "default": "@en", // 默认值,@lang 表示引用其他语言资源 "zh-CN": "中文资源", "en": "English Resource" }, // 常量资源示例 "res1": "Resource 1" } ``` #### 事件 `events` 定义按钮的事件行为,支持浏览器原生事件及特殊事件: - **`create`** - 按钮创建时自动触发 - 其他事件(如 `click`)- 用户交互时触发 事件处理使用预定义命令,语法风格类似 Shell 或命令行。 ##### 命令语法规则 - 多条命令使用 **数组** 或 `\n` 换行分隔 - 参数以 **空格** 分隔 - 包含空格的参数用 **双引号** 包围(如 `"my value"`) - 使用 **单引号** 或 **反斜杠** 防止变量替换(如 `'{name}'` 或 `\{name\}`) > **注意:** 暂不支持将 `data` 字段直接作为命令使用 ##### 可用上下文参数 | 参数 | 说明 | |------|------| | `{repo}` | 仓库名称 | | `{author}` | PR 作者/创建者 | | `{lang}` | 浏览器语言(如 `zh-CN`, `en`) | | `{state}` | PR 状态(如 `open`, `closed`) | | `{page}` | 当前页面名称 | | `{id}` | PR 的 ID | | `{data}` | 按钮自定义数据 | | `{label}` | 按钮原始文本标签(常量) | | `{returns}` | 上一条命令的执行结果 | ##### 命令示例 ```sh open /openharmony/{repo} log "Author: {author}" if "{state}" == "open" comment "This PR is still open." ``` --- ## 更新日志 查看详细的版本更新记录:[CHANGELOG.md](doc/CHANGELOG.md) --- ## API 参考 完整的命令及参数列表:[REFERENCE.md](doc/REFERENCE.md)