Skip to content

Commit c4283d5

Browse files
authored
Merge pull request #107 from github/thyeggman/no-repo
Reset github context on workspace changes
2 parents 8f13582 + e11c731 commit c4283d5

5 files changed

Lines changed: 22 additions & 3 deletions

File tree

src/commands/triggerWorkflowRun.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export function registerTriggerWorkflowRun(context: vscode.ExtensionContext) {
3838
return;
3939
}
4040

41-
const workflow = await parseWorkflowFile(workflowUri, gitHubRepoContext);
41+
const workflow = await parseWorkflowFile(workflowUri);
4242
if (!workflow) {
4343
return;
4444
}

src/extension.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import {WorkflowStepLogSymbolProvider} from "./logs/symbolProvider";
2626
import {initPinnedWorkflows} from "./pinnedWorkflows/pinnedWorkflows";
2727
import {RunStore} from "./store/store";
2828
import {initWorkflowDocumentTracking} from "./tracker/workflowDocumentTracker";
29+
import {initWorkspaceChangeTracker} from "./tracker/workspaceTracker";
2930
import {initResources} from "./treeViews/icons";
3031
import {initTreeViews} from "./treeViews/treeViews";
3132
import {deactivateLanguageServer, initLanguageServer} from "./workflow/languageServer";
@@ -41,7 +42,8 @@ export async function activate(context: vscode.ExtensionContext) {
4142
initResources(context);
4243
initConfiguration(context);
4344

44-
// Track workflow documents
45+
// Track workflow documents and workspace changes
46+
initWorkspaceChangeTracker(context);
4547
await initWorkflowDocumentTracking(context);
4648

4749
const store = new RunStore();

src/git/repository.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@ export async function getGitHubContext(): Promise<GitHubContext | undefined> {
210210
return gitHubContext;
211211
}
212212

213+
export function resetGitHubContext() {
214+
gitHubContext = undefined;
215+
}
216+
213217
export async function getGitHubContextForRepo(owner: string, name: string): Promise<GitHubRepoContext | undefined> {
214218
const gitHubContext = await getGitHubContext();
215219
if (!gitHubContext) {

src/tracker/workspaceTracker.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import * as vscode from "vscode";
2+
3+
import {getGitHubContext, resetGitHubContext} from "../git/repository";
4+
5+
export function initWorkspaceChangeTracker(context: vscode.ExtensionContext) {
6+
const onDidChangeWorkspaceFolders = async (event: vscode.WorkspaceFoldersChangeEvent) => {
7+
if (event.added.length > 0 || event.removed.length > 0) {
8+
resetGitHubContext();
9+
await getGitHubContext();
10+
}
11+
};
12+
context.subscriptions.push(vscode.workspace.onDidChangeWorkspaceFolders(onDidChangeWorkspaceFolders));
13+
}

src/workflow/workflow.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export function getWorkflowUri(gitHubRepoContext: GitHubRepoContext, path: strin
5858
return vscode.Uri.joinPath(gitHubRepoContext.workspaceUri, path);
5959
}
6060

61-
export async function parseWorkflowFile(uri: vscode.Uri, _: GitHubRepoContext): Promise<WorkflowTemplate | undefined> {
61+
export async function parseWorkflowFile(uri: vscode.Uri): Promise<WorkflowTemplate | undefined> {
6262
try {
6363
const b = await vscode.workspace.fs.readFile(uri);
6464
const workflowInput = new TextDecoder().decode(b);

0 commit comments

Comments
 (0)