diff --git a/.github/workflows/run_fetch_issues_on_pr.yml b/.github/workflows/run_fetch_issues_on_pr.yml new file mode 100644 index 00000000..9861ce9c --- /dev/null +++ b/.github/workflows/run_fetch_issues_on_pr.yml @@ -0,0 +1,35 @@ +name: Run Fetch Issues on Pull Request + +on: + pull_request: + branches: + - main + +jobs: + fetch_issues: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: "18" + + - name: Install Node.js dependencies + run: npm install + + - name: Run fetch_issues.js script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: node fetch_issues.mjs + + - name: Commit and push changes + if: success() && steps.check-for-changes.outputs.changed == 'true' + run: | + git commit -m "Update good first issues list from GitHub Actions" + git push origin ${{ github.head_ref }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/content/good-first-issues.md b/content/good-first-issues.md new file mode 100644 index 00000000..81cd1462 --- /dev/null +++ b/content/good-first-issues.md @@ -0,0 +1,8 @@ +--- +title: "Good First Issues" +date: 2024-08-27 +--- + +Here are some "Good First Issues" from the specified GitHub repositories: + +{{< issues >}} diff --git a/data/issues.json b/data/issues.json new file mode 100644 index 00000000..68d31c6c --- /dev/null +++ b/data/issues.json @@ -0,0 +1,356 @@ +[ + { + "title": "Implement MirrorNodeClient.queryTransaction", + "url": "https://github.com/OpenElements/hedera-enterprise/issues/26", + "created_at": "2024-08-24T12:54:20Z", + "repo": "OpenElements/hedera-enterprise" + }, + { + "title": "Define enum for all supported native types of native smart contract data types", + "url": "https://github.com/OpenElements/hedera-enterprise/issues/24", + "created_at": "2024-08-23T07:01:10Z", + "repo": "OpenElements/hedera-enterprise" + }, + { + "title": "Sub-Menu boxes have a too big width", + "url": "https://github.com/OpenElements/open-elements-website/issues/111", + "created_at": "2024-07-20T14:19:41Z", + "repo": "OpenElements/open-elements-website" + }, + { + "title": "Preview images of post should provide link on click", + "url": "https://github.com/OpenElements/open-elements-website/issues/109", + "created_at": "2024-07-20T14:07:34Z", + "repo": "OpenElements/open-elements-website" + }, + { + "title": "Implement MirrorNodeClient.queryTransaction", + "url": "https://github.com/OpenElements/hedera-enterprise/issues/26", + "created_at": "2024-08-24T12:54:20Z", + "repo": "OpenElements/hedera-enterprise" + }, + { + "title": "Define enum for all supported native types of native smart contract data types", + "url": "https://github.com/OpenElements/hedera-enterprise/issues/24", + "created_at": "2024-08-23T07:01:10Z", + "repo": "OpenElements/hedera-enterprise" + }, + { + "title": "Create a youtube video that shows how the action can be used", + "url": "https://github.com/OpenElements/hedera-solo-action/issues/3", + "created_at": "2024-08-24T13:05:45Z", + "repo": "OpenElements/hedera-solo-action" + }, + { + "title": "Rewrite CustomFractionalFeeAssessor.reclaim() to use safe math operations", + "url": "https://github.com/hashgraph/hedera-services/issues/15376", + "created_at": "2024-09-06T10:49:24Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Cleanup remaining usage of NonNull and Nullable", + "url": "https://github.com/hashgraph/hedera-services/issues/15375", + "created_at": "2024-09-06T10:02:04Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Remove unused interface `SignedStateInfo.java`", + "url": "https://github.com/hashgraph/hedera-services/issues/15304", + "created_at": "2024-09-03T14:47:00Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Provide SLF4J bridge for logging", + "url": "https://github.com/hashgraph/hedera-services/issues/15122", + "created_at": "2024-08-27T06:55:12Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Chore: Replace `modrun` with `run`", + "url": "https://github.com/hashgraph/hedera-services/issues/13836", + "created_at": "2024-06-13T15:19:11Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Some MerkleDb unit tests take too long to run", + "url": "https://github.com/hashgraph/hedera-services/issues/10405", + "created_at": "2023-12-09T02:37:42Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Rename `SignedState` to `SignableState`", + "url": "https://github.com/hashgraph/hedera-services/issues/6216", + "created_at": "2023-04-21T14:25:57Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Rename Versioned.getVersion() to getClassVersion()", + "url": "https://github.com/hashgraph/hedera-services/issues/5226", + "created_at": "2023-03-03T20:04:52Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "For consistency with `TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT`, return `ACCOUNT_ALREADY_FROZEN_FOR_TOKEN`", + "url": "https://github.com/hashgraph/hedera-services/issues/5110", + "created_at": "2023-03-01T15:45:29Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Let `ReadableKVState` and `WriteableKVState` require Records as values", + "url": "https://github.com/hashgraph/hedera-services/issues/4614", + "created_at": "2023-01-12T03:24:46Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Limit fungible token decimals to 18", + "url": "https://github.com/hashgraph/hedera-services/issues/3178", + "created_at": "2022-04-12T19:35:19Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Make the test timeout a configurable value", + "url": "https://github.com/hiero-ledger/hiero-sdk-tck/issues/237", + "created_at": "2024-09-05T17:17:37Z", + "repo": "hashgraph/hedera-sdk-tck" + }, + { + "title": "fix: updated .github/release.yaml to include `internal` and `github_action` labeled PRs", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/pull/3175", + "created_at": "2024-10-29T17:50:17Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "Update release.yml to include `internal` and `github_action` labeled PRs", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/issues/3172", + "created_at": "2024-10-29T14:27:38Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "Shorten the logged names of HBar Rate Limiting repositories.", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/issues/3134", + "created_at": "2024-10-21T15:42:23Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "Swap eth address for evm address everywhere in the hbar limiter code", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/issues/3125", + "created_at": "2024-10-18T13:53:31Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "feat: added redis in docker-compose", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/pull/3107", + "created_at": "2024-10-16T10:57:32Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "Add redis to relay helm chart as a dependency", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/issues/1870", + "created_at": "2023-11-01T16:22:58Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "Add a redis instance to relay docker-compose", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/issues/1869", + "created_at": "2023-11-01T16:22:54Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "Create a proper clientSDK for the mirror node using the openAPI Spec provided", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/issues/1416", + "created_at": "2023-06-30T00:17:38Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "Save output of K6 Results into InfluxDb + Grafana", + "url": "https://github.com/hashgraph/hedera-json-rpc-relay/issues/948", + "created_at": "2023-02-27T17:22:37Z", + "repo": "hashgraph/hedera-json-rpc-relay" + }, + { + "title": "Override default max gas refund property for some environments", + "url": "https://github.com/hashgraph/hedera-local-node/issues/408", + "created_at": "2023-10-16T09:33:52Z", + "repo": "hashgraph/hedera-local-node" + }, + { + "title": "Nonce Filter Is Ignored on /api/v1/transactions/{hash}", + "url": "https://github.com/hashgraph/hedera-mirror-node/issues/9715", + "created_at": "2024-11-07T00:31:34Z", + "repo": "hashgraph/hedera-mirror-node" + }, + { + "title": "Transactions API Should Return All Relevant Transactions", + "url": "https://github.com/hashgraph/hedera-mirror-node/issues/9606", + "created_at": "2024-10-18T16:10:09Z", + "repo": "hashgraph/hedera-mirror-node" + }, + { + "title": "HIP-869 Add admin_key to the /network/nodes REST API", + "url": "https://github.com/hashgraph/hedera-mirror-node/issues/8757", + "created_at": "2024-07-12T14:48:11Z", + "repo": "hashgraph/hedera-mirror-node" + }, + { + "title": "Replace use of deprecated DirectProcessor", + "url": "https://github.com/hashgraph/hedera-mirror-node/issues/5187", + "created_at": "2023-01-09T16:07:44Z", + "repo": "hashgraph/hedera-mirror-node" + }, + { + "title": "Rewrite CustomFractionalFeeAssessor.reclaim() to use safe math operations", + "url": "https://github.com/hashgraph/hedera-services/issues/15376", + "created_at": "2024-09-06T10:49:24Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Cleanup remaining usage of NonNull and Nullable", + "url": "https://github.com/hashgraph/hedera-services/issues/15375", + "created_at": "2024-09-06T10:02:04Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Remove unused interface `SignedStateInfo.java`", + "url": "https://github.com/hashgraph/hedera-services/issues/15304", + "created_at": "2024-09-03T14:47:00Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Provide SLF4J bridge for logging", + "url": "https://github.com/hashgraph/hedera-services/issues/15122", + "created_at": "2024-08-27T06:55:12Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Chore: Replace `modrun` with `run`", + "url": "https://github.com/hashgraph/hedera-services/issues/13836", + "created_at": "2024-06-13T15:19:11Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Some MerkleDb unit tests take too long to run", + "url": "https://github.com/hashgraph/hedera-services/issues/10405", + "created_at": "2023-12-09T02:37:42Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Rename `SignedState` to `SignableState`", + "url": "https://github.com/hashgraph/hedera-services/issues/6216", + "created_at": "2023-04-21T14:25:57Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Rename Versioned.getVersion() to getClassVersion()", + "url": "https://github.com/hashgraph/hedera-services/issues/5226", + "created_at": "2023-03-03T20:04:52Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "For consistency with `TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT`, return `ACCOUNT_ALREADY_FROZEN_FOR_TOKEN`", + "url": "https://github.com/hashgraph/hedera-services/issues/5110", + "created_at": "2023-03-01T15:45:29Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Let `ReadableKVState` and `WriteableKVState` require Records as values", + "url": "https://github.com/hashgraph/hedera-services/issues/4614", + "created_at": "2023-01-12T03:24:46Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Limit fungible token decimals to 18", + "url": "https://github.com/hashgraph/hedera-services/issues/3178", + "created_at": "2022-04-12T19:35:19Z", + "repo": "hashgraph/hedera-services" + }, + { + "title": "Create an Example for \"Create File\" functionality", + "url": "https://github.com/hashgraph/hedera-sdk-js/issues/2512", + "created_at": "2024-09-11T12:57:27Z", + "repo": "hashgraph/hedera-sdk-js" + }, + { + "title": ".toString() is not implemented ", + "url": "https://github.com/hashgraph/hedera-sdk-js/issues/2301", + "created_at": "2024-05-28T14:22:31Z", + "repo": "hashgraph/hedera-sdk-js" + }, + { + "title": "Topic Subscription exponential backoff not working properly (too many retries)", + "url": "https://github.com/hashgraph/hedera-sdk-js/issues/2235", + "created_at": "2024-04-01T09:59:41Z", + "repo": "hashgraph/hedera-sdk-js" + }, + { + "title": "Improve the chunk size of FileAppend transaction.", + "url": "https://github.com/hashgraph/hedera-sdk-js/issues/2060", + "created_at": "2023-12-12T14:22:21Z", + "repo": "hashgraph/hedera-sdk-js" + }, + { + "title": "Automatically generate/update `Status.js` and `RequestType.js`", + "url": "https://github.com/hashgraph/hedera-sdk-js/issues/1145", + "created_at": "2022-06-01T02:33:05Z", + "repo": "hashgraph/hedera-sdk-js" + }, + { + "title": "FileCreate/FileUpdate automatic chunking", + "url": "https://github.com/hashgraph/hedera-sdk-swift/issues/381", + "created_at": "2024-09-03T21:47:38Z", + "repo": "hashgraph/hedera-sdk-swift" + }, + { + "title": "Getting AccountId from Mnemonic", + "url": "https://github.com/hashgraph/hedera-sdk-swift/issues/328", + "created_at": "2024-02-16T04:58:45Z", + "repo": "hashgraph/hedera-sdk-swift" + }, + { + "title": "Add E2E: AccountAllowanceDeleteTransaction", + "url": "https://github.com/hashgraph/hedera-sdk-swift/issues/90", + "created_at": "2023-05-24T19:06:37Z", + "repo": "hashgraph/hedera-sdk-swift" + }, + { + "title": "Add example: Add and remove NFT Allowances", + "url": "https://github.com/hashgraph/hedera-sdk-rust/issues/846", + "created_at": "2024-09-12T00:40:35Z", + "repo": "hashgraph/hedera-sdk-rust" + }, + { + "title": "Add missing network configurations with `Client`", + "url": "https://github.com/hashgraph/hedera-sdk-rust/issues/845", + "created_at": "2024-09-11T22:53:51Z", + "repo": "hashgraph/hedera-sdk-rust" + }, + { + "title": "FileCreate/FileUpdate automatic chunking", + "url": "https://github.com/hashgraph/hedera-sdk-rust/issues/835", + "created_at": "2024-09-03T21:48:42Z", + "repo": "hashgraph/hedera-sdk-rust" + }, + { + "title": "Multi node, multi signature offline signing support", + "url": "https://github.com/hiero-ledger/hiero-sdk-cpp/issues/772", + "created_at": "2024-09-03T23:00:36Z", + "repo": "hashgraph/hedera-sdk-cpp" + }, + { + "title": "FileCreate/FileUpdate automatic chunking", + "url": "https://github.com/hiero-ledger/hiero-sdk-cpp/issues/770", + "created_at": "2024-09-03T21:49:52Z", + "repo": "hashgraph/hedera-sdk-cpp" + }, + { + "title": "`TransactionId` should not be regenerated if set manually by a user", + "url": "https://github.com/hiero-ledger/hiero-sdk-cpp/issues/652", + "created_at": "2024-01-31T20:39:20Z", + "repo": "hashgraph/hedera-sdk-cpp" + }, + { + "title": "Create a youtube video that shows how the action can be used", + "url": "https://github.com/OpenElements/hedera-solo-action/issues/3", + "created_at": "2024-08-24T13:05:45Z", + "repo": "OpenElements/hedera-solo-action" + } +] \ No newline at end of file diff --git a/data/mainMenu.json b/data/mainMenu.json index d9005b91..0bd8aa10 100644 --- a/data/mainMenu.json +++ b/data/mainMenu.json @@ -80,5 +80,13 @@ "link": "/contact/", "visibleInNavigation": true, "visibleInFooter": true + }, + { + "name": "Good First Issues", + "link": "/good-first-issues/", + "i18nKey": "goodFirstIssues", + "altI18nKey": "goodFirstIssuesDescription", + "visibleInNavigation": false, + "visibleInFooter": true } -] \ No newline at end of file +] diff --git a/fetch_issues.mjs b/fetch_issues.mjs new file mode 100644 index 00000000..e7d9eb11 --- /dev/null +++ b/fetch_issues.mjs @@ -0,0 +1,68 @@ +import fetch from "node-fetch"; +import fs from "fs"; + +const GITHUB_TOKEN = process.env.GITHUB_TOKEN; +const REPOS = [ + "OpenElements/BenchScape", + "OpenElements/hedera-enterprise", + "OpenElements/open-elements-website", + "OpenElements/hedera-enterprise", + "OpenElements/hedera-solo-action", + "hashgraph/hedera-services", + "hashgraph/hedera-grpcWeb-proxy", + "hashgraph/hedera-exchange-rate-tool", + "hashgraph/hedera-sdk-tck", + "hashgraph/hedera-json-rpc-relay", + "hashgraph/hedera-local-node", + "hashgraph/hedera-mirror-node", + "hashgraph/hedera-services", + "hashgraph/hedera-sdk-js", + "hashgraph/hedera-sdk-swift", + "hashgraph/hedera-sdk-rust", + "hashgraph/hedera-sdk-java", + "hashgraph/hedera-sdk-go", + "hashgraph/hedera-sdk-cpp", + "hashgraph/solo", + "OpenElements/hedera-solo-action", +]; + +const HEADERS = { + Accept: "application/vnd.github.v3+json", + Authorization: `token ${GITHUB_TOKEN}`, +}; + +async function fetchGoodFirstIssues(repo) { + const url = `https://api.github.com/repos/${repo}/issues?labels=good%20first%20issue&state=open`; + + try { + const response = await fetch(url, { headers: HEADERS }); + if (!response.ok) { + throw new Error( + `Error fetching data from ${repo}: ${response.statusText}` + ); + } + + const issues = await response.json(); + return issues.map((issue) => ({ + title: issue.title, + url: issue.html_url, + created_at: issue.created_at, + repo: repo, + })); + } catch (error) { + console.error(`Error fetching from ${repo}:`, error); + return []; + } +} + +async function main() { + const allIssues = []; + for (const repo of REPOS) { + const issues = await fetchGoodFirstIssues(repo); + allIssues.push(...issues); + } + fs.writeFileSync("./data/issues.json", JSON.stringify(allIssues, null, 2)); + console.log("Issues successfully saved!"); +} + +main(); diff --git a/i18n/de.toml b/i18n/de.toml index 785f0752..302fdc1f 100644 --- a/i18n/de.toml +++ b/i18n/de.toml @@ -42,3 +42,5 @@ notFound = "Seite nicht gefunden!!" underline = "Grafisches Element zum Unterstreichen des Textes" [digitalTrustLecture] other = "Vorlesung zu Digital Trust" +[goodFirstIssues] +other = "Gute Erstausgaben" diff --git a/i18n/en.toml b/i18n/en.toml index ac981c51..f9690e82 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -41,4 +41,6 @@ notFound = "Page Not Found!!" [altTexts] underline = "Graphical element that underlines the text" [digitalTrustLecture] -other = "Digital Trust Lecture" \ No newline at end of file +other = "Digital Trust Lecture" +[goodFirstIssues] +other = "Good First Issues" \ No newline at end of file diff --git a/layouts/shortcodes/issues.html b/layouts/shortcodes/issues.html new file mode 100644 index 00000000..97b9f9ea --- /dev/null +++ b/layouts/shortcodes/issues.html @@ -0,0 +1,10 @@ +{{ $issues := .Site.Data.issues }} + diff --git a/package-lock.json b/package-lock.json index 8bbb0ac1..b8a5962f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,10 +1,11 @@ { - "name": "open-elements-website-issue110", + "name": "open-elements-website", "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { + "node-fetch": "^3.3.2", "npm-run-all": "^4.1.5", "tailwind-scrollbar": "^2.1.0" }, @@ -340,6 +341,15 @@ "node": ">=4" } }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -493,6 +503,29 @@ "reusify": "^1.0.4" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -513,6 +546,18 @@ "is-callable": "^1.1.3" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1127,6 +1172,43 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -1878,6 +1960,15 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -2181,6 +2272,11 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, + "data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==" + }, "define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -2303,6 +2399,15 @@ "reusify": "^1.0.4" } }, + "fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "requires": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + } + }, "fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -2319,6 +2424,14 @@ "is-callable": "^1.1.3" } }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "requires": { + "fetch-blob": "^3.1.2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2738,6 +2851,21 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + }, + "node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -3233,6 +3361,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==" + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index f06d8083..8b4d1793 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "dev": "run-p dev:*", "build:css": "NODE_ENV=production npx tailwindcss -i input.css -o assets/css/style.css -m", "build:hugo": "hugo", - "build": "run-s build:*" + "fetch-issues": "node fetch_issues.js", + "build": "npm run fetch-issues && npm run build:css && npm run build:hugo" }, "devDependencies": { "@tailwindcss/aspect-ratio": "^0.4.2", @@ -13,6 +14,7 @@ "tailwindcss": "^3.4.14" }, "dependencies": { + "node-fetch": "^3.3.2", "npm-run-all": "^4.1.5", "tailwind-scrollbar": "^2.1.0" }