FLOSS kanban, built with Meteor. Official Public Support at GitHub issues only. Official Private Pre-Paid Support at https://wekan.fi/commercial-support/ only. Translation PRs to imports/i18n/data/en.i18n.json, other translations at https://app.transifex.com/wekan/wekan . No telemetry.
This report summarizes scanner evidence for wekan/wekan, a JavaScript project with 21,146 GitHub stars. SynthScan examined 2,006,053 lines of code across 4465 source files, recording 3689 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 2.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 2557 finding(s).
Are imports declared and package/API names verified? 163 finding(s).
Are wrappers, guards, and repeated structures necessary? 1549 finding(s).
Which changes need focused human review? 3689 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 3689 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 216 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 219 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 228 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 235 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 264 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 270 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 278 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 294 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 297 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 301 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 308 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 318 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 323 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 324 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 332 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 336 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 341 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 349 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 354 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 359 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 393 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 397 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 405 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 416 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 424 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 428 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 432 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 435 | #--------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 446 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 449 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 904 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 912 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 916 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 920 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 924 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 928 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 932 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 935 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 938 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 944 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 1004 | #------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 1007 | #------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docker-compose-ferretdb-v1-mysql.yml | 1012 | #--------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 164 | #------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 182 | #------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 194 | #------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 200 | #------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 248 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 375 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 380 | #--------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 500 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 527 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 544 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 563 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 597 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 617 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 651 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 657 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 833 | #----------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose-ferretdb-v1-mysql.yml | 868 | #--------------------------------------------------------------------- | COMMENT |
| 875 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-ferretdb-v1-mysql.yml | 1 | # WeKan with FerretDB v1 + MySQL | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 21 | # docker-compose-ferretdb-v1-mysql.yml FerretDB v1 + MySQL | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 161 | - 127.0.0.1:27017:27017 | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 181 | #image: wekanteam/wekan:latest | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 201 | ports: | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 221 | # Any region. For example: | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 241 | # This can be problematic with avatars https://github.com/wekan/wekan/issues/1776 | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 261 | #- MAIL_SERVICE_USER=firstname.lastname@hotmail.com | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 281 | # | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 301 | #--------------------------------------------------------------- | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 321 | # Defaults below. Uncomment to change. wekan/server/accounts-common.js | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 341 | #--------------------------------------------------------------- | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 361 | # https://github.com/wekan/wekan/pull/2541 | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 381 | # ==== EMAIL DUE DATE NOTIFICATION ===== | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 401 | # CORS_ALLOW_HEADERS: Set Access-Control-Allow-Headers header. "Authorization,Content-Type" is required for cross | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 421 | - BROWSER_POLICY_ENABLED=true | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 441 | # is also ended and the user is returned to Wekan (ROOT_URL) via | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 461 | # Azure AD B2C. https://github.com/wekan/wekan/issues/5242 | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 481 | #- OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 501 | # ==== OAUTH2 Nextcloud ==== | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 521 | # The claim name you want to map to the username field: | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 541 | #- OAUTH2_USERNAME_MAP=preferred_username | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 561 | #- OAUTH2_FULLNAME_MAP=name | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 581 | # OAuth2 Userinfo Endpoint. | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 601 | # Most settings work both on Snap and Docker below. | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 621 | # When using AD Simple Auth, LDAP_BASEDN is not needed. | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 641 | # | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 661 | # Reconnect to the server if the connection is lost | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 681 | # The password for the search user | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 701 | # | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 721 | # base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search t | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 741 | # must still be configured for any group search to work. | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 761 | # The format of the value of LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE. Example: 'dn' if the users dn is saved as v | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 781 | # Update groups, admin status, e-mail, full name and username from the OIDC provider at every login (true). Defaul | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 801 | # | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 821 | # | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 841 | # with the LDAP_SYNC_USER_DATA_FIELDMAP is defined in setting LDAP_DEFAULT_DOMAIN above. | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 861 | # | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 881 | # Optional: if WeKan sits behind MULTIPLE proxy hops, list the intermediate | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 901 | # LOGOUT_ON_MINUTES : The number of minutes | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 921 | # PASSWORD_MIN_LENGTH : Shortest new password allowed, in characters. Default 8. | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 941 | # always kept. Unset or 0 = keep all (default). Admin Panel / Attachments | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 961 | #- INBOUND_EMAIL_MAX_BYTES=31457280 | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 981 | # WEKAN_RAM_MONITOR : false turns off the memory monitor of this server | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 1001 | #- ATTACHMENTS_RETENTION_DRY_RUN=true | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 1021 | # SAML_ISSUER : this WeKan instance's SAML issuer/entity ID. | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 1041 | # attribute email_verified=true (SAML has no standard one: add it at the | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 1061 | # ==== Google ==== create the app at https://console.cloud.google.com/apis/credentials | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 1081 | #- OAUTH_FACEBOOK_SECRET_FILE=/run/secrets/oauth_facebook_secret | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 1101 | # OAUTH_WEIBO_SECRET_FILE : read the secret from a file (Docker secrets) instead | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 1121 | #- PASSWORDLESS_ENABLED=true | COMMENT |
| LOW | find.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 1 | # WeKan with FerretDB 2 + PostgreSQL (DocumentDB extension) | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 61 | # when upgrading would be better to use version tag. | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 81 | # - https://github.com/wekan/wekan/issues/4587 | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 101 | #-------------------- USING MONGODB CHANGE STREAMS WITH REPLICA SETS AT CURRENT DATABASE -------------------- | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 121 | # ap-southeast-1,ap-northeast-1,sa-east-1 | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 141 | # - http://192.168.1.100 <=== using at local LAN | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 161 | # Add more Node heap, this is done by default at Dockerfile: | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 181 | # ==== OPTIONAL: KADIRA PERFORMANCE MONITORING FOR METEOR ==== | COMMENT |
| 1790 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | config/router.js | 68 | function ensureSignedInUnlessSandstorm(context, redirect, stop) { | CODE |
| LOW | config/router.js | 131 | function maybeRedirectToDefaultBoard() { | CODE |
| LOW⚡ | tests/ucsRelease.test.py | 92 | def test_old_image_without_bundled_tools_cannot_create_a_portal_draft(self): | CODE |
| LOW⚡ | tests/ucsRelease.test.py | 101 | def test_wrong_database_uid_blocks_portal_write(self): | CODE |
| LOW⚡ | tests/ucsRelease.test.py | 110 | def test_invalid_or_duplicate_image_is_rejected_before_pull(self): | CODE |
| LOW | tests/ucsRelease.test.py | 58 | def test_anonymous_pulls_use_empty_config_for_every_image(self): | CODE |
| LOW | tests/ucsRelease.test.py | 79 | def test_private_or_missing_image_blocks_new_and_existing_drafts(self): | CODE |
| LOW | tests/ucsRelease.test.py | 122 | def test_cli_reads_password_from_fresh_pipe_without_disk_storage(self): | CODE |
| LOW⚡ | tests/ucsRelease.test.py | 187 | def test_create_upload_readback(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 193 | def test_retry_existing_draft(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 198 | def test_published_version_is_read_only(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 204 | def test_readback_failure_is_not_success(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 208 | def test_missing_source_does_not_create_version(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 214 | def test_missing_upload_file_fails_before_remote_write(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 221 | def test_unsafe_versions_and_wrong_database_are_rejected(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 250 | def test_compose_that_would_refuse_every_ldap_login_is_not_published(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 256 | def test_fixed_ucs_ldap_settings_are_published(self): | STRING |
| LOW⚡ | tests/ucsRelease.test.py | 263 | def test_ldap_group_rules_follow_wekan(self): | STRING |
| LOW | tests/ucsRelease.test.py | 140 | def test_cli_failure_does_not_expose_credentials_or_private_output(self): | STRING |
| LOW | tests/ucsRelease.test.py | 151 | def test_prepare_keeps_history_and_synchronizes_images(self): | STRING |
| LOW | tests/ucsRelease.test.py | 166 | def test_database_tag_override_updates_compose_and_hook(self): | STRING |
| LOW | tests/ucsRelease.test.py | 175 | def test_release_selection_uses_published_version_tags(self): | STRING |
| LOW | tests/mac-smoke-app.py | 33 | def test_permission_error_only_ignored_for_dead_groups(self): | CODE |
| LOW⚡ | tests/mac-smoke-app.py | 46 | def test_failed_process_inspection_is_not_success(self): | CODE |
| LOW⚡ | tests/mac-smoke-app.py | 53 | def test_darwin_shutdown_race_reaps_launcher(self): | CODE |
| LOW⚡ | tests/mac-smoke-app.py | 63 | def test_success_and_failure_stop_term_resistant_descendants(self): | CODE |
| LOW | tests/mac-smoke-app.py | 100 | def test_early_exit_preserves_failure(self): | CODE |
| LOW | tests/mac-smoke-app.py | 109 | def test_real_http_success_and_failure(self): | CODE |
| LOW | tests/mac-smoke-app.py | 133 | def test_probe_exception_still_cleans_up(self): | CODE |
| LOW⚡ | tests/remoteRelease.test.py | 117 | def test_no_dependencies_accepts_empty_inventory(self): | CODE |
| LOW⚡ | tests/remoteRelease.test.py | 122 | def test_missing_upstream_baseline_warns_without_blocking(self): | CODE |
| LOW⚡ | tests/remoteRelease.test.py | 130 | def test_node_resolver_uses_shell_relative_path_on_windows(self): | CODE |
| LOW⚡ | tests/remoteRelease.test.py | 142 | def test_changed_upstream_fails_and_reviewed_sha_passes(self): | CODE |
| LOW⚡ | tests/remoteRelease.test.py | 151 | def test_latest_reads_pages_without_slurp(self): | CODE |
| LOW | tests/remoteRelease.test.py | 60 | def test_real_notes_required_and_unchanged(self): | CODE |
| LOW | tests/remoteRelease.test.py | 68 | def test_dependency_inventory_detects_new_changed_deleted_and_symlink(self): | CODE |
| LOW | tests/remoteRelease.test.py | 94 | def test_known_dependency_matches_are_info_but_new_matches_warn(self): | CODE |
| LOW | tests/remoteRelease.test.py | 168 | def test_missing_preserves_version_and_selects_existing_source(self): | CODE |
| LOW | tests/remoteRelease.test.py | 179 | def test_publish_orders_commit_push_dispatch_including_untracked(self): | CODE |
| LOW | tests/remoteRelease.test.py | 192 | def test_missing_never_renames_notes_or_tags(self): | CODE |
| LOW | tests/remoteRelease.test.py | 200 | def test_failed_commit_or_push_prevents_dispatch(self): | CODE |
| LOW | tests/remoteRelease.test.py | 212 | def test_missing_uses_existing_notes_without_new_upcoming(self): | CODE |
| LOW | tests/remoteRelease.test.py | 219 | def test_audit_failure_stops_main_before_version_or_publish(self): | CODE |
| LOW | tests/remoteRelease.test.py | 231 | def test_check_mode_never_changes_notes_or_publishes(self): | CODE |
| LOW | tests/remoteRelease.test.py | 241 | def test_node_tag_must_resolve_to_reviewed_commit(self): | CODE |
| LOW | tests/remoteRelease.test.py | 255 | def test_mongosh_commit_must_match_source_and_lockfile_review(self): | CODE |
| LOW | tests/wekanCreator.import.test.js | 223 | function testDefaultSwimlaneCreation() { | CODE |
| LOW⚡ | tests/riskAudit.test.py | 22 | def test_ordinary_hash_changes_and_local_logging_do_not_block(self): | CODE |
| LOW⚡ | tests/riskAudit.test.py | 25 | def test_new_urls_and_keywords_stop_with_evidence(self): | CODE |
| LOW⚡ | tests/riskAudit.test.py | 30 | def test_version_url_allowance_is_limited_to_exact_file_and_host(self): | CODE |
| LOW | tests/riskAudit.test.py | 42 | def test_known_bad_hash_always_blocks_source_or_binary(self): | CODE |
| LOW | tests/riskAudit.test.py | 46 | def test_reviewed_lockfile_funding_urls_are_allowed_only_in_lockfile(self): | CODE |
| LOW | tests/riskAudit.test.py | 62 | def test_lockfile_allowances_still_reject_unreviewed_urls_and_keywords(self): | CODE |
| LOW | tests/riskAudit.test.py | 82 | def test_sync_identity_allows_only_the_existing_github_api_origin(self): | CODE |
| LOW⚡ | tests/riskAudit.test.py | 94 | def test_baselined_keyword_is_not_blanket_for_new_occurrences(self): | CODE |
| LOW⚡ | tests/riskAudit.test.py | 100 | def test_new_files_are_scanned_and_test_fixtures_are_not_runtime(self): | CODE |
| LOW⚡ | tests/riskAudit.test.py | 105 | def test_artifact_urls_and_telemetry_signatures(self): | CODE |
| LOW⚡ | tests/riskAudit.test.py | 110 | def test_cli_exit_code_blocks_findings_but_not_hash_drift(self): | CODE |
| LOW⚡ | tests/riskAudit.test.py | 119 | def test_full_app_test_assets_are_excluded_but_public_source_is_scanned(self): | CODE |
| LOW | tests/release-telemetry.py | 23 | def test_shallow_copy_reads_sibling_policy_without_index_error(self): | CODE |
| 519 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/playwright/specs/sync-rule-email-report.e2e.js | 11 | state: 'sending', startedAt: new Date(1000), mail: 'private body and address@example.org' }); | CODE |
| LOW | tests/playwright/specs/sync-rule-email-report.e2e.js | 26 | expect(JSON.stringify(first)).not.toContain('address@example.org'); | CODE |
| LOW | tests/playwright/specs/sync-rule-email-report.e2e.js | 42 | ...(i === 12 ? { finishedAt: new Date(2000) } : {}), mail: 'private body address@example.org', | CODE |
| LOW | tests/playwright/specs/sync-rule-email-report.e2e.js | 72 | await expect(panel).not.toContainText('address@example.org'); | CODE |
| LOW | tests/playwright/specs/sync-rule-email-report.e2e.js | 90 | mail: { to: 'one@example.org, two@example.org', from: 'wekan@example.org', subject: 'S', text: 'T' } }); | CODE |
| LOW | tests/playwright/specs/sync-rule-email-report.e2e.js | 94 | db.insertOne('listSyncRuleEmailOutcomes', { _id: id, attemptId, accepted: ['one@example.org'] }); | CODE |
| LOW | tests/playwright/specs/sync-rule-email-report.e2e.js | 141 | mail: { to: 'legacy@example.org', from: 'wekan@example.org', subject: 'Legacy subject', text: 'T' } }); | CODE |
| LOW | tests/playwright/specs/sync-rule-email-report.e2e.js | 151 | await expect(row).toContainText('legacy@example.org'); | CODE |
| LOW | tests/playwright/specs/corsican-trello-import.e2e.js | 14 | await expect(page.locator('#import-workspace-name')).toHaveAttribute('placeholder', strings['import-trello-workspace-p | CODE |
| LOW | tests/playwright/specs/latin-custom-field-labels.e2e.js | 21 | await expect(pop.locator('.js-dropdown-item.last')).toHaveAttribute('placeholder', 'Preme Enter ut plures optiones add | CODE |
| LOW | …sts/playwright/specs/import-export-format-audit.e2e.js | 1361 | state_name: 'Todo', priority: 'none', assignees: [], subscribers: [], created_by_name: 'Jane Doe', start_date: null, | CODE |
| LOW | tests/playwright/specs/50-language-popup.e2e.js | 106 | await expect(input).toHaveAttribute('placeholder', translations['add-list']); | CODE |
| LOW | tests/playwright/specs/latin-card-archive.e2e.js | 29 | await expect(editor).toHaveAttribute('placeholder', ''); | CODE |
| LOW | tests/playwright/specs/auto-archive-setting.e2e.js | 21 | await expect(input).toHaveAttribute('placeholder', strings['auto-archive-off']); | CODE |
| LOW | tests/playwright/specs/import-people-modes.e2e.js | 55 | await chooseMode(page, 'placeholder'); | CODE |
| LOW | tests/playwright/specs/corsican-rule-controls.e2e.js | 11 | await expect(rules.locator('#ruleTitle')).toHaveAttribute('placeholder', 'Titulu di a nova regula'); | CODE |
| LOW | tests/playwright/specs/corsican-rule-controls.e2e.js | 102 | await expect(page.locator('#checklist-items')).toHaveAttribute('placeholder', 'res1,res2,res3'); | CODE |
| LOW | tests/playwright/specs/email-chat-views.e2e.js | 547 | await expect(mailgun.locator('.js-bounce-provider-secret')).toHaveAttribute('placeholder', /Saved/); | CODE |
| LOW | server/models/boards.js | 1178 | if (['map', 'placeholder', 'me'].includes(body.membersMode)) additionalData.membersMode = body.membersMode; | CODE |
| LOW⚡ | server/lib/tests/emailBounces.tests.js | 140 | const forged = notification({ notificationType: 'Bounce', bounce: { bounceType: 'Permanent', bouncedRecipients: [{ e | CODE |
| LOW⚡ | server/lib/tests/emailBounces.tests.js | 144 | Message: JSON.stringify({ notificationType: 'Complaint', complaint: { complainedRecipients: [{ emailAddress: 'vict | CODE |
| LOW⚡ | server/lib/tests/emailBounces.tests.js | 152 | assert.equal(await EmailBounces.findOneAsync({ email: { $in: ['victim@example.org', 'other@example.org'] } }), undef | CODE |
| LOW | server/lib/tests/emailBounces.tests.js | 199 | assert.equal(await EmailBounces.findOneAsync({ email: 'away@example.org' }), undefined, 'auto-replies are ignored | CODE |
| LOW | server/lib/tests/ruleEmailFollowedMove.tests.js | 41 | Accounts.emailTemplates.from = 'wekan@example.org'; | CODE |
| LOW | server/lib/tests/storedRulePlans.tests.js | 33 | Accounts.emailTemplates.from = 'wekan@example.org'; | CODE |
| LOW⚡ | server/lib/tests/storedRulePlans.tests.js | 134 | emailTo: 'outside@example.org', emailSubject: 'Subject {card}', emailMsg: 'Body {board} {list}' } }); | CODE |
| LOW⚡ | server/lib/tests/storedRulePlans.tests.js | 137 | assert.equal(command.mail.to, 'outside@example.org'); | CODE |
| LOW⚡ | server/lib/tests/storedRulePlans.tests.js | 138 | assert.equal(command.mail.from, 'wekan@example.org'); | CODE |
| LOW⚡ | server/lib/tests/storedRulePlans.tests.js | 143 | await Actions.rawCollection().updateOne({ _id: actionId }, { $set: { emailTo: 'changed@example.org' } }); | CODE |
| LOW⚡ | server/lib/tests/storedRulePlans.tests.js | 147 | await Actions.rawCollection().updateOne({ _id: actionId }, { $set: { emailTo: 'outside@example.org' } }); | CODE |
| LOW⚡ | server/lib/tests/storedRulePlans.tests.js | 153 | Email.sendAsync = async mail => { sent++; assert.deepEqual(mail, command.mail); return { accepted: ['outside@examp | CODE |
| LOW | server/lib/tests/storedRulePlans.tests.js | 242 | socket.write(mode === 'partial' && line.includes('rejected@example.org') | CODE |
| LOW | server/lib/tests/storedRulePlans.tests.js | 258 | Accounts.emailTemplates.from = 'sender@example.org'; Email.customTransport = undefined; | CODE |
| LOW | server/lib/tests/storedRulePlans.tests.js | 289 | await Actions.rawCollection().updateOne({ _id: actionId }, { $set: { emailTo: 'accepted@example.org, rejected@exam | CODE |
| LOW | server/lib/tests/storedRulePlans.tests.js | 296 | assert.ok(recipients.some(line => line.includes('rejected@example.org'))); | CODE |
| LOW | server/lib/tests/permissions.security.tests.js | 94 | emails: [{ address: 'user@example.com' }], | CODE |
| LOW | server/lib/tests/cardsCopyDueFixes.tests.js | 57 | const linked = { _id: 'placeholder', linkedId: 'realCard', type: 'cardType-linkedCard' }; | CODE |
| LOW | models/lib/importMembersMode.js | 18 | export const MEMBERS_MODES = ['map', 'placeholder', 'me']; | CODE |
| LOW | models/lib/importMembersMode.js | 22 | return MEMBERS_MODES.includes(mode) ? mode : 'placeholder'; | CODE |
| LOW | npm-packages/html-to-markdown/examples/index.js | 40 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas auctor ipsum eget quam sagittis, ut fringilla dia | CODE |
| LOW | npm-packages/html-to-markdown/examples/index.js | 40 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas auctor ipsum eget quam sagittis, ut fringilla dia | CODE |
| LOW | npm-packages/exceljs/README.md | 829 | worksheet.addRow({id: 1, name: 'John Doe', dob: new Date(1970,1,1)}); | CODE |
| LOW | npm-packages/exceljs/README.md | 830 | worksheet.addRow({id: 2, name: 'Jane Doe', dob: new Date(1965,1,7)}); | CODE |
| LOW | npm-packages/exceljs/README.md | 919 | worksheet.insertRow(1, {id: 1, name: 'John Doe', dob: new Date(1970,1,1)}); | CODE |
| LOW | npm-packages/exceljs/README.md | 920 | worksheet.insertRow(1, {id: 2, name: 'Jane Doe', dob: new Date(1965,1,7)}); | CODE |
| LOW | npm-packages/exceljs/README_zh.md | 807 | worksheet.addRow({id: 1, name: 'John Doe', dob: new Date(1970,1,1)}); | CODE |
| LOW | npm-packages/exceljs/README_zh.md | 808 | worksheet.addRow({id: 2, name: 'Jane Doe', dob: new Date(1965,1,7)}); | CODE |
| LOW | npm-packages/exceljs/README_zh.md | 897 | worksheet.insertRow(1, {id: 1, name: 'John Doe', dob: new Date(1970,1,1)}); | CODE |
| LOW | npm-packages/exceljs/README_zh.md | 898 | worksheet.insertRow(1, {id: 2, name: 'Jane Doe', dob: new Date(1965,1,7)}); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 246 | ws.addRow({id: 1, name: 'John Doe', dob: dateValue1}); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 247 | ws.addRow({id: 2, name: 'Jane Doe', dob: dateValue2}); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 250 | expect(ws.getCell('B2').value).to.equal('John Doe'); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 254 | expect(ws.getCell('B3').value).to.equal('Jane Doe'); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 257 | expect(ws.getRow(2).values).to.deep.equal([, 1, 'John Doe', dateValue1]); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 258 | expect(ws.getRow(3).values).to.deep.equal([, 2, 'Jane Doe', dateValue2]); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 263 | [, 1, 'John Doe', dateValue1], | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 264 | [, 2, 'Jane Doe', dateValue2], | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 281 | ws.addRow([1, 'John Doe', dateValue1]); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 282 | ws.addRow([2, 'Jane Doe', dateValue2]); | CODE |
| LOW⚡ | …ackages/exceljs/spec/unit/doc/worksheet.values.spec.js | 285 | expect(ws.getCell('B1').value).to.equal('John Doe'); | CODE |
| 82 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | api.py | 57 | python3 api.py createlabel BOARDID LABELCOLOR LABELNAME (Color available: `white`, `green`, `yellow`, `orange`, | CODE |
| MEDIUM | api.py | 115 | python3 api.py linkcard BOARDID LISTID SWIMLANEID AUTHORID LINKEDCARDID # Create a linked card in BOARDID/LISTID tha | CODE |
| MEDIUM | snapcraft-core26.yaml | 456 | # Create a basic default Caddyfile for the snap | COMMENT |
| MEDIUM | snapcraft.yaml | 891 | # Create a basic default Caddyfile for the snap | COMMENT |
| MEDIUM⚡ | releases/create-github-secrets.sh | 29 | # Create the token: https://app.docker.com/settings/personal-access-tokens | COMMENT |
| MEDIUM⚡ | releases/create-github-secrets.sh | 33 | # Create the value: | COMMENT |
| MEDIUM⚡ | releases/create-github-secrets.sh | 37 | # Create the robot account: https://quay.io/organization/wekan?tab=robots | COMMENT |
| MEDIUM⚡ | releases/create-github-secrets.sh | 43 | # Create the value: | COMMENT |
| MEDIUM⚡ | releases/create-github-secrets.sh | 47 | # Create the token (classic): https://github.com/settings/tokens | COMMENT |
| MEDIUM⚡ | releases/create-github-secrets.sh | 53 | # Create the value: | COMMENT |
| MEDIUM | releases/create-github-secrets.sh | 72 | # Create the value: | COMMENT |
| MEDIUM | releases/docker-build-deps.sh | 1 | # Create a new builder instance that supports multi-platform | COMMENT |
| MEDIUM | docs/Platforms/FOSS/Container/Docker/Meteor3/keys.sh | 12 | # Create a folder for the key if it doesn't exist | COMMENT |
| MEDIUM | .github/workflows/release-all.yml | 1213 | # Create the Release (and its notes) - or, as normally happens now, UPDATE | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api.py | 2101 | CODE | |
| LOW | releases/remote-release.py | 86 | CODE | |
| LOW | releases/remote-release.py | 161 | CODE | |
| LOW | releases/reindex-charts.py | 242 | CODE | |
| LOW | releases/reindex-charts.py | 320 | CODE | |
| LOW | releases/fix-font-bboxes.py | 90 | CODE | |
| LOW | releases/check-telemetry.py | 104 | CODE | |
| LOW | releases/check-telemetry.py | 133 | CODE | |
| LOW | releases/check-telemetry.py | 187 | CODE | |
| LOW | releases/ucs-release.py | 274 | CODE | |
| LOW | releases/bun/assets.py | 77 | CODE | |
| LOW | releases/mac/smoke-app.py | 43 | CODE | |
| LOW | tests/ucsRelease.test.py | 79 | CODE | |
| LOW | tests/mac-smoke-app.py | 63 | CODE | |
| LOW | tests/remoteRelease.test.py | 33 | CODE | |
| LOW | tests/remoteRelease.test.py | 255 | CODE | |
| LOW | tests/release-telemetry.py | 37 | CODE | |
| LOW | tests/nextcloudRelease.test.py | 57 | CODE | |
| LOW | tests/bun-release.py | 98 | CODE | |
| LOW | tests/snap-managed-apt.py | 49 | CODE | |
| LOW | tests/nextcloud/native.py | 91 | CODE | |
| LOW | tests/nextcloud/native.py | 208 | CODE | |
| LOW | docs/Features/Login-Page/ldap-sync/ldap-sync.py | 313 | CODE | |
| LOW | docs/Features/Login-Page/ldap-sync/ldap-sync.py | 64 | CODE | |
| LOW | docs/Features/Login-Page/ldap-sync/ldap-sync.py | 101 | CODE | |
| LOW | openapi/generate_openapi.py | 17 | CODE | |
| LOW | openapi/generate_openapi.py | 139 | CODE | |
| LOW | openapi/generate_openapi.py | 1140 | CODE | |
| LOW | openapi/generate_openapi.py | 1202 | CODE | |
| LOW | openapi/generate_openapi.py | 234 | CODE | |
| LOW | openapi/generate_openapi.py | 492 | CODE | |
| LOW | openapi/generate_openapi.py | 584 | CODE | |
| LOW | openapi/generate_openapi.py | 800 | CODE | |
| LOW | openapi/generate_openapi.py | 275 | CODE | |
| LOW | openapi/generate_openapi.py | 625 | CODE | |
| LOW | openapi/generate_openapi.py | 634 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | releases/ferretdb-asset.sh | 24 | # Usage: | COMMENT |
| LOW | releases/resolve-node-source.sh | 27 | # Usage: | COMMENT |
| LOW | releases/docker-publish-variant.sh | 20 | # Usage: | COMMENT |
| LOW | releases/require-binaries.sh | 15 | # Usage: | COMMENT |
| LOW | releases/test-download-urls.sh | 18 | # Usage: | COMMENT |
| LOW | releases/release-website.sh | 5 | # Usage: | COMMENT |
| LOW | releases/rebuild-docs.sh | 6 | # Usage: | COMMENT |
| LOW | releases/build-bundle-ppc64le.sh | 9 | # Usage: | COMMENT |
| LOW | releases/record-provenance.sh | 16 | # Usage: | COMMENT |
| LOW | releases/embed-verified-node.sh | 21 | # Usage: | COMMENT |
| LOW⚡ | releases/create-github-secrets.sh | 9 | # Usage: | COMMENT |
| LOW | releases/build-bundle-s390x.sh | 9 | # Usage: | COMMENT |
| LOW | releases/build-bundle-armhf.sh | 12 | # Usage: | COMMENT |
| LOW | releases/backfill-charts.sh | 35 | # Usage: | COMMENT |
| LOW | releases/release-all.sh | 11 | # Usage: | COMMENT |
| LOW | releases/release-charts.sh | 6 | # Usage: | COMMENT |
| LOW | releases/check-arch-binaries.sh | 15 | # Usage: | COMMENT |
| LOW | releases/snap-release-all-channels.sh | 43 | # Usage: | COMMENT |
| LOW | .github/workflows/release-all-missing.yml | 49 | # Usage: | COMMENT |
| LOW | .github/workflows/release-all.yml | 5 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | api.py | 524 | print(f"Error: {response.status_code}") | STRING |
| MEDIUM⚡ | api.py | 527 | print(f"Error in the GET request: {e}") | STRING |
| MEDIUM | api.py | 338 | print("Error obraining ID.") | STRING |
| MEDIUM | api.py | 340 | print("Error adding card.") | STRING |
| MEDIUM | api.py | 624 | print(f"Error: {body.status_code}") | STRING |
| MEDIUM | api.py | 648 | print(f"Error: {body.status_code}") | STRING |
| MEDIUM | api.py | 706 | print("Error GET:", e) | STRING |
| MEDIUM | api.py | 735 | print(f"Error deleting card: {e}") | STRING |
| MEDIUM | api.py | 739 | print(f"Error getting swimlane cards: {e}") | STRING |
| MEDIUM | api.py | 757 | print(f"Error: {e}") | STRING |
| MEDIUM | api.py | 860 | print(f"Error: {e}") | STRING |
| MEDIUM | api.py | 1066 | print(f"Error: File '{filepath}' not found") | STRING |
| MEDIUM | api.py | 1524 | print("Error reading CARDSJSONFILE: {}".format(e)) | STRING |
| MEDIUM | api.py | 1947 | print(f"Error reading file: {e}") | STRING |
| LOW⚡ | api.py | 526 | except Exception as e: | STRING |
| LOW | api.py | 549 | except Exception as e: | STRING |
| LOW | api.py | 705 | except Exception as e: | STRING |
| LOW | api.py | 1523 | except Exception as e: | STRING |
| LOW | api.py | 1946 | except Exception as e: | STRING |
| LOW | api.py | 2141 | except Exception as error: | STRING |
| LOW | releases/reindex-charts.py | 219 | except Exception: | CODE |
| LOW | releases/reindex-charts.py | 238 | except Exception: | CODE |
| LOW | releases/ferretdb-latest-tag.sh | 62 | except Exception: | CODE |
| LOW | releases/backfill-charts.sh | 173 | except Exception: | CODE |
| LOW | releases/translations/fill_translations.py | 28 | except Exception: | CODE |
| MEDIUM | releases/translations/fill_translations.py | 24 | def read_json(path): | CODE |
| MEDIUM | openapi/generate_openapi.py | 1079 | def parse_file(path): | CODE |
| LOW | openapi/generate_openapi.py | 730 | except Exception: | CODE |
| LOW | openapi/generate_openapi.py | 1068 | except Exception: | CODE |
| LOW | openapi/generate_openapi.py | 1083 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/forge-mirror.js | 277 | // marketplace `uses:` actions. Emit a scaffold + a guide pointing at GitLab's | COMMENT |
| MEDIUM | tools/forge-mirror.js | 290 | '# Generated scaffold by tools/forge-mirror.js. GitLab CI is NOT GitHub-Actions\n' + | CODE |
| MEDIUM | old-CHANGELOG/2022.md | 166 | https://blog.meteor.com/new-meteorjs-2-9-and-the-new-scaffold-api-5fcc0f3b1ce5 | CODE |
| MEDIUM | .agents/skills/meteor-react/SKILL.md | 52 | ## Current scaffold | COMMENT |
| MEDIUM | .agents/skills/meteor-blaze/SKILL.md | 52 | ## Current scaffold | COMMENT |
| MEDIUM | .agents/skills/meteor-blaze/SKILL.md | 80 | ## Component scaffold | COMMENT |
| MEDIUM | .agents/skills/meteor-blaze/references/pwa-scaffold.md | 1 | # Blaze PWA scaffold | COMMENT |
| MEDIUM | .github/workflows/Flatpak.yml | 332 | # is build scaffolding; it lives in repo/, goes up as an artifact for the | COMMENT |
| MEDIUM | npm-packages/exceljs/README.md | 2946 | | 0.3.0 | <ul><li>Addressed <a href="https://github.com/exceljs/exceljs/issues/266">Breaking change removing bluebird | CODE |
| MEDIUM | npm-packages/exceljs/README_zh.md | 2790 | | 0.3.0 | <ul><li>Addressed <a href="https://github.com/exceljs/exceljs/issues/266">Breaking change removing bluebird | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | README.md | 264 | # Step 1: Install dependencies (Setup -> Install dependencies) | COMMENT |
| LOW⚡ | README.md | 268 | # Step 2: Build WeKan (Setup -> Build WeKan, after dependencies complete) | COMMENT |
| LOW⚡ | README.md | 272 | # Step 3: Run WeKan in development mode (Dev server -> localhost:3000) | COMMENT |
| LOW | tests/wekanCreator.import.test.js | 254 | // Step 1: Normalize IDs | COMMENT |
| LOW⚡ | tests/wekanCreator.import.test.js | 269 | // Step 2: Map swimlanes | COMMENT |
| LOW⚡ | tests/wekanCreator.import.test.js | 275 | // Step 3: Verify cards get mapped swimlane IDs | COMMENT |
| LOW⚡ | npm-packages/exceljs/test-real-excel-file.js | 5 | // Step 1: Try to read an Excel file with a table | COMMENT |
| LOW⚡ | npm-packages/exceljs/test-real-excel-file.js | 11 | // Step 2: Get the first worksheet and inspect it | COMMENT |
| LOW⚡ | npm-packages/exceljs/test-real-excel-file.js | 14 | // Step 3: Try to get table by any available name | COMMENT |
| LOW | npm-packages/exceljs/test-real-excel-file.js | 29 | // Step 4: Try to add rows (this is where the bug happens) | COMMENT |
| LOW | npm-packages/exceljs/test-real-excel-file.js | 50 | // Step 5: Save the modified file to see if it worked | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/playwright/specs/list-sync-estimate.e2e.js | 46 | expect(preview.preview.coverage.source.rows.some(row => row.path.endsWith('/customfield_100'))).toBe(false); | CODE |
| CRITICAL | …m-packages/exceljs/lib/xlsx/xform/table/table-xform.js | 100 | this.map.autoFilter.model.columns.forEach((column, index) => { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | build.sh | 1189 | # test/assertion; the Node E2E harness prints one "[wekan-e2e] ..." line per | COMMENT |
| MEDIUM | build.sh | 1240 | # taken. The harness reuses a database only when it ANSWERS - a port held by | COMMENT |
| MEDIUM | releases/risk-audit.py | 2 | """Automated release indicators, not a comprehensive security certification. | STRING |
| MEDIUM | models/lib/boardInvites.js | 25 | // board id). Declining is made robust by having quitBoard clear the pending | COMMENT |
| MEDIUM | .github/dependabot.yml | 14 | # Playwright end-to-end test harness — pure test-only tooling that never ships in | COMMENT |
| MEDIUM | client/components/import/import.js | 1004 | // Reading it from the anchor (event.currentTarget) is robust to the click | COMMENT |
| MEDIUM | client/lib/cardCloseGuard.js | 12 | // This helper centralises the robust, propagation-independent check: if there | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/remoteRelease.test.py | 124 | (self.root/'releases/upstream.json').write_text('{"upstreamCommit":null}') | CODE |
| HIGH⚡ | tests/remoteRelease.test.py | 132 | (self.root/'releases/upstream.json').write_text('{"upstreamCommit":null}') | CODE |
| HIGH | openapi/generate_openapi.py | 1032 | a ?? b -> a || b (nullish coalescing) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/wekanCreator.import.test.js | 254 | // Step 1: Normalize IDs | COMMENT |
| LOW⚡ | tests/wekanCreator.import.test.js | 269 | // Step 2: Map swimlanes | COMMENT |
| LOW⚡ | tests/wekanCreator.import.test.js | 275 | // Step 3: Verify cards get mapped swimlane IDs | COMMENT |
| LOW | packages/ddp-server/livedata_server.js | 674 | // for now, we need to check if the ddp-rate-limiter exists since we | COMMENT |
| LOW⚡ | npm-packages/exceljs/test-real-excel-file.js | 5 | // Step 1: Try to read an Excel file with a table | COMMENT |
| LOW⚡ | npm-packages/exceljs/test-real-excel-file.js | 11 | // Step 2: Get the first worksheet and inspect it | COMMENT |
| LOW⚡ | npm-packages/exceljs/test-real-excel-file.js | 14 | // Step 3: Try to get table by any available name | COMMENT |
| LOW | npm-packages/exceljs/test-real-excel-file.js | 29 | // Step 4: Try to add rows (this is where the bug happens) | COMMENT |
| LOW | npm-packages/exceljs/test-real-excel-file.js | 50 | // Step 5: Save the modified file to see if it worked | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | releases/snapcraft-remote-compat.py | 119 | except ImportError: | CODE |
| HIGH | tests/nextcloud/native.py | 101 | except (OSError, urllib.error.URLError, ValueError): pass | CODE |
| HIGH | openapi/generate_openapi.py | 385 | except json.decoder.JSONDecodeError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/API/User.md | 99 | "id":"YOUR-ID-HERE","token":"YOUR-TOKEN-HERE","tokenExpires":"2017-12-23T21:07:10.395Z"} | CODE |
| HIGH | docs/API/User.md | 105 | curl -H "Authorization: Bearer YOUR-TOKEN-HERE" \ | CODE |
| HIGH | docs/API/User.md | 121 | curl -H "Authorization: Bearer YOUR-TOKEN-HERE" \ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docker-compose-ferretdb-v1-mysql.yml | 455 | # by installation type, but make sure you have the following: | COMMENT |
| LOW | docker-compose-ferretdb-v1-mysql.yml | 506 | # by installation type, but make sure you have the following: | COMMENT |
| LOW⚡ | docker-compose-ferretdb-v2-postgresql.yml | 365 | # by installation type, but make sure you have the following: | COMMENT |
| LOW | docker-compose-ferretdb-v2-postgresql.yml | 416 | # by installation type, but make sure you have the following: | COMMENT |
| LOW⚡ | docker-compose-ferretdb-v1-mariadb.yml | 453 | # by installation type, but make sure you have the following: | COMMENT |
| LOW | docker-compose-ferretdb-v1-mariadb.yml | 504 | # by installation type, but make sure you have the following: | COMMENT |
| LOW⚡ | docker-compose-mongodb-v7.yml | 596 | # by installation type, but make sure you have the following: | COMMENT |
| LOW | docker-compose-mongodb-v7.yml | 647 | # by installation type, but make sure you have the following: | COMMENT |
| LOW⚡ | docker-compose-ferretdb-v1-postgresql.yml | 442 | # by installation type, but make sure you have the following: | COMMENT |
| LOW | docker-compose-ferretdb-v1-postgresql.yml | 493 | # by installation type, but make sure you have the following: | COMMENT |
| LOW⚡ | start-wekan.sh | 374 | # by installation type, but make sure you have the following: | COMMENT |
| LOW⚡ | docker-compose-ferretdb-v1-sap-hana.yml | 459 | # by installation type, but make sure you have the following: | COMMENT |
| LOW | docker-compose-ferretdb-v1-sap-hana.yml | 510 | # by installation type, but make sure you have the following: | COMMENT |
| LOW⚡ | docker-compose.yml | 440 | # by installation type, but make sure you have the following: | COMMENT |
| LOW | docker-compose.yml | 491 | # by installation type, but make sure you have the following: | COMMENT |
| LOW | releases/virtualbox/start-wekan.sh | 157 | # by installation type, but make sure you have the following: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api.py | 13 | CODE | |
| LOW | api.py | 16 | CODE | |
| LOW | releases/analyse-heapsnapshot.py | 21 | CODE | |
| LOW | tests/ucsRelease.test.py | 3 | CODE | |
| LOW | tests/riskAudit.test.py | 1 | CODE | |
| LOW | tests/riskAudit.test.py | 4 | CODE | |
| LOW | tests/bun-release.py | 2 | CODE | |
| LOW | tests/nextcloud/container.py | 8 | CODE | |
| LOW | docs/Features/Login-Page/ldap-sync/ldap-sync.py | 13 | CODE | |
| LOW | …ebar/Board-Settings/Import-Export/Trello/trello/api.py | 16 | CODE | |
| LOW | …ebar/Board-Settings/Import-Export/Trello/trello/api.py | 10 | CODE | |
| LOW | …ebar/Board-Settings/Import-Export/Trello/trello/api.py | 11 | CODE | |
| LOW | …ebar/Board-Settings/Import-Export/Trello/trello/api.py | 14 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | server/publications/boards.js | 1571 | // WIP-Run), computed board-scoped as requested. The calculation itself is pure | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/Platforms/FOSS/Container/Docker/Meteor3/backup.sh | 48 | # Check if the backup was successful | COMMENT |
| LOW | docs/Platforms/FOSS/Container/Docker/Meteor3/sh.sh | 13 | # Check if the .txt file exists | COMMENT |
| LOW | stacksmith/user-scripts/build.sh | 61 | # Check if opting for a release candidate instead of major release | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | openapi/generate_openapi.py | 13 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | openapi/generate_openapi.py | 1054 | CODE |