Support ids

This commit is contained in:
Bryan Clark 2019-11-28 12:40:08 -08:00
parent 1b0417032a
commit b0e5cf270d
3 changed files with 19 additions and 11 deletions

View File

@ -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);

View File

@ -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>

View File

@ -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) {