Keep only external links checks

This commit is contained in:
Julien Bisconti 2020-11-08 21:47:56 +01:00
parent dbc64b2f91
commit 42da7067e8
2 changed files with 12 additions and 58 deletions

View File

@ -2,6 +2,17 @@
<!-- **Remember that entries are ordered alphabetically** --> <!-- **Remember that entries are ordered alphabetically** -->
<!--
TLDR:
* all entries sorted alphabetically,
* If paying service add :heavy_dollar_sign:
* If WIP add :construction:
* clear and short description of the project
* project MUST have: How to setup/install
* project MUST have: How to use (examples)
* we can help you get there :)
-->
# Quality Standards # Quality Standards
Note that we can help you achieve those standards, just try your best and be brave. Note that we can help you achieve those standards, just try your best and be brave.

View File

@ -2,16 +2,11 @@ const fs = require('fs-extra');
const fetch = require('node-fetch'); const fetch = require('node-fetch');
const exclude = require('./exclude_in_test.json'); const exclude = require('./exclude_in_test.json');
function envvar_undefined(variable_name) {
throw new Error(`${variable_name} must be defined`);
}
console.log({ console.log({
DEBUG: process.env.DEBUG || false, DEBUG: process.env.DEBUG || false,
}); });
const README = 'README.md'; const README = 'README.md';
const GITHUB_GQL_API = 'https://api.github.com/graphql';
const TOKEN = process.env.GITHUB_TOKEN || envvar_undefined('GITHUB_TOKEN');
const LINKS_OPTIONS = { const LINKS_OPTIONS = {
redirect: 'error', redirect: 'error',
@ -22,18 +17,6 @@ const LINKS_OPTIONS = {
}, },
}; };
const Authorization = `token ${TOKEN}`;
const make_GQL_options = (query) => ({
method: 'POST',
headers: {
Authorization,
'Content-Type': 'application/json',
'user-agent':
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',
},
body: JSON.stringify({ query }),
});
const LOG = { const LOG = {
error: (...args) => console.error('❌ ERROR', args), error: (...args) => console.error('❌ ERROR', args),
@ -108,33 +91,6 @@ const extract_repos = (arr) =>
.map((e) => e.substr('https://github.com/'.length).split('/')) .map((e) => e.substr('https://github.com/'.length).split('/'))
.filter((r) => r.length === 2 && r[1] !== ''); .filter((r) => r.length === 2 && r[1] !== '');
const generate_GQL_query = (arr) =>
`query AWESOME_REPOS{ ${arr
.map(
([owner, name]) =>
`repo_${owner.replace(/(-|\.)/g, '_')}_${name.replace(
/(-|\.)/g,
'_',
)}: repository(owner: "${owner}", name:"${name}"){ nameWithOwner } `,
)
.join('')} }`;
// =============================================================
// const batch_github_repos = async (github_links) => {
// const BATCH_SIZE = 50;
// const repos = extract_repos(github_links);
// for (let i = 0; i < repos.length; i += BATCH_SIZE) {
// const batch = repos.slice(i, i + BATCH_SIZE);
// const query = generate_GQL_query(batch);
// LOG.debug({ query });
// const gql_response = await fetch(
// 'https://api.github.com/graphql',
// make_GQL_options(query),
// ).then((r) => r.json());
// LOG.debug({ gql_response });
// }
// };
// =============================================================
const exclude_length = exclude.length; const exclude_length = exclude.length;
const exclude_from_list = (link) => { const exclude_from_list = (link) => {
@ -153,7 +109,6 @@ async function main() {
show: false, show: false,
duplicates: '', duplicates: '',
other_links_error: '', other_links_error: '',
github_repos: '',
}; };
const markdown = await fs.readFile(README, 'utf8'); const markdown = await fs.readFile(README, 'utf8');
let links = extract_all_links(markdown); let links = extract_all_links(markdown);
@ -189,20 +144,8 @@ async function main() {
console.log(`checking ${github_links.length} GitHub repositories...`); console.log(`checking ${github_links.length} GitHub repositories...`);
const repos = extract_repos(github_links);
const query = generate_GQL_query(repos);
const options = make_GQL_options(query);
const gql_response = await fetch(GITHUB_GQL_API, options).then((r) =>
r.json(),
);
if (gql_response.errors) {
has_error.show = true;
has_error.github_repos = gql_response.errors;
}
console.log({ console.log({
TEST_PASSED: has_error.show, TEST_PASSED: !has_error.show,
GITHUB_REPOSITORY: github_links.length,
EXTERNAL_LINKS: external_links.length, EXTERNAL_LINKS: external_links.length,
}); });