Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions github_tracker
Submodule github_tracker added at 286b72
17 changes: 17 additions & 0 deletions netlify.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[build]
command = "npm install && npm run build"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify lockfile exists before switching install strategy
fd -HI '^package-lock\.json$' .

Repository: GitMetricsLab/github_tracker

Length of output: 54


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== netlify.toml =="
if [ -f netlify.toml ]; then
  nl -ba netlify.toml | sed -n '1,20p'
else
  echo "netlify.toml not found at repo root"
fi

echo
echo "== package-lock.json matches =="
fd -HI '^package-lock\.json$' .

Repository: GitMetricsLab/github_tracker

Length of output: 152


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== netlify.toml location(s) =="
fd -HI 'netlify\.toml$' .

echo
echo "== netlify.toml content (if present) =="
NETLIFY_FILES=$(fd -HI 'netlify\.toml$' . || true)
if [ -z "$NETLIFY_FILES" ]; then
  echo "No netlify.toml found."
else
  # Print with line numbers using awk (avoid nl)
  echo "$NETLIFY_FILES" | head -n 5 | while IFS= read -r f; do
    echo "--- $f ---"
    awk '{printf "%d:%s\n", NR, $0}' "$f" | sed -n '1,60p'
  done
fi

echo
echo "== package-lock.json matches =="
fd -HI '^package-lock\.json$' .

Repository: GitMetricsLab/github_tracker

Length of output: 680


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== lockfiles (package-lock.json) =="
fd -HI 'package-lock\.json$' .

echo
echo "== other lockfiles =="
fd -HI 'package-lock\.(json|yaml|yml)$' . || true
fd -HI 'yarn\.lock$' .
fd -HI 'pnpm-lock\.yaml$' .

Repository: GitMetricsLab/github_tracker

Length of output: 131


Make Netlify dependency installs deterministic (commit package-lock.json, then use npm ci).

