Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
a1c2c9d
Include notice about project sustainability and support
ryo-ma Aug 30, 2025
d983a16
Fix format
ryo-ma Aug 30, 2025
5cc9b86
updated deno.json (#369)
manishraghavendra Sep 8, 2025
cc6947e
Add sponsors section to README
ryo-ma Oct 2, 2025
7b6da5d
Add GitHub links to sponsor names in README
ryo-ma Oct 2, 2025
d9e5b3e
Update README.md
ryo-ma Oct 3, 2025
5b90817
Update README.md
ryo-ma Oct 23, 2025
9561b70
Update README.md
ryo-ma Nov 4, 2025
5d093da
Update README.md
ryo-ma Nov 4, 2025
d4b62d8
Replaced createdAt with date of earliest repo for merged accounts (#377)
QuantumChemist Nov 10, 2025
b94874a
fix: deno fmt --check which failed the Github Action flow (#381)
OBrutus Nov 21, 2025
fe11abe
Optimize code for function duration time
ryo-ma Nov 22, 2025
7224588
Fix format
ryo-ma Nov 22, 2025
20908af
Improve cache parformance
ryo-ma Nov 22, 2025
f88e075
Fix promises process
ryo-ma Nov 25, 2025
135c24e
Add try catch for github api
ryo-ma Nov 25, 2025
70619a1
Update monthly sponsors list in README.md (#384)
hesreallyhim Nov 27, 2025
4047b37
Support Docker
ryo-ma Dec 2, 2025
805065c
Change base url
ryo-ma Dec 3, 2025
90b4f13
Revert "Change base url"
ryo-ma Dec 3, 2025
c27aed8
Change repository rank condition
ryo-ma Dec 3, 2025
f385d20
Remove one-time sponsor entry for @tapegram
ryo-ma Dec 6, 2025
092a0e8
Update monthly sponsors list in README.md
ryo-ma Dec 8, 2025
72fc640
Update README.md
ryo-ma Dec 8, 2025
ccde669
Suspend to retry
ryo-ma Dec 8, 2025
ef66daa
Fix fmt
ryo-ma Dec 8, 2025
c1d8c00
Fix test
ryo-ma Dec 8, 2025
67889b9
Update Deno version and improve workflow steps (#391)
Talib-07 Dec 15, 2025
eb5e82f
Add one-time sponsor @massif-01 with $5
ryo-ma Dec 16, 2025
fb3d78c
Add one-time sponsor entry for @Seo-4d696b75
ryo-ma Jan 4, 2026
7e17b59
Update README.md
ryo-ma Jan 4, 2026
b5e158a
Update README.md
ryo-ma Jan 4, 2026
452c95c
Update README to advise moderation for endpoints
ryo-ma Jan 4, 2026
eec37fc
Update README.md
ryo-ma Jan 5, 2026
aea2a37
Add hongbo load-balancing endpoint (#395)
muhammad-wei Jan 5, 2026
c163294
Remove one-time sponsor from README
ryo-ma Jan 11, 2026
5361d88
Update testing.yml
ryo-ma Jan 11, 2026
8b64539
Update dependency installation command in workflow
ryo-ma Jan 11, 2026
eddad2b
Fix fmt
ryo-ma Jan 11, 2026
5dc8d73
Fix comment out
ryo-ma Jan 11, 2026
233988d
update deno-vercel version
ryo-ma Jan 11, 2026
1183dbf
Fix version
ryo-ma Jan 11, 2026
f2b0ae1
Fix mock data structure for rate limit and NOT_FOUND error handling (…
Copilot Jan 12, 2026
7893727
Fix redis cache (#402)
talentestors Jan 17, 2026
6425427
Add new URL by kann4n to README (#403)
kann4n Jan 18, 2026
97e9fad
Fix hardcoded url in form (#407)
cromatikap Jan 19, 2026
2ba2fe6
Add local SVG generator script and GitHub Action for trophy SVGs (#412)
Erik-Donath Jan 27, 2026
c1ecb50
Add link to PracticalRyan's trophy site in README (#413)
PracticalRyan Jan 27, 2026
d77f551
Fix grammar for error page button (#410)
ArtofBugs Jan 27, 2026
56fb08c
deploy app to share the load (#415)
vijaypurohit322 Jan 31, 2026
1c90f65
Update README.md
ryo-ma Feb 8, 2026
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
26 changes: 26 additions & 0 deletions .github/workflows/test-repository-action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Test GitHub Profile Trophy Action
on: [push, pull_request, workflow_dispatch]

jobs:
test-trophy:
runs-on: ubuntu-latest
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Test Action
id: trophy
uses: ./.
with:
username: ${{ github.repository_owner }}
output_path: ./trophy.svg
token: ${{ secrets.GITHUB_TOKEN }}

- name: Verify SVG generated
run: |
if [ -f trophy.svg ]; then
echo "SVG exsists ($(wc -c < trophy.svg) Bytes)"
Comment thread
xploitoverload marked this conversation as resolved.
file trophy.svg
else
echo "SVG failed to generate"
exit 1
fi
22 changes: 19 additions & 3 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,39 @@ on:
branches:
- master
workflow_dispatch:

jobs:
install-dependencies:
runs-on: ubuntu-latest

strategy:
matrix:
deno-version: [1.43.6]
deno-version: ["1.44.4"]

Copilot AI Feb 14, 2026

Copy link

Choose a reason for hiding this comment

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

The Deno version was updated from 1.43.6 to 1.44.4. While this is generally good for getting bug fixes and improvements, it's worth verifying that no breaking changes were introduced between these versions that could affect the codebase. The change log should be reviewed to ensure compatibility.

Suggested change
deno-version: ["1.44.4"]
deno-version: ["1.43.6", "1.44.4"]

Copilot uses AI. Check for mistakes.

steps:
# Step 1: Checkout repository
- name: Git Checkout Deno Module
uses: actions/checkout@v4
- uses: denoland/setup-deno@v1

# Step 2: Setup Deno
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: ${{ matrix.deno-version }}

# Step 3: Cache / Install dependencies
# Change src/mod.ts to main.ts if your project uses main.ts
- name: Install dependencies
run: deno cache --reload deps.ts

# Step 4: Format check
- name: Deno format check
run: deno fmt --check

# Step 5: Lint check (won't fail workflow)
- name: Deno lint check
run: deno task lint
run: deno lint || true

Copilot AI Feb 14, 2026

Copy link

Choose a reason for hiding this comment

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

The lint check is set to always pass with '|| true', which means linting errors won't fail the workflow. While this might be intentional to prevent blocking builds, it defeats the purpose of having a linter. Consider either fixing the linting issues or removing the '|| true' to ensure code quality standards are enforced.

Suggested change
run: deno lint || true
run: deno lint

Copilot uses AI. Check for mistakes.

# Step 6: Run tests
- name: Test Deno Module
run: deno task test
13 changes: 13 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM denoland/deno:latest

# Create working directory
WORKDIR /app

# Copy source
COPY . .

# Compile the main app
RUN deno cache main.ts

# Run the app
CMD ["deno", "run", "-A", "main.ts"]
109 changes: 109 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,43 @@
</a>
</div>

> ⚠️ **Notice from the Project Owner**
>
> Hello everyone,\
> I am the owner of this project.
>
> Currently, due to the increase in users and traffic, the cost of maintaining
> this service has become quite high, and it is becoming financially difficult
> to sustain.\
> As costs continue to rise, there is a possibility that the service may have to
> be discontinued.\
> We are now at a stage where monetization and financial support are essential.
>
> Your support in the following ways would be greatly appreciated:
>
> 1. Financial support: [GitHub Sponsors](https://github.com/sponsors/ryo-ma)
> 2. Reducing server load through self-hosting (by forking on GitHub and
> deploying to Vercel)
> 3. Share your github-profile-trophy URL deployed to Vercel for load balancing
> (Send email: saka_ro@yahoo.co.jp or Pull Request)

# Load balancing endpoints

These are endpoints provided by volunteers. Please use these in moderation.

- [https://github-profile-trophy-liard-delta.vercel.app](https://github-profile-trophy-liard-delta.vercel.app/)
by [Adwitya](https://github.com/Adwitya)
- [https://github-profile-trophy-fork-two.vercel.app](https://github-profile-trophy-fork-two.vercel.app)
by [hesreallyhim](https://github.com/hesreallyhim)
- [https://github-profile-trophy-winning.vercel.app](https://github-profile-trophy-winning.vercel.app)
by [hongbo-wei](https://github.com/hongbo-wei)
- [https://github-profile-trophy-kannan.vercel.app](https://github-profile-trophy-kannan.vercel.app)
by [kann4n](https://github.com/kann4n)
- [https://trophy.ryglcloud.net](https://trophy.ryglcloud.net)
by [PracticalRyan](https://github.com/PracticalRyan)
- [https://github-profile-trophy-tawny.vercel.app](https://github-profile-trophy-tawny.vercel.app)
by [vijaypurohit322](https://github.com/vijaypurohit322)

# Quick Start

Add the following code to your readme. When pasting the code into your profile's
Expand Down Expand Up @@ -533,6 +570,34 @@ https://github-profile-trophy.vercel.app/?username=ryo-ma&no-frame=true
<img width="936" src="https://github.com/user-attachments/assets/54de15a3-d907-4a50-8117-170aae74d1cd">
</p>

## Generate an svg file localy
Comment thread
xploitoverload marked this conversation as resolved.

Using the render_svg.ts script you can generate your trophys as an svg file
Comment thread
xploitoverload marked this conversation as resolved.
given your username, (Enviroment Vars: See [env-example](env-example)).

Copilot AI Feb 14, 2026

Copy link

Choose a reason for hiding this comment

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

Spelling error: "Enviroment" should be "Environment"

Suggested change
given your username, (Enviroment Vars: See [env-example](env-example)).
given your username, (Environment Vars: See [env-example](env-example)).

Copilot uses AI. Check for mistakes.

Usage:

```bash
deno run --allow-net --allow-env --allow-read --allow-write ./render_svg.ts USERNAME OUTPUT_DIR THEME
```

## Generate an svg inside Github CI (Workflow)

Using the provided github action you can easly generate the trophy inside an

Copilot AI Feb 14, 2026

Copy link

Choose a reason for hiding this comment

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

Spelling error: "easly" should be "easily"

Suggested change
Using the provided github action you can easly generate the trophy inside an
Using the provided github action you can easily generate the trophy inside an

Copilot uses AI. Check for mistakes.
github workflow. This eliminates the needs of an online service running but you
have to manualy update rerun the action to update the file.
Comment thread
xploitoverload marked this conversation as resolved.

Usage:

```yaml
- name: Generate trophy
uses: Erik-Donath/github-profile-trophy@feature/generate-svg
with:
username: your-username
output_path: trophy.svg
token: ${{ secrets.GITHUB_TOKEN }}
```
Comment on lines +593 to +599

Copilot AI Feb 14, 2026

Copy link

Choose a reason for hiding this comment

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

The action references a specific branch 'feature/generate-svg' in the README usage example (line 594), but the action.yml doesn't specify which branch or version tag should be used. When this gets merged to main, users following the README will reference the wrong branch. The README should use a proper version tag or '@main' instead of '@feature/generate-svg'.

Copilot uses AI. Check for mistakes.

# Contribution Guide

Check [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.
Expand All @@ -541,3 +606,47 @@ Check [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.

This product is licensed under the
[MIT License](https://github.com/ryo-ma/github-profile-trophy/blob/master/LICENSE).

# 🙏 Sponsors

Thank you so much to all the amazing sponsors who support this project! Your
contributions help keep development going and make this work possible.

## 💖 Monthly Sponsors

- [@Leay15](https://github.com/Leay15) - $10 / month
- [@hesreallyhim](https://github.com/hesreallyhim) - $10 / month
- [@pmsosa](https://github.com/pmsosa) — $10 / month
- [@chenfeng-huang](https://github.com/chenfeng-huang) — $10 / month
- [@holly-hacker](https://github.com/holly-hacker) — $2 / month
- [@skillerious](https://github.com/skillerious) — $2 / month (since Aug
17, 2024)
- [@LudovicGardy](https://github.com/LudovicGardy) — $10 / month (since Aug
15, 2024)
- [@alexcastrodev](https://github.com/alexcastrodev) — $10 / month (since Oct
13, 2023, previously $50 / month)
- [@great-work-told-is](https://github.com/great-work-told-is) — $10 / month
(since Apr 12, 2023)
- [@Ilithy](https://github.com/Ilithy) — $5 / month (since Jul 21, 2022)
- [@weakish](https://github.com/weakish) — $2 / month (since Jan 22, 2022)
- [@Kazuhito00](https://github.com/Kazuhito00) — $2 / month (since Jan 19, 2022)
- [@KATO-Hiro](https://github.com/KATO-Hiro) — $2 / month (since Jan 5, 2022)
- [@batazor](https://github.com/batazor) — $2 / month (since Oct 28, 2021)
- [@port19x](https://github.com/port19x) — $2 / month (since Jan 27, 2022)

## 🎁 One-Time Sponsors

- [@pronoym99](https://github.com/pronoym99) - $20 (Feb 8, 2026)
- [@hesreallyhim](https://github.com/hesreallyhim) - $100 (Jan 11, 2026)
- [@Seo-4d696b75](https://github.com/Seo-4d696b75) — $10 (Jan 4, 2026)
- [@massif-01](https://github.com/massif-01) — $5 (December 17, 2025)
- [@tapegram](https://github.com/tapegram) — $20 (December 6, 2025)
- [@WilliamCorotan](https://github.com/WilliamCorotan) — $5 (November 5, 2025)
- [@arnabnandy7](https://github.com/arnabnandy7) — $10 (Oct 3, 2025)
- [@JoqarSabon](https://github.com/JoqarSabon) — $5 (May 24, 2024)
- [@syaghoubi00](https://github.com/syaghoubi00) — $5 (Jan 28, 2024)
- [@pylapp](https://github.com/pylapp) — $20 (Jan 15, 2024)
- [@Dobefu](https://github.com/Dobefu) — $10 (Dec 22, 2024)
- [@michele-lorenzoni](https://github.com/michele-lorenzoni) — $10 (Nov
26, 2024)
- [@skillerious](https://github.com/skillerious) — $10 (Aug 17, 2024)
Comment on lines +646 to +652

Copilot AI Feb 14, 2026

Copy link

Choose a reason for hiding this comment

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

The one-time sponsors list appears to have inconsistent date ordering. The dates jump from Feb 8, 2026 to Jan 11, 2026, then to Jan 4, 2026, December 17, 2025, and so on. While not critical, sponsors are typically listed in chronological order (either newest-first or oldest-first) for clarity.

Suggested change
- [@JoqarSabon](https://github.com/JoqarSabon) — $5 (May 24, 2024)
- [@syaghoubi00](https://github.com/syaghoubi00) — $5 (Jan 28, 2024)
- [@pylapp](https://github.com/pylapp) — $20 (Jan 15, 2024)
- [@Dobefu](https://github.com/Dobefu) — $10 (Dec 22, 2024)
- [@michele-lorenzoni](https://github.com/michele-lorenzoni) — $10 (Nov
26, 2024)
- [@skillerious](https://github.com/skillerious) — $10 (Aug 17, 2024)
- [@Dobefu](https://github.com/Dobefu) — $10 (Dec 22, 2024)
- [@michele-lorenzoni](https://github.com/michele-lorenzoni) — $10 (Nov
26, 2024)
- [@skillerious](https://github.com/skillerious) — $10 (Aug 17, 2024)
- [@JoqarSabon](https://github.com/JoqarSabon) — $5 (May 24, 2024)
- [@syaghoubi00](https://github.com/syaghoubi00) — $5 (Jan 28, 2024)
- [@pylapp](https://github.com/pylapp) — $20 (Jan 15, 2024)

Copilot uses AI. Check for mistakes.
27 changes: 27 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Generate GitHub Profile Trophy SVG
description: Run the local generator script to produce an SVG.
inputs:
username:
description: "GitHub username to generate the trophy for"
required: true
output_path:
description: "Output path to write the SVG"
required: true
default: "trophy.svg"
token:
description: "PAT or token to use for GitHub API"
required: true
runs:
using: "composite"
steps:
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.x

- name: Generate trophy
shell: bash
env:
GITHUB_TOKEN1: ${{ inputs.token }}
run: |
deno run --allow-net --allow-env --allow-read --allow-write $GITHUB_ACTION_PATH/render_svg.ts "${{ inputs.username }}" "${{ inputs.output_path }}"

Copilot AI Feb 14, 2026

Copy link

Choose a reason for hiding this comment

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

The GitHub action uses $GITHUB_ACTION_PATH to reference render_svg.ts, which is correct for composite actions. However, ensure that when users reference this action from another repository, the path resolution works correctly. The action should be tested in the new workflow file to verify this works as expected.

Suggested change
deno run --allow-net --allow-env --allow-read --allow-write $GITHUB_ACTION_PATH/render_svg.ts "${{ inputs.username }}" "${{ inputs.output_path }}"
deno run --allow-net --allow-env --allow-read --allow-write "${{ github.action_path }}/render_svg.ts" "${{ inputs.username }}" "${{ inputs.output_path }}"

Copilot uses AI. Check for mistakes.
81 changes: 47 additions & 34 deletions api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,18 @@ import { cacheProvider } from "../src/config/cache.ts";
const serviceProvider = new GithubApiService();
const client = new GithubRepositoryService(serviceProvider).repository;

// Build cache control header with optimized caching strategy
const cacheControlHeader = [
"public",
`max-age=${CONSTANTS.CACHE_MAX_AGE}`,
`s-maxage=${CONSTANTS.CDN_CACHE_MAX_AGE}`,
`stale-while-revalidate=${CONSTANTS.STALE_WHILE_REVALIDATE}`,
].join(", ");

const defaultHeaders = new Headers(
{
"Content-Type": "image/svg+xml",
"Cache-Control": `public, max-age=${CONSTANTS.CACHE_MAX_AGE}`,
"Cache-Control": cacheControlHeader,
},
);

Expand All @@ -34,33 +42,6 @@ async function app(req: Request): Promise<Response> {
const row = params.getNumberValue("row", CONSTANTS.DEFAULT_MAX_ROW);
const column = params.getNumberValue("column", CONSTANTS.DEFAULT_MAX_COLUMN);
const themeParam: string = params.getStringValue("theme", "default");
let theme: Theme = COLORS.default;
if (Object.keys(COLORS).includes(themeParam)) {
theme = COLORS[themeParam];
}
const marginWidth = params.getNumberValue(
"margin-w",
CONSTANTS.DEFAULT_MARGIN_W,
);
const paddingHeight = params.getNumberValue(
"margin-h",
CONSTANTS.DEFAULT_MARGIN_H,
);
const noBackground = params.getBooleanValue(
"no-bg",
CONSTANTS.DEFAULT_NO_BACKGROUND,
);
const noFrame = params.getBooleanValue(
"no-frame",
CONSTANTS.DEFAULT_NO_FRAME,
);
const titles: Array<string> = params.getAll("title").flatMap((r) =>
r.split(",")
).map((r) => r.trim());
const ranks: Array<string> = params.getAll("rank").flatMap((r) =>
r.split(",")
).map((r) => r.trim());

if (username === null) {
const [base] = req.url.split("?");
const error = new Error400(
Expand All @@ -77,8 +58,8 @@ async function app(req: Request): Promise<Response> {
</div>
<div>
<h2>You can use this form: </h2>
<p>Enter your username and click get trophies</p>
<form action="https://github-profile-trophy.vercel.app/" method="get">
<p>Enter your username and click "Get Trophies"</p>
<form action="${base}" method="get">
<label for="username">GitHub Username</label>
<input type="text" name="username" id="username" placeholder="Ex. gabriel-logan" required>
<label for="theme">Theme (Optional)</label>
Expand All @@ -88,11 +69,10 @@ async function app(req: Request): Promise<Response> {
<a href="https://github.com/ryo-ma/github-profile-trophy?tab=readme-ov-file#apply-theme" target="_blank">here</a>
</text>
<br>
<button type="submit">Get Trophy&apos;s</button>
<button type="submit">Get Trophies</button>
</form>
</div>
<script>
const base = "https://github-profile-trophy.vercel.app/";
const button = document.querySelector("button");
const input = document.querySelector("input");
const temporarySpan = document.querySelector("#temporary-span");
Expand All @@ -111,10 +91,40 @@ async function app(req: Request): Promise<Response> {
error.render(),
{
status: error.status,
headers: new Headers({ "Content-Type": "text" }),
headers: new Headers({
"Content-Type": "text",
"Cache-Control": cacheControlHeader,
}),
},
);
}
let theme: Theme = COLORS.default;
if (Object.keys(COLORS).includes(themeParam)) {
theme = COLORS[themeParam];
}
const marginWidth = params.getNumberValue(
"margin-w",
CONSTANTS.DEFAULT_MARGIN_W,
);
const paddingHeight = params.getNumberValue(
"margin-h",
CONSTANTS.DEFAULT_MARGIN_H,
);
const noBackground = params.getBooleanValue(
"no-bg",
CONSTANTS.DEFAULT_NO_BACKGROUND,
);
const noFrame = params.getBooleanValue(
"no-frame",
CONSTANTS.DEFAULT_NO_FRAME,
);
const titles: Array<string> = params.getAll("title").flatMap((r) =>
r.split(",")
).map((r) => r.trim());
const ranks: Array<string> = params.getAll("rank").flatMap((r) =>
r.split(",")
).map((r) => r.trim());

const userKeyCache = ["v1", username].join("-");
const userInfoCached = await cacheProvider.get(userKeyCache) || "{}";
let userInfo = JSON.parse(userInfoCached);
Expand All @@ -127,7 +137,10 @@ async function app(req: Request): Promise<Response> {
ErrorPage({ error: userResponseInfo }).render(),
{
status: userResponseInfo.code,
headers: new Headers({ "Content-Type": "text" }),
headers: new Headers({
"Content-Type": "text",
"Cache-Control": cacheControlHeader,
}),
},
);
}
Expand Down
4 changes: 2 additions & 2 deletions deno.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"tasks": {
"start": "deno run -A debug.ts",
"debug": "deno run --inspect-brk -A debug.ts",
"start": "deno run -A main.ts",
"debug": "deno run --inspect-brk -A main.ts",
"format": "deno fmt",
"lint": "deno lint",
"test": "ENV_TYPE=test deno test --allow-env"
Expand Down
9 changes: 9 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,12 @@ services:
image: redis:latest
ports:
- "6379:6379"
deno-app:
build: .
volumes:
- .:/app
ports:
- "80:8080"
environment:
- DENO_ENV=development
command: ["deno", "run", "--watch", "-A", "main.ts"]
Comment on lines +15 to +16

Copilot AI Feb 14, 2026

Copy link

Choose a reason for hiding this comment

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

The docker-compose.yml adds a deno-app service that runs 'main.ts', but should verify that main.ts exists and is the correct entry point. The command uses '--watch' flag which is useful for development but the DENO_ENV is set to 'development' which might not be a standard Deno environment variable. Consider documenting what this variable is used for or if it's actually being checked anywhere in the codebase.

Suggested change
- DENO_ENV=development
command: ["deno", "run", "--watch", "-A", "main.ts"]
- DENO_ENV=development # Application environment (e.g., development)
command: ["sh", "-c", "test -f main.ts && deno run --watch -A main.ts"]

Copilot uses AI. Check for mistakes.
Loading