feat: adds compacted by topics
This commit is contained in:
@@ -4,6 +4,10 @@ branding:
|
|||||||
icon: align-justify
|
icon: align-justify
|
||||||
color: yellow
|
color: yellow
|
||||||
inputs:
|
inputs:
|
||||||
|
compact-by-topic:
|
||||||
|
description: 'Generate another page with output compacted by github topics'
|
||||||
|
default: 'false'
|
||||||
|
required: false
|
||||||
api-token:
|
api-token:
|
||||||
description: 'Personal API Token'
|
description: 'Personal API Token'
|
||||||
required: true
|
required: true
|
||||||
|
14
package-lock.json
generated
14
package-lock.json
generated
@@ -12,7 +12,7 @@
|
|||||||
"@actions/core": "^1.8.2",
|
"@actions/core": "^1.8.2",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"ejs": "^3.1.8",
|
"ejs": "^3.1.8",
|
||||||
"gh-star-fetch": "^1.3.0",
|
"gh-star-fetch": "^1.5.0",
|
||||||
"got": "^11.8.1",
|
"got": "^11.8.1",
|
||||||
"remark": "^14.0.2",
|
"remark": "^14.0.2",
|
||||||
"remark-toc": "^8.0.1"
|
"remark-toc": "^8.0.1"
|
||||||
@@ -3856,9 +3856,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/gh-star-fetch": {
|
"node_modules/gh-star-fetch": {
|
||||||
"version": "1.3.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/gh-star-fetch/-/gh-star-fetch-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/gh-star-fetch/-/gh-star-fetch-1.5.0.tgz",
|
||||||
"integrity": "sha512-Y+KXjioTWHGwoUI4domY86VmGXmTxfTPX05e1Uc+tGjuf0dL9tTwOlgmilEQluJ5o6sZIjxspy2ctZAP844N1Q==",
|
"integrity": "sha512-sydnncz2w+r7d2aNXU/o6QeuDzY3ZHSqlNBCbTVoD39LegjW7wGKSkCndycjfXJEfu0ZqUg6lYGaWsPpXmvL5Q==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"got": "^11.8.3",
|
"got": "^11.8.3",
|
||||||
"parse-link-header": "^2.0.0"
|
"parse-link-header": "^2.0.0"
|
||||||
@@ -14325,9 +14325,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gh-star-fetch": {
|
"gh-star-fetch": {
|
||||||
"version": "1.3.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/gh-star-fetch/-/gh-star-fetch-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/gh-star-fetch/-/gh-star-fetch-1.5.0.tgz",
|
||||||
"integrity": "sha512-Y+KXjioTWHGwoUI4domY86VmGXmTxfTPX05e1Uc+tGjuf0dL9tTwOlgmilEQluJ5o6sZIjxspy2ctZAP844N1Q==",
|
"integrity": "sha512-sydnncz2w+r7d2aNXU/o6QeuDzY3ZHSqlNBCbTVoD39LegjW7wGKSkCndycjfXJEfu0ZqUg6lYGaWsPpXmvL5Q==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"got": "^11.8.3",
|
"got": "^11.8.3",
|
||||||
"parse-link-header": "^2.0.0"
|
"parse-link-header": "^2.0.0"
|
||||||
|
@@ -56,7 +56,7 @@
|
|||||||
"@actions/core": "^1.8.2",
|
"@actions/core": "^1.8.2",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"ejs": "^3.1.8",
|
"ejs": "^3.1.8",
|
||||||
"gh-star-fetch": "^1.3.0",
|
"gh-star-fetch": "^1.5.0",
|
||||||
"got": "^11.8.1",
|
"got": "^11.8.1",
|
||||||
"remark": "^14.0.2",
|
"remark": "^14.0.2",
|
||||||
"remark-toc": "^8.0.1"
|
"remark-toc": "^8.0.1"
|
||||||
|
54
src/index.ts
54
src/index.ts
@@ -1,7 +1,11 @@
|
|||||||
import path from 'path';
|
import path from 'path';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import { readFile } from 'fs/promises';
|
import { readFile } from 'fs/promises';
|
||||||
import ghStarFetch from 'gh-star-fetch';
|
import ghStarFetch, {
|
||||||
|
Options,
|
||||||
|
compactByLanguage,
|
||||||
|
compactByTopic,
|
||||||
|
} from 'gh-star-fetch';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
renderer,
|
renderer,
|
||||||
@@ -27,32 +31,56 @@ export async function main() {
|
|||||||
core.info("Couldn't find template file, using default");
|
core.info("Couldn't find template file, using default");
|
||||||
}
|
}
|
||||||
|
|
||||||
const sortedByLanguages = await ghStarFetch({
|
const opts: Partial<Options> = {
|
||||||
accessToken: core.getInput('api-token', { required: true }),
|
accessToken: core.getInput('api-token', { required: true }),
|
||||||
compactByLanguage: true,
|
};
|
||||||
});
|
|
||||||
|
|
||||||
const rendered = await renderer(
|
const results = await ghStarFetch(opts);
|
||||||
|
|
||||||
|
const files = [];
|
||||||
|
|
||||||
|
const compactedByLanguage = compactByLanguage(results);
|
||||||
|
const byLanguage = await renderer(
|
||||||
{
|
{
|
||||||
username: REPO_USERNAME,
|
username: REPO_USERNAME,
|
||||||
stars: Object.entries(sortedByLanguages),
|
stars: Object.entries(compactedByLanguage),
|
||||||
updatedAt: Date.now(),
|
updatedAt: Date.now(),
|
||||||
},
|
},
|
||||||
template
|
template
|
||||||
);
|
);
|
||||||
|
|
||||||
const markdown: string = await generateMd(rendered);
|
files.push(
|
||||||
|
|
||||||
await git.pushNewFiles([
|
|
||||||
{
|
{
|
||||||
filename: MARKDOWN_FILENAME,
|
filename: MARKDOWN_FILENAME,
|
||||||
data: markdown,
|
data: await generateMd(byLanguage),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
filename: 'data.json',
|
filename: 'data.json',
|
||||||
data: JSON.stringify(sortedByLanguages, null, 2),
|
data: JSON.stringify(compactedByLanguage, null, 2),
|
||||||
},
|
}
|
||||||
]);
|
);
|
||||||
|
|
||||||
|
const shouldCompactByTopic =
|
||||||
|
!!core.getInput('compact-by-topic') ||
|
||||||
|
core.getInput('compact-by-topic') === 'true';
|
||||||
|
|
||||||
|
if (shouldCompactByTopic) {
|
||||||
|
const compactedByTopic = compactByTopic(results);
|
||||||
|
const byTopic = await renderer(
|
||||||
|
{
|
||||||
|
username: REPO_USERNAME,
|
||||||
|
stars: Object.entries(compactedByTopic),
|
||||||
|
updatedAt: Date.now(),
|
||||||
|
},
|
||||||
|
template
|
||||||
|
);
|
||||||
|
files.push({
|
||||||
|
filename: 'TOPICS.md',
|
||||||
|
data: await generateMd(byTopic),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
await git.pushNewFiles(files);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function run(): Promise<void> {
|
export async function run(): Promise<void> {
|
||||||
|
Reference in New Issue
Block a user