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',
|
||||
Platform = '-P',
|
||||
Secret = '--secret',
|
||||
Var = '--var',
|
||||
Variable = '--var',
|
||||
Workflows = '-W'
|
||||
}
|
||||
|
||||
@@ -260,12 +260,13 @@ export class Act {
|
||||
return;
|
||||
}
|
||||
|
||||
const secrets = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.secretsRegExp, StorageKey.Secrets)).filter(secret => secret.selected && secret.value);
|
||||
const variables = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.variablesRegExp, StorageKey.Variables)).filter(variable => variable.selected && variable.value);
|
||||
const inputs = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.inputsRegExp, StorageKey.Inputs)).filter(input => input.selected && input.value);
|
||||
const runners = (await this.settingsManager.getSetting(workspaceFolder, SettingsManager.runnersRegExp, StorageKey.Runners)).filter(runner => runner.selected && runner.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, false)).filter(variable => variable.selected);
|
||||
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, false)).filter(runner => runner.selected && runner.value);
|
||||
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} `)}` : ``) +
|
||||
(runners.length > 0 ? ` ${Option.Platform} ${runners.map(runner => `${runner.key}=${runner.value}`).join(` ${Option.Platform} `)}` : ``) +
|
||||
` ${commandArgs.options}`;
|
||||
|
||||
@@ -5,6 +5,7 @@ import { StorageKey, StorageManager } from "./storageManager";
|
||||
export interface Setting {
|
||||
key: string,
|
||||
value: string,
|
||||
password: boolean,
|
||||
selected: boolean
|
||||
}
|
||||
|
||||
@@ -19,7 +20,7 @@ export class SettingsManager {
|
||||
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 workflows = await act.workflowsManager.getWorkflows(workspaceFolder);
|
||||
@@ -28,7 +29,7 @@ export class SettingsManager {
|
||||
continue;
|
||||
}
|
||||
|
||||
const workflowSettings = this.findInWorkflow(workflow.fileContent, regExp);
|
||||
const workflowSettings = this.findInWorkflow(workflow.fileContent, regExp, password);
|
||||
for (const workflowSetting of workflowSettings) {
|
||||
const existingSetting = settings.find(setting => setting.key === workflowSetting.key);
|
||||
if (!existingSetting) {
|
||||
@@ -45,6 +46,7 @@ export class SettingsManager {
|
||||
settings[index] = {
|
||||
key: setting.key,
|
||||
value: existingSetting.value,
|
||||
password: existingSetting.password,
|
||||
selected: existingSetting.selected
|
||||
};
|
||||
}
|
||||
@@ -73,12 +75,12 @@ export class SettingsManager {
|
||||
await this.storageManager.update(storageKey, existingSettings);
|
||||
}
|
||||
|
||||
private findInWorkflow(content: string, regExp: RegExp) {
|
||||
private findInWorkflow(content: string, regExp: RegExp, password: boolean) {
|
||||
const results: Setting[] = [];
|
||||
|
||||
const matches = content.matchAll(regExp);
|
||||
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;
|
||||
|
||||
@@ -17,7 +17,7 @@ export default class InputsTreeItem extends TreeItem implements GithubLocalActio
|
||||
async getChildren(): Promise<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) {
|
||||
items.push(SettingTreeItem.getInputTreeItem(this.workspaceFolder, input));
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ export default class RunnersTreeItem extends TreeItem implements GithubLocalActi
|
||||
async getChildren(): Promise<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) {
|
||||
items.push(SettingTreeItem.getRunnerTreeItem(this.workspaceFolder, runner));
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ export default class SecretsTreeItem extends TreeItem implements GithubLocalActi
|
||||
async getChildren(): Promise<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) {
|
||||
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 {
|
||||
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[]> {
|
||||
|
||||
@@ -19,11 +19,11 @@ export default class SettingsTreeDataProvider implements TreeDataProvider<Github
|
||||
prompt: `Enter the value for ${settingTreeItem.setting.value}`,
|
||||
placeHolder: `Setting value`,
|
||||
value: settingTreeItem.setting.value,
|
||||
password: true
|
||||
password: settingTreeItem.setting.password
|
||||
});
|
||||
|
||||
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();
|
||||
}
|
||||
})
|
||||
@@ -48,7 +48,7 @@ export default class SettingsTreeDataProvider implements TreeDataProvider<Github
|
||||
|
||||
async onDidChangeCheckboxState(event: TreeCheckboxChangeEvent<SettingTreeItem>) {
|
||||
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[]> {
|
||||
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) {
|
||||
items.push(SettingTreeItem.getVariableTreeItem(this.workspaceFolder, variable));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user