netlify.toml uses npm install && npm run build, but there is no package-lock.json in the repo—so switching to npm ci would fail. Add/commit package-lock.json, then change the build command to npm ci && npm run build for reproducible installs.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@netlify.toml` at line 2, The Netlify build command uses a non-deterministic
install ("npm install && npm run build"); generate and commit a
package-lock.json to the repo, then update the command in netlify.toml to use
"npm ci && npm run build" so installs are reproducible; specifically, replace
the existing command string value in netlify.toml with the npm ci variant after
committing package-lock.json.

publish = "dist"
environment = { NODE_VERSION = "18" }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

As of May 2026, what is the Node.js release schedule/status for Node 18, Node 20, and Node 22, and which versions are in active support or maintenance?

💡 Result:

As of May 28, 2026, the status of the requested Node.js versions is as follows: Node.js 18: This version has reached its End-of-Life (EOL) [1][2]. It transitioned to maintenance mode on October 18, 2023, and officially reached its EOL date on April 30, 2025 [1][3]. Node.js 20: This version has reached its End-of-Life (EOL) [1][4]. It reached its maintenance start date on October 22, 2024, and officially reached its EOL date on April 30, 2026 [1][5][3]. Node.js 22: This version is currently in Maintenance LTS status [1][6]. It transitioned from Active LTS to Maintenance LTS on October 21, 2025, and is scheduled to reach its EOL on April 30, 2027 [1][3][6]. In summary, none of these three versions are currently in "Active" support [1][2]. Node.js 22 is in the Maintenance phase of its lifecycle, while Node.js 18 and Node.js 20 are no longer supported [1][2][4]. For production environments, the project currently recommends using Active LTS releases, such as Node.js 24 [1][7][6].

Citations:


🌐 Web query:

As of May 2026, which Node.js major versions are in Active LTS (recommended for production) and what is the current Active LTS version number?

💡 Result:

As of 2026-05-28, the Node.js major versions in Active LTS (recommended for production) are: 1) Node.js 24.x (Active LTS) 2) Node.js 22.x is not Active LTS by May 2026; it is in Maintenance LTS (Active LTS is only 22.x? no—official schedule lists 22.x as Maintenance LTS). Active LTS major versions list (from the Node.js Release schedule): 24.x is marked “Active LTS”; 22.x is marked “Maintenance LTS” (not Active LTS) [1]. Therefore, as of May 2026, the only Active LTS major line is Node.js 24.x. Current Active LTS version number (exact release) as of May 2026: Node.js 24.16.0 (Krypton) [2].

Citations:


🌐 Web query:

Netlify Node runtime support / NODE_VERSION environment variable: which Node.js versions are supported for builds/deploys as of 2026?

💡 Result:

As of 2026-05-28, Netlify build-time Node.js versioning works like this: 1) Build-time (NODE_VERSION /.nvmrc /.node-version) - You can set the Node.js version used for builds via the reserved environment variable NODE_VERSION (or a.node-version/.nvmrc file). Netlify fetches the version using nvm and caches it for faster subsequent builds. [1][2] - However, Netlify does not publish a fixed “supported Node versions” list in the docs; instead it says you can select the major Node.js versions that Netlify currently supports in the UI, while NODE_VERSION may be set to “any released version of Node.js” (or any nvm-valid string). The practical implication is: Node versions must be installable by nvm in Netlify’s build environment and match what Netlify’s currently-supported build images allow. [1][2] What Netlify explicitly guarantees in docs for 2026-05-28: - NODE_VERSION supports both exact versions (e.g., “22.5.0”) and major versions (e.g., “22” meaning latest 22.x). [1] - Build Node.js defaults come from the selected Netlify build image; changing NODE_VERSION (or a.nvmrc/.node-version) overrides the UI selection. [1] 2) Deploy/runtime for Netlify Functions (AWS_LAMBDA_JS_RUNTIME) - For Node.js functions deployed on/after 2023-05-15, the default functions runtime is based on the Node.js version used for the build, but only if that build version is a “valid AWS Lambda runtime for Node.js” and is not set to be deprecated in the next two months; otherwise Netlify falls back to Node.js 22. [3] - You can override the functions runtime explicitly by setting the Netlify Functions env var AWS_LAMBDA_JS_RUNTIME (example: “nodejs20.x”), and you must redeploy. [3] - Therefore, for function runtime support as of 2026-05-28, the effective supported set is constrained to AWS Lambda’s Node.js runtimes that are currently valid and not imminently deprecated; AWS’s public Lambda runtime list includes nodejs22.x, nodejs24.x, nodejs20.x, nodejs18.x, etc. [3][4] Concrete answer to “which Node.js versions are supported … as of 2026?” - Build-time via NODE_VERSION: Netlify’s docs state you may use any released Node.js version that nvm understands (and is available in the build environment), and you can also use major version selectors like 22. [1] - Runtime for Netlify Functions (AWS_LAMBDA_JS_RUNTIME and the build-derived default): supported Node.js versions are those corresponding to AWS Lambda’s current Node.js runtimes (e.g., nodejs22.x, nodejs24.x, nodejs20.x, nodejs18.x), with Netlify falling back to Node.js 22 when the build version doesn’t meet the “valid + not deprecated in next two months” requirement. [3][4] If you want, tell me whether you mean (A) build-only (NODE_VERSION) or (B) serverless function runtime (AWS_LAMBDA_JS_RUNTIME / deployed Functions), and I’ll provide the most precise version list in that context using the AWS Lambda runtime identifiers.

Citations:


Bump Netlify build-time Node from EOL (18) to current LTS (24).

netlify.toml pins NODE_VERSION to 18, which is End-of-Life, and “20 or newer” is also outdated for 2026 since Node 20 reached EOL on 2026-04-30. Use Node 24 (Active LTS) as the default; allow Node 22 only if compatibility requires it (Maintenance LTS).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@netlify.toml` at line 4, The Netlify build env pins NODE_VERSION to an EOL
release; update the environment = { NODE_VERSION = "18" } entry to use the
current Active LTS by setting NODE_VERSION to "24" (or "22" only if explicit
compatibility requires a Maintenance LTS fallback), and ensure any CI/build docs
that reference NODE_VERSION are aligned with the change so builds use Node 24 by
default.


[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "strict-origin-when-cross-origin"
Strict-Transport-Security = "max-age=63072000; includeSubDomains; preload"

[[redirects]]
from = "/*"
to = "/index.html"
status = 200
5 changes: 5 additions & 0 deletions public/_headers
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/*
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
2 changes: 1 addition & 1 deletion public/_redirects
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/* /index.html 200
/* /index.html 200

Loading