Skip to content

Commit 0b51851

Browse files
sudiptosarkarbrunoborges
authored andcommitted
Added support for configuring multiple maven repositories with separate usernames and passwords
1 parent 347226b commit 0b51851

9 files changed

Lines changed: 345 additions & 103 deletions

File tree

.github/workflows/e2e-publishing.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,3 +151,45 @@ jobs:
151151
if (-not (Test-Path $path)) {
152152
throw "settings.xml file is not found in expected location"
153153
}
154+
test-publishing-multiple-repositories-with-gpg-passphrase:
155+
name: Validate settings.xml
156+
runs-on: ${{ matrix.os }}
157+
strategy:
158+
fail-fast: false
159+
matrix:
160+
os: [macos-latest, windows-latest, ubuntu-latest]
161+
steps:
162+
- name: Checkout
163+
uses: actions/checkout@v4
164+
- name: setup-java
165+
uses: ./
166+
id: setup-java
167+
with:
168+
distribution: 'adopt'
169+
java-version: '11'
170+
mvn-repositories-len: 2
171+
server-id-0: maven-0
172+
server-username-0: MAVEN_USERNAME-0
173+
server-password-0: MAVEN_CENTRAL_TOKEN-0
174+
server-id-1: maven-1
175+
server-username-1: MAVEN_USERNAME-1
176+
server-password-1: MAVEN_CENTRAL_TOKEN-1
177+
gpg-passphrase: MAVEN_GPG_PASSPHRASE
178+
- name: Validate settings.xml
179+
run: |
180+
$xmlPath = Join-Path $HOME ".m2" "settings.xml"
181+
Get-Content $xmlPath | ForEach-Object { Write-Host $_ }
182+
183+
[xml]$xml = Get-Content $xmlPath
184+
$servers = $xml.settings.servers.server
185+
if (($servers[0].id -ne 'maven-0') -or ($servers[0].username -ne '${env.MAVEN_USERNAME-0}') -or ($servers[0].password -ne '${env.MAVEN_CENTRAL_TOKEN-0}')) {
186+
throw "Generated XML file is incorrect"
187+
}
188+
189+
if (($servers[1].id -ne 'maven-1') -or ($servers[0].username -ne '${env.MAVEN_PASSWORD-1}') -or ($servers[1].password -ne '${env.MAVEN_CENTRAL_TOKEN-1}')) {
190+
throw "Generated XML file is incorrect"
191+
}
192+
193+
if (($servers[1].id -ne 'gpg.passphrase') -or ($servers[1].passphrase -ne '${env.MAVEN_GPG_PASSPHRASE}')) {
194+
throw "Generated XML file is incorrect"
195+
}

__tests__/auth.test.ts

