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);
it('creates settings.xml with username and password', async () => {
const id = 'packages';
const username = 'bluebottle';
const password = 'SingleOrigin';
await auth.configAuthentication(username, password);
await auth.configAuthentication(id, username, password);
expect(fs.existsSync(m2Dir)).toBe(true);
expect(fs.existsSync(settingsFile)).toBe(true);
expect(fs.readFileSync(settingsFile, 'utf-8')).toEqual(
auth.generate(username, password)
auth.generate(id, username, password)
);
}, 100000);
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(settingsFile)).toBe(false);
await auth.configAuthentication('', 'BAR');
await auth.configAuthentication('', 'BAR', '');
expect(fs.existsSync(m2Dir)).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(settingsFile)).toBe(false);

View file

@ -7,13 +7,13 @@ import * as io from '@actions/io';
export const M2_DIR = '.m2';
export const SETTINGS_FILE = 'settings.xml';
export async function configAuthentication(username: string, password: string) {
if (username && password) {
export async function configAuthentication(id: string, username: string, password: string) {
if (id && username && password) {
core.debug(`configAuthentication with ${username} and a password`);
const directory: string = path.join(os.homedir(), M2_DIR);
await io.mkdirP(directory);
core.debug(`created directory ${directory}`);
await write(directory, generate(username, password));
await write(directory, generate(id, username, password));
} else {
core.debug(
`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
export function generate(username: string, password: string) {
export function generate(id: string, username: string, password: string) {
return `
<settings>
<servers>
<server>
<id>${id}</id>
<username>${username}</username>
<password>${password}</password>
</server>

View file

@ -18,11 +18,12 @@ async function run() {
const matchersPath = path.join(__dirname, '..', '.github');
console.log(`##[add-matcher]${path.join(matchersPath, 'java.json')}`);
const id = core.getInput('id', {required: false});
const username = core.getInput('username', {required: false});
const password = core.getInput('password', {required: false});
if (username && password) {
await auth.configAuthentication(username, password);
if (id && username && password) {
await auth.configAuthentication(id, username, password);
}
} catch (error) {