Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
db5d796
Add sonar issues in code quality findings docs
devpro Jul 26, 2026
58686f8
Bump version 2.4.1
devpro Jul 26, 2026
372de12
Fix sonar warnings S2365, ASP0025 ×2, CA1862 ×2, CA1859 ×3, JS S2486
devpro Jul 27, 2026
b5c9768
Add list/thumbnail view toggle to inventory list pages
devpro Jul 27, 2026
27f1aef
Add Playwright smoke tests for the three import pages
devpro Jul 27, 2026
49b261a
Add Playwright smoke test for the reference-data admin page
devpro Jul 27, 2026
d180759
Add Playwright smoke test for the account/preferences page
devpro Jul 27, 2026
ba43822
Refine thumbnail grid: side margins + shape-aware column widths
devpro Jul 27, 2026
62b246e
Add bottom padding below the thumbnail grid
devpro Jul 27, 2026
64e7f1a
Fix time entry issue on mobile view
devpro Jul 27, 2026
4409313
Persist the list/thumbnail view as a per-device preference
devpro Jul 27, 2026
ba92c7b
Add the list/thumbnail view toggle to Wishlist and Watch Next
devpro Jul 28, 2026
064d096
Add generic import
devpro Jul 28, 2026
520c98e
Fix UI
devpro Jul 28, 2026
06e5477
Fix button on thumbnails
devpro Jul 28, 2026
1b3c728
Improve video game detail
devpro Jul 28, 2026
620cfaa
Share media items with another user
devpro Jul 28, 2026
c89eae2
Share car/house/health
devpro Jul 28, 2026
29e4825
Improve shared personal lists
devpro Jul 28, 2026
9a3aa40
Share collectibles and gears
devpro Jul 28, 2026
25798c9
Order tabs in sharing view
devpro Jul 28, 2026
fbfb328
Fix custom image display in wishlist
devpro Jul 29, 2026
1fd6848
Add test
devpro Jul 29, 2026
14fd026
UI title refresh improvement
devpro Jul 29, 2026
5fc8e8d
Fix 'RemoteNavigationManager' has not been initialized error
devpro Jul 29, 2026
42ecee2
Add Playwright tests
devpro Jul 29, 2026
8c69a84
Add playwright test for collection sharing
devpro Jul 29, 2026
cf96098
Remove tv show want to watch
devpro Jul 29, 2026
32d1201
Optimize tv show in watch next
devpro Jul 29, 2026
c40758b
Scoped change to the Watch Next thumbnail (grid) view for the TV show…
devpro Jul 29, 2026
df3df02
Update tv show status to current if new episodes appear
devpro Jul 29, 2026
a039397
Add movie rating from tmdb
devpro Jul 29, 2026
4e61434
Add ratings for other media types
devpro Jul 29, 2026
ceab4d7
Use openlibrary to get book rating
devpro Jul 30, 2026
f8d8569
Add doc for reference ratings
devpro Jul 30, 2026
9381be3
Admin select reference rating source
devpro Jul 30, 2026
bee098a
Increment 2 adding IMDB
devpro Jul 30, 2026
894f8be
Add explore for tv shows and movies
devpro Jul 30, 2026
a5a4d63
Add explore for video games and fix dismissal design
devpro Jul 31, 2026
0d03dd7
Clean db when tests run
devpro Jul 31, 2026
c38be22
Update health check endpoint to healthz
devpro Jul 31, 2026
6c1c2f5
Order import
devpro Aug 1, 2026
035b63a
Cosmetic code change
devpro Aug 1, 2026
146e858
Update min metacritic to 60 (instead of 70)
devpro Aug 1, 2026
3e42a63
Format md files with neatmd
devpro Aug 2, 2026
547207c
Improve md files
devpro Aug 2, 2026
d1abc19
Improve md
devpro Aug 2, 2026
22b13b0
Fix test file format
devpro Aug 2, 2026
5c553d9
Fix
devpro Aug 2, 2026
0e02237
FIx test with new health check endpoint
devpro Aug 2, 2026
de9a2ca
Explore fetch in database
devpro Aug 2, 2026
50bd3f6
Fix FindExternalIdsAsync
devpro Aug 2, 2026
fecf869
Enforce OMDb's daily quota with a replica-shared budget
devpro Aug 2, 2026
674183c
Refresh the stalest reference documents first, bounded per pass
devpro Aug 2, 2026
fc77e4b
Stamp the rating source on tenant items so recompute can do nothing
devpro Aug 3, 2026
fa6572f
Improve Playwright tests
devpro Aug 3, 2026
3a50920
Attemps scale and recompute
devpro Aug 3, 2026
3d90bba
Deleting a TV show now cascades to its episodes
devpro Aug 3, 2026
0e790b5
Add Playwright coverage for the Explore feature
devpro Aug 3, 2026
28f8089
Fix invalid md
devpro Aug 3, 2026
a8fdf40
Add IGDB as the default video game reference provider
devpro Aug 3, 2026
10434ec
Move to optional force to sync now and fix book issue
devpro Aug 4, 2026
63da11f
Fix line length
devpro Aug 4, 2026
fafbccb
Upsert on import based on ref id
devpro Aug 4, 2026
b6d5734
Fix/implement 404
devpro Aug 4, 2026
8d599f3
Fix invalid order
devpro Aug 4, 2026
c56549d
Add env var in ci for integration tests
devpro Aug 4, 2026
5496562
Improve reference import
devpro Aug 4, 2026
872f700
Update CI
devpro Aug 4, 2026
c9f39a7
Fix test depending on Open Library for book ref
devpro Aug 4, 2026
362c1d3
Search books by ISBN through every provider, and report provider fail…
devpro Aug 5, 2026
13a3c57
Stop stamping a reference as enriched when the spent OMDb quota skipp…
devpro Aug 5, 2026
df64aac
Let RAWG overwrite its own cover art again
devpro Aug 5, 2026
5e17d5e
Make Explore recognise the video games the owner already tracks again
devpro Aug 5, 2026
5d9a3aa
Stop Discogs' free-text search from burying the album being searched for
devpro Aug 5, 2026
a9f0045
Fix format in test file
devpro Aug 5, 2026
5cf7702
Let an Explore card open the title at the provider it was rated by
devpro Aug 6, 2026
d4ce0f6
Reach the video games a provider's own search can't find
devpro Aug 6, 2026
0ba5208
Rename env var for mobile test
devpro Aug 6, 2026
6ddad5a
Diagnose a failed e2e run, and stop the tests leaving data behind
devpro Aug 6, 2026
2709245
Make a refuel entry quick to add and its station a shared reference
devpro Aug 11, 2026
892b07e
Suggest a health entry's specialty and practitioner, fix the dropdown
devpro Aug 11, 2026
bee736d
Cover video game explore end to end, and the top-up nobody clicks
devpro Aug 12, 2026
ffe047d
Give a detail page a real cover, and quiet the chrome around it
devpro Aug 13, 2026
0c75cf5
Give the app one icon vocabulary
devpro Aug 13, 2026
9011e96
Stop the admin queue owning the top of every detail page
devpro Aug 13, 2026
9b8f5ee
Match a video game to its reference, and stop an edit from undoing it
devpro Aug 16, 2026
ba0d6fe
Identify a book by its author, and stop a link waiting on a rating
devpro Aug 17, 2026
0fe1bda
Store only aliases that name one work, and ask them before any provider
devpro Aug 17, 2026
0fbeb6f
Read the guide in one sitting, and a finding one paragraph at a time
devpro Aug 17, 2026
f98db0e
Switch back rawg as default provider for video games
devpro Aug 17, 2026
aa7a037
Show a game's key art at the size it was made for, and count the cove…
devpro Aug 17, 2026
e347e50
Use IGDB for tests
devpro Aug 17, 2026
2c3ff9c
Home.razor now wraps its whole body in @if (IsStillTheCurrentPage)
devpro Aug 17, 2026
3a74184
Fix admin video game/book provider picker defaulting to the first reg…
devpro Aug 17, 2026
34c3085
Add missing test coverage found in a test-suite audit against AGENTS.…
devpro Aug 27, 2026
c13197f
Thread CancellationToken end to end, and close three gaps a test-suit…
devpro Aug 31, 2026
baf42ff
Narrow the AuthenticationController coverage claim in the findings doc
devpro Aug 31, 2026
338fd6c
Prove the CancellationToken wiring actually cancels work, and cover A…
devpro Aug 31, 2026
20a31fa
Cover Refresh's identity-swap guard, and fix the shared sign-in cache…
devpro Aug 31, 2026
1e0df0a
Add a script to create Firebase test users
devpro Aug 31, 2026
476fa3a
Update NuGet packages
devpro Sep 24, 2026
467b780
Share the detail page logic, render charts as Razor, and clear the co…
devpro Sep 24, 2026
a892720
Simplify the Markdown files and adopt the comment and writing rules o…
devpro Sep 24, 2026
800111a
Add TODO
devpro Sep 29, 2026
1102cf1
Remove byte order marks, and point the IstarCI notes at the published…
devpro Sep 29, 2026
22c3041
Run the CI pipeline locally with task ci
devpro Sep 29, 2026
11828d0
Set the repository variables a local pipeline reads
devpro Sep 29, 2026
45da008
Pin github-workflow-parts to the commit without sudo or third party a…
devpro Sep 29, 2026
4c2b0c0
Pin github-workflow-parts to the branch commit downloading tools into…
devpro Sep 29, 2026
5838592
Allow only GitHub's actions and github-workflow-parts in IstarCI
devpro Sep 29, 2026
0de7a0c
Run IstarCI from its package, with the clone as a fallback for its ow…
devpro Sep 30, 2026
0cfec68
Record the MongoDB install left to replace, and say only delivery is …
devpro Sep 30, 2026
007526b
Fix ci issues
devpro Sep 30, 2026
8a4f191
Review markdown files
devpro Sep 30, 2026
2757bcf
Escape item ids in API paths and confine the runsettings loader to th…
devpro Sep 30, 2026
613f399
Fix the Sonar findings that make sense, and the album smoke test's co…
devpro Sep 30, 2026
bdea7b1
Link a reference only to the record it was made for
devpro Sep 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
**/.dockerignore
**/.dockerignore
**/.env
**/.git
**/.gitignore
Expand Down
3 changes: 2 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Inspired by https://github.com/dotnet/roslyn/blob/master/.editorconfig
# Inspired by https://github.com/dotnet/roslyn/blob/master/.editorconfig

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
Expand Down
2 changes: 1 addition & 1 deletion .fossa.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: 3
version: 3
# https://github.com/fossas/fossa-cli/blob/master/docs/references/files/fossa-yml.md

