https://github.com/wardcrazy01894/TeeTimeBooker
· scanned 2026-06-16 00:54 UTC (2 months, 1 week ago)
43 raw signals (0 security + 43 graph)
Last scanned 2 months, 1 week ago · v1 · 36 actionable findings from 1 signal source. 7 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 886 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 |
|---|---|---|---|
test_2captcha_returns_token_after_one_not_ready_poll |
software | healthy | tests/test_captcha.py:26 |
_get_side_effect |
software | healthy | tests/test_captcha.py:33 |
test_2captcha_raises_on_submit_failure |
software | healthy | tests/test_captcha.py:51 |
test_2captcha_raises_timeout_when_never_ready |
software | healthy | tests/test_captcha.py:65 |
test_2captcha_raises_on_error_response |
software | healthy | tests/test_captcha.py:83 |
test_resolve_site_key_returns_known_key_when_page_matches |
software | healthy | tests/test_captcha.py:105 |
test_resolve_site_key_returns_live_key_on_rotation |
software | healthy | tests/test_captcha.py:113 |
test_resolve_site_key_falls_back_when_key_absent |
software | healthy | tests/test_captcha.py:123 |
test_resolve_site_key_falls_back_on_http_error |
software | healthy | tests/test_captcha.py:130 |
_request |
software | healthy | tests/test_orchestrator.py:43 |
_slot |
software | healthy | tests/test_orchestrator.py:59 |
_scheduler |
software | healthy | tests/test_orchestrator.py:71 |
_build |
software | healthy | tests/test_orchestrator.py:81 |
test_run_happy_path_returns_booked |
software | healthy | tests/test_orchestrator.py:107 |
test_run_persists_authenticate_call |
software | healthy | tests/test_orchestrator.py:124 |
test_run_idempotent_short_circuits_to_prior_terminal |
software | healthy | tests/test_orchestrator.py:137 |
test_run_dry_run_skips_book_post |
software | healthy | tests/test_orchestrator.py:168 |
test_run_returns_no_inventory_when_all_courses_empty |
software | healthy | tests/test_orchestrator.py:184 |
test_run_falls_back_to_next_course_when_first_empty |
software | healthy | tests/test_orchestrator.py:195 |
test_run_retries_next_slot_when_first_is_gone |
software | healthy | tests/test_orchestrator.py:212 |
test_run_returns_no_inventory_when_all_slots_gone |
software | healthy | tests/test_orchestrator.py:228 |
test_run_falls_back_to_next_course_when_all_slots_gone |
software | healthy | tests/test_orchestrator.py:248 |
test_run_falls_back_on_no_inventory_error |
software | healthy | tests/test_orchestrator.py:268 |
test_run_short_circuits_when_existing_reservation_matches |
software | healthy | tests/test_orchestrator.py:287 |
test_run_short_circuits_when_4player_reservation_matches |
software | healthy | tests/test_orchestrator.py:312 |
test_run_proceeds_when_existing_reservation_party_size_diff… |
software | healthy | tests/test_orchestrator.py:348 |
test_run_concurrent_request_id_raises |
software | healthy | tests/test_orchestrator.py:392 |
slow_book |
software | healthy | tests/test_orchestrator.py:409 |
test_run_calls_notifier_with_terminal_result |
software | healthy | tests/test_orchestrator.py:434 |
notify |
software | healthy | tests/test_orchestrator.py:442 |
test_run_busy_waits_until_t0 |
software | healthy | tests/test_orchestrator.py:460 |
test_run_logs_race_complete_at_t0 |
software | healthy | tests/test_orchestrator.py:478 |
_scheduler_with_lead |
software | healthy | tests/test_orchestrator.py:501 |
test_run_prefetches_captcha_before_t0_when_enabled |
software | healthy | tests/test_orchestrator.py:512 |
_recording_prepare |
software | healthy | tests/test_orchestrator.py:532 |
test_run_does_not_prefetch_when_disabled |
software | healthy | tests/test_orchestrator.py:550 |
test_run_prefetch_failure_does_not_abort_race |
software | healthy | tests/test_orchestrator.py:568 |
test_run_warns_when_prefetch_lead_cannot_be_honored |
software | healthy | tests/test_orchestrator.py:590 |
test_run_does_not_warn_when_prefetch_lead_is_honored |
software | healthy | tests/test_orchestrator.py:622 |
bicep |
software | healthy | tests/test_compute_bicep_schedule.py:21 |
test_booking_jobs_are_daily |
software | healthy | tests/test_compute_bicep_schedule.py:25 |
test_watch_cron_is_daily_every_10_min |
software | healthy | tests/test_compute_bicep_schedule.py:39 |
test_exactly_two_booking_jobs_for_killswitch_parity |
software | healthy | tests/test_compute_bicep_schedule.py:43 |
test_jobname_output_index_zero_is_a_real_job |
software | healthy | tests/test_compute_bicep_schedule.py:50 |
test_enable_schedules_param_toggles_both_jobs |
software | healthy | tests/test_compute_bicep_schedule.py:56 |
compute |
software | healthy | tests/test_killswitch_job_parity.py:21 |
killswitch |
software | healthy | tests/test_killswitch_job_parity.py:26 |
test_compute_uses_edt_est_job_names |
software | healthy | tests/test_killswitch_job_parity.py:30 |
test_killswitch_targets_match_compute_job_suffixes |
software | healthy | tests/test_killswitch_job_parity.py:36 |
_request |
software | healthy | tests/test_watch_orchestrator.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 |
|---|---|---|---|
MULTIDAY_PLAN.md |
software | healthy | MULTIDAY_PLAN.md |
PERDAY_WINDOWS_PLAN.md |
software | healthy | PERDAY_WINDOWS_PLAN.md |
M6_PLAN.md |
software | healthy | M6_PLAN.md |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
LEADTIME_SKIP_PLAN.md |
software | healthy | LEADTIME_SKIP_PLAN.md |
Dockerfile |
software | healthy | Dockerfile |
.gitleaks.toml |
software | healthy | .gitleaks.toml |
FRONTEND_PLAN.md |
software | healthy | FRONTEND_PLAN.md |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
PLAN.md |
software | healthy | PLAN.md |
BACKLOG.md |
software | healthy | BACKLOG.md |
container.toml |
software | healthy | config/container.toml |
example.toml |
software | healthy | config/example.toml |
test_captcha.py |
software | healthy | tests/test_captcha.py |
test_orchestrator.py |
software | healthy | tests/test_orchestrator.py |
test_compute_bicep_schedule.py |
software | healthy | tests/test_compute_bicep_schedule.py |
__init__.py |
software | healthy | tests/__init__.py |
test_killswitch_job_parity.py |
software | healthy | tests/test_killswitch_job_parity.py |
test_watch_orchestrator.py |
software | healthy | tests/test_watch_orchestrator.py |
test_target_date.py |
software | healthy | tests/test_target_date.py |
test_killswitch_bicep.py |
software | healthy | tests/test_killswitch_bicep.py |
test_booking_day_gate.py |
software | healthy | tests/test_booking_day_gate.py |
test_watch_cli.py |
software | healthy | tests/test_watch_cli.py |
test_keyvault_bicep.py |
software | healthy | tests/test_keyvault_bicep.py |
test_skip_dates.py |
software | healthy | tests/test_skip_dates.py |
test_dst_gate.py |
software | healthy | tests/test_dst_gate.py |
test_foreup_canary.py |
software | healthy | tests/test_foreup_canary.py |
test_slot_utils.py |
software | healthy | tests/test_slot_utils.py |
test_config.py |
software | healthy | tests/test_config.py |
test_clock.py |
software | healthy | tests/test_clock.py |
test_az_deploy_guard.py |
software | healthy | tests/test_az_deploy_guard.py |
test_redact_payload.py |
software | healthy | tests/test_redact_payload.py |
test_cli.py |
software | healthy | tests/test_cli.py |
test_in_memory_store.py |
software | healthy | tests/test_in_memory_store.py |
test_registry_bicep.py |
software | healthy | tests/test_registry_bicep.py |
test_foreup_adapter.py |
software | healthy | tests/test_foreup_adapter.py |
test_budget_bicep.py |
software | healthy | tests/test_budget_bicep.py |
test_adapter_stub.py |
software | healthy | tests/test_adapter_stub.py |
test_fake_adapter.py |
software | healthy | tests/test_fake_adapter.py |
test_sort_priority.py |
software | healthy | tests/test_sort_priority.py |
test_multi_course.py |
software | healthy | tests/test_multi_course.py |
test_request_id.py |
software | healthy | tests/test_request_id.py |
test_booking_cutoff.py |
software | healthy | tests/test_booking_cutoff.py |
test_teeitup_adapter.py |
software | healthy | tests/test_teeitup_adapter.py |
test_azure_iac_killswitch_latch.py |
software | healthy | tests/test_azure_iac_killswitch_latch.py |
test_upgrade_orchestrator.py |
software | healthy | tests/test_upgrade_orchestrator.py |
test_compute_bicep_booking_args.py |
software | healthy | tests/test_compute_bicep_booking_args.py |
test_notifier.py |
software | healthy | tests/test_notifier.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
RecordingNotifier |
software | healthy | tests/test_orchestrator.py:441 |
_CapturingNotifier |
software | healthy | tests/test_watch_orchestrator.py:842 |
_SpyWatch |
software | healthy | tests/test_watch_cli.py:120 |
_Resp |
software | healthy | tests/test_clock.py:70 |
_FakeClient |
software | healthy | tests/test_clock.py:73 |
_BoomClient |
software | healthy | tests/test_clock.py:83 |
_SpyOrchestrator |
software | healthy | tests/test_cli.py:381 |
_RateLimitedWatch |
software | healthy | tests/test_cli.py:918 |
_FakeAdapter |
software | healthy | tests/test_adapter_stub.py:28 |
CapturingNotifier |
software | healthy | tests/test_upgrade_orchestrator.py:70 |
Notifier |
software | healthy | src/teetime/notifications/notifier.py:16 |
NoopNotifier |
software | healthy | src/teetime/notifications/notifier.py:24 |
ConsoleNotifier |
software | healthy | src/teetime/notifications/notifier.py:31 |
FakeAdapter |
software | healthy | src/teetime/dev/fake_adapter.py:33 |
MissingEnvVarError |
software | healthy | src/teetime/core/config.py:22 |
TimeWindowConfig |
software | healthy | src/teetime/core/config.py:31 |
CourseConfig |
software | healthy | src/teetime/core/config.py:51 |
PlayerConfig |
software | healthy | src/teetime/core/config.py:61 |
BookingCutoffConfig |
software | healthy | src/teetime/core/config.py:77 |
RequestConfig |
software | healthy | src/teetime/core/config.py:103 |
SchedulerConfig |
software | healthy | src/teetime/core/config.py:167 |
NotifierConfig |
software | healthy | src/teetime/core/config.py:181 |
WatcherConfig |
software | healthy | src/teetime/core/config.py:187 |
PrioritySlotConfig |
software | healthy | src/teetime/core/config.py:218 |
OneBookingPolicyConfig |
software | healthy | src/teetime/core/config.py:231 |
AppConfig |
software | healthy | src/teetime/core/config.py:247 |
WatchOrchestrator |
software | healthy | src/teetime/core/watch_orchestrator.py:137 |
UpgradeOrchestrator |
software | healthy | src/teetime/core/upgrade_orchestrator.py:141 |
Orchestrator |
software | healthy | src/teetime/core/orchestrator.py:51 |
_CourseSkippedError |
software | healthy | src/teetime/core/orchestrator.py:319 |
BookingOutcome |
software | healthy | src/teetime/core/models.py:83 |
CartPreference |
software | healthy | src/teetime/core/models.py:98 |
Player |
software | healthy | src/teetime/core/models.py:110 |
TimeWindow |
software | healthy | src/teetime/core/models.py:127 |
BookingRequest |
software | healthy | src/teetime/core/models.py:141 |
TeeTimeSlot |
software | healthy | src/teetime/core/models.py:161 |
ExistingReservation |
software | healthy | src/teetime/core/models.py:175 |
BookingResult |
software | healthy | src/teetime/core/models.py:214 |
CourseCredentials |
software | healthy | src/teetime/core/models.py:232 |
WatchConfig |
software | healthy | src/teetime/core/models.py:246 |
PrioritySlot |
software | healthy | src/teetime/core/models.py:273 |
AdapterError |
software | healthy | src/teetime/core/adapter.py:26 |
InventoryNotPublishedError |
software | healthy | src/teetime/core/adapter.py:30 |
NoInventoryError |
software | healthy | src/teetime/core/adapter.py:36 |
AuthError |
software | healthy | src/teetime/core/adapter.py:40 |
CaptchaError |
software | healthy | src/teetime/core/adapter.py:44 |
RateLimitError |
software | healthy | src/teetime/core/adapter.py:48 |
SlotGoneError |
software | healthy | src/teetime/core/adapter.py:56 |
CancelError |
software | healthy | src/teetime/core/adapter.py:60 |
CourseAdapter |
software | healthy | src/teetime/core/adapter.py:73 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
config |
software | healthy | config |
tests |
software | healthy | tests |
.claude |
software | healthy | .claude |
hooks |
software | healthy | .claude/hooks |
skills |
software | healthy | .claude/skills |
tdd-cycle |
software | healthy | .claude/skills/tdd-cycle |
book-dry-run |
software | healthy | .claude/skills/book-dry-run |
infra |
software | healthy | infra |
bicep |
software | healthy | infra/bicep |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
teetime |
software | healthy | src/teetime |
notifications |
software | healthy | src/teetime/notifications |
dev |
software | healthy | src/teetime/dev |
core |
software | healthy | src/teetime/core |
persistence |
software | healthy | src/teetime/persistence |
courses |
software | healthy | src/teetime/courses |
teeitup |
software | healthy | src/teetime/courses/teeitup |
foreup |
software | healthy | src/teetime/courses/foreup |
chronogolf |
software | healthy | src/teetime/courses/chronogolf |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/teetime/courses/teeitup/sydney_marovitz.py |
security | healthy | src/teetime/courses/teeitup/sydney_marovitz.py |
auth::README.md |
security | healthy | README.md |
auth::src/teetime/persistence/store.py |
security | healthy | src/teetime/persistence/store.py |
auth::src/teetime/courses/foreup/base.py |
security | healthy | src/teetime/courses/foreup/base.py |
auth::CLAUDE.md |
security | healthy | CLAUDE.md |
auth::.env.example |
security | healthy | .env.example |
auth::infra/CLAUDE.md |
security | healthy | infra/CLAUDE.md |
auth::tests/test_foreup_adapter.py |
security | healthy | tests/test_foreup_adapter.py |
auth::.github/workflows/azure-iac.yml |
security | healthy | .github/workflows/azure-iac.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
validate |
cicd | healthy | .github/workflows/azure-iac.yml |
deploy-dev |
cicd | healthy | .github/workflows/azure-iac.yml |
deploy-prod |
cicd | healthy | .github/workflows/azure-iac.yml |
test |
cicd | healthy | .github/workflows/ci.yml |
secret-scan |
cicd | healthy | .github/workflows/ci.yml |
docker-build |
cicd | healthy | .github/workflows/ci.yml |
docker-smoke |
cicd | healthy | .github/workflows/ci.yml |
bicep-lint |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
AZURE_TENANT_ID |
cicd | healthy | — |
AZURE_SUBSCRIPTION_ID |
cicd | healthy | — |
AZURE_CLIENT_ID |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::README.md |
security | healthy | README.md |
password_literal::tests/test_foreup_adapter.py |
security | healthy | tests/test_foreup_adapter.py |
password_literal::tests/test_teeitup_adapter.py |
security | healthy | tests/test_teeitup_adapter.py |
| Label | Layer | Status | Path |
|---|---|---|---|
1.2.3.4 |
network | healthy | tests/test_az_deploy_guard.py |
124.0.0.0 |
network | healthy | src/teetime/courses/foreup/captcha.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::azure-iac |
cicd | healthy | .github/workflows/azure-iac.yml |
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-zucvi3k9 |
software | healthy | /tmp/repobility-clone-zucvi3k9 |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | README.md |
This page is publicly accessible at:
https://repobility.com/scan/6eb1566d-7156-4b89-9233-673dcd691dd2/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/6eb1566d-7156-4b89-9233-673dcd691dd2/
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.