From f3a8d92d0ed23aa209482ba535e0bd0ef1b8fb71 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 10 Aug 2023 23:33:04 +0100 Subject: [PATCH] feat: add github token for portfolio stats --- .env.example | 8 +++++++- deploy/dev/secrets.yaml | 1 + next.config.js | 1 + src/app/api/portfolio-stats/route.ts | 19 +++++++++++++++++-- src/lib/env.server.ts | 2 ++ 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index 3f50ed26..60c2aa48 100644 --- a/.env.example +++ b/.env.example @@ -47,4 +47,10 @@ DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DB_HOST}:${DB_ REDIS_URL=redis://localhost:6379 -ANONYMOUS_ACCOUNT_PRIVATEKEY= \ No newline at end of file +# Anonymous account + +ANONYMOUS_ACCOUNT_PRIVATEKEY= + +# Portfolio Stats + +PORTFOLIO_GITHUB_TOKEN= diff --git a/deploy/dev/secrets.yaml b/deploy/dev/secrets.yaml index a3e8b332..a87b7e13 100644 --- a/deploy/dev/secrets.yaml +++ b/deploy/dev/secrets.yaml @@ -6,6 +6,7 @@ stringData: NFTSCAN_API_KEY: ${NFTSCAN_API_KEY} OPENAI_API_KEY: ${OPENAI_API_KEY} ANONYMOUS_ACCOUNT_PRIVATEKEY: ${ANONYMOUS_ACCOUNT_PRIVATEKEY} + PORTFOLIO_GITHUB_TOKEN: ${PORTFOLIO_GITHUB_TOKEN} kind: Secret metadata: name: xlog diff --git a/next.config.js b/next.config.js index 39f6a2ad..408cf4ae 100644 --- a/next.config.js +++ b/next.config.js @@ -70,6 +70,7 @@ module.exports = withSentryConfig( ENV_OPENAI_API_KEY: process.env.OPENAI_API_KEY, ENV_ANONYMOUS_ACCOUNT_PRIVATEKEY: process.env.ANONYMOUS_ACCOUNT_PRIVATEKEY, + ENV_PORTFOLIO_GITHUB_TOKEN: process.env.PORTFOLIO_GITHUB_TOKEN, }, async headers() { diff --git a/src/app/api/portfolio-stats/route.ts b/src/app/api/portfolio-stats/route.ts index c429f2a1..8f59f277 100644 --- a/src/app/api/portfolio-stats/route.ts +++ b/src/app/api/portfolio-stats/route.ts @@ -1,5 +1,6 @@ import * as cheerio from "cheerio" +import { PORTFOLIO_GITHUB_TOKEN } from "~/lib/env.server" import { cacheGet } from "~/lib/redis.server" import { NextServerResponse, getQuery } from "~/lib/server-helper" import { PortfolioStats } from "~/lib/types" @@ -81,6 +82,13 @@ export async function GET(req: Request) { `https://api.github.com/repos/${url.pathname.split("/")[1]}/${ url.pathname.split("/")[2] }`, + PORTFOLIO_GITHUB_TOKEN + ? { + headers: { + Authorization: `Bearer ${PORTFOLIO_GITHUB_TOKEN}`, + }, + } + : undefined, ) ).json() const issuesData = await ( @@ -88,12 +96,19 @@ export async function GET(req: Request) { `https://api.github.com/repos/${url.pathname.split("/")[1]}/${ url.pathname.split("/")[2] }/issues`, + PORTFOLIO_GITHUB_TOKEN + ? { + headers: { + Authorization: `Bearer ${PORTFOLIO_GITHUB_TOKEN}`, + }, + } + : undefined, ) ).json() if (repoData?.stargazers_count || issuesData?.[0]?.number) { result = { - projectStarsCount: repoData.stargazers_count, - commentsCount: issuesData[0].number, + projectStarsCount: repoData?.stargazers_count, + commentsCount: issuesData?.[0]?.number, } } break diff --git a/src/lib/env.server.ts b/src/lib/env.server.ts index bb09d19b..c2ea955d 100644 --- a/src/lib/env.server.ts +++ b/src/lib/env.server.ts @@ -17,3 +17,5 @@ export const OPENAI_API_KEY = export const ANONYMOUS_ACCOUNT_PRIVATEKEY = config.ENV_ANONYMOUS_ACCOUNT_PRIVATEKEY || process.env.ANONYMOUS_ACCOUNT_PRIVATEKEY +export const PORTFOLIO_GITHUB_TOKEN = + config.ENV_PORTFOLIO_GITHUB_TOKEN || process.env.PORTFOLIO_GITHUB_TOKEN