✨ feat(vscode): 代码阅读侧栏可以按审查工单只看 PR 改过的文件:标题栏「选工单」列出看板「审查」列,选中后树里只剩改过的文件(M / A / D 着色),点开的是本机工作副本里 PR 最新的代码,没有就拉 PR 分支建一个,「显示全部」退出
This commit is contained in:
1 parent
c009187f6c
commit
8e2cdfaf17
18 files changed
+1053
-40
No files matched your search
@@ -0,0 +1,30 @@
|
||||
import type { ExtensionContext } from 'vscode'
|
||||
import { workspace } from 'vscode'
|
||||
import { getToken } from '../auth/secrets'
|
||||
import { detectRepo } from '../git/remote'
|
||||
|
||||
/** 当前工作区(第一个工作区文件夹)对应的 Gitea 仓库和 token。 */
|
||||
export interface RepoContext {
|
||||
workspaceRoot: string
|
||||
host: string
|
||||
owner: string
|
||||
repo: string
|
||||
token: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析当前工作区的 Gitea 仓库与 token。没打开工作区、origin 不是 Gitea 仓库、没配 token
|
||||
* 任一情况返回 undefined,调用方据此走空态/错误分支。
|
||||
*/
|
||||
export async function resolveRepoContext(context: ExtensionContext): Promise<RepoContext | undefined> {
|
||||
const workspaceRoot = workspace.workspaceFolders?.[0]?.uri.fsPath
|
||||
if (!workspaceRoot)
|
||||
return undefined
|
||||
const remote = await detectRepo(workspaceRoot)
|
||||
if (!remote)
|
||||
return undefined
|
||||
const token = await getToken(context, remote.host)
|
||||
if (!token)
|
||||
return undefined
|
||||
return { workspaceRoot, host: remote.host, owner: remote.owner, repo: remote.repo, token }
|
||||
}
|
||||
Reference in new issue
Block a user