|
1 | 1 | import * as vscode from "vscode";
|
2 | 2 |
|
3 |
| -import {getGitHead, getGitHubContextForWorkspaceUri, GitHubRepoContext} from "../git/repository"; |
| 3 | +import * as path from "path"; |
| 4 | + |
| 5 | +import { |
| 6 | + getGitHead, |
| 7 | + getGitHubContextForWorkspaceUri, |
| 8 | + getGitRepositoryFolderUri, |
| 9 | + GitHubRepoContext |
| 10 | +} from "../git/repository"; |
4 | 11 | import {getWorkflowUri, parseWorkflowFile} from "../workflow/workflow";
|
5 | 12 |
|
6 | 13 | import {Workflow} from "../model";
|
@@ -29,11 +36,14 @@ export function registerTriggerWorkflowRun(context: vscode.ExtensionContext) {
|
29 | 36 |
|
30 | 37 | // Parse
|
31 | 38 | const workspaceFolder = vscode.workspace.getWorkspaceFolder(workflowUri);
|
32 |
| - if (!workspaceFolder) { |
| 39 | + |
| 40 | + // support git sub directory |
| 41 | + const gitRepoFolderUri = workspaceFolder ? workspaceFolder?.uri : await getGitRepositoryFolderUri(workflowUri); |
| 42 | + if (!gitRepoFolderUri) { |
33 | 43 | return;
|
34 | 44 | }
|
35 | 45 |
|
36 |
| - const gitHubRepoContext = await getGitHubContextForWorkspaceUri(workspaceFolder.uri); |
| 46 | + const gitHubRepoContext = await getGitHubContextForWorkspaceUri(gitRepoFolderUri); |
37 | 47 | if (!gitHubRepoContext) {
|
38 | 48 | return;
|
39 | 49 | }
|
@@ -85,8 +95,10 @@ export function registerTriggerWorkflowRun(context: vscode.ExtensionContext) {
|
85 | 95 | }
|
86 | 96 |
|
87 | 97 | try {
|
88 |
| - const relativeWorkflowPath = vscode.workspace.asRelativePath(workflowUri, false); |
89 |
| - |
| 98 | + // support git sub directory |
| 99 | + const relativeWorkflowPath = workspaceFolder |
| 100 | + ? vscode.workspace.asRelativePath(workflowUri, false) |
| 101 | + : path.relative(gitRepoFolderUri.path, workflowUri.path); |
90 | 102 | await gitHubRepoContext.client.actions.createWorkflowDispatch({
|
91 | 103 | owner: gitHubRepoContext.owner,
|
92 | 104 | repo: gitHubRepoContext.name,
|
|
0 commit comments