Fix value not required for secrets and values
Signed-off-by: Sanjula Ganepola <sanjulagane@gmail.com>
This commit is contained in:
13
src/act.ts
13
src/act.ts
@@ -48,7 +48,7 @@ export enum Option {
|
|||||||
Job = '-j',
|
Job = '-j',
|
||||||
Platform = '-P',
|
Platform = '-P',
|
||||||
Secret = '--secret',
|
Secret = '--secret',
|
||||||
Var = '--var',
|
Variable = '--var',
|
||||||
Workflows = '-W'
|
Workflows = '-W'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,12 +260,13 @@ export class Act {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const secrets = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.secretsRegExp, StorageKey.Secrets)).filter(secret => secret.selected && secret.value);
|
const secrets = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.secretsRegExp, StorageKey.Secrets, true)).filter(secret => secret.selected);
|
||||||
const variables = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.variablesRegExp, StorageKey.Variables)).filter(variable => variable.selected && variable.value);
|
const variables = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.variablesRegExp, StorageKey.Variables, false)).filter(variable => variable.selected);
|
||||||
const inputs = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.inputsRegExp, StorageKey.Inputs)).filter(input => input.selected && input.value);
|
const inputs = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.inputsRegExp, StorageKey.Inputs, false)).filter(input => input.selected && input.value);
|
||||||
const runners = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.runnersRegExp, StorageKey.Runners)).filter(runner => runner.selected && runner.value);
|
const runners = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.runnersRegExp, StorageKey.Runners, false)).filter(runner => runner.selected && runner.value);
|
||||||
const command = `${Act.base} ` +
|
const command = `${Act.base} ` +
|
||||||
(variables.length > 0 ? ` ${Option.Var} ${variables.map(variable => `${variable.key}=${variable.value}`).join(` ${Option.Var} `)}` : ``) +
|
(secrets.length > 0 ? ` ${Option.Secret} ${secrets.map(secret => (secret.value ? `${secret.key}=${secret.value}` : secret.key)).join(` ${Option.Secret} `)}` : ``) +
|
||||||
|
(variables.length > 0 ? ` ${Option.Variable} ${variables.map(variable => (variable.value ? `${variable.key}=${variable.value}` : variable.key)).join(` ${Option.Variable} `)}` : ``) +
|
||||||
(inputs.length > 0 ? ` ${Option.Input} ${inputs.map(input => `${input.key}=${input.value}`).join(` ${Option.Input} `)}` : ``) +
|
(inputs.length > 0 ? ` ${Option.Input} ${inputs.map(input => `${input.key}=${input.value}`).join(` ${Option.Input} `)}` : ``) +
|
||||||
(runners.length > 0 ? ` ${Option.Platform} ${runners.map(runner => `${runner.key}=${runner.value}`).join(` ${Option.Platform} `)}` : ``) +
|
(runners.length > 0 ? ` ${Option.Platform} ${runners.map(runner => `${runner.key}=${runner.value}`).join(` ${Option.Platform} `)}` : ``) +
|
||||||
` ${commandArgs.options}`;
|
` ${commandArgs.options}`;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { StorageKey, StorageManager } from "./storageManager";
|
|||||||
export interface Setting {
|
export interface Setting {
|
||||||
key: string,
|
key: string,
|
||||||
value: string,
|
value: string,
|
||||||
|
password: boolean,
|
||||||
selected: boolean
|
selected: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,7 +20,7 @@ export class SettingsManager {
|
|||||||
this.storageManager = storageManager;
|
this.storageManager = storageManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
async getSetting(workspaceFolder: WorkspaceFolder, regExp: RegExp, storageKey: StorageKey): Promise<Setting[]> {
|
async getSetting(workspaceFolder: WorkspaceFolder, regExp: RegExp, storageKey: StorageKey, password: boolean): Promise<Setting[]> {
|
||||||
const settings: Setting[] = [];
|
const settings: Setting[] = [];
|
||||||
|
|
||||||
const workflows = await act.workflowsManager.getWorkflows(workspaceFolder);
|
const workflows = await act.workflowsManager.getWorkflows(workspaceFolder);
|
||||||
@@ -28,7 +29,7 @@ export class SettingsManager {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const workflowSettings = this.findInWorkflow(workflow.fileContent, regExp);
|
const workflowSettings = this.findInWorkflow(workflow.fileContent, regExp, password);
|
||||||
for (const workflowSetting of workflowSettings) {
|
for (const workflowSetting of workflowSettings) {
|
||||||
const existingSetting = settings.find(setting => setting.key === workflowSetting.key);
|
const existingSetting = settings.find(setting => setting.key === workflowSetting.key);
|
||||||
if (!existingSetting) {
|
if (!existingSetting) {
|
||||||
@@ -45,6 +46,7 @@ export class SettingsManager {
|
|||||||
settings[index] = {
|
settings[index] = {
|
||||||
key: setting.key,
|
key: setting.key,
|
||||||
value: existingSetting.value,
|
value: existingSetting.value,
|
||||||
|
password: existingSetting.password,
|
||||||
selected: existingSetting.selected
|
selected: existingSetting.selected
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -73,12 +75,12 @@ export class SettingsManager {
|
|||||||
await this.storageManager.update(storageKey, existingSettings);
|
await this.storageManager.update(storageKey, existingSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
private findInWorkflow(content: string, regExp: RegExp) {
|
private findInWorkflow(content: string, regExp: RegExp, password: boolean) {
|
||||||
const results: Setting[] = [];
|
const results: Setting[] = [];
|
||||||
|
|
||||||
const matches = content.matchAll(regExp);
|
const matches = content.matchAll(regExp);
|
||||||
for (const match of matches) {
|
for (const match of matches) {
|
||||||
results.push({ key: match[1], value: '', selected: false });
|
results.push({ key: match[1], value: '', password: password, selected: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export default class InputsTreeItem extends TreeItem implements GithubLocalActio
|
|||||||
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
||||||
const items: GithubLocalActionsTreeItem[] = [];
|
const items: GithubLocalActionsTreeItem[] = [];
|
||||||
|
|
||||||
const inputs = await act.settingsManager.getSetting(this.workspaceFolder, SettingsManager.inputsRegExp, StorageKey.Inputs);
|
const inputs = await act.settingsManager.getSetting(this.workspaceFolder, SettingsManager.inputsRegExp, StorageKey.Inputs, false);
|
||||||
for (const input of inputs) {
|
for (const input of inputs) {
|
||||||
items.push(SettingTreeItem.getInputTreeItem(this.workspaceFolder, input));
|
items.push(SettingTreeItem.getInputTreeItem(this.workspaceFolder, input));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export default class RunnersTreeItem extends TreeItem implements GithubLocalActi
|
|||||||
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
||||||
const items: GithubLocalActionsTreeItem[] = [];
|
const items: GithubLocalActionsTreeItem[] = [];
|
||||||
|
|
||||||
const runners = await act.settingsManager.getSetting(this.workspaceFolder, SettingsManager.runnersRegExp, StorageKey.Runners);
|
const runners = await act.settingsManager.getSetting(this.workspaceFolder, SettingsManager.runnersRegExp, StorageKey.Runners, false);
|
||||||
for (const runner of runners) {
|
for (const runner of runners) {
|
||||||
items.push(SettingTreeItem.getRunnerTreeItem(this.workspaceFolder, runner));
|
items.push(SettingTreeItem.getRunnerTreeItem(this.workspaceFolder, runner));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export default class SecretsTreeItem extends TreeItem implements GithubLocalActi
|
|||||||
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
||||||
const items: GithubLocalActionsTreeItem[] = [];
|
const items: GithubLocalActionsTreeItem[] = [];
|
||||||
|
|
||||||
const secrets = await act.settingsManager.getSetting(this.workspaceFolder, SettingsManager.secretsRegExp, StorageKey.Secrets);
|
const secrets = await act.settingsManager.getSetting(this.workspaceFolder, SettingsManager.secretsRegExp, StorageKey.Secrets, true);
|
||||||
for (const secret of secrets) {
|
for (const secret of secrets) {
|
||||||
items.push(SettingTreeItem.getSecretTreeItem(this.workspaceFolder, secret));
|
items.push(SettingTreeItem.getSecretTreeItem(this.workspaceFolder, secret));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ export default class SettingTreeItem extends TreeItem implements GithubLocalActi
|
|||||||
}
|
}
|
||||||
|
|
||||||
static getRunnerTreeItem(workspaceFolder: WorkspaceFolder, runner: Setting): SettingTreeItem {
|
static getRunnerTreeItem(workspaceFolder: WorkspaceFolder, runner: Setting): SettingTreeItem {
|
||||||
return new SettingTreeItem(workspaceFolder, runner, StorageKey.Runners, { description: runner.value, contextValue: 'githubLocalActions.runner', iconPath: new ThemeIcon('server') });
|
return new SettingTreeItem(workspaceFolder, runner, StorageKey.Runners, { description: runner.value, contextValue: 'githubLocalActions.runner', iconPath: new ThemeIcon('vm-connect') });
|
||||||
}
|
}
|
||||||
|
|
||||||
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ export default class SettingsTreeDataProvider implements TreeDataProvider<Github
|
|||||||
prompt: `Enter the value for ${settingTreeItem.setting.value}`,
|
prompt: `Enter the value for ${settingTreeItem.setting.value}`,
|
||||||
placeHolder: `Setting value`,
|
placeHolder: `Setting value`,
|
||||||
value: settingTreeItem.setting.value,
|
value: settingTreeItem.setting.value,
|
||||||
password: true
|
password: settingTreeItem.setting.password
|
||||||
});
|
});
|
||||||
|
|
||||||
if (newValue !== undefined) {
|
if (newValue !== undefined) {
|
||||||
await act.settingsManager.editSetting(settingTreeItem.workspaceFolder, { key: settingTreeItem.setting.key, value: newValue, selected: settingTreeItem.setting.selected }, settingTreeItem.storageKey);
|
await act.settingsManager.editSetting(settingTreeItem.workspaceFolder, { key: settingTreeItem.setting.key, value: newValue, selected: settingTreeItem.setting.selected, password: settingTreeItem.setting.password }, settingTreeItem.storageKey);
|
||||||
this.refresh();
|
this.refresh();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -48,7 +48,7 @@ export default class SettingsTreeDataProvider implements TreeDataProvider<Github
|
|||||||
|
|
||||||
async onDidChangeCheckboxState(event: TreeCheckboxChangeEvent<SettingTreeItem>) {
|
async onDidChangeCheckboxState(event: TreeCheckboxChangeEvent<SettingTreeItem>) {
|
||||||
for await (const [treeItem, state] of event.items) {
|
for await (const [treeItem, state] of event.items) {
|
||||||
await act.settingsManager.editSetting(treeItem.workspaceFolder, { key: treeItem.setting.key, value: treeItem.setting.value, selected: state === TreeItemCheckboxState.Checked }, treeItem.storageKey);
|
await act.settingsManager.editSetting(treeItem.workspaceFolder, { key: treeItem.setting.key, value: treeItem.setting.value, selected: state === TreeItemCheckboxState.Checked, password: treeItem.setting.password }, treeItem.storageKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export default class VariablesTreeItem extends TreeItem implements GithubLocalAc
|
|||||||
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
async getChildren(): Promise<GithubLocalActionsTreeItem[]> {
|
||||||
const items: GithubLocalActionsTreeItem[] = [];
|
const items: GithubLocalActionsTreeItem[] = [];
|
||||||
|
|
||||||
const variables = await act.settingsManager.getSetting(this.workspaceFolder, SettingsManager.variablesRegExp, StorageKey.Variables);
|
const variables = await act.settingsManager.getSetting(this.workspaceFolder, SettingsManager.variablesRegExp, StorageKey.Variables, false);
|
||||||
for (const variable of variables) {
|
for (const variable of variables) {
|
||||||
items.push(SettingTreeItem.getVariableTreeItem(this.workspaceFolder, variable));
|
items.push(SettingTreeItem.getVariableTreeItem(this.workspaceFolder, variable));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user