From f6abfd274030cedf5b302a2912cef95366435a0b Mon Sep 17 00:00:00 2001 From: julien Lengrand-Lambert Date: Tue, 12 Sep 2023 16:47:06 +0200 Subject: [PATCH] Feat/referrals (#4) * Adding referral paths * Sending stats --- .github/workflows/test.yml | 4 ++-- dist/index.js | 45 +++++++++++++++++++++++++++++++++++++- index.js | 45 +++++++++++++++++++++++++++++++++++++- 3 files changed, 90 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 89edc31..d1af640 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: steps: - name: Grabbing repo stats id: hello - uses: /jlengrand/github-repository-stats-action@main + uses: /jlengrand/github-repository-stats-action@feat/referrals with: access-token: ${{ secrets.ACCESS_TOKEN }} server-url: ${{ secrets.SERVER_URL }} @@ -19,7 +19,7 @@ jobs: steps: - name: Grabbing repo stats id: hello_custom - uses: /jlengrand/github-repository-stats-action@main + uses: /jlengrand/github-repository-stats-action@feat/referrals with: access-token: ${{ secrets.ACCESS_TOKEN }} server-url: ${{ secrets.SERVER_URL }} diff --git a/dist/index.js b/dist/index.js index 4c3ef72..a46c160 100644 --- a/dist/index.js +++ b/dist/index.js @@ -19667,9 +19667,21 @@ async function main() { repo: repo, }) + const referralPaths = await octokit.request('GET /repos/{owner}/{repo}/traffic/popular/paths', { + owner: owner, + repo: repo, + }) + + const referralSources = await octokit.request('GET /repos/{owner}/{repo}/traffic/popular/referrers', { + owner: owner, + repo: repo, + }) + await sendViewsStats(serverUrl, owner, repo, views.data); await sendClonesStats(serverUrl, owner, repo, clones.data); await sendRepoStats(serverUrl, owner, repo, time, repoData.data); + await sendPathsStats(serverUrl, owner, repo, time, referralPaths.data); + await sendSourcesStats(serverUrl, owner, repo, time, referralSources.data); const payload = { owner: owner, @@ -19677,6 +19689,8 @@ async function main() { views: views.data, clones: clones.data, repoData: repoData.data, + referralPaths: referralPaths.data, + referralSources: referralSources.data, time: time } @@ -19687,6 +19701,36 @@ async function main() { } } +async function sendSourcesStats(serverUrl, owner, repo, time, payload) { + const url = `${serverUrl}/api/repositories/${owner}/${repo}/sources`; + + try { + const response = await got_dist_source.post(url, { + json: { + timestamp: time, + payload + }, + }).json(); + } catch (error) { + console.error(error); + } +} + +async function sendPathsStats(serverUrl, owner, repo, time, payload) { + const url = `${serverUrl}/api/repositories/${owner}/${repo}/paths`; + + try { + const response = await got_dist_source.post(url, { + json: { + timestamp: time, + payload + }, + }).json(); + } catch (error) { + console.error(error); + } +} + async function sendViewsStats(serverUrl, owner, repo, payload) { const url = `${serverUrl}/api/repositories/${owner}/${repo}/views`; try { @@ -19733,7 +19777,6 @@ async function sendRepoStats(serverUrl, owner, repo, time, payload) { console.error(error); } - } main(); diff --git a/index.js b/index.js index f1ea642..c90ee01 100644 --- a/index.js +++ b/index.js @@ -52,9 +52,21 @@ async function main() { repo: repo, }) + const referralPaths = await octokit.request('GET /repos/{owner}/{repo}/traffic/popular/paths', { + owner: owner, + repo: repo, + }) + + const referralSources = await octokit.request('GET /repos/{owner}/{repo}/traffic/popular/referrers', { + owner: owner, + repo: repo, + }) + await sendViewsStats(serverUrl, owner, repo, views.data); await sendClonesStats(serverUrl, owner, repo, clones.data); await sendRepoStats(serverUrl, owner, repo, time, repoData.data); + await sendPathsStats(serverUrl, owner, repo, time, referralPaths.data); + await sendSourcesStats(serverUrl, owner, repo, time, referralSources.data); const payload = { owner: owner, @@ -62,6 +74,8 @@ async function main() { views: views.data, clones: clones.data, repoData: repoData.data, + referralPaths: referralPaths.data, + referralSources: referralSources.data, time: time } @@ -72,6 +86,36 @@ async function main() { } } +async function sendSourcesStats(serverUrl, owner, repo, time, payload) { + const url = `${serverUrl}/api/repositories/${owner}/${repo}/sources`; + + try { + const response = await got.post(url, { + json: { + timestamp: time, + payload + }, + }).json(); + } catch (error) { + console.error(error); + } +} + +async function sendPathsStats(serverUrl, owner, repo, time, payload) { + const url = `${serverUrl}/api/repositories/${owner}/${repo}/paths`; + + try { + const response = await got.post(url, { + json: { + timestamp: time, + payload + }, + }).json(); + } catch (error) { + console.error(error); + } +} + async function sendViewsStats(serverUrl, owner, repo, payload) { const url = `${serverUrl}/api/repositories/${owner}/${repo}/views`; try { @@ -118,7 +162,6 @@ async function sendRepoStats(serverUrl, owner, repo, time, payload) { console.error(error); } - } main();