paths:
Expand Down
18 changes: 12 additions & 6 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: CI
name: CI
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
# purpose: Continuous Integration pipeline

Expand Down Expand Up @@ -39,13 +39,13 @@ jobs:

markup-lint:
name: Markup
uses: devpro/github-workflow-parts/.github/workflows/reusable-markup-lint.yml@58dbfe0e9927f2191796ac616a4bb43126e59d98
uses: devpro/github-workflow-parts/.github/workflows/reusable-markup-lint.yml@00907950b2c345e8ad6934b07268cef056d50d86

code-quality:
name: Code
needs: git-check
if: needs.git-check.outputs.app_changed == 'true' || (github.event_name == 'workflow_dispatch' && inputs.run-code-quality)
uses: devpro/github-workflow-parts/.github/workflows/reusable-dotnet-quality.yml@58dbfe0e9927f2191796ac616a4bb43126e59d98
uses: devpro/github-workflow-parts/.github/workflows/reusable-dotnet-quality.yml@00907950b2c345e8ad6934b07268cef056d50d86
with:
# TODO: need a safe solution for service account json content
#
Expand All @@ -67,18 +67,20 @@ jobs:
dotnet-test-args: "--report-xunit-trx --coverage --coverage-output-format cobertura"
extra-vars: |
AllowedOrigins__0=5207
AllowedOrigins__1=7042
Features__IsScalarEnabled=true
Features__IsHttpsRedirectionEnabled=false
Infrastructure__MongoDB__ConnectionString=mongodb://localhost:27017
Infrastructure__MongoDB__DatabaseName=keeptrack_ci
Logging__LogLevel__Keeptrack=Debug
fossa-enabled: true
sonar-enabled: true
sonar-cpd-exclusions: "**/*.g.cs,**/*.generated.cs,**/src/WebApi.Contracts/Dto/*.cs,**/src/Domain/Models/*.cs,**/src/Infrastructure.MongoDb/Entities/*.cs"
sonar-exclusions: "**/samples/**,**/*.png"
sonar-organization: ${{ vars.SONAR_ORG }}
sonar-project-key: ${{ vars.SONAR_PROJECT_KEY }}
sonar-project-name: Keeptrack
workflow-parts-version: 58dbfe0e9927f2191796ac616a4bb43126e59d98
workflow-parts-version: 00907950b2c345e8ad6934b07268cef056d50d86
secrets:
fossa-api-key: ${{ secrets.FOSSA_API_KEY }}
sonar-token: ${{ secrets.SONAR_TOKEN }}
Expand All @@ -89,6 +91,10 @@ jobs:
Tmdb__ApiKey=${{ secrets.TMDB_APIKEY }}
Rawg__ApiKey=${{ secrets.RAWG_APIKEY }}
Discogs__Token=${{ secrets.DISCOGS_TOKEN }}
GoogleBooks__ApiKey=${{ secrets.GOOGLEBOOKS_APIKEY }}
Omdb__ApiKey=${{ secrets.OMDB_APIKEY }}
Igdb__ClientId=${{ secrets.IGDB_CLIENTID }}
Igdb__ClientSecret=${{ secrets.IGDB_CLIENTSECRET }}
FIREBASE_APIKEY=${{ secrets.FIREBASE_APIKEY }}
FIREBASE_USERNAME=${{ secrets.FIREBASE_TESTUSERNAME }}
FIREBASE_PASSWORD=${{ secrets.FIREBASE_TESTPASSWORD }}
Expand All @@ -109,12 +115,12 @@ jobs:
- name: "Web Api"
image-name: "keeptrack-webapi"
image-definition: "src/WebApi/Dockerfile"
uses: devpro/github-workflow-parts/.github/workflows/reusable-container-scan.yml@58dbfe0e9927f2191796ac616a4bb43126e59d98
uses: devpro/github-workflow-parts/.github/workflows/reusable-container-scan.yml@00907950b2c345e8ad6934b07268cef056d50d86
with:
image-definition: ${{ matrix.image-definition }}
image-name: ${{ matrix.image-name }}
image-path: ${{ vars.CONTAINER_REGISTRY_PATH }}
image-tag: "${{ needs.git-check.outputs.version_major_minor }}.${{ github.run_id }}"
max-high-cves: 1 # temporary (2026-07-19): libxml2-2 │ SUSE-SU-2026:3097-1 │ HIGH │ fixed │ 2.12.10-150700.4.11.1 │ 2.12.10-150700.4.14.1 │ Security update for libxml2
max-medium-cves: 0
workflow-parts-version: 58dbfe0e9927f2191796ac616a4bb43126e59d98
workflow-parts-version: 00907950b2c345e8ad6934b07268cef056d50d86
6 changes: 3 additions & 3 deletions .github/workflows/pkg.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: PKG
name: PKG
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
# purpose: Continuous Delivery (aka Packaging & Shipping)

