Merge pull request #4037 from thelounge/xpaw/rm-graphql-request
Remove `graphql-request` dependency from changelog script
This commit is contained in:
commit
c29ae50392
@ -88,7 +88,6 @@
|
|||||||
"eslint-config-prettier": "6.11.0",
|
"eslint-config-prettier": "6.11.0",
|
||||||
"eslint-plugin-vue": "6.2.2",
|
"eslint-plugin-vue": "6.2.2",
|
||||||
"fuzzy": "0.1.3",
|
"fuzzy": "0.1.3",
|
||||||
"graphql-request": "1.8.2",
|
|
||||||
"husky": "4.2.5",
|
"husky": "4.2.5",
|
||||||
"mini-css-extract-plugin": "0.10.0",
|
"mini-css-extract-plugin": "0.10.0",
|
||||||
"mocha": "8.1.1",
|
"mocha": "8.1.1",
|
||||||
|
@ -49,7 +49,7 @@ const _ = require("lodash");
|
|||||||
const colors = require("chalk");
|
const colors = require("chalk");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const GraphQLClient = require("graphql-request").GraphQLClient;
|
const got = require("got");
|
||||||
const dayjs = require("dayjs");
|
const dayjs = require("dayjs");
|
||||||
const semver = require("semver");
|
const semver = require("semver");
|
||||||
const util = require("util");
|
const util = require("util");
|
||||||
@ -236,19 +236,31 @@ function fullChangelogUrl(v1, v2) {
|
|||||||
// This class is a facade to fetching details about commits / PRs / tags / etc.
|
// This class is a facade to fetching details about commits / PRs / tags / etc.
|
||||||
// for a given repository of our organization.
|
// for a given repository of our organization.
|
||||||
class RepositoryFetcher {
|
class RepositoryFetcher {
|
||||||
// Holds a GraphQLClient and the name of the repository within the
|
// Holds a Github token and repository name
|
||||||
// organization https://github.com/thelounge.
|
constructor(githubToken, repositoryName) {
|
||||||
constructor(graphqlClient, repositoryName) {
|
this.githubToken = githubToken;
|
||||||
this.graphqlClient = graphqlClient;
|
|
||||||
this.repositoryName = repositoryName;
|
this.repositoryName = repositoryName;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Base function that actually makes the GraphQL API call
|
// Base function that actually makes the GraphQL API call
|
||||||
async fetch(query, variables = {}) {
|
async fetch(query, variables = {}) {
|
||||||
return this.graphqlClient.request(
|
const response = await got
|
||||||
query,
|
.post("https://api.github.com/graphql", {
|
||||||
Object.assign(variables, {repositoryName: this.repositoryName})
|
json: {
|
||||||
);
|
query: query,
|
||||||
|
variables: Object.assign(variables, {repositoryName: this.repositoryName}),
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${this.githubToken}`,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.json();
|
||||||
|
|
||||||
|
if (!response.errors && response.data) {
|
||||||
|
return response.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(`GraphQL request returned no data: ${JSON.stringify(response)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the git commit that is attached to a given tag
|
// Returns the git commit that is attached to a given tag
|
||||||
@ -789,12 +801,6 @@ function extractContributors(entries) {
|
|||||||
return Array.from(set).sort((a, b) => a.localeCompare(b, "en", {sensitivity: "base"}));
|
return Array.from(set).sort((a, b) => a.localeCompare(b, "en", {sensitivity: "base"}));
|
||||||
}
|
}
|
||||||
|
|
||||||
const client = new GraphQLClient("https://api.github.com/graphql", {
|
|
||||||
headers: {
|
|
||||||
Authorization: `bearer ${token}`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// Main function. Given a version string (i.e. not a tag!), returns a changelog
|
// Main function. Given a version string (i.e. not a tag!), returns a changelog
|
||||||
// entry and the list of contributors, for both pre-releases and stable
|
// entry and the list of contributors, for both pre-releases and stable
|
||||||
// releases. Templates are located at the top of this file.
|
// releases. Templates are located at the top of this file.
|
||||||
@ -803,7 +809,7 @@ async function generateChangelogEntry(changelog, targetVersion) {
|
|||||||
let template;
|
let template;
|
||||||
let contributors = [];
|
let contributors = [];
|
||||||
|
|
||||||
const codeRepo = new RepositoryFetcher(client, "thelounge");
|
const codeRepo = new RepositoryFetcher(token, "thelounge");
|
||||||
const previousVersion = await codeRepo.fetchPreviousVersion(targetVersion);
|
const previousVersion = await codeRepo.fetchPreviousVersion(targetVersion);
|
||||||
|
|
||||||
if (isPrerelease(targetVersion)) {
|
if (isPrerelease(targetVersion)) {
|
||||||
@ -817,7 +823,7 @@ async function generateChangelogEntry(changelog, targetVersion) {
|
|||||||
items = parse(codeCommitsAndPullRequests);
|
items = parse(codeCommitsAndPullRequests);
|
||||||
items.milestone = await codeRepo.fetchMilestone(targetVersion);
|
items.milestone = await codeRepo.fetchMilestone(targetVersion);
|
||||||
|
|
||||||
const websiteRepo = new RepositoryFetcher(client, "thelounge.github.io");
|
const websiteRepo = new RepositoryFetcher(token, "thelounge.github.io");
|
||||||
const previousWebsiteVersion = await websiteRepo.fetchPreviousVersion(targetVersion);
|
const previousWebsiteVersion = await websiteRepo.fetchPreviousVersion(targetVersion);
|
||||||
const websiteCommitsAndPullRequests = await websiteRepo.fetchCommitsAndPullRequestsSince(
|
const websiteCommitsAndPullRequests = await websiteRepo.fetchCommitsAndPullRequestsSince(
|
||||||
"v" + previousWebsiteVersion
|
"v" + previousWebsiteVersion
|
||||||
|
25
yarn.lock
25
yarn.lock
@ -2575,14 +2575,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
|
|||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.0.1"
|
||||||
sha.js "^2.4.8"
|
sha.js "^2.4.8"
|
||||||
|
|
||||||
cross-fetch@2.2.2:
|
|
||||||
version "2.2.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723"
|
|
||||||
integrity sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=
|
|
||||||
dependencies:
|
|
||||||
node-fetch "2.1.2"
|
|
||||||
whatwg-fetch "2.0.4"
|
|
||||||
|
|
||||||
cross-spawn@^6.0.5:
|
cross-spawn@^6.0.5:
|
||||||
version "6.0.5"
|
version "6.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
||||||
@ -4157,13 +4149,6 @@ grapheme-splitter@^1.0.4:
|
|||||||
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
|
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
|
||||||
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
|
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
|
||||||
|
|
||||||
graphql-request@1.8.2:
|
|
||||||
version "1.8.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe"
|
|
||||||
integrity sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==
|
|
||||||
dependencies:
|
|
||||||
cross-fetch "2.2.2"
|
|
||||||
|
|
||||||
growl@1.10.5:
|
growl@1.10.5:
|
||||||
version "1.10.5"
|
version "1.10.5"
|
||||||
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
|
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
|
||||||
@ -5957,11 +5942,6 @@ node-addon-api@2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.0.tgz#f9afb8d777a91525244b01775ea0ddbe1125483b"
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.0.tgz#f9afb8d777a91525244b01775ea0ddbe1125483b"
|
||||||
integrity sha512-ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==
|
integrity sha512-ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==
|
||||||
|
|
||||||
node-fetch@2.1.2:
|
|
||||||
version "2.1.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5"
|
|
||||||
integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=
|
|
||||||
|
|
||||||
node-forge@0.9.1:
|
node-forge@0.9.1:
|
||||||
version "0.9.1"
|
version "0.9.1"
|
||||||
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.1.tgz#775368e6846558ab6676858a4d8c6e8d16c677b5"
|
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.1.tgz#775368e6846558ab6676858a4d8c6e8d16c677b5"
|
||||||
@ -9695,11 +9675,6 @@ webpack@4.44.1:
|
|||||||
watchpack "^1.7.4"
|
watchpack "^1.7.4"
|
||||||
webpack-sources "^1.4.1"
|
webpack-sources "^1.4.1"
|
||||||
|
|
||||||
whatwg-fetch@2.0.4:
|
|
||||||
version "2.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"
|
|
||||||
integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==
|
|
||||||
|
|
||||||
which-module@^2.0.0:
|
which-module@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
||||||
|
Loading…
Reference in New Issue
Block a user