mirror of
https://github.com/NovaGM/ModuleBuilder.git
synced 2024-08-15 00:23:33 +00:00
Add GitHub info to modules.json
This commit is contained in:
parent
ffb3ed56b9
commit
393f194162
6 changed files with 44 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,4 +2,5 @@ node_modules
|
||||||
.cache
|
.cache
|
||||||
|
|
||||||
clones
|
clones
|
||||||
|
src/gh_pat.js
|
||||||
# dist
|
# dist
|
||||||
|
|
|
@ -1,2 +1,4 @@
|
||||||
# MS2Builder
|
# MS2Builder
|
||||||
Builder for Module Store v2.
|
Builder for Module Store v2.
|
||||||
|
|
||||||
|
**To run this yourself, you need to [get your own GitHub Personal Access Token](https://docs.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) and export it in `src/gh_pat.js`.
|
2
dist/modules.json
vendored
2
dist/modules.json
vendored
File diff suppressed because one or more lines are too long
13
package-lock.json
generated
13
package-lock.json
generated
|
@ -1242,6 +1242,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
|
||||||
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
|
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
|
||||||
},
|
},
|
||||||
|
"axios": {
|
||||||
|
"version": "0.21.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
|
||||||
|
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
|
||||||
|
"requires": {
|
||||||
|
"follow-redirects": "^1.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"babel-plugin-dynamic-import-node": {
|
"babel-plugin-dynamic-import-node": {
|
||||||
"version": "2.3.3",
|
"version": "2.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
|
||||||
|
@ -2800,6 +2808,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"follow-redirects": {
|
||||||
|
"version": "1.13.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
|
||||||
|
"integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg=="
|
||||||
|
},
|
||||||
"for-in": {
|
"for-in": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/GooseMod/MS2Builder#readme",
|
"homepage": "https://github.com/GooseMod/MS2Builder#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"axios": "^0.21.1",
|
||||||
"parcel-bundler": "^1.12.4"
|
"parcel-bundler": "^1.12.4"
|
||||||
},
|
},
|
||||||
"alias": {
|
"alias": {
|
||||||
|
|
27
src/index.js
27
src/index.js
|
@ -1,6 +1,7 @@
|
||||||
import ModuleRepos from './modules.js';
|
import ModuleRepos from './modules.js';
|
||||||
|
|
||||||
import Parcel from 'parcel-bundler';
|
import Parcel from 'parcel-bundler';
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
import { rmSync, mkdirSync, readFileSync, writeFileSync, copyFileSync } from 'fs';
|
import { rmSync, mkdirSync, readFileSync, writeFileSync, copyFileSync } from 'fs';
|
||||||
import { createHash } from 'crypto';
|
import { createHash } from 'crypto';
|
||||||
|
@ -8,6 +9,8 @@ import { createHash } from 'crypto';
|
||||||
import { dirname } from 'path';
|
import { dirname } from 'path';
|
||||||
import { fileURLToPath } from 'url';
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
|
import githubPAT from './gh_pat.js';
|
||||||
|
|
||||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
|
|
||||||
const clonesDir = `${__dirname.replace('/src', '')}/clones`;
|
const clonesDir = `${__dirname.replace('/src', '')}/clones`;
|
||||||
|
@ -38,10 +41,27 @@ const parcelOptions = {
|
||||||
|
|
||||||
let moduleJson = [];
|
let moduleJson = [];
|
||||||
|
|
||||||
|
const githubCache = {};
|
||||||
|
|
||||||
|
const getGithubInfo = async (repo) => {
|
||||||
|
if (githubCache[repo]) return githubCache[repo];
|
||||||
|
|
||||||
|
const info = (await axios.get(`https://api.github.com/repos/${repo}`, {
|
||||||
|
headers: {
|
||||||
|
'Authorization': `token ${githubPAT}`
|
||||||
|
}
|
||||||
|
})).data;
|
||||||
|
|
||||||
|
githubCache[repo] = info;
|
||||||
|
return info;
|
||||||
|
};
|
||||||
|
|
||||||
for (const repo of ModuleRepos) {
|
for (const repo of ModuleRepos) {
|
||||||
// console.log(repo);
|
// console.log(repo);
|
||||||
console.time(repo.slice(0, 2).join(' @ ')+`${repo[2] ? ` ${repo[2]}` : ''}`);
|
console.time(repo.slice(0, 2).join(' @ ')+`${repo[2] ? ` ${repo[2]}` : ''}`);
|
||||||
|
|
||||||
|
const githubInfo = await getGithubInfo(repo[0]);
|
||||||
|
|
||||||
const url = `https://github.com/${repo[0]}.git`;
|
const url = `https://github.com/${repo[0]}.git`;
|
||||||
const commitHash = repo[1];
|
const commitHash = repo[1];
|
||||||
|
|
||||||
|
@ -88,7 +108,12 @@ for (const repo of ModuleRepos) {
|
||||||
version: manifest.version,
|
version: manifest.version,
|
||||||
tags: manifest.tags,
|
tags: manifest.tags,
|
||||||
authors: manifest.authors,
|
authors: manifest.authors,
|
||||||
hash: jsHash
|
hash: jsHash,
|
||||||
|
|
||||||
|
github: {
|
||||||
|
stars: githubInfo.stargazers_count,
|
||||||
|
repo: repo[0]
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
console.timeEnd(repo.slice(0, 2).join(' @ ')+`${repo[2] ? ` ${repo[2]}` : ''}`);
|
console.timeEnd(repo.slice(0, 2).join(' @ ')+`${repo[2] ? ` ${repo[2]}` : ''}`);
|
||||||
|
|
Loading…
Reference in a new issue