From 15a2c27da7ef7923c3e3266718c66cb430a052c0 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Thu, 26 Oct 2017 16:30:54 +0200 Subject: [PATCH] allow passing full URLs on the command line (#6) i.e. make `get-metadata https://github.com/nodejs/node/pull/16489` work --- bin/metadata.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/bin/metadata.js b/bin/metadata.js index 39da3fe7..92617495 100755 --- a/bin/metadata.js +++ b/bin/metadata.js @@ -25,7 +25,7 @@ const MetadataGenerator = require('../lib/metadata_gen'); const OWNER = 'nodejs'; const REPO = 'node'; -const PR_ID = parseInt(process.argv[2]); // example +const PR_ID = parsePRId(process.argv[2]); async function main(prid, owner, repo) { logger.trace(`Getting collaborator contacts from README of ${owner}/${repo}`); @@ -68,3 +68,13 @@ main(PR_ID, OWNER, REPO).catch((err) => { logger.error(err); process.exit(-1); }); + +function parsePRId(id) { + // Fast path: numeric string + if (`${+id}` === id) + return +id; + const match = id.match(/^https:.*\/pull\/([0-9]+)(?:\/(?:files)?)?$/); + if (match !== null) + return +match[1]; + throw new Error(`Could not understand PR id format: ${id}`); +}