From bcc355439e2ba5f96cc62e1ca473fc3a8bd0dd3e Mon Sep 17 00:00:00 2001 From: Gregor Martynus <39992+gr2m@users.noreply.github.com> Date: Fri, 22 Jan 2021 07:41:57 -0800 Subject: [PATCH] feat: use `pino` for logging --- index.js | 17 ++++++++++----- package-lock.json | 54 ++++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 3 files changed, 66 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index 5425ae3..82ab813 100644 --- a/index.js +++ b/index.js @@ -6,19 +6,26 @@ const { Octokit: OctokitCore } = require("@octokit/core"); const { paginateRest } = require("@octokit/plugin-paginate-rest"); const { throttling } = require("@octokit/plugin-throttling"); const { retry } = require("@octokit/plugin-retry"); +const pino = require("pino"); const { cache: octokitCachePlugin } = require("./lib/octokit-plugin-cache"); const { resolveRepositories } = require("./lib/resolve-repositories"); const { name, version } = require("./package.json"); +const logger = pino(); const Octokit = OctokitCore.plugin(paginateRest, throttling, retry).defaults({ - log: console, + log: { + debug: logger.debug.bind(logger), + info: logger.info.bind(logger), + warn: logger.warn.bind(logger), + error: logger.error.bind(logger), + }, userAgent: [name, version].join("/"), throttle: { - onAbuseLimit: (error, options) => { + onAbuseLimit: (error, options, octokit) => { octokit.log.error("onAbuseLimit", error, options); }, - onRateLimit: (error, options) => { + onRateLimit: (error, options, octokit) => { octokit.log.error("onRateLimit", error, options); }, }, @@ -69,9 +76,9 @@ async function octoherd( const repositories = await resolveRepositories(state, repos); for (const repository of repositories) { - console.log("Running %s on %s...", script, repository.full_name); + octokit.log.info("Running %s on %s...", script, repository.full_name); await userScript(octokit, repository, userOptions); } - console.log("\ndone."); + octokit.log.info("done"); } diff --git a/package-lock.json b/package-lock.json index 6f6a57a..bee578f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@octoherd/cli", - "version": "1.0.0", + "version": "0.0.0-development", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -440,6 +440,11 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, "before-after-hook": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", @@ -899,6 +904,16 @@ "picomatch": "^2.2.1" } }, + "fast-redact": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.0.tgz", + "integrity": "sha512-a/S/Hp6aoIjx7EmugtzLqXmcNsyFszqbt6qQ99BdG61QjBZF6shNis0BYR6TsZOQ1twYc0FN2Xdhwwbv6+KD0w==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, "fastq": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", @@ -944,6 +959,11 @@ "semver-regex": "^2.0.0" } }, + "flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -5301,6 +5321,24 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, + "pino": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.10.0.tgz", + "integrity": "sha512-ZFGE/Wq930gFb1h0RI6S/QOfkyzNj94Xubwlyo4XpxNUgrG1C0iEqnlooG5Fymx6yrUUtEJ8j/u8NCGwgwTXaQ==", + "requires": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.7", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "quick-format-unescaped": "^4.0.1", + "sonic-boom": "^1.0.2" + } + }, + "pino-std-serializers": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.1.1.tgz", + "integrity": "sha512-Ud4+WzgEr/swOlfQdkxqKP2hlwuQlIqQ5YwYpo9MczNg2mpsKKyKgwQXW5KnP5tgH3/Cy9QRhAhLM8k1K+gfnA==" + }, "pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", @@ -5384,6 +5422,11 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, + "quick-format-unescaped": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz", + "integrity": "sha512-RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==" + }, "quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -5652,6 +5695,15 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "sonic-boom": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.3.0.tgz", + "integrity": "sha512-4nX6OYvOYr6R76xfQKi6cZpTO3YSWe/vd+QdIfoH0lBy0MnPkeAbb2rRWgmgADkXUeCKPwO1FZAKlAVWAadELw==", + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", diff --git a/package.json b/package.json index b762251..0671f63 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@octokit/plugin-throttling": "^3.3.0", "jsonfile": "^6.0.1", "mkdirp": "^1.0.4", + "pino": "^6.10.0", "yargs": "^15.4.1" }, "devDependencies": {