Expand Down Expand Up @@ -28,14 +28,14 @@ jobs:
permissions:
id-token: write
contents: read
uses: devpro/github-workflow-parts/.github/workflows/reusable-container-publication.yml@58dbfe0e9927f2191796ac616a4bb43126e59d98
uses: devpro/github-workflow-parts/.github/workflows/reusable-container-publication.yml@00907950b2c345e8ad6934b07268cef056d50d86
with:
create-latest: ${{ github.ref_name == 'main' }}
image-definition: ${{ matrix.image-definition }}
image-name: ${{ matrix.image-name }}
image-path: ${{ vars.CONTAINER_REGISTRY_PATH }}
image-tag: "${{ needs.git-check.outputs.version_major_minor }}.${{ github.run_id }}"
workflow-parts-version: 58dbfe0e9927f2191796ac616a4bb43126e59d98
workflow-parts-version: 00907950b2c345e8ad6934b07268cef056d50d86
secrets:
container-registry-password: ${{ secrets.DOCKERHUB_TOKEN }}
container-registry-username: ${{ secrets.DOCKERHUB_USERNAME }}
2 changes: 1 addition & 1 deletion .github/workflows/reusable-git-check.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Reusable - Git check
name: Reusable - Git check

on:
workflow_call:
Expand Down
25 changes: 25 additions & 0 deletions .istarci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# IstarCI configuration, read from the root of the repository.

