Visual Studio Code에서 GitLens의 끌어오기 요청 기능을 확장한 방법
3854 단어 gitcodestreamgitlensvscode
특히 풀 리퀘스트를 생성하고 볼 수 있는 기능에 대한 추가 접점을 추가했습니다. 오픈 소스 VS Code 확장 프로그램( CodeStream )의 개발자로서 이것은 사용자가 풀 요청을 만들고 보는 방법과 관련하여 추가 선택권을 사용자에게 제공하는 좋은 방법인 것 같습니다.
다음은 기술적인 부분입니다!
CodeStream에서는 TypeScript를 사용하므로 GitLens API용 정의 파일이 필요합니다. @types/gitlens.d.ts에 저장했습니다.
import { Disposable } from "vscode";
export { Disposable } from "vscode";
export interface CreatePullRequestActionContext {
readonly type: "createPullRequest";
readonly branch: {
readonly name: string;
readonly remote?: {
readonly name: string;
readonly provider?: string;
readonly url?: string;
};
readonly repoPath: string;
};
}
export interface OpenPullRequestActionContext {
readonly type: "openPullRequest";
readonly pullRequest: {
readonly id: string;
readonly provider: string;
readonly repoPath: string;
readonly url: string;
};
}
export type ActionContext = CreatePullRequestActionContext | OpenPullRequestActionContext;
export type Action<T extends ActionContext> = T["type"];
export interface ActionRunner {
readonly label: string;
run(context: ActionContext): void | Promise<void>;
}
export interface GitLensApi {
registerActionRunner<T extends ActionContext>(
action: Action<T>,
runner: ActionRunner
): Disposable;
}
확장 프로그램
activatefunction
내에서 이 통합을 생성할 수 있습니다. 아래에 우리가 마지막으로 수행한 것의 단순화된 버전을 추가했습니다. 주요 아이디어는 안정적인 버전의 GitLens 또는 내부자(일명 야간 버전)를 찾고 GitLens apiregisterActionProvider
메서드를 사용하여 "openPullRequest"및 "createPullRequest"연결을 수신하는 것입니다.const gitLens = extensions.getExtension<Promise<GitLensApi>>("eamodio.gitlens") ||
extensions.getExtension<Promise<GitLensApi>>("eamodio.gitlens-insiders");
if (gitlens && gitlens.isActive) {
const api: GitLensApi = await gitlens.exports;
api.registerActionRunner("openPullRequest", {
label: "CodeStream",
run: function(context: OpenPullRequestActionContext) {
console.log(context, "it worked!")
}
});
api.registerActionRunner("createPullRequest", {
label: "CodeStream",
run: function(context: CreatePullRequestActionContext) {
console.log(context, "it worked")
}
});
}
등록을 시도하기 전에 GitLens가 실제로 활성화되었는지 확인하고 싶었기 때문에 구현이 조금 더 복잡했습니다. 다른 확장 프로그램이 언제 활성화되는지 알 수 있는 좋은 방법이 없으므로 폴링 메커니즘을 사용했습니다. 코드의 주석에 언급된 바와 같이 VS Code 팀에 이 문제를 해결하기 위한 열린 문제가 있습니다.
당사의 완전한 솔루션은 GitHub의 CodeStream repo 또는 CodeStream 자체에서 찾을 수 있습니다.
CodeStream의 다음 버전에서 이 기능을 찾아보십시오!
Reference
이 문제에 관하여(Visual Studio Code에서 GitLens의 끌어오기 요청 기능을 확장한 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codestream/how-we-extended-gitlens-pull-request-functionality-in-visual-studio-code-42g8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)