https://github.com/thepoolpat/poolpat-portfolio
· scanned 2026-06-16 00:34 UTC (2 months, 2 weeks ago)
41 raw signals (0 security + 41 graph)
Last scanned 2 months, 2 weeks ago · v1 · 37 actionable findings from 1 signal source. 4 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 450 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
withEnv |
software | healthy | packages/affiliate-helper/tests/affiliate-helper.test.js:wi… |
validateStorefront |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js:validateSt… |
validateCt |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js:validateCt |
resolveSalt |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js:resolveSalt |
hashCampaign |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js:hashCampai… |
link |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js:link |
rewrite |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js:rewrite |
parseCt |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js:parseCt |
resolveCode |
software | healthy | dev/gen_world_geo.mjs:resolveCode |
round |
software | healthy | dev/gen_world_geo.mjs:round |
isNum |
software | healthy | dev/validate-data.mjs:isNum |
isStr |
software | healthy | dev/validate-data.mjs:isStr |
fail |
software | healthy | dev/validate-data.mjs:fail |
checkLocationCountries |
software | healthy | dev/validate-data.mjs:checkLocationCountries |
checkWorldGeo |
software | healthy | dev/validate-data.mjs:checkWorldGeo |
checkPlays |
software | healthy | dev/validate-data.mjs:checkPlays |
checkLocationCountriesZod |
software | healthy | dev/validate-data.mjs:checkLocationCountriesZod |
checkWorldGeoZod |
software | healthy | dev/validate-data.mjs:checkWorldGeoZod |
checkPlaysZod |
software | healthy | dev/validate-data.mjs:checkPlaysZod |
load_hermes_auth |
software | healthy | dev/setup_camoufox_spotify.py:37 |
setup_env_file |
software | healthy | dev/setup_camoufox_spotify.py:50 |
setup_spotify_creds |
software | healthy | dev/setup_camoufox_spotify.py:71 |
create_camoufox_config |
software | healthy | dev/setup_camoufox_spotify.py:100 |
print_usage |
software | healthy | dev/setup_camoufox_spotify.py:140 |
main |
software | healthy | dev/setup_camoufox_spotify.py:187 |
main |
software | healthy | dev/examples/list_top_tracks.py:13 |
main |
software | healthy | dev/examples/control_playback.py:14 |
main |
software | healthy | dev/examples/get_profile.py:13 |
generate_pkce_pair |
software | healthy | pipeline/spotify_auth.py:32 |
build_auth_url |
software | healthy | pipeline/spotify_auth.py:40 |
exchange_code |
software | healthy | pipeline/spotify_auth.py:58 |
refresh_access_token |
software | healthy | pipeline/spotify_auth.py:80 |
_run_local_auth |
software | healthy | pipeline/spotify_auth.py:136 |
do_GET |
software | dead | pipeline/spotify_auth.py:144 |
log_message |
software | dead | pipeline/spotify_auth.py:165 |
__init__ |
software | healthy | pipeline/spotify_discord_analytics.py:38 |
_load_creds |
software | healthy | pipeline/spotify_discord_analytics.py:69 |
_init_db |
software | healthy | pipeline/spotify_discord_analytics.py:79 |
poll_playback |
software | healthy | pipeline/spotify_discord_analytics.py:139 |
log_playback |
software | healthy | pipeline/spotify_discord_analytics.py:154 |
_send_discord |
software | healthy | pipeline/spotify_discord_analytics.py:210 |
get_playback_stats |
software | healthy | pipeline/spotify_discord_analytics.py:225 |
run |
software | healthy | pipeline/spotify_discord_analytics.py:275 |
_show_stats |
software | healthy | pipeline/spotify_discord_analytics.py:293 |
main |
software | healthy | pipeline/spotify_discord_analytics.py:309 |
_canon_display |
software | healthy | pipeline/fetch_plays.py:48 |
_canon_key |
software | healthy | pipeline/fetch_plays.py:57 |
_num |
software | healthy | pipeline/fetch_plays.py:65 |
monotonic_merge_tracks |
software | healthy | pipeline/fetch_plays.py:69 |
monotonic_total |
software | healthy | pipeline/fetch_plays.py:91 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
package.json |
software | healthy | package.json |
astro.config.mjs |
software | healthy | astro.config.mjs |
package-lock.json |
software | healthy | package-lock.json |
.env.example |
software | healthy | .env.example |
tsconfig.json |
software | healthy | tsconfig.json |
vitest.config.ts |
software | healthy | vitest.config.ts |
DEVELOPMENT.md |
software | healthy | docs/DEVELOPMENT.md |
SPOTIFY_DISCORD_GUIDE.md |
software | healthy | docs/SPOTIFY_DISCORD_GUIDE.md |
affiliate-helper.test.js |
software | healthy | packages/affiliate-helper/tests/affiliate-helper.test.js |
affiliate-helper.js |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js |
setup_discord.sh |
software | healthy | dev/setup_discord.sh |
demo_analytics.py |
software | healthy | dev/demo_analytics.py |
test_discord_webhook.sh |
software | healthy | dev/test_discord_webhook.sh |
gen_world_geo.mjs |
software | healthy | dev/gen_world_geo.mjs |
setup_discord_webhook.sh |
software | healthy | dev/setup_discord_webhook.sh |
validate-data.mjs |
software | healthy | dev/validate-data.mjs |
setup_camoufox_spotify.py |
software | healthy | dev/setup_camoufox_spotify.py |
camoufox_spotify.json |
software | healthy | dev/config/camoufox_spotify.json |
list_top_tracks.py |
software | healthy | dev/examples/list_top_tracks.py |
control_playback.py |
software | healthy | dev/examples/control_playback.py |
get_profile.py |
software | healthy | dev/examples/get_profile.py |
spotify_auth.py |
software | healthy | pipeline/spotify_auth.py |
__init__.py |
software | healthy | pipeline/__init__.py |
run_batch.py |
software | healthy | pipeline/run_batch.py |
spotify_discord_analytics.py |
software | healthy | pipeline/spotify_discord_analytics.py |
refresh_token.py |
software | healthy | pipeline/refresh_token.py |
fetch_plays.py |
software | healthy | pipeline/fetch_plays.py |
spotify_client.py |
software | healthy | pipeline/spotify_client.py |
run_batch.sh |
software | healthy | pipeline/run_batch.sh |
spotify_enhanced_analytics.py |
software | healthy | pipeline/spotify_enhanced_analytics.py |
use_camoufox.py |
software | healthy | pipeline/use_camoufox.py |
camoufox_spotify_player.py |
software | healthy | pipeline/camoufox_spotify_player.py |
.env.example |
software | healthy | pipeline/.env.example |
spotify_flow.py |
software | healthy | pipeline/spotify_flow.py |
pyproject.toml |
software | healthy | pipeline/pyproject.toml |
spotify_errors.py |
software | healthy | pipeline/spotify_errors.py |
musickit_token.py |
software | healthy | pipeline/musickit_token.py |
requirements.txt |
software | healthy | pipeline/requirements.txt |
run_spotify.py |
software | healthy | pipeline/run_spotify.py |
run_spotify_batch.sh |
software | healthy | pipeline/run_spotify_batch.sh |
run_batch_cached.py |
software | healthy | pipeline/run_batch_cached.py |
fetch_playlists.py |
software | healthy | pipeline/fetch_playlists.py |
test_spotify_auth.py |
software | healthy | pipeline/tests/test_spotify_auth.py |
test_fetch_plays_monotonic.py |
software | healthy | pipeline/tests/test_fetch_plays_monotonic.py |
test_fetch_plays_orchestration.py |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py |
test_spotify_errors.py |
software | healthy | pipeline/tests/test_spotify_errors.py |
test_spotify_client.py |
software | healthy | pipeline/tests/test_spotify_client.py |
test_fetch_playlists.py |
software | healthy | pipeline/tests/test_fetch_playlists.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
AffiliateError |
software | healthy | packages/affiliate-helper/js/affiliate-helper.js:AffiliateE… |
CallbackHandler |
software | healthy | pipeline/spotify_auth.py:143 |
SpotifyDiscordAnalytics |
software | healthy | pipeline/spotify_discord_analytics.py:35 |
SpotifyClient |
software | healthy | pipeline/spotify_client.py:24 |
EnhancedSpotifyAnalytics |
software | healthy | pipeline/spotify_enhanced_analytics.py:30 |
CamoufoxSpotifyPlayer |
software | healthy | pipeline/camoufox_spotify_player.py:40 |
SpotifyError |
software | healthy | pipeline/spotify_errors.py:6 |
SpotifyAuthError |
software | healthy | pipeline/spotify_errors.py:14 |
SpotifyRateLimitError |
software | healthy | pipeline/spotify_errors.py:18 |
SpotifyNotFoundError |
software | healthy | pipeline/spotify_errors.py:24 |
SpotifyServerError |
software | healthy | pipeline/spotify_errors.py:28 |
TestPKCE |
software | healthy | pipeline/tests/test_spotify_auth.py:18 |
TestBuildAuthURL |
software | healthy | pipeline/tests/test_spotify_auth.py:35 |
TestRefreshAccessToken |
software | healthy | pipeline/tests/test_spotify_auth.py:45 |
TestExchangeCode |
software | healthy | pipeline/tests/test_spotify_auth.py:222 |
TestUnicodeNormalizedMerge |
software | healthy | pipeline/tests/test_fetch_plays_monotonic.py:20 |
TestMonotonicMergeTracks |
software | healthy | pipeline/tests/test_fetch_plays_monotonic.py:75 |
TestMonotonicTotal |
software | healthy | pipeline/tests/test_fetch_plays_monotonic.py:161 |
TestFetchSoundcloudAll |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:32 |
TestFetchSpotifyAll |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:146 |
TestFetchAppleMusicAll |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:250 |
TestAppendHistoryCsv |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:330 |
TestCreateAlertIssue |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:467 |
TestFailureTracker |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:539 |
TestAtomicWriteJson |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:577 |
TestFetchSoundcloudRss |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:593 |
TestFetchSoundcloudPlaysV2 |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:636 |
TestFailureTrackerPersistence |
software | healthy | pipeline/tests/test_fetch_plays_orchestration.py:682 |
TestRaiseForStatus |
software | healthy | pipeline/tests/test_spotify_errors.py:16 |
TestSpotifyClientUser |
software | healthy | pipeline/tests/test_spotify_client.py:18 |
TestSpotifyClientPagination |
software | healthy | pipeline/tests/test_spotify_client.py:47 |
TestSpotifyClientBatching |
software | healthy | pipeline/tests/test_spotify_client.py:68 |
TestSpotifyClientRetry |
software | healthy | pipeline/tests/test_spotify_client.py:90 |
TestSpotifyClientRefresh |
software | healthy | pipeline/tests/test_spotify_client.py:170 |
TestSpotifyClientServerError |
software | healthy | pipeline/tests/test_spotify_client.py:288 |
TestGetSpotifyToken |
software | healthy | pipeline/tests/test_fetch_playlists.py:36 |
TestSpotifyGet |
software | healthy | pipeline/tests/test_fetch_playlists.py:71 |
TestGetArtistTracks |
software | healthy | pipeline/tests/test_fetch_playlists.py:136 |
TestFindPlaylistsForTrack |
software | healthy | pipeline/tests/test_fetch_playlists.py:185 |
TestEnrichWithPlaylistcheck |
software | healthy | pipeline/tests/test_fetch_playlists.py:234 |
TestDetectMood |
software | healthy | pipeline/tests/test_spotify_enhanced_analytics.py:25 |
TestMatchProjectToArtist |
software | healthy | pipeline/tests/test_spotify_enhanced_analytics.py:54 |
| Label | Layer | Status | Path |
|---|---|---|---|
docs |
software | healthy | docs |
packages |
software | healthy | packages |
affiliate-helper |
software | healthy | packages/affiliate-helper |
tests |
software | healthy | packages/affiliate-helper/tests |
js |
software | healthy | packages/affiliate-helper/js |
dev |
software | healthy | dev |
config |
software | healthy | dev/config |
examples |
software | healthy | dev/examples |
pipeline |
software | healthy | pipeline |
tests |
software | healthy | pipeline/tests |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
lib |
software | healthy | src/lib |
styles |
software | healthy | src/styles |
| Label | Layer | Status | Path |
|---|---|---|---|
playback_history |
data | healthy | pipeline/spotify_discord_analytics.py |
sessions |
data | healthy | pipeline/spotify_discord_analytics.py |
daily_stats |
data | healthy | pipeline/spotify_discord_analytics.py |
device_log |
data | healthy | pipeline/spotify_discord_analytics.py |
playback_history_v2 |
data | healthy | pipeline/spotify_enhanced_analytics.py |
portfolio_projects |
data | healthy | pipeline/spotify_enhanced_analytics.py |
discord_commands |
data | healthy | pipeline/spotify_enhanced_analytics.py |
daily_dashboard |
data | healthy | pipeline/spotify_enhanced_analytics.py |
| Label | Layer | Status | Path |
|---|---|---|---|
analyze |
cicd | healthy | .github/workflows/codeql.yml |
build |
cicd | healthy | .github/workflows/deploy.yml |
deploy |
cicd | healthy | .github/workflows/deploy.yml |
pytest |
cicd | healthy | .github/workflows/tests.yml |
vitest |
cicd | healthy | .github/workflows/tests.yml |
build |
cicd | healthy | .github/workflows/tests.yml |
fetch |
cicd | healthy | .github/workflows/fetch-data.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
GH_PAT |
cicd | healthy | — |
SPOTIFY_REFRESH_TOKEN |
cicd | healthy | — |
APPLE_MUSIC_TOKEN |
cicd | healthy | — |
RAPIDAPI_KEY |
cicd | healthy | — |
SPOTIFY_CLIENT_SECRET |
cicd | healthy | — |
CAMPAIGN_HASH_SALT |
cicd | healthy | — |
SPOTIFY_CLIENT_ID |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::pipeline/musickit_token.py |
security | healthy | pipeline/musickit_token.py |
auth::pipeline/fetch_playlists.py |
security | healthy | pipeline/fetch_playlists.py |
auth::pipeline/spotify_auth.py |
security | healthy | pipeline/spotify_auth.py |
auth::CLAUDE.md |
security | healthy | CLAUDE.md |
auth::pipeline/spotify_flow.py |
security | healthy | pipeline/spotify_flow.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::codeql |
cicd | healthy | .github/workflows/codeql.yml |
gha::deploy |
cicd | healthy | .github/workflows/deploy.yml |
gha::tests |
cicd | healthy | .github/workflows/tests.yml |
gha::fetch-data |
cicd | healthy | .github/workflows/fetch-data.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | package-lock.json |
sqlite |
data | healthy | pipeline/spotify_discord_analytics.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | dev/setup_camoufox_spotify.py |
120.0.0.0 |
network | healthy | pipeline/fetch_plays.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-8gx21ul1 |
software | healthy | /tmp/repobility-clone-8gx21ul1 |
| Label | Layer | Status | Path |
|---|---|---|---|
port:06 |
network | healthy | .github/workflows/fetch-data.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | package-lock.json |
This page is publicly accessible at:
https://repobility.com/scan/2f0c0ab4-1333-4a3e-88f3-25812552ae56/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/2f0c0ab4-1333-4a3e-88f3-25812552ae56/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.