https://github.com/ruomeihu/timesheet_analyzer
· scanned 2026-06-15 23:57 UTC (2 months, 3 weeks ago)
22 raw signals (0 security + 22 graph)
Last scanned 2 months, 3 weeks ago · v1 · 18 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 251 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_holiday_judgment |
software | healthy | test_spring_festival_weeks.py:31 |
test_notion_fetch |
software | healthy | test_spring_festival_weeks.py:120 |
test_analysis_pipeline |
software | healthy | test_spring_festival_weeks.py:188 |
status |
software | healthy | test_spring_festival_weeks.py:264 |
get_week_dates |
software | healthy | auto_weekly_report.py:70 |
export_from_notion |
software | healthy | auto_weekly_report.py:105 |
run_analysis |
software | healthy | auto_weekly_report.py:131 |
send_email |
software | healthy | auto_weekly_report.py:231 |
send_webhook |
software | healthy | auto_weekly_report.py:294 |
main |
software | healthy | auto_weekly_report.py:318 |
_make_df |
software | healthy | test_unidentified_filter.py:31 |
test_member_name_null_dropped |
software | healthy | test_unidentified_filter.py:41 |
test_member_empty_dropped |
software | healthy | test_unidentified_filter.py:57 |
test_unmapped_name_kept |
software | healthy | test_unidentified_filter.py:73 |
_mih_theme |
software | healthy | app.py:55 |
_get_github_token |
software | healthy | app.py:590 |
_is_departed |
software | healthy | app.py:601 |
render_leave_form |
software | healthy | app.py:612 |
render_leave_overview |
software | healthy | app.py:712 |
render_leave_page |
software | healthy | app.py:740 |
_gray_departed |
software | healthy | app.py:878 |
load_and_process |
software | healthy | app.py:921 |
fetch_and_process_from_notion |
software | healthy | app.py:928 |
_make_df |
software | healthy | test_offboard_filter.py:32 |
test_departed_excluded_in_offboard_week |
software | healthy | test_offboard_filter.py:42 |
test_departed_kept_before_offboard_week |
software | healthy | test_offboard_filter.py:61 |
test_mutation_preserves_comments_and_appends |
software | healthy | test_github_sync.py:40 |
test_mutation_appends_to_existing_leaves |
software | healthy | test_github_sync.py:55 |
test_mutation_unknown_employee_raises |
software | healthy | test_github_sync.py:66 |
_fake_get_response |
software | healthy | test_github_sync.py:75 |
_fake_put_response |
software | healthy | test_github_sync.py:85 |
test_push_happy_path |
software | healthy | test_github_sync.py:95 |
test_push_conflict_retry_succeeds |
software | healthy | test_github_sync.py:129 |
test_push_persistent_conflict_raises |
software | healthy | test_github_sync.py:157 |
test_push_bad_token_raises |
software | healthy | test_github_sync.py:171 |
get_reference_date |
software | healthy | dingtalk_report_push.py:22 |
load_sidecar |
software | healthy | dingtalk_report_push.py:29 |
is_payload_valid |
software | healthy | dingtalk_report_push.py:41 |
render_categories |
software | healthy | dingtalk_report_push.py:70 |
build_success_markdown |
software | healthy | dingtalk_report_push.py:85 |
build_fallback_markdown |
software | healthy | dingtalk_report_push.py:151 |
sign_webhook |
software | healthy | dingtalk_report_push.py:168 |
main |
software | healthy | dingtalk_report_push.py:180 |
main |
software | healthy | main.py:30 |
test_connection |
software | healthy | test_notion_connection.py:17 |
export_sample |
software | healthy | test_notion_connection.py:83 |
load_yaml |
software | healthy | config/__init__.py:13 |
get_employees_config |
software | healthy | config/__init__.py:20 |
get_holidays_config |
software | healthy | config/__init__.py:25 |
add_leave_to_yaml_text |
software | healthy | config/__init__.py:30 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
test_spring_festival_weeks.py |
software | healthy | test_spring_festival_weeks.py |
dingtalk_reminder.py |
software | healthy | dingtalk_reminder.py |
README.md |
software | healthy | README.md |
auto_weekly_report.py |
software | healthy | auto_weekly_report.py |
test_unidentified_filter.py |
software | healthy | test_unidentified_filter.py |
CLAUDE.md |
software | healthy | CLAUDE.md |
setup_scheduled_task.sh |
software | healthy | setup_scheduled_task.sh |
app.py |
software | healthy | app.py |
test_offboard_filter.py |
software | healthy | test_offboard_filter.py |
NOTION_SETUP.md |
software | healthy | NOTION_SETUP.md |
test_github_sync.py |
software | healthy | test_github_sync.py |
dingtalk_report_push.py |
software | healthy | dingtalk_report_push.py |
.env.example |
software | healthy | .env.example |
main.py |
software | healthy | main.py |
requirements.txt |
software | healthy | requirements.txt |
SCHEDULED_TASK_SETUP.md |
software | healthy | SCHEDULED_TASK_SETUP.md |
test_notion_connection.py |
software | healthy | test_notion_connection.py |
holidays.yaml |
software | healthy | config/holidays.yaml |
__init__.py |
software | healthy | config/__init__.py |
employees.yaml |
software | healthy | config/employees.yaml |
report_20260417.md |
software | healthy | reports/report_20260417.md |
report_20260605.md |
software | healthy | reports/report_20260605.md |
test_report_20260314.md |
software | healthy | reports/test_report_20260314.md |
report_20260529.md |
software | healthy | reports/report_20260529.md |
report_20260612.json |
software | healthy | reports/report_20260612.json |
report_20260313.md |
software | healthy | reports/report_20260313.md |
report_20260508.md |
software | healthy | reports/report_20260508.md |
report_20260327.md |
software | healthy | reports/report_20260327.md |
report_20260227.md |
software | healthy | reports/report_20260227.md |
report_20260306.md |
software | healthy | reports/report_20260306.md |
report_20260501.md |
software | healthy | reports/report_20260501.md |
report_20260515.md |
software | healthy | reports/report_20260515.md |
report_20260605.json |
software | healthy | reports/report_20260605.json |
report_20260424.md |
software | healthy | reports/report_20260424.md |
report_20260522.json |
software | healthy | reports/report_20260522.json |
report_20260410.md |
software | healthy | reports/report_20260410.md |
report_20260529.json |
software | healthy | reports/report_20260529.json |
report_20260220.md |
software | healthy | reports/report_20260220.md |
report_20260612.md |
software | healthy | reports/report_20260612.md |
report_20260515.json |
software | healthy | reports/report_20260515.json |
report_20260403.md |
software | healthy | reports/report_20260403.md |
report_20260522.md |
software | healthy | reports/report_20260522.md |
dingtalk_report_push.yml |
software | healthy | .github/workflows/dingtalk_report_push.yml |
dingtalk_reminder.yml |
software | healthy | .github/workflows/dingtalk_reminder.yml |
weekly_report.yml |
software | healthy | .github/workflows/weekly_report.yml |
github_sync.py |
software | healthy | src/github_sync.py |
__init__.py |
software | healthy | src/__init__.py |
holiday_helper.py |
software | healthy | src/holiday_helper.py |
gamma_client.py |
software | healthy | src/gamma_client.py |
preprocessor.py |
software | healthy | src/preprocessor.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GitHubSyncError |
software | healthy | src/github_sync.py:32 |
HolidayHelper |
software | healthy | src/holiday_helper.py:16 |
ProjectProgress |
software | healthy | src/progress_analyzer.py:31 |
MemberAnalysis |
software | healthy | src/analyzer.py:21 |
ProjectAnalysis |
software | healthy | src/analyzer.py:38 |
TimesheetAnalyzer |
software | healthy | src/analyzer.py:49 |
AIAnalysisConfig |
software | healthy | src/ai_analyzer.py:28 |
AnalysisDimension |
software | healthy | src/ai_analyzer.py:36 |
QuickScanResult |
software | healthy | src/ai_analyzer.py:45 |
AIInsightResult |
software | healthy | src/ai_analyzer.py:54 |
AIAnalyzer |
software | healthy | src/ai_analyzer.py:81 |
NotionConnector |
software | healthy | src/notion_connector.py:20 |
| Label | Layer | Status | Path |
|---|---|---|---|
DINGTALK_SECRET |
cicd | healthy | — |
ANTHROPIC_API_KEY |
cicd | healthy | — |
DINGTALK_WEBHOOK |
cicd | healthy | — |
GAMMA_API_KEY |
cicd | healthy | — |
NOTION_API_TOKEN |
cicd | healthy | — |
MAIL_SENDER |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
config |
software | healthy | config |
reports |
software | healthy | reports |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
| Label | Layer | Status | Path |
|---|---|---|---|
port:13 |
network | healthy | setup_scheduled_task.sh |
port:06 |
network | healthy | .github/workflows/dingtalk_report_push.yml |
port:14 |
network | healthy | .github/workflows/dingtalk_report_push.yml |
port:08 |
network | healthy | .github/workflows/dingtalk_reminder.yml |
port:05 |
network | healthy | .github/workflows/weekly_report.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::dingtalk_report_push |
cicd | healthy | .github/workflows/dingtalk_report_push.yml |
gha::dingtalk_reminder |
cicd | healthy | .github/workflows/dingtalk_reminder.yml |
gha::weekly_report |
cicd | healthy | .github/workflows/weekly_report.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
push |
cicd | healthy | .github/workflows/dingtalk_report_push.yml |
notify |
cicd | healthy | .github/workflows/dingtalk_reminder.yml |
generate |
cicd | healthy | .github/workflows/weekly_report.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-7fghp5dy |
software | healthy | /tmp/repobility-clone-7fghp5dy |
This page is publicly accessible at:
https://repobility.com/scan/3943a7f0-d259-420e-b535-1c5be9bacbfe/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/3943a7f0-d259-420e-b535-1c5be9bacbfe/
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.