chore: Update docs after a release (#32757)
parent
0adc63d14d
commit
f2cb691d20
@ -0,0 +1,24 @@ |
||||
name: Update Version Durability |
||||
description: Update Version Durability page on Document360 |
||||
|
||||
inputs: |
||||
GH_TOKEN: |
||||
required: true |
||||
description: GitHub API Token |
||||
type: string |
||||
D360_TOKEN: |
||||
required: true |
||||
description: Document360 API Token |
||||
type: string |
||||
D360_ARTICLE_ID: |
||||
required: true |
||||
description: Document360 Article ID |
||||
type: string |
||||
PUBLISH: |
||||
required: true |
||||
description: Publish Draft |
||||
type: boolean |
||||
|
||||
runs: |
||||
using: node20 |
||||
main: index.js |
||||
@ -0,0 +1,217 @@ |
||||
import 'colors'; |
||||
import axios from 'axios'; |
||||
import * as Diff from 'diff'; |
||||
import semver from 'semver'; |
||||
import crypto from 'crypto'; |
||||
import fs from 'fs/promises'; |
||||
import BeautyHtml from 'beauty-html'; |
||||
import { DOMParser } from 'xmldom'; |
||||
import core from '@actions/core'; |
||||
import { Octokit } from '@octokit/rest'; |
||||
|
||||
const D360_TOKEN = core.getInput('D360_TOKEN'); |
||||
const D360_ARTICLE_ID = core.getInput('D360_ARTICLE_ID'); |
||||
const PUBLISH = core.getInput('PUBLISH') === 'true'; |
||||
|
||||
const octokit = new Octokit({ |
||||
auth: core.getInput('GH_TOKEN'), |
||||
}); |
||||
|
||||
|
||||
async function requestDocument360(method = 'get', api, data = {}) { |
||||
return axios.request({ |
||||
method, |
||||
maxBodyLength: Infinity, |
||||
url: `https://apihub.us.document360.io/v1/${api}`, |
||||
headers: { |
||||
'accept': 'application/json', |
||||
'api_token': D360_TOKEN, |
||||
}, |
||||
data, |
||||
}); |
||||
} |
||||
|
||||
function md5(text) { |
||||
return crypto.createHash('md5').update(text).digest("hex"); |
||||
} |
||||
|
||||
async function generateTable({ owner, repo } = {}) { |
||||
const response = await requestDocument360('get', `Articles/${D360_ARTICLE_ID}/en`); |
||||
|
||||
// console.log(response.data.data);
|
||||
|
||||
// const releasesResult = JSON.parse(await fs.readFile('/tmp/releasesResult'));
|
||||
const releasesResult = await octokit.paginate(octokit.repos.listReleases.endpoint.merge({ owner, repo, per_page: 100 })); |
||||
// await fs.writeFile('/tmp/releasesResult', JSON.stringify(releasesResult));
|
||||
|
||||
const releases = releasesResult |
||||
.filter((release) => !release.tag_name.includes('-rc') && semver.gte(release.tag_name, '1.0.0')) |
||||
.sort((a, b) => semver.compare(b.tag_name, a.tag_name)); |
||||
|
||||
const releasesMap = {}; |
||||
|
||||
for (const release of releases) { |
||||
release.releaseDate = new Date(release.published_at); |
||||
|
||||
releasesMap[release.tag_name] = release; |
||||
} |
||||
|
||||
let index = 0; |
||||
// eslint-disable-next-line no-constant-condition
|
||||
while (true) { |
||||
const release = releases[index]; |
||||
|
||||
release.minor_tag = release.tag_name.replace(/\.\d+$/, ''); |
||||
release.minorRelease = releasesMap[`${release.minor_tag}.0`]; |
||||
|
||||
if (!releases[index + 1]) { |
||||
break; |
||||
} |
||||
|
||||
const currentVersion = semver.parse(release.tag_name); |
||||
const previousVersion = semver.parse(releases[index + 1].tag_name); |
||||
|
||||
releases[index + 1].nextRelease = release; |
||||
|
||||
// Remove duplicated due to patches
|
||||
if (currentVersion.major === previousVersion.major && currentVersion.minor === previousVersion.minor) { |
||||
releases.splice(index + 1, 1); |
||||
continue; |
||||
} |
||||
|
||||
index++; |
||||
} |
||||
|
||||
releases[0].last = true; |
||||
|
||||
const releaseData = []; |
||||
|
||||
for (const { tag_name, html_url, lts, last, nextRelease, minorRelease, minor_tag} of releases) { |
||||
let supportDate; |
||||
let supportDateStart; |
||||
|
||||
let releasedAt = new Date(minorRelease.releaseDate); |
||||
releasedAt.setDate(1); |
||||
|
||||
let minorDate = new Date(minorRelease.releaseDate); |
||||
minorDate.setDate(1); |
||||
supportDateStart = minorDate; |
||||
supportDate = new Date(minorDate); |
||||
supportDate.setMonth(supportDate.getMonth() + (lts ? 6 : 6)); |
||||
|
||||
releaseData.push({ |
||||
release: { |
||||
version: minor_tag, |
||||
releasedAt, |
||||
extendedSupport: { |
||||
start: supportDateStart, |
||||
end: supportDate, |
||||
}, |
||||
lts: lts === true, |
||||
}, |
||||
latestPatch: { |
||||
version: tag_name, |
||||
url: html_url, |
||||
} |
||||
}) |
||||
} |
||||
|
||||
function header({data, salt = ''}) { |
||||
return [ |
||||
'<th colspan="1" data-vertical-align="middle" data-horizontal-align="left" rowspan="1" style="vertical-align:middle;text-align:left;">', |
||||
`<p data-block-id="${md5(salt+data)}">${data}</p>`, |
||||
'</th>', |
||||
].join(''); |
||||
} |
||||
|
||||
function line({data, salt = ''}) { |
||||
return [ |
||||
'<td colspan="1" rowspan="1" data-vertical-align="middle" data-horizontal-align="left" style="vertical-align:middle;text-align:left;">', |
||||
`<p data-block-id="${md5(salt+data)}">${data}</p>`, |
||||
'</td>', |
||||
].join(''); |
||||
} |
||||
|
||||
const text = [ |
||||
'<tr>', |
||||
header({data: 'Rocket.Chat Release'}), |
||||
header({data: 'Released At'}), |
||||
header({data: 'End of Life'}), |
||||
'</tr>', |
||||
]; |
||||
|
||||
releaseData.forEach(({release, latestPatch}) => { |
||||
const releasedAt = release.releasedAt.toLocaleString('en', { month: 'short', year: "numeric" }); |
||||
const endOfLife = !release.extendedSupport |
||||
? 'TBD' |
||||
: release.extendedSupport.end.toLocaleString('en', { month: 'short', year: "numeric" }); |
||||
const link = `${release.version} (<a href="${latestPatch.url}" target="_blank" translate="no">${latestPatch.version}</a>)`; |
||||
|
||||
text.push( |
||||
'<tr>', |
||||
line({data: link}), |
||||
line({data: releasedAt, salt: release.version}), |
||||
line({data: endOfLife, salt: release.version}), |
||||
'</tr>', |
||||
); |
||||
}); |
||||
|
||||
const content = response.data.data.html_content.replace(/<tbody>.+(\n.+)*<\/tbody>/m, `<tbody>${text.join('').replace(/\t|\n/g, '')}</tbody>`) |
||||
|
||||
// console.log(content);
|
||||
|
||||
const parser = new BeautyHtml({ parser: DOMParser }); |
||||
const diff = Diff.diffLines(parser.beautify(response.data.data.html_content), parser.beautify(content), { ignoreWhitespace: true, newlineIsToken: false }); |
||||
diff.forEach((item) => { |
||||
let color = 'green'; |
||||
|
||||
if (item.removed) { |
||||
color = 'red'; |
||||
} |
||||
|
||||
if (item.removed || item.added) { |
||||
item.value.split('\n').forEach((line) => { |
||||
if (line === '') { return }; |
||||
console.log(`${item.removed ? '-' : '+'} ${line}`[color]); |
||||
}) |
||||
} |
||||
}); |
||||
|
||||
if (diff.length === 1) { |
||||
console.log('No changes found'); |
||||
return; |
||||
} |
||||
|
||||
if (response.data.data.status === 3) { |
||||
console.log('forking article', response.data.data.version_number); |
||||
|
||||
const forkResponse = await requestDocument360('put', `Articles/${D360_ARTICLE_ID}/fork`, { |
||||
lang_code: "en", |
||||
user_id: "2511fd00-9558-4826-8d8c-4cc0c110f89c", |
||||
version_number: response.data.data.version_number, |
||||
}); |
||||
|
||||
console.log(forkResponse.data); |
||||
} |
||||
|
||||
console.log('Updating article'); |
||||
const updateResponse = await requestDocument360('put', `Articles/${D360_ARTICLE_ID}/en`, { |
||||
content, |
||||
}); |
||||
|
||||
console.log(updateResponse.data); |
||||
|
||||
if (PUBLISH) { |
||||
console.log('publishing article', updateResponse.data.data.version_number); |
||||
|
||||
const forkResponse = await requestDocument360('post', `Articles/${D360_ARTICLE_ID}/en/publish`, { |
||||
user_id: "2511fd00-9558-4826-8d8c-4cc0c110f89c", |
||||
version_number: updateResponse.data.data.version_number, |
||||
publish_message: 'Update support versions table via GitHub Action', |
||||
}); |
||||
|
||||
console.log(forkResponse.data); |
||||
} |
||||
} |
||||
|
||||
generateTable({ owner: 'RocketChat', repo: 'Rocket.Chat' }); |
||||
@ -0,0 +1,378 @@ |
||||
{ |
||||
"name": "scripts", |
||||
"version": "1.0.0", |
||||
"lockfileVersion": 1, |
||||
"requires": true, |
||||
"dependencies": { |
||||
"@actions/core": { |
||||
"version": "1.10.1", |
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", |
||||
"integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", |
||||
"requires": { |
||||
"@actions/http-client": "^2.0.1", |
||||
"uuid": "^8.3.2" |
||||
} |
||||
}, |
||||
"@actions/github": { |
||||
"version": "6.0.0", |
||||
"resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz", |
||||
"integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==", |
||||
"requires": { |
||||
"@actions/http-client": "^2.2.0", |
||||
"@octokit/core": "^5.0.1", |
||||
"@octokit/plugin-paginate-rest": "^9.0.0", |
||||
"@octokit/plugin-rest-endpoint-methods": "^10.0.0" |
||||
}, |
||||
"dependencies": { |
||||
"@octokit/openapi-types": { |
||||
"version": "20.0.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", |
||||
"integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" |
||||
}, |
||||
"@octokit/plugin-paginate-rest": { |
||||
"version": "9.2.1", |
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", |
||||
"integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", |
||||
"requires": { |
||||
"@octokit/types": "^12.6.0" |
||||
} |
||||
}, |
||||
"@octokit/plugin-rest-endpoint-methods": { |
||||
"version": "10.4.1", |
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", |
||||
"integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", |
||||
"requires": { |
||||
"@octokit/types": "^12.6.0" |
||||
} |
||||
}, |
||||
"@octokit/types": { |
||||
"version": "12.6.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", |
||||
"integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", |
||||
"requires": { |
||||
"@octokit/openapi-types": "^20.0.0" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"@actions/http-client": { |
||||
"version": "2.2.1", |
||||
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", |
||||
"integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", |
||||
"requires": { |
||||
"tunnel": "^0.0.6", |
||||
"undici": "^5.25.4" |
||||
} |
||||
}, |
||||
"@fastify/busboy": { |
||||
"version": "2.1.1", |
||||
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", |
||||
"integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==" |
||||
}, |
||||
"@octokit/auth-token": { |
||||
"version": "4.0.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", |
||||
"integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==" |
||||
}, |
||||
"@octokit/core": { |
||||
"version": "5.2.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", |
||||
"integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", |
||||
"requires": { |
||||
"@octokit/auth-token": "^4.0.0", |
||||
"@octokit/graphql": "^7.1.0", |
||||
"@octokit/request": "^8.3.1", |
||||
"@octokit/request-error": "^5.1.0", |
||||
"@octokit/types": "^13.0.0", |
||||
"before-after-hook": "^2.2.0", |
||||
"universal-user-agent": "^6.0.0" |
||||
} |
||||
}, |
||||
"@octokit/endpoint": { |
||||
"version": "9.0.5", |
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", |
||||
"integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", |
||||
"requires": { |
||||
"@octokit/types": "^13.1.0", |
||||
"universal-user-agent": "^6.0.0" |
||||
} |
||||
}, |
||||
"@octokit/graphql": { |
||||
"version": "7.1.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", |
||||
"integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", |
||||
"requires": { |
||||
"@octokit/request": "^8.3.0", |
||||
"@octokit/types": "^13.0.0", |
||||
"universal-user-agent": "^6.0.0" |
||||
} |
||||
}, |
||||
"@octokit/openapi-types": { |
||||
"version": "22.2.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", |
||||
"integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" |
||||
}, |
||||
"@octokit/plugin-paginate-rest": { |
||||
"version": "11.3.3", |
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.3.tgz", |
||||
"integrity": "sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==", |
||||
"requires": { |
||||
"@octokit/types": "^13.5.0" |
||||
} |
||||
}, |
||||
"@octokit/plugin-request-log": { |
||||
"version": "5.3.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-5.3.0.tgz", |
||||
"integrity": "sha512-FiGcyjdtYPlr03ExBk/0ysIlEFIFGJQAVoPPMxL19B24bVSEiZQnVGBunNtaAF1YnvE/EFoDpXmITtRnyCiypQ==" |
||||
}, |
||||
"@octokit/plugin-rest-endpoint-methods": { |
||||
"version": "13.2.4", |
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.4.tgz", |
||||
"integrity": "sha512-gusyAVgTrPiuXOdfqOySMDztQHv6928PQ3E4dqVGEtOvRXAKRbJR4b1zQyniIT9waqaWk/UDaoJ2dyPr7Bk7Iw==", |
||||
"requires": { |
||||
"@octokit/types": "^13.5.0" |
||||
} |
||||
}, |
||||
"@octokit/request": { |
||||
"version": "8.4.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", |
||||
"integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", |
||||
"requires": { |
||||
"@octokit/endpoint": "^9.0.1", |
||||
"@octokit/request-error": "^5.1.0", |
||||
"@octokit/types": "^13.1.0", |
||||
"universal-user-agent": "^6.0.0" |
||||
} |
||||
}, |
||||
"@octokit/request-error": { |
||||
"version": "5.1.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", |
||||
"integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", |
||||
"requires": { |
||||
"@octokit/types": "^13.1.0", |
||||
"deprecation": "^2.0.0", |
||||
"once": "^1.4.0" |
||||
} |
||||
}, |
||||
"@octokit/rest": { |
||||
"version": "21.0.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-21.0.0.tgz", |
||||
"integrity": "sha512-XudXXOmiIjivdjNZ+fN71NLrnDM00sxSZlhqmPR3v0dVoJwyP628tSlc12xqn8nX3N0965583RBw5GPo6r8u4Q==", |
||||
"requires": { |
||||
"@octokit/core": "^6.1.2", |
||||
"@octokit/plugin-paginate-rest": "^11.0.0", |
||||
"@octokit/plugin-request-log": "^5.1.0", |
||||
"@octokit/plugin-rest-endpoint-methods": "^13.0.0" |
||||
}, |
||||
"dependencies": { |
||||
"@octokit/auth-token": { |
||||
"version": "5.1.1", |
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", |
||||
"integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==" |
||||
}, |
||||
"@octokit/core": { |
||||
"version": "6.1.2", |
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", |
||||
"integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", |
||||
"requires": { |
||||
"@octokit/auth-token": "^5.0.0", |
||||
"@octokit/graphql": "^8.0.0", |
||||
"@octokit/request": "^9.0.0", |
||||
"@octokit/request-error": "^6.0.1", |
||||
"@octokit/types": "^13.0.0", |
||||
"before-after-hook": "^3.0.2", |
||||
"universal-user-agent": "^7.0.0" |
||||
} |
||||
}, |
||||
"@octokit/endpoint": { |
||||
"version": "10.1.1", |
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", |
||||
"integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", |
||||
"requires": { |
||||
"@octokit/types": "^13.0.0", |
||||
"universal-user-agent": "^7.0.2" |
||||
} |
||||
}, |
||||
"@octokit/graphql": { |
||||
"version": "8.1.1", |
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", |
||||
"integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", |
||||
"requires": { |
||||
"@octokit/request": "^9.0.0", |
||||
"@octokit/types": "^13.0.0", |
||||
"universal-user-agent": "^7.0.0" |
||||
} |
||||
}, |
||||
"@octokit/request": { |
||||
"version": "9.1.1", |
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.1.tgz", |
||||
"integrity": "sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw==", |
||||
"requires": { |
||||
"@octokit/endpoint": "^10.0.0", |
||||
"@octokit/request-error": "^6.0.1", |
||||
"@octokit/types": "^13.1.0", |
||||
"universal-user-agent": "^7.0.2" |
||||
} |
||||
}, |
||||
"@octokit/request-error": { |
||||
"version": "6.1.1", |
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.1.tgz", |
||||
"integrity": "sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg==", |
||||
"requires": { |
||||
"@octokit/types": "^13.0.0" |
||||
} |
||||
}, |
||||
"before-after-hook": { |
||||
"version": "3.0.2", |
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", |
||||
"integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==" |
||||
}, |
||||
"universal-user-agent": { |
||||
"version": "7.0.2", |
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", |
||||
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==" |
||||
} |
||||
} |
||||
}, |
||||
"@octokit/types": { |
||||
"version": "13.5.0", |
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", |
||||
"integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", |
||||
"requires": { |
||||
"@octokit/openapi-types": "^22.2.0" |
||||
} |
||||
}, |
||||
"asynckit": { |
||||
"version": "0.4.0", |
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", |
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" |
||||
}, |
||||
"axios": { |
||||
"version": "1.7.2", |
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", |
||||
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", |
||||
"requires": { |
||||
"follow-redirects": "^1.15.6", |
||||
"form-data": "^4.0.0", |
||||
"proxy-from-env": "^1.1.0" |
||||
} |
||||
}, |
||||
"beauty-html": { |
||||
"version": "1.3.1", |
||||
"resolved": "https://registry.npmjs.org/beauty-html/-/beauty-html-1.3.1.tgz", |
||||
"integrity": "sha512-c0iKWc527T2MQcYhIMMw9OHN8kcXSf/ijadWzURhZWi6e6cnBXxAQ5IlXbYd0YZJE9lFtXRB1fJVQrvJf5DmPQ==" |
||||
}, |
||||
"before-after-hook": { |
||||
"version": "2.2.3", |
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", |
||||
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" |
||||
}, |
||||
"colors": { |
||||
"version": "1.4.0", |
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", |
||||
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" |
||||
}, |
||||
"combined-stream": { |
||||
"version": "1.0.8", |
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", |
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", |
||||
"requires": { |
||||
"delayed-stream": "~1.0.0" |
||||
} |
||||
}, |
||||
"delayed-stream": { |
||||
"version": "1.0.0", |
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", |
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" |
||||
}, |
||||
"deprecation": { |
||||
"version": "2.3.1", |
||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", |
||||
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" |
||||
}, |
||||
"diff": { |
||||
"version": "5.2.0", |
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", |
||||
"integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==" |
||||
}, |
||||
"follow-redirects": { |
||||
"version": "1.15.6", |
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", |
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" |
||||
}, |
||||
"form-data": { |
||||
"version": "4.0.0", |
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", |
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", |
||||
"requires": { |
||||
"asynckit": "^0.4.0", |
||||
"combined-stream": "^1.0.8", |
||||
"mime-types": "^2.1.12" |
||||
} |
||||
}, |
||||
"mime-db": { |
||||
"version": "1.52.0", |
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", |
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" |
||||
}, |
||||
"mime-types": { |
||||
"version": "2.1.35", |
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", |
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", |
||||
"requires": { |
||||
"mime-db": "1.52.0" |
||||
} |
||||
}, |
||||
"once": { |
||||
"version": "1.4.0", |
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |
||||
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", |
||||
"requires": { |
||||
"wrappy": "1" |
||||
} |
||||
}, |
||||
"proxy-from-env": { |
||||
"version": "1.1.0", |
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", |
||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" |
||||
}, |
||||
"semver": { |
||||
"version": "7.6.2", |
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", |
||||
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==" |
||||
}, |
||||
"tunnel": { |
||||
"version": "0.0.6", |
||||
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", |
||||
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" |
||||
}, |
||||
"undici": { |
||||
"version": "5.28.4", |
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", |
||||
"integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", |
||||
"requires": { |
||||
"@fastify/busboy": "^2.0.0" |
||||
} |
||||
}, |
||||
"universal-user-agent": { |
||||
"version": "6.0.1", |
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", |
||||
"integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" |
||||
}, |
||||
"uuid": { |
||||
"version": "8.3.2", |
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", |
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" |
||||
}, |
||||
"wrappy": { |
||||
"version": "1.0.2", |
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |
||||
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" |
||||
}, |
||||
"xmldom": { |
||||
"version": "0.6.0", |
||||
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", |
||||
"integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==" |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,21 @@ |
||||
{ |
||||
"name": "scripts", |
||||
"version": "1.0.0", |
||||
"type": "module", |
||||
"description": "", |
||||
"scripts": { |
||||
"test": "echo \"Error: no test specified\" && exit 1" |
||||
}, |
||||
"author": "", |
||||
"license": "ISC", |
||||
"dependencies": { |
||||
"@actions/core": "^1.10.1", |
||||
"@octokit/rest": "^21.0.0", |
||||
"axios": "^1.7.2", |
||||
"beauty-html": "^1.3.1", |
||||
"colors": "^1.4.0", |
||||
"diff": "^5.1.0", |
||||
"semver": "^7.5.4", |
||||
"xmldom": "^0.6.0" |
||||
} |
||||
} |
||||
@ -0,0 +1,35 @@ |
||||
name: Update Version Durability |
||||
|
||||
on: |
||||
workflow_dispatch: |
||||
workflow_call: |
||||
secrets: |
||||
CI_PAT: |
||||
required: true |
||||
D360_TOKEN: |
||||
required: true |
||||
|
||||
jobs: |
||||
update-versions: |
||||
runs-on: ubuntu-latest |
||||
|
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
|
||||
- name: Use Node.js |
||||
uses: actions/setup-node@v3.7.0 |
||||
with: |
||||
node-version: '20.15.1' |
||||
|
||||
- name: Install dependencies |
||||
run: | |
||||
cd ./.github/actions/update-version-durability |
||||
npm install |
||||
|
||||
- name: Update Version Durability |
||||
uses: ./.github/actions/update-version-durability |
||||
with: |
||||
GH_TOKEN: ${{ secrets.CI_PAT }} |
||||
D360_TOKEN: ${{ secrets.D360_TOKEN }} |
||||
D360_ARTICLE_ID: 800f8d52-409d-478d-b560-f82a2c0eb7fb |
||||
PUBLISH: true |
||||
Loading…
Reference in new issue