feat(github): pull request tool window, timeline and review flow (#477)

Replaces the Pull Requests tool window with a full review workflow on top of gh's authentication.

- List with search, quick filters and paging; a tab per pull request and a New Pull Request tab.
- Details: commit picker, changes tree with viewed state, CI and reviewer status, merge, close and reopen.
- Timeline editor: comments, review threads, reactions and suggested changes.
- Review in the diff viewer and, for the checked-out branch, in the editor (review mode).
- New generic vcs extension points: registerDiffViewerProvider, lineInlays, reviewGutter, branch widget extensions; new vcs_merge_base and gh_api commands.
- CSP: img-src allows https://avatars.githubusercontent.com for avatars.

Fixed while testing against a real repository: remotes behind an SSH host alias, mergeability stuck on UNKNOWN, Apply Locally staying disabled after a checkout, relative links navigating the app's page, and review inlays wider than the pane.

Co-authored-by: imacross <[email protected]>
Цей коміт міститься в:
imacross authored and GitHub committed 2026-10-31 07:50:43 +08:00
1 джерело 696377acc2
коміт 059fd8a69b
192 files changed
+23668 -2076

No files matched your search

+14 -2
Переглянути файл
@@ -56,8 +56,20 @@ const shared = [
["refactor.move", "project.move"],
["editor.closeTab", "toolwindow.closeContent"],
["run.rerun", "debug.rerun", "find.rerun", "usages.rerun"],
["debug.smartStepInto", "db.refresh"],
["debug.runToCursor", "db.refresh"],
[
"debug.smartStepInto",
"db.refresh",
"github.refresh",
"github.pullRequest.refresh",
"github.pullRequest.timeline.refresh",
],
[
"debug.runToCursor",
"db.refresh",
"github.refresh",
"github.pullRequest.refresh",
"github.pullRequest.timeline.refresh",
],
["editor.increaseFontSize", "image.zoomIn"],
["editor.decreaseFontSize", "image.zoomOut"],
];
+6
Переглянути файл
@@ -357,6 +357,12 @@ export const intellijMacos: Record<string, string[]> = {
"db.newDataSource": [],
"db.new": ["Meta+N"],
"services.addService": ["Meta+N"],
// Pull Requests tool window (Create in its title bar, Refresh per tab) and the review's viewed toggle.
"github.createPullRequest": ["Meta+N"],
"github.refresh": ["Meta+R"],
"github.pullRequest.refresh": ["Meta+R"],
"github.pullRequest.timeline.refresh": ["Meta+R"],
"github.pullRequest.toggleViewed": ["Meta+Shift+S"],
"db.properties": ["Shift+Enter"],
"db.refresh": ["Meta+R"],
"db.disconnect": ["Meta+F2"],
+6
Переглянути файл
@@ -355,6 +355,12 @@ export const intellijWindows: Record<string, string[]> = {
"db.newDataSource": [],
"db.new": ["Alt+Insert"],
"services.addService": ["Alt+Insert"],
// Pull Requests tool window (Create in its title bar, Refresh per tab) and the review's viewed toggle.
"github.createPullRequest": ["Alt+Insert"],
"github.refresh": ["Ctrl+F5"],
"github.pullRequest.refresh": ["Ctrl+F5"],
"github.pullRequest.timeline.refresh": ["Ctrl+F5"],
"github.pullRequest.toggleViewed": ["Ctrl+Shift+S"],
"db.properties": ["Shift+Enter"],
"db.refresh": ["Ctrl+F5"],
"db.disconnect": ["Ctrl+F2"],
+5
Переглянути файл
@@ -347,6 +347,11 @@ export const vscodeMacos: Record<string, string[]> = {
"db.newDataSource": [],
"db.new": [],
"services.addService": [],
"github.createPullRequest": [],
"github.refresh": [],
"github.pullRequest.refresh": [],
"github.pullRequest.timeline.refresh": [],
"github.pullRequest.toggleViewed": [],
"db.properties": [],
"db.refresh": [],
"db.disconnect": [],
-5
Переглянути файл
@@ -86,11 +86,6 @@
"common.close": "Close",
"common.copied": "Copied",
"common.copy": "Copy",
"github.prState.all": "All",
"github.prState.closed": "Closed",
"github.prState.draft": "Draft",
"github.prState.merged": "Merged",
"github.prState.open": "Open",
"menu.app": "OpenIDEA",
"menu.app.about": "About OpenIDEA",
"menu.app.checkForUpdates": "Check for Updates…",
+273 -59
Переглянути файл
@@ -121,7 +121,6 @@
"Add Row": "添加行",
"Add Template": "添加模板",
"Add YouTrack Pattern": "添加 YouTrack 模式",
"Add a comment (Markdown)": "添加评论 (Markdown)",
"Add one in the Database tool window.": "在“数据库”工具窗口中添加一个。",
"Add pattern": "添加模式",
"Add silently": "静默添加",
@@ -174,7 +173,6 @@
"Apply Patch from Clipboard…": "从剪贴板应用补丁…",
"Apply Patch…": "应用补丁…",
"Apply Stash": "应用储藏",
"Approve…": "批准…",
"Arguments": "实参",
"Arrow function": "箭头函数",
"As new branch:": "作为新分支:",
@@ -211,7 +209,6 @@
"Base branch": "基础分支",
"Base interpreter": "基础解释器",
"Base interpreter:": "基础解释器:",
"Base:": "基础:",
"Based on syntax (language server not ready)": "基于语法(语言服务器尚未就绪)",
"Behavior": "行为",
"Benchmark function": "基准测试函数",
@@ -312,7 +309,6 @@
"Changes to include:": "要包括的更改:",
"Changes were not submitted": "更改未提交",
"Check TODO": "检查 TODO",
"Check out a branch to create a pull request from": "请先签出一个分支,再从它创建拉取请求",
"Checked out pull request #{number}": "已检出拉取请求 #{number}",
"Checking installed tools…": "正在检查已安装的工具…",
"Checking tools": "正在检查工具",
@@ -396,7 +392,6 @@
"Commands": "命令",
"Comment": "评论",
"Comment:": "注释:",
"Comment…": "评论…",
"Commit": "提交",
"Commit Anyway": "仍然提交",
"Commit Changelist…": "提交更改列表…",
@@ -481,7 +476,6 @@
"Copy Rows as CSV": "将行复制为 CSV",
"Copy Rows as TSV": "将行复制为 TSV",
"Copy Stack": "复制堆栈",
"Copy URL": "复制 URL",
"Copy Value": "复制值",
"Copy as rich text by default": "默认复制为富文本",
"Copy revision number": "复制修订号",
@@ -489,25 +483,21 @@
"Copy to clipboard on selection": "选择时复制到剪贴板",
"Copy with Header": "带标题复制",
"Copy/Paste": "复制/粘贴",
"Could not add the comment": "无法添加评论",
"Could not apply theme": "无法应用主题",
"Could not clear caches": "无法清除缓存",
"Could not fill the new file": "无法填充新文件",
"Could not install plugin": "无法安装插件",
"Could not invalidate caches": "无法清除缓存",
"Could not load the pull request": "无法加载拉取请求",
"Could not open project": "无法打开项目",
"Could not open the folder picker": "无法打开文件夹选择器",
"Could not reach GitHub": "无法连接到 GitHub",
"Could not save": "无法保存",
"Could not submit the review": "无法提交审查",
"Coverage": "覆盖率",
"Coverage is hidden in editors and the project view.": "覆盖率已在编辑器和项目视图中隐藏。",
"Coverage needs the desktop app": "覆盖率需要桌面应用",
"Coverage suites": "覆盖率套件",
"Create": "创建",
"Create Branch": "创建分支",
"Create Draft": "创建草稿",
"Create New Branch": "创建新分支",
"Create New Test…": "创建新测试…",
"Create Patch": "创建补丁",
@@ -521,7 +511,6 @@
"Create Terminal": "创建终端",
"Create Terminal in Container": "在容器中创建终端",
"Create UTF-8 files": "创建 UTF-8 文件",
"Create a branch for your changes first.": "请先为您的更改创建分支。",
"Creating virtual environment": "正在创建虚拟环境",
"Current": "当前",
"Current Branch": "当前分支",
@@ -595,7 +584,6 @@
"Deleted": "已删除",
"Delete…": "删除…",
"Description": "描述",
"Description (Markdown)": "描述 (Markdown)",
"Details": "详细信息",
"Detect again": "重新检测",
"Detect and use existing file indents for editing": "检测并使用现有文件的缩进进行编辑",
@@ -641,7 +629,6 @@
"Down": "停止并移除",
"Downloaded": "已下载",
"Download…": "下载…",
"Draft": "草稿",
"Drag-and-drop with Alt pressed only": "仅在按住 Alt 时拖放",
"Driver": "驱动程序",
"Driver:": "驱动程序:",
@@ -1072,8 +1059,6 @@
"Last commit": "上一次提交",
"Leading": "前导",
"Leave": "保留",
"Leave a comment (optional)": "留下评论(可选)",
"Leave a comment (required)": "留下评论(必填)",
"Left Bottom": "左下",
"Left Top": "左上",
"LightEdit": "轻量编辑",
@@ -1093,7 +1078,6 @@
"Loading packages…": "正在加载软件包…",
"Loading plugins": "正在加载插件",
"Loading processes…": "正在加载进程…",
"Loading pull requests…": "正在加载拉取请求…",
"Loading…": "正在加载…",
"Local": "本地",
"Local History": "本地历史记录",
@@ -1216,7 +1200,6 @@
"New Terminal Tab": "新建终端标签页",
"New branch name:": "新分支名称:",
"New changelist:": "新更改列表:",
"New comment": "新评论",
"New environment": "新环境",
"New file from template": "从模板新建文件",
"New from Template…": "从模板新建…",
@@ -1262,7 +1245,6 @@
"No coverage data": "没有覆盖率数据",
"No data sources": "没有数据源",
"No debug session can reload classes": "没有可以重新加载类的调试会话",
"No description provided.": "未提供描述。",
"No differences": "没有差异",
"No document": "没有文档",
"No duplicates found": "未找到重复项",
@@ -1292,7 +1274,6 @@
"No problems in this file": "此文件中没有问题",
"No profiler snapshots": "没有性能分析快照",
"No project is open": "没有打开的项目",
"No pull requests": "没有拉取请求",
"No requests yet": "还没有请求",
"No response selected": "未选择响应",
"No results": "没有结果",
@@ -1531,8 +1512,6 @@
"Pull Docker Image…": "拉取 Docker 镜像…",
"Pull Image…": "拉取镜像…",
"Pull Requests": "拉取请求",
"Pull request": "拉取请求",
"Pull request created": "已创建拉取请求",
"Pull request number": "拉取请求编号",
"Pull request number:": "拉取请求编号:",
"Pull requests": "拉取请求",
@@ -1594,7 +1573,6 @@
"Reformat on paste": "粘贴时重新格式化",
"Refresh": "刷新",
"Refresh Docker": "刷新 Docker",
"Refresh Pull Requests": "刷新拉取请求",
"Refresh TODO Items": "刷新 TODO 项",
"Refresh VCS Status": "刷新 VCS 状态",
"Regex": "正则表达式",
@@ -1669,7 +1647,6 @@
"Reports errors and warnings from language servers.": "报告来自语言服务器的错误和警告。",
"Repository": "仓库",
"Request": "请求",
"Request Changes…": "请求更改…",
"Require": "必需",
"Rerun": "重新运行",
"Rerun Failed Tests": "重新运行失败的测试",
@@ -1740,12 +1717,7 @@
"Revert Commit": "还原提交",
"Revert Commits": "还原提交",
"Reverts the last file move or rename and its reference updates": "还原上一次文件移动或重命名及其引用更新",
"Review action": "审查操作",
"Review comment": "审查评论",
"Review comments": "审查评论",
"Review requested": "请求审查",
"Review submitted on #{number}": "已在 #{number} 上提交审查",
"Review ▾": "审查 ▾",
"Reviewers": "审查者",
"Revision": "修订",
"Revisions": "修订",
@@ -1831,7 +1803,6 @@
"Script": "脚本",
"Scroll to End": "滚动到末尾",
"Scrolling": "滚动",
"Search (GitHub syntax)": "搜索(GitHub 语法)",
"Search Everywhere": "随处搜索",
"Search Structurally": "结构化搜索",
"Search Structurally…": "结构化搜索…",
@@ -1879,7 +1850,6 @@
"Select a commit to view changes": "选择一个提交以查看更改",
"Select a container, image, volume or network.": "选择一个容器、镜像、卷或网络。",
"Select a group": "选择一个组",
"Select a pull request": "选择一个拉取请求",
"Select a result to preview": "选择一个结果进行预览",
"Select a revision": "选择一个修订",
"Select a template to edit it": "选择一个模板进行编辑",
@@ -2422,7 +2392,6 @@
"{name} has unsaved changes": "{name} 有未保存的更改",
"{name} installed": "{name} 已安装",
"{name} is not installed": "{name} 未安装",
"· Conflicts": "· 冲突",
"↵ Open · ⇧↵ Open to the side · ⌘↵ Open in Find Window": "↵ 打开 · ⇧↵ 在侧边打开 · ⌘↵ 在查找窗口中打开",
"⌘↵ to open in Find tool window": "⌘↵ 在“查找”工具窗口中打开",
"⌥← / ⌥→ and ⌥⌫ stop at humps of camelCase names.": "⌥← / ⌥→ 和 ⌥⌫ 会在 camelCase 名称的驼峰处停止。",
@@ -3605,7 +3574,6 @@
"Cannot attach to {name} ({pid})": "无法附加到 {name} ({pid})",
"“{name}” can't be watched": "无法监视“{name}”",
"(deleted)": "(已删除)",
"'{head}' is the default branch": "'{head}' 是默认分支",
"Macro '{name}' stopped": "宏 '{name}' 已停止",
"Id": "ID",
"Enable": "启用",
@@ -3901,11 +3869,6 @@
"CodeLLDB is not installed": "CodeLLDB 未安装",
"{name} (child)": "{name}(子进程)",
"Enable breakpoint at {path}:{line}": "启用位于 {path}:{line} 的断点",
"Files {count}": "文件 {count}",
"Commits {count}": "提交 {count}",
"Conversation {count}": "对话 {count}",
"Push '{head}' first": "请先推送 '{head}'",
"Review #{number}": "审查 #{number}",
"Headers ({count})": "标头 ({count})",
"Headers": "标头",
"Delete the macro '{name}'?": "是否删除宏 '{name}'?",
@@ -4391,13 +4354,6 @@
"No attachable processes match the filter.": "没有与筛选条件匹配的可附加进程。",
"No attachable processes.": "没有可附加的进程。",
"{failed} failing": "{failed} 个失败",
"{pending} pending": "{pending} 个待处理",
"{other} skipped": "{other} 个已跳过",
"No checks": "没有检查",
"Checks · {summary}": "检查 · {summary}",
"Assignees: {list}": "被指派者:{list}",
"{count} comments": "{count} 条评论",
"outdated": "已过时",
"Sending request #{n}…": "正在发送请求 #{n}…",
"Memory & Diagnostics": "内存与诊断",
"Over budget ({budget})": "超出预算({budget})",
@@ -4528,22 +4484,9 @@
"Callees of {name}": "{name} 的被调用方",
"Supertypes of {name}": "{name} 的超类型",
"Subtypes of {name}": "{name} 的子类型",
"Approved": "已批准",
"Changes requested": "已请求更改",
"Review required": "需要审查",
"approved": "已批准",
"requested changes": "已请求更改",
"reviewed": "已审查",
"review dismissed": "审查已撤销",
"review requested": "已请求审查",
"{n} year ago": "{n} 年前",
"{n} years ago": "{n} 年前",
"{n} month ago": "{n} 个月前",
"{n} months ago": "{n} 个月前",
"{n} day ago": "{n} 天前",
"{n} days ago": "{n} 天前",
"{n} hour ago": "{n} 小时前",
"{n} hours ago": "{n} 小时前",
"{n} minute ago": "{n} 分钟前",
"{n} minutes ago": "{n} 分钟前",
"just now": "刚刚",
@@ -4635,7 +4578,6 @@
"Renamed": "已重命名",
"Unversioned": "未跟踪",
"Merge conflict": "合并冲突",
"by {author}": "由 {author} 创建",
"Automatic": "自动",
"Custom combination": "自定义组合",
"Language server for {languages}": "{languages} 语言服务器",
@@ -5001,5 +4943,277 @@
"Returns true when the value is falsey or the variable does not exist. Checking an undefined variable does not emit a warning.": "当值为假值或变量不存在时返回 true。检查未定义的变量不会产生警告。",
"Returns true only when every supplied variable exists and is not null. Checks stop at the first unset or null variable.": "仅当传入的每个变量都存在且不为 null 时返回 true。遇到第一个未设置或为 null 的变量即停止检查。",
"Cannot save service order": "无法保存服务顺序",
"The order will be kept for this session only.": "此顺序仅在当前会话中保留。"
"The order will be kept for this session only.": "此顺序仅在当前会话中保留。",
"View Timeline": "查看时间线",
"View in browser": "在浏览器中查看",
"Refresh Pull Requests List": "刷新拉取请求列表",
"Change Repository or Account…": "更改仓库或账户…",
"Select Opened Pull Request": "选择已打开的拉取请求",
"View Pull Request": "查看拉取请求",
"View pull request information and timeline": "查看拉取请求信息和时间线",
"View pull request timeline": "查看拉取请求时间线",
"Refresh Pull Request": "刷新拉取请求",
"Refresh Timeline": "刷新时间线",
"Check for new timeline events": "检查新的时间线事件",
"View Pull Request in Browser": "在浏览器中查看拉取请求",
"Copy Pull Request URL": "复制拉取请求 URL",
"Checkout Branch": "签出分支",
"Fetch and checkout the pull request branch": "获取并签出拉取请求分支",
"Open in Worktree": "在工作树中打开",
"Fetch and open the pull request branch in a Git worktree": "获取拉取请求分支并在 Git 工作树中打开",
"Delete the merged branch on GitHub": "删除 GitHub 上已合并的分支",
"Submit Review…": "提交审查…",
"Toggle viewed/not viewed state": "切换已查看/未查看状态",
"Toggle viewed/not viewed state for the selection or file": "切换所选内容或文件的已查看/未查看状态",
"Show Pull Request in the Tool Window": "在工具窗口中显示拉取请求",
"Update to Enable Review Mode…": "更新以启用审查模式…",
"Review Mode": "审查模式",
"Can't load pull requests": "无法加载拉取请求",
"Connect the Pull Requests tool window to this repository to see the timeline": "将“拉取请求”工具窗口连接到此仓库以查看时间线",
"Pull request tabs": "拉取请求标签页",
"New Pull Request at {repo}": "在 {repo} 新建拉取请求",
"Something went wrong": "出现问题",
"Merge commit message:": "合并提交消息:",
"Merge commit message": "合并提交消息",
"1 minute ago": "1 分钟前",
"Today": "今天",
"Yesterday": "昨天",
"Select pull request base and head to view changes": "选择拉取请求的基础分支和头分支以查看更改",
"Failed to load commits": "加载提交失败",
"Pull request does not contain any commits": "拉取请求不包含任何提交",
"Changes from": "更改来自",
"Next Commit": "下一个提交",
"Previous Commit": "上一个提交",
"Search commits": "搜索提交",
"Hide details": "隐藏详细信息",
"Failed to load changes": "加载更改失败",
"Commit does not contain any changes": "提交不包含任何更改",
"Checking pull request branches": "正在检查拉取请求分支",
"Failed to check pull request branches": "检查拉取请求分支失败",
"Pull request already exists": "拉取请求已存在",
"No changes between '{base}' and '{head}'": "'{base}' 与 '{head}' 之间没有更改",
"Pushing a pull request branch": "正在推送拉取请求分支",
"Creating a pull request": "正在创建拉取请求",
"Updating pull request fields": "正在更新拉取请求字段",
"Failed to create a pull request": "创建拉取请求失败",
"Create Draft Pull Request": "创建草稿拉取请求",
"More create options": "更多创建选项",
"Create options": "创建选项",
"Head branch": "头分支",
"Repository:": "仓库:",
"Head repository": "头仓库",
"Reviewers:": "审阅者:",
"No reviewers": "无审阅者",
"Assignees:": "受理人:",
"Unassigned": "未分配",
"Assignees": "受理人",
"Labels:": "标签:",
"No labels": "无标签",
"Labels": "标签",
"New Remote Branch for Pull Request": "用于拉取请求的新远程分支",
"Remote branch name:": "远程分支名称:",
"Remote branch name": "远程分支名称",
"Your changes will be pushed to the remote repository to create the pull request": "您的更改将被推送到远程仓库以创建拉取请求",
"Unrelated branches {baseName} {headBranch}": "不相关的分支 {baseName} {headBranch}",
"Push failed: {error}": "推送失败: {error}",
"Checkout as detached HEAD": "以分离 HEAD 方式签出",
"Show in Git Log": "在 Git 日志中显示",
"Copy Branch Name": "复制分支名称",
"Remote branches are not available for private forks": "私有派生仓库的远程分支不可用",
"Show Diff in a New Tab or Window": "在新标签页或窗口中显示差异",
"Pull request does not contain any changes": "拉取请求不包含任何更改",
"Mark as Viewed": "标记为已查看",
"Mark as Not Viewed": "标记为未查看",
"Mark All as Viewed": "全部标记为已查看",
"Mark All as Not Viewed": "全部标记为未查看",
"{count} commits": "{count} 个提交",
"1 commit": "1 个提交",
"All commits ({count})": "所有提交 ({count})",
"Can't load changes": "无法加载更改",
"Reopen Pull Request": "重新打开拉取请求",
"Post Pull Request": "发布拉取请求",
"Request Review…": "请求审查…",
"Re-request Review…": "重新请求审查…",
"Merge Review…": "合并审查…",
"Squash and Merge…": "压缩并合并…",
"Close Pull Request": "关闭拉取请求",
"Submit Review ({count})…": "提交审查 ({count})…",
"Set Myself as Reviewer": "将自己设为审查者",
"More merge options": "更多合并选项",
"Loading pull request status": "正在加载拉取请求状态",
"At least {count} approving review is required by reviewers with write access": "至少需要 {count} 个具有写入权限的审查者批准",
"You are not authorized to merge request into this branch": "你无权将请求合并到此分支",
"Missing reviewer": "缺少审查者",
"Details…": "详细信息…",
"Checking branch for conflicts": "正在检查分支冲突",
"Branch has conflicts that must be resolved": "分支存在必须解决的冲突",
"Resolve": "解决",
"Re-request Review from {name}": "重新请求 {name} 审查",
"Remove {name} from reviewers": "从审查者中移除 {name}",
"Discard Pending Review": "丢弃待处理审查",
"Are you sure you want to delete all pending comments?": "确定要删除所有待处理评论吗?",
"Submit Review": "提交审查",
"{count} pending comment": "{count} 条待处理评论",
"{count} pending comments": "{count} 条待处理评论",
"Discard pending comments": "丢弃待处理评论",
"Failed to submit review": "提交审查失败",
"Approve": "批准",
"Request Changes": "请求更改",
"Submit general feedback without explicit approval": "提交一般反馈而不明确批准",
"Pull request action failed": "拉取请求操作失败",
"Adjusting reviewers…": "正在调整审查者…",
"Merge Review": "合并审查",
"Squash and Merge Review": "压缩并合并审查",
"All required checks have passed": "所有必需的检查均已通过",
"Checks in progress, and some already failed…": "检查正在进行,部分已失败…",
"Checks in progress…": "检查正在进行…",
"Checks failed": "检查失败",
"{name} approved review": "{name} 已批准审查",
"{name} is waiting for updates": "{name} 正在等待更新",
"Waiting for review from {name}": "正在等待 {name} 审查",
"Re-requested review from {name}": "已重新请求 {name} 审查",
"{name} left comments": "{name} 留下了评论",
"{side} repository not found": "未找到{side}仓库",
"{side} remote not found: {url}": "未找到{side}远程:{url}",
"Merge is already in progress": "合并已在进行中",
"Details have not finished loading": "详细信息尚未加载完成",
"Already resolved locally, push your changes to resolve": "已在本地解决,推送你的更改以完成解决",
"Repository access required to manage pull requests": "管理拉取请求需要仓库访问权限",
"Repository write access required to merge pull requests": "合并拉取请求需要仓库写入权限",
"Merging is disabled for this project": "此项目已禁用合并",
"Refresh List": "刷新列表",
"No pull requests in {name}": "{name} 中没有拉取请求",
"No pull requests matching filters": "没有与筛选条件匹配的拉取请求",
"Clear filters": "清除筛选条件",
"Pull request cannot be merged": "无法合并拉取请求",
"Quick Filters": "快速筛选",
"Clear {count} Filters": "清除 {count} 个筛选条件",
"Reset {name}": "重置{name}",
"Assignee": "被指派者",
"Label": "标签",
"Reviewer": "审查者",
"Your pull requests": "您的拉取请求",
"Assigned to you": "指派给您",
"Review requests": "审查请求",
"Closed": "已关闭",
"Merged": "已合并",
"Approved review": "已批准的审查",
"Reviewed": "已审查",
"Reviewed by you": "您已审查",
"Not reviewed": "未审查",
"Not reviewed by you": "您未审查",
"Awaiting review": "等待审查",
"Awaiting review from you": "等待您审查",
"Newest": "最新",
"Oldest": "最早",
"Most commented": "评论最多",
"Least commented": "评论最少",
"Recently updated": "最近更新",
"Least recently updated": "最早更新",
"No unresolved comments": "没有未解决的评论",
"{count} unresolved comment": "{count} 条未解决的评论",
"{count} unresolved comments": "{count} 条未解决的评论",
"{id} · created {date}, by {author}": "{id} · 创建于 {date},作者 {author}",
"{id} · created {date}": "{id} · 创建于 {date}",
"Can't load pull request details": "无法加载拉取请求详细信息",
"Can't load timeline items": "无法加载时间线项目",
"{submitShortcut} to comment": "{submitShortcut} 发表评论",
"Pull Request Successfully Merged": "拉取请求已成功合并",
"You can now {delete} {branch}.": "您现在可以{delete} {branch}。",
"delete": "删除",
"{branch} has been deleted. {restore}": "{branch} 已删除。{restore}",
"Restore…": "恢复…",
"{newLineShortcut} to add new line": "{newLineShortcut} 添加新行",
"Mentions": "提及",
"Delete Comment": "删除评论",
"Are you sure you want to delete this comment?": "确定要删除此评论吗?",
"{submitShortcut} to save changes": "{submitShortcut} 保存更改",
"Add reaction": "添加回应",
"{users} reacted with '{name}' emoji": "{users} 用 '{name}' 表情做出了回应",
"Suggested change": "建议的更改",
"Apply Locally": "在本地应用",
"{submitShortcut} to reply": "{submitShortcut} 回复",
"Could not load diff hunk for thread": "无法加载讨论串的差异块",
"Reply": "回复",
"{n} reply": "{n} 条回复",
"{n} replies": "{n} 条回复",
"{hidden} more replies": "还有 {hidden} 条回复",
"Committing suggested change": "正在提交建议的更改",
"Applying suggested change": "正在应用建议的更改",
"Conflicts in {files}": "{files} 中存在冲突",
"{path}: nothing to commit": "{path}:没有要提交的内容",
"Resolving thread": "正在解决讨论串",
"added labels {added} and removed labels {removed}": "添加了标签 {added} 并移除了标签 {removed}",
"added labels {labels}": "添加了标签 {labels}",
"removed labels {labels}": "移除了标签 {labels}",
"assigned {assigned} and unassigned {unassigned}": "指派了 {assigned} 并取消指派了 {unassigned}",
"assigned {users}": "指派了 {users}",
"unassigned {users}": "取消指派了 {users}",
"requested a review from {added} and removed review request from {removed}": "请求 {added} 审查并移除了对 {removed} 的审查请求",
"requested a review from {reviewers}": "请求 {reviewers} 审查",
"removed review request from {reviewers}": "移除了对 {reviewers} 的审查请求",
"renamed this pull request from '{from}' to '{to}'": "将此拉取请求从 '{from}' 重命名为 '{to}'",
"closed this": "关闭了此项",
"reopened this": "重新打开了此项",
"merged commit {commit} into {branch}": "将提交 {commit} 合并到 {branch}",
"merged this": "合并了此项",
"changed the base branch": "更改了基础分支",
"force-pushed the {branch} branch": "强制推送了 {branch} 分支",
"deleted the {branch} branch": "删除了 {branch} 分支",
"restored head branch": "恢复了头分支",
"dismissed {login}'s stale review": "驳回了 {login} 的过时审查",
"marked this pull request as ready for review": "将此拉取请求标记为可供审查",
"marked this pull request as draft": "将此拉取请求标记为草稿",
"mentioned this pull request": "提及了此拉取请求",
"linked an issue that may be closed by this": "关联了一个可能由此关闭的议题",
"removed a link to an issue": "移除了与议题的关联",
"added a commit to this pull request": "向此拉取请求添加了一个提交",
"added {n} commits to this pull request": "向此拉取请求添加了 {n} 个提交",
"Cannot display item - {type}": "无法显示项目 - {type}",
"approved the changes": "批准了更改",
"started a review": "开始了审查",
"reviewed the changes": "审查了更改",
"No description provided": "未提供描述",
"Save Changes": "保存更改",
"Unresolve": "取消解决",
"Outdated suggestions cannot be applied": "无法应用过时的建议",
"This suggestion has been resolved": "此建议已解决",
"Unable to apply the suggested change from a pull request in a different branch": "无法应用来自其他分支中拉取请求的建议更改",
"Add Review Comment": "添加审查评论",
"Add Multiline Review Comment": "添加多行审查评论",
"Previous Comment": "上一条评论",
"Next Comment": "下一条评论",
"Refresh Review Data": "刷新审查数据",
"Automatically mark opened files as viewed": "自动将打开的文件标记为已查看",
"Discard Comment": "放弃评论",
"Are you sure you want to discard the unsaved comment?": "确定要放弃未保存的评论吗?",
"Create a new code review comment on the line under the caret": "在光标所在行创建新的代码审查评论",
"Create a new code review comment on the selected lines": "在所选行上创建新的代码审查评论",
"Go to previous visible comment": "转到上一条可见评论",
"Go to next visible comment": "转到下一条可见评论",
"Unresolved Only": "仅未解决",
"Do Not Show": "不显示",
"Show Review Threads": "显示审查讨论",
"Mark File as Viewed": "将文件标记为已查看",
"Mark File as Not Viewed": "将文件标记为未查看",
"Leave a comment": "发表评论",
"Discard a comment": "放弃此评论",
"Start Review": "开始审查",
"Add Single Comment": "添加单条评论",
"Drag to select several lines for commenting": "拖动以选择多行进行评论",
"The range of this comment is not adjustable as it contains suggestion": "此评论包含建议,因此无法调整其范围",
"Comment range cannot be adjusted while reviewing a single commit": "审查单个提交时无法调整评论范围",
"Update Branch to Enable Review Mode…": "更新分支以启用审查模式…",
"Disable Review Mode": "禁用审查模式",
"Show Unresolved Comments Only": "仅显示未解决的评论",
"Show All Comments": "显示所有评论",
"Configure review mode": "配置审查模式",
"In Review Mode, you can see review comments and proposed changes right in the editor": "在审查模式下,您可以直接在编辑器中查看审查评论和建议的更改",
"Pull request #{n} exists for current branch {branch}, but local branch is out of sync with remote": "当前分支 {branch} 存在拉取请求 #{n},但本地分支与远程不同步",
"Loading changes for pull request #{n}": "正在加载拉取请求 #{n} 的更改",
"Pull request #{n} exists for current branch {branch}, but pull request details loading failed": "当前分支 {branch} 存在拉取请求 #{n},但加载拉取请求详细信息失败",
"Pull request #{n} exists for current branch {branch}": "当前分支 {branch} 存在拉取请求 #{n}",
"Show Review Diff": "显示审查差异",
"Pull Request branch update failed": "拉取请求分支更新失败",
"#{n} on {branch}": "#{n} 位于 {branch}"
}
-5
Переглянути файл
@@ -86,11 +86,6 @@
"common.close": "关闭",
"common.copied": "已复制",
"common.copy": "复制",
"github.prState.all": "全部",
"github.prState.closed": "已关闭",
"github.prState.draft": "草稿",
"github.prState.merged": "已合并",
"github.prState.open": "开放",
"menu.app": "OpenIDEA",
"menu.app.about": "关于 OpenIDEA",
"menu.app.checkForUpdates": "检查更新…",