Lines changed: 56 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ describe('auth tests', () => {
4343
await io.rmRF(altHome); // ensure it doesn't already exist
4444

4545
await auth.createAuthenticationSettings(
46-
id,
47-
username,
48-
password,
46+
[{id, username, password}],
4947
altHome,
5048
true
5149
);
@@ -56,7 +54,7 @@ describe('auth tests', () => {
5654
expect(fs.existsSync(altHome)).toBe(true);
5755
expect(fs.existsSync(altSettingsFile)).toBe(true);
5856
expect(fs.readFileSync(altSettingsFile, 'utf-8')).toEqual(
59-
auth.generate(id, username, password)
57+
auth.generate([{id, username, password}])
6058
);
6159

6260
await io.rmRF(altHome);
@@ -68,17 +66,15 @@ describe('auth tests', () => {
6866
const password = 'TOKEN';
6967

7068
await auth.createAuthenticationSettings(
71-
id,
72-
username,
73-
password,
69+
[{id, username, password}],
7470
m2Dir,
7571
true
7672
);
7773

7874
expect(fs.existsSync(m2Dir)).toBe(true);
7975
expect(fs.existsSync(settingsFile)).toBe(true);
8076
expect(fs.readFileSync(settingsFile, 'utf-8')).toEqual(
81-
auth.generate(id, username, password)
77+
auth.generate([{id, username, password}])
8278
);
8379
}, 100000);
8480

@@ -89,18 +85,15 @@ describe('auth tests', () => {
8985
const gpgPassphrase = 'GPG';
9086

9187
await auth.createAuthenticationSettings(
92-
id,
93-
username,
94-
password,
88+
[{id, username, password, gpgPassphrase}],
9589
m2Dir,
96-
true,
97-
gpgPassphrase
90+
true
9891
);
9992

10093
expect(fs.existsSync(m2Dir)).toBe(true);
10194
expect(fs.existsSync(settingsFile)).toBe(true);
10295
expect(fs.readFileSync(settingsFile, 'utf-8')).toEqual(
103-
auth.generate(id, username, password, gpgPassphrase)
96+
auth.generate([{id, username, password, gpgPassphrase}])
10497
);
10598
}, 100000);
10699

@@ -115,17 +108,15 @@ describe('auth tests', () => {
115108
expect(fs.existsSync(settingsFile)).toBe(true);
116109

117110
await auth.createAuthenticationSettings(
118-
id,
119-
username,
120-
password,
111+
[{id, username, password}],
121112
m2Dir,
122113
true
123114
);
124115

125116
expect(fs.existsSync(m2Dir)).toBe(true);
126117
expect(fs.existsSync(settingsFile)).toBe(true);
127118
expect(fs.readFileSync(settingsFile, 'utf-8')).toEqual(
128-
auth.generate(id, username, password)
119+
auth.generate([{id, username, password}])
129120
);
130121
}, 100000);
131122

@@ -140,9 +131,7 @@ describe('auth tests', () => {
140131
expect(fs.existsSync(settingsFile)).toBe(true);
141132

142133
await auth.createAuthenticationSettings(
143-
id,
144-
username,
145-
password,
134+
[{id, username, password}],
146135
m2Dir,
147136
false
148137
);
@@ -169,7 +158,7 @@ describe('auth tests', () => {
169158
</servers>
170159
</settings>`;
171160

172-
expect(auth.generate(id, username, password)).toEqual(expectedSettings);
161+
expect(auth.generate([{id, username, password}])).toEqual(expectedSettings);
173162
});
174163

175164
it('generates valid settings.xml with additional configuration', () => {
@@ -194,8 +183,50 @@ describe('auth tests', () => {
194183
</servers>
195184
</settings>`;
196185

197-
expect(auth.generate(id, username, password, gpgPassphrase)).toEqual(
198-
expectedSettings
199-
);
186+
expect(
187+
auth.generate([
188+
{id, username, password},
189+
{id: 'gpg.passphrase', gpgPassphrase: gpgPassphrase}
190+
])
191+
).toEqual(expectedSettings);
192+
});
193+
194+
it('generates valid settings.xml for multiple repositories', () => {
195+
const id0 = 'packages0';
196+
const username0 = 'USER0';
197+
const password0 = '&<>"\'\'"><&0';
198+
const id1 = 'packages1';
199+
const username1 = 'USER1';
200+
const password1 = '&<>"\'\'"><&1';
201+
const gpgPassphrase = 'PASSPHRASE';
202+
203+
const expectedSettings = `<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
204+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
205+
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
206+
<servers>
207+
<server>
208+
<id>${id0}</id>
209+
<username>\${env.${username0}}</username>
210+
<password>\${env.&amp;&lt;&gt;"''"&gt;&lt;&amp;0}</password>
211+
</server>
212+
<server>
213+
<id>${id1}</id>
214+
<username>\${env.${username1}}</username>
215+
<password>\${env.&amp;&lt;&gt;"''"&gt;&lt;&amp;1}</password>
216+
</server>
217+
<server>
218+
<id>gpg.passphrase</id>
219+
<passphrase>\${env.${gpgPassphrase}}</passphrase>
220+
</server>
221+
</servers>
222+
</settings>`;
223+
224+
expect(
225+
auth.generate([
226+
{id: id0, username: username0, password: password0},
227+
{id: id1, username: username1, password: password1},
228+
{id: 'gpg.passphrase', gpgPassphrase: gpgPassphrase}
229+
])
230+
).toEqual(expectedSettings);
200231
});
201232
});

action.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,33 @@ inputs:
4141
authentication to the Apache Maven repository. Default is $GITHUB_TOKEN'
4242
required: false
4343
default: 'GITHUB_TOKEN'
44+
mvn-repositories-len:
45+
description: 'Number of Maven repositories being configured - Only applicable if more than one Maven repository is being configured'
46+
required: false
47+
server-id-0:
48+
description: 'ID of the first distributionManagement repository in the pom.xml
49+
file - Only applicable if more than one Maven repository is being configured'
50+
required: false
51+
server-username-0:
52+
description: 'Environment variable name for the username for authentication
53+
to the first Maven repository - Only applicable if more than one Maven repository is being configured'
54+
required: false
55+
server-password-0:
56+
description: 'Environment variable name for password or token for
57+
authentication to the first Maven repository - Only applicable if more than one Maven repository is being configured'
58+
required: false
59+
server-id-1:
60+
description: 'ID of the second distributionManagement repository in the pom.xml
61+
file - Only applicable if more than one Maven repository is being configured'
62+
required: false
63+
server-username-1:
64+
description: 'Environment variable name for the username for authentication
65+
to the second Maven repository - Only applicable if more than one Maven repository is being configured'
66+
required: false
67+
server-password-1:
68+
description: 'Environment variable name for password or token for
69+
authentication to the second Maven repository - Only applicable if more than one Maven repository is being configured'
70+
required: false
4471
settings-path:
4572
description: 'Path to where the settings.xml file will be written. Default is ~/.m2.'
4673
required: false

dist/cleanup/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52046,7 +52046,7 @@ else {
5204652046
"use strict";
5204752047

5204852048
Object.defineProperty(exports, "__esModule", ({ value: true }));
52049-
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = exports.INPUT_MVN_TOOLCHAIN_VENDOR = exports.INPUT_MVN_TOOLCHAIN_ID = exports.MVN_TOOLCHAINS_FILE = exports.MVN_SETTINGS_FILE = exports.M2_DIR = exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE_DEPENDENCY_PATH = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION_FILE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0;
52049+
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = exports.INPUT_MVN_TOOLCHAIN_VENDOR = exports.INPUT_MVN_TOOLCHAIN_ID = exports.MVN_TOOLCHAINS_FILE = exports.MVN_SETTINGS_FILE = exports.M2_DIR = exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE_DEPENDENCY_PATH = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_NUM_MVN_REPOS = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION_FILE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0;
5205052050
exports.MACOS_JAVA_CONTENT_POSTFIX = 'Contents/Home';
5205152051
exports.INPUT_JAVA_VERSION = 'java-version';
5205252052
exports.INPUT_JAVA_VERSION_FILE = 'java-version-file';
@@ -52055,6 +52055,7 @@ exports.INPUT_JAVA_PACKAGE = 'java-package';
5205552055
exports.INPUT_DISTRIBUTION = 'distribution';
5205652056
exports.INPUT_JDK_FILE = 'jdkFile';
5205752057
exports.INPUT_CHECK_LATEST = 'check-latest';
52058+
exports.INPUT_NUM_MVN_REPOS = 'mvn-repositories-len';
5205852059
exports.INPUT_SERVER_ID = 'server-id';
5205952060
exports.INPUT_SERVER_USERNAME = 'server-username';
5206052061
exports.INPUT_SERVER_PASSWORD = 'server-password';

dist/setup/index.js

Lines changed: 57 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -77493,20 +77493,21 @@ const gpg = __importStar(__nccwpck_require__(88343));
7749377493
const util_1 = __nccwpck_require__(54527);
7749477494
function configureAuthentication() {
7749577495
return __awaiter(this, void 0, void 0, function* () {
77496-
const id = core.getInput(constants.INPUT_SERVER_ID);
77497-
const username = core.getInput(constants.INPUT_SERVER_USERNAME);
77498-
const password = core.getInput(constants.INPUT_SERVER_PASSWORD);
77496+
const numMvnRepos = core.getInput(constants.INPUT_NUM_MVN_REPOS);
77497+
const mvnSettings = [];
7749977498
const settingsDirectory = core.getInput(constants.INPUT_SETTINGS_PATH) ||
7750077499
path.join(os.homedir(), constants.M2_DIR);
7750177500
const overwriteSettings = (0, util_1.getBooleanInput)(constants.INPUT_OVERWRITE_SETTINGS, true);
77502-
const gpgPrivateKey = core.getInput(constants.INPUT_GPG_PRIVATE_KEY) ||
77503-
constants.INPUT_DEFAULT_GPG_PRIVATE_KEY;
77504-
const gpgPassphrase = core.getInput(constants.INPUT_GPG_PASSPHRASE) ||
77505-
(gpgPrivateKey ? constants.INPUT_DEFAULT_GPG_PASSPHRASE : undefined);
77506-
if (gpgPrivateKey) {
77507-
core.setSecret(gpgPrivateKey);
77501+
let gpgPrivateKey;
77502+
if (numMvnRepos === '' || core.getInput(constants.INPUT_GPG_PRIVATE_KEY)) {
77503+
gpgPrivateKey = populateMvnSettings(mvnSettings);
7750877504
}
77509-
yield createAuthenticationSettings(id, username, password, settingsDirectory, overwriteSettings, gpgPassphrase);
77505+
else {
77506+
for (let i = 0; i < parseInt(numMvnRepos); i++) {
77507+
populateMvnSettings(mvnSettings, i);
77508+
}
77509+
}
77510+
yield createAuthenticationSettings(mvnSettings, settingsDirectory, overwriteSettings);
7751077511
if (gpgPrivateKey) {
7751177512
core.info('Importing private gpg key');
7751277513
const keyFingerprint = (yield gpg.importKey(gpgPrivateKey)) || '';
@@ -77515,41 +77516,67 @@ function configureAuthentication() {
7751577516
});
7751677517
}
7751777518
exports.configureAuthentication = configureAuthentication;
77518-
function createAuthenticationSettings(id, username, password, settingsDirectory, overwriteSettings, gpgPassphrase = undefined) {
77519+
function populateMvnSettings(mvnSettings, idx = -1) {
77520+
const id = core.getInput(getIndexedInputName(constants.INPUT_SERVER_ID, idx));
77521+
const username = core.getInput(getIndexedInputName(constants.INPUT_SERVER_USERNAME, idx));
77522+
const password = core.getInput(getIndexedInputName(constants.INPUT_SERVER_PASSWORD, idx));
77523+
if (username !== '' && password !== '') {
77524+
mvnSettings.push({ id: id, username: username, password: password });
77525+
}
77526+
if (idx === -1) {
77527+
const gpgPrivateKey = core.getInput(getIndexedInputName(constants.INPUT_GPG_PRIVATE_KEY, idx)) || constants.INPUT_DEFAULT_GPG_PRIVATE_KEY;
77528+
const gpgPassphrase = core.getInput(getIndexedInputName(constants.INPUT_GPG_PASSPHRASE, idx)) ||
77529+
(gpgPrivateKey ? constants.INPUT_DEFAULT_GPG_PASSPHRASE : undefined);
77530+
if (gpgPrivateKey) {
77531+
core.setSecret(gpgPrivateKey);
77532+
}
77533+
if (gpgPassphrase) {
77534+
mvnSettings.push({ id: 'gpg.passphrase', gpgPassphrase: gpgPassphrase });
77535+
return gpgPrivateKey;
77536+
}
77537+
}
77538+
return undefined;
77539+
}
77540+
function getIndexedInputName(inputName, idx) {
77541+
return inputName + (idx >= 0 ? '-' + idx : '');
77542+
}
77543+
function createAuthenticationSettings(mvnSettings, settingsDirectory, overwriteSettings) {
7751977544
return __awaiter(this, void 0, void 0, function* () {
77520-
core.info(`Creating ${constants.MVN_SETTINGS_FILE} with server-id: ${id}`);
77545+
core.info(`Creating ${constants.MVN_SETTINGS_FILE}`);
7752177546
// when an alternate m2 location is specified use only that location (no .m2 directory)
7752277547
// otherwise use the home/.m2/ path
7752377548
yield io.mkdirP(settingsDirectory);
77524-
yield write(settingsDirectory, generate(id, username, password, gpgPassphrase), overwriteSettings);
77549+
yield write(settingsDirectory, generate(mvnSettings), overwriteSettings);
7752577550
});
7752677551
}
7752777552
exports.createAuthenticationSettings = createAuthenticationSettings;
7752877553
// only exported for testing purposes
77529-
function generate(id, username, password, gpgPassphrase) {
77554+
function generate(mvnSettings) {
7753077555
const xmlObj = {
7753177556
settings: {
7753277557
'@xmlns': 'http://maven.apache.org/SETTINGS/1.0.0',
7753377558
'@xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
7753477559
'@xsi:schemaLocation': 'http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd',
7753577560
servers: {
77536-
server: [
77537-
{
77538-
id: id,
77539-
username: `\${env.${username}}`,
77540-
password: `\${env.${password}}`
77541-
}
77542-
]
77561+
server: []
7754377562
}
7754477563
}
7754577564
};
77546-
if (gpgPassphrase) {
77547-
const gpgServer = {
77548-
id: 'gpg.passphrase',
77549-
passphrase: `\${env.${gpgPassphrase}}`
77550-
};
77551-
xmlObj.settings.servers.server.push(gpgServer);
77552-
}
77565+
mvnSettings.forEach(mvnSetting => {
77566+
if (mvnSetting.username && mvnSetting.password) {
77567+
xmlObj.settings.servers.server.push({
77568+
id: mvnSetting.id,
77569+
username: `\${env.${mvnSetting.username}}`,
77570+
password: `\${env.${mvnSetting.password}}`
77571+
});
77572+
}
77573+
if (mvnSetting.gpgPassphrase) {
77574+
xmlObj.settings.servers.server.push({
77575+
id: mvnSetting.id,
77576+
passphrase: `\${env.${mvnSetting.gpgPassphrase}}`
77577+
});
77578+
}
77579+
});
7755377580
return (0, xmlbuilder2_1.create)(xmlObj).end({
7755477581
headless: true,
7755577582
prettyPrint: true,
@@ -77805,7 +77832,7 @@ function isProbablyGradleDaemonProblem(packageManager, error) {
7780577832
"use strict";
7780677833

7780777834
Object.defineProperty(exports, "__esModule", ({ value: true }));
77808-
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = exports.INPUT_MVN_TOOLCHAIN_VENDOR = exports.INPUT_MVN_TOOLCHAIN_ID = exports.MVN_TOOLCHAINS_FILE = exports.MVN_SETTINGS_FILE = exports.M2_DIR = exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE_DEPENDENCY_PATH = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION_FILE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0;
77835+
exports.DISTRIBUTIONS_ONLY_MAJOR_VERSION = exports.INPUT_MVN_TOOLCHAIN_VENDOR = exports.INPUT_MVN_TOOLCHAIN_ID = exports.MVN_TOOLCHAINS_FILE = exports.MVN_SETTINGS_FILE = exports.M2_DIR = exports.STATE_GPG_PRIVATE_KEY_FINGERPRINT = exports.INPUT_JOB_STATUS = exports.INPUT_CACHE_DEPENDENCY_PATH = exports.INPUT_CACHE = exports.INPUT_DEFAULT_GPG_PASSPHRASE = exports.INPUT_DEFAULT_GPG_PRIVATE_KEY = exports.INPUT_GPG_PASSPHRASE = exports.INPUT_GPG_PRIVATE_KEY = exports.INPUT_OVERWRITE_SETTINGS = exports.INPUT_SETTINGS_PATH = exports.INPUT_SERVER_PASSWORD = exports.INPUT_SERVER_USERNAME = exports.INPUT_SERVER_ID = exports.INPUT_NUM_MVN_REPOS = exports.INPUT_CHECK_LATEST = exports.INPUT_JDK_FILE = exports.INPUT_DISTRIBUTION = exports.INPUT_JAVA_PACKAGE = exports.INPUT_ARCHITECTURE = exports.INPUT_JAVA_VERSION_FILE = exports.INPUT_JAVA_VERSION = exports.MACOS_JAVA_CONTENT_POSTFIX = void 0;
7780977836
exports.MACOS_JAVA_CONTENT_POSTFIX = 'Contents/Home';
7781077837
exports.INPUT_JAVA_VERSION = 'java-version';
7781177838
exports.INPUT_JAVA_VERSION_FILE = 'java-version-file';
@@ -77814,6 +77841,7 @@ exports.INPUT_JAVA_PACKAGE = 'java-package';
7781477841
exports.INPUT_DISTRIBUTION = 'distribution';
7781577842
exports.INPUT_JDK_FILE = 'jdkFile';
7781677843
exports.INPUT_CHECK_LATEST = 'check-latest';
77844+
exports.INPUT_NUM_MVN_REPOS = 'mvn-repositories-len';
7781777845
exports.INPUT_SERVER_ID = 'server-id';
7781877846
exports.INPUT_SERVER_USERNAME = 'server-username';
7781977847
exports.INPUT_SERVER_PASSWORD = 'server-password';

0 commit comments

Comments
 (0)