Support ids
This commit is contained in:
parent
1b0417032a
commit
b0e5cf270d
|
@ -29,30 +29,36 @@ describe('auth tests', () => {
|
||||||
}, 100000);
|
}, 100000);
|
||||||
|
|
||||||
it('creates settings.xml with username and password', async () => {
|
it('creates settings.xml with username and password', async () => {
|
||||||
|
const id = 'packages';
|
||||||
const username = 'bluebottle';
|
const username = 'bluebottle';
|
||||||
const password = 'SingleOrigin';
|
const password = 'SingleOrigin';
|
||||||
|
|
||||||
await auth.configAuthentication(username, password);
|
await auth.configAuthentication(id, username, password);
|
||||||
|
|
||||||
expect(fs.existsSync(m2Dir)).toBe(true);
|
expect(fs.existsSync(m2Dir)).toBe(true);
|
||||||
expect(fs.existsSync(settingsFile)).toBe(true);
|
expect(fs.existsSync(settingsFile)).toBe(true);
|
||||||
expect(fs.readFileSync(settingsFile, 'utf-8')).toEqual(
|
expect(fs.readFileSync(settingsFile, 'utf-8')).toEqual(
|
||||||
auth.generate(username, password)
|
auth.generate(id, username, password)
|
||||||
);
|
);
|
||||||
}, 100000);
|
}, 100000);
|
||||||
|
|
||||||
it('does not create settings.xml without username and / or password', async () => {
|
it('does not create settings.xml without username and / or password', async () => {
|
||||||
await auth.configAuthentication('FOO', '');
|
await auth.configAuthentication('FOO', '', '');
|
||||||
|
|
||||||
expect(fs.existsSync(m2Dir)).toBe(false);
|
expect(fs.existsSync(m2Dir)).toBe(false);
|
||||||
expect(fs.existsSync(settingsFile)).toBe(false);
|
expect(fs.existsSync(settingsFile)).toBe(false);
|
||||||
|
|
||||||
await auth.configAuthentication('', 'BAR');
|
await auth.configAuthentication('', 'BAR', '');
|
||||||
|
|
||||||
expect(fs.existsSync(m2Dir)).toBe(false);
|
expect(fs.existsSync(m2Dir)).toBe(false);
|
||||||
expect(fs.existsSync(settingsFile)).toBe(false);
|
expect(fs.existsSync(settingsFile)).toBe(false);
|
||||||
|
|
||||||
await auth.configAuthentication('', ''); // BAZ!!!
|
await auth.configAuthentication('', '', 'BAZ');
|
||||||
|
|
||||||
|
expect(fs.existsSync(m2Dir)).toBe(false);
|
||||||
|
expect(fs.existsSync(settingsFile)).toBe(false);
|
||||||
|
|
||||||
|
await auth.configAuthentication('', '', '');
|
||||||
|
|
||||||
expect(fs.existsSync(m2Dir)).toBe(false);
|
expect(fs.existsSync(m2Dir)).toBe(false);
|
||||||
expect(fs.existsSync(settingsFile)).toBe(false);
|
expect(fs.existsSync(settingsFile)).toBe(false);
|
||||||
|
|
|
@ -7,13 +7,13 @@ import * as io from '@actions/io';
|
||||||
export const M2_DIR = '.m2';
|
export const M2_DIR = '.m2';
|
||||||
export const SETTINGS_FILE = 'settings.xml';
|
export const SETTINGS_FILE = 'settings.xml';
|
||||||
|
|
||||||
export async function configAuthentication(username: string, password: string) {
|
export async function configAuthentication(id: string, username: string, password: string) {
|
||||||
if (username && password) {
|
if (id && username && password) {
|
||||||
core.debug(`configAuthentication with ${username} and a password`);
|
core.debug(`configAuthentication with ${username} and a password`);
|
||||||
const directory: string = path.join(os.homedir(), M2_DIR);
|
const directory: string = path.join(os.homedir(), M2_DIR);
|
||||||
await io.mkdirP(directory);
|
await io.mkdirP(directory);
|
||||||
core.debug(`created directory ${directory}`);
|
core.debug(`created directory ${directory}`);
|
||||||
await write(directory, generate(username, password));
|
await write(directory, generate(id, username, password));
|
||||||
} else {
|
} else {
|
||||||
core.debug(
|
core.debug(
|
||||||
`no auth without username: ${username} and password: ${password}`
|
`no auth without username: ${username} and password: ${password}`
|
||||||
|
@ -22,11 +22,12 @@ export async function configAuthentication(username: string, password: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// only exported for testing purposes
|
// only exported for testing purposes
|
||||||
export function generate(username: string, password: string) {
|
export function generate(id: string, username: string, password: string) {
|
||||||
return `
|
return `
|
||||||
<settings>
|
<settings>
|
||||||
<servers>
|
<servers>
|
||||||
<server>
|
<server>
|
||||||
|
<id>${id}</id>
|
||||||
<username>${username}</username>
|
<username>${username}</username>
|
||||||
<password>${password}</password>
|
<password>${password}</password>
|
||||||
</server>
|
</server>
|
||||||
|
|
|
@ -18,11 +18,12 @@ async function run() {
|
||||||
const matchersPath = path.join(__dirname, '..', '.github');
|
const matchersPath = path.join(__dirname, '..', '.github');
|
||||||
console.log(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
|
console.log(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
|
||||||
|
|
||||||
|
const id = core.getInput('id', {required: false});
|
||||||
const username = core.getInput('username', {required: false});
|
const username = core.getInput('username', {required: false});
|
||||||
const password = core.getInput('password', {required: false});
|
const password = core.getInput('password', {required: false});
|
||||||
|
|
||||||
if (username && password) {
|
if (id && username && password) {
|
||||||
await auth.configAuthentication(username, password);
|
await auth.configAuthentication(id, username, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
Loading…
Reference in New Issue