runner:
image: ghcr.io/devpro/ubuntu-dotnet:latest
images:
"git-check*": ghcr.io/devpro/debian-node:latest
"markup-lint*": ghcr.io/devpro/debian-node:latest
"image-scan*": ghcr.io/devpro/debian-node:latest
# The scan jobs build an image and scan it through the host Docker daemon.
docker: true

workflow:
# Actions published by GitHub or Docker, and the composite replacements for every other one kept in github-workflow-parts.
allowedActions:
- actions/*
- github/*
- docker/*
- devpro/github-workflow-parts/*
# Delivery publishes on a push to the default branch, which a local run must never reach.
exclude:
- pkg.yaml

# Repository variables the pipeline reads, which a local run otherwise gets as placeholders, and an image tag refuses the uppercase in one.
vars:
CONTAINER_REGISTRY_PATH: devprofr
2 changes: 1 addition & 1 deletion .markdownlint-cli2.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
gitignore: true
ignores:
- "**/node_modules/**"
- CLAUDE.md
config:
default: true
MD013:
Expand Down
2 changes: 1 addition & 1 deletion .yamllint.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
extends: default
extends: default
# ref. https://yamllint.readthedocs.io/en/stable/configuration.html
ignore-from-file:
- .gitignore
Expand Down
Loading
Loading