Fast, scriptable CLI for the App Store Connect API. Automate TestFlight, builds, submissions, signing, analytics, screenshots, subscriptions, and more
This report summarizes scanner evidence for rorkai/App-Store-Connect-CLI, a Go project with 8,154 GitHub stars. SynthScan examined 1,152,252 lines of code across 3604 source files, recording 1059 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 0.9 (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? 278 finding(s).
Are imports declared and package/API names verified? 778 finding(s).
Are wrappers, guards, and repeated structures necessary? 163 finding(s).
Which changes need focused human review? 1059 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 1059 distinct pattern matches across 12 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 |
|---|---|---|---|---|
| LOW | README.md | 310 | unmistakable template marker such as `Lorem ipsum`, `TODO`, `TBD`, or `FIXME`. | CODE |
| LOW | README.md | 311 | `Lorem ipsum` matches in any letter case. `TODO`, `TBD`, and `FIXME` match only | CODE |
| LOW | README.md | 335 | asc web auth login --apple-id "user@example.com" | CODE |
| LOW | README.md | 348 | Placeholder checks leave shorter Lorem Ipsum product wording and ordinary | CODE |
| LOW | cmd/web_auth_login_two_factor_outcome_test.go | 136 | body = `{"provider":{"providerId":7,"publicProviderId":"TEAM7","name":"Example Team"},"user":{"emailAddress":"user@ | CODE |
| LOW | cmd/web_auth_login_two_factor_outcome_test.go | 172 | code = Run(append([]string{"web", "auth", "login", "--apple-id", "user@example.com"}, test.extraArgs...), "5.10.0") | CODE |
| LOW | cmd/exit_codes_test.go | 1034 | "--apple-id", "user@example.com", | CODE |
| LOW | cmd/exit_codes_test.go | 1157 | runCmd := exec.Command(binaryPath, "web", "auth", "login", "--apple-id", "user@example.com") | CODE |
| LOW | cmd/exit_codes_test.go | 1253 | runCmd := exec.Command(binaryPath, "web", "auth", "login", "--apple-id", "user@example.com") | CODE |
| LOW | internal/asc/client_users_query_test.go | 81 | response := jsonResponse(http.StatusOK, `{"data":[{"type":"users","id":"user-1","attributes":{"username":"user@example. | CODE |
| LOW | internal/asc/client_users_query_test.go | 113 | if string(got.Data[0].Attributes["username"]) != `"user@example.com"` { | CODE |
| LOW | internal/asc/client_iap_versions_compatibility_test.go | 12 | const includedIAPVersionRelationshipJSON = `{"data":{"type":"placeholder","id":"resource-1"},"included":[{"type":"inAppP | CODE |
| LOW | internal/asc/client_http_test.go | 9880 | response := jsonResponse(http.StatusOK, `{"data":[{"type":"users","id":"user-1","attributes":{"username":"user@example. | CODE |
| LOW | internal/asc/client_http_test.go | 9889 | if values.Get("filter[username]") != "user@example.com" { | CODE |
| LOW | internal/asc/client_http_test.go | 9903 | WithUsersEmail("user@example.com"), | CODE |
| LOW | internal/asc/client_http_test.go | 9912 | response := jsonResponse(http.StatusOK, `{"data":{"type":"users","id":"user-1","attributes":{"username":"user@example.c | CODE |
| LOW | internal/asc/client_http_test.go | 9969 | response := jsonResponse(http.StatusOK, `{"data":{"type":"users","id":"user-1","attributes":{"username":"user@example.c | CODE |
| LOW | internal/asc/client_http_test.go | 10038 | response := jsonResponse(http.StatusOK, `{"data":{"type":"userInvitations","id":"invite-1","attributes":{"email":"user@ | CODE |
| LOW | internal/asc/client_http_test.go | 10053 | if payload.Data.Attributes.Email != "user@example.com" { | CODE |
| LOW | internal/asc/client_http_test.go | 10076 | Email: "user@example.com", | CODE |
| LOW | internal/asc/client_http_test.go | 10086 | response := jsonResponse(http.StatusOK, `{"data":{"type":"users","id":"user-1","attributes":{"username":"user@example.c | CODE |
| LOW | internal/auth/credential_shape_test.go | 22 | {name: "placeholder", value: "issuer-uuid", want: false}, | CODE |
| LOW | internal/auth/doctor_test.go | 1136 | apple_id "user@example.com" | CODE |
| LOW | internal/web/developer_portal_session_test.go | 214 | team, err := selectDeveloperPortalTeam(teams, "", "Acme Inc") | CODE |
| LOW | internal/web/session_lock_security_unix_test.go | 25 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/session_lock_security_unix_test.go | 39 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/session_cache_write_safety_unix_test.go | 43 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/auth_test.go | 330 | "user@example.com", | CODE |
| LOW | internal/web/auth_test.go | 359 | "user@example.com", | CODE |
| LOW | internal/web/auth_test.go | 400 | err := signinComplete(context.Background(), client, "user@example.com", "m1-proof", "m2-proof", json.RawMessage(`{"v" | CODE |
| LOW | internal/web/auth_test.go | 429 | "user@example.com", | CODE |
| LOW | internal/web/auth_test.go | 796 | "user": {"emailAddress": "user@example.com"} | CODE |
| LOW | internal/web/auth_test.go | 823 | if session.UserEmail != "user@example.com" { | CODE |
| LOW | internal/web/auth_test.go | 874 | "user": {"emailAddress": "user@example.com"} | CODE |
| LOW | internal/web/auth_test.go | 1020 | "user": {"emailAddress": "user@example.com"} | CODE |
| LOW | internal/web/auth_test.go | 1059 | "user": {"emailAddress": "user@example.com"} | CODE |
| LOW | internal/web/auth_test.go | 1094 | "user": {"emailAddress": "user@example.com"} | CODE |
| LOW | internal/web/auth_test.go | 1118 | if session.UserEmail != "user@example.com" { | CODE |
| LOW | internal/web/auth_test.go | 1141 | "user": {"emailAddress": "user@example.com"} | CODE |
| LOW | internal/web/auth_test.go | 1175 | "user": {"emailAddress": "user@example.com"} | CODE |
| LOW | internal/web/auth_test.go | 1253 | "c": {"v":1,"n":"test","u":"user@example.com"} | CODE |
| LOW | internal/web/session_cache_write_safety_test.go | 156 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/session_cache_write_safety_test.go | 182 | if err := PersistSession(&AuthSession{Client: &http.Client{Jar: jar}, UserEmail: "user@example.com"}); !errors.Is(err, | CODE |
| LOW | internal/web/session_cache_write_safety_test.go | 228 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/session_cache_write_safety_test.go | 288 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/session_cache_write_safety_test.go | 321 | if err != nil || !ok || key != webSessionCacheKey("user@example.com") { | CODE |
| LOW | internal/web/session_cache_write_safety_test.go | 370 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/session_cache_write_safety_test.go | 434 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/session_cache_write_safety_test.go | 571 | return &AuthSession{Client: &http.Client{Jar: jar}, UserEmail: "user@example.com"} | CODE |
| LOW | internal/web/signin_backoff_unix_test.go | 23 | info, err := os.Stat(filepath.Join(dir, "signin-backoff-"+webSessionCacheKey("user@example.com")+".json")) | CODE |
| LOW | internal/web/signin_backoff_unix_test.go | 30 | loaded, ok, err := LoadSigninBackoff("user@example.com") | CODE |
| LOW⚡ | internal/web/session_transfer_test.go | 48 | t, "user@example.com", | CODE |
| LOW⚡ | internal/web/session_transfer_test.go | 53 | bundle, ok, err := ExportSessionBundle("user@example.com") | CODE |
| LOW⚡ | internal/web/session_transfer_test.go | 63 | if bundle.AppleID != "user@example.com" { | CODE |
| LOW⚡ | internal/web/session_transfer_test.go | 86 | if _, ok, err := ExportSessionBundle("user@example.com"); err != nil || ok { | CODE |
| LOW⚡ | internal/web/session_transfer_test.go | 94 | if summary.AppleID != "user@example.com" || summary.CookieCount != 2 || summary.SkippedExpired != 0 { | CODE |
| LOW⚡ | internal/web/session_transfer_test.go | 98 | loaded, ok, err := LoadCachedSession("user@example.com") | CODE |
| LOW | internal/web/session_transfer_test.go | 119 | if last.UserEmail != "user@example.com" { | CODE |
| LOW | internal/web/session_transfer_test.go | 142 | key := webSessionCacheKey("user@example.com") | CODE |
| LOW | internal/web/session_transfer_test.go | 146 | UserEmail: "user@example.com", | CODE |
| 698 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/check-commands-docs.py | 49 | def parse_documented_commands(path: Path) -> set[str]: | CODE |
| LOW | scripts/check-commands-docs.py | 55 | def extract_top_level_command(line: str) -> str | None: | CODE |
| LOW | scripts/check-commands-docs.py | 79 | def validate_document_examples(path: Path, live_commands: set[str]) -> list[str]: | CODE |
| LOW | scripts/test_release_rehearsal.py | 55 | def test_generates_notes_and_checksums_for_exact_commit(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 77 | def test_rejects_invalid_version(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 86 | def test_rejects_mismatched_commit(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 99 | def test_rejects_empty_changelog(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 110 | def test_rejects_existing_candidate_tag(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 121 | def test_rejects_candidate_older_than_previous_tag(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 130 | def test_rejects_candidate_older_than_tag_on_other_ref(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 146 | def test_rejects_missing_artifact(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 159 | def test_run_rejects_invalid_version_before_make(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 171 | def test_run_command_disables_go_workspace(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 180 | def test_run_rejects_make_unsafe_release_dir_before_make(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 198 | def test_run_rejects_repository_root_release_dir_before_make(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 215 | def test_run_rejects_tracked_release_dir_before_make(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 236 | def test_run_rejects_git_metadata_release_dir_before_make(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 254 | def test_run_rejects_populated_external_release_dir_before_make(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 278 | def test_run_rejects_modified_tracked_source_before_make(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 294 | def test_run_rejects_untracked_source_before_make(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 310 | def test_run_rejects_source_changed_by_build(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 330 | def test_workflow_entrypoint_invokes_guardrails_before_build(self) -> None: | CODE |
| LOW | scripts/test_release_rehearsal.py | 369 | def test_run_passes_custom_release_dir_to_build(self) -> None: | CODE |
| LOW | scripts/test_check_agent_skills.py | 48 | def test_validate_skill_accepts_complete_skill(self) -> None: | CODE |
| LOW | scripts/test_check_agent_skills.py | 59 | def test_validate_skill_rejects_missing_reference(self) -> None: | CODE |
| LOW | scripts/test_check_agent_skills.py | 70 | def test_validate_skill_rejects_interface_fields_in_another_mapping(self) -> None: | CODE |
| LOW | scripts/test_check_agent_skills.py | 90 | def test_validate_skill_rejects_empty_metadata(self) -> None: | CODE |
| LOW | scripts/test_check_agent_skills.py | 101 | def test_main_reports_missing_agents_file_without_traceback(self) -> None: | CODE |
| LOW | scripts/test_check_agent_skills.py | 118 | def test_parse_frontmatter_rejects_extra_nested_fields(self) -> None: | CODE |
| LOW | scripts/test_check_agent_skills.py | 123 | def test_yaml_string_requires_quoted_value(self) -> None: | CODE |
| LOW | scripts/test_check_docs_commands.py | 13 | def test_build_once_and_share_fresh_binary(self): | CODE |
| LOW⚡ | scripts/test_check_docs_commands.py | 26 | def test_build_failure_stops_before_validators(self): | CODE |
| LOW⚡ | scripts/test_check_docs_commands.py | 33 | def test_later_invocation_rebuilds_in_new_directory(self): | CODE |
| LOW⚡ | scripts/test_check_docs_commands.py | 41 | def test_command_failure_stops_before_website_validation(self): | CODE |
| LOW | scripts/test_update_openapi_index.py | 23 | def test_generate_lines_is_sorted_and_filters_non_operations(self) -> None: | CODE |
| LOW | scripts/test_update_openapi_index.py | 35 | def test_check_fails_for_stale_index_without_rewriting(self) -> None: | CODE |
| LOW | scripts/test_generate_schema_index.py | 23 | def test_extracts_required_to_one_relationship(self) -> None: | CODE |
| LOW | scripts/test_generate_schema_index.py | 39 | def test_extracts_required_and_optional_relationships(self) -> None: | CODE |
| LOW | scripts/test_generate_schema_index.py | 61 | def test_build_index_includes_review_submission_version_relationships(self) -> None: | CODE |
| LOW⚡ | scripts/test_generate_schema_index.py | 81 | def test_build_index_includes_action_for_get_cardinality(self) -> None: | CODE |
| LOW⚡ | scripts/test_generate_schema_index.py | 91 | def test_build_index_classifies_array_valued_metrics_as_list(self) -> None: | CODE |
| LOW⚡ | scripts/test_generate_schema_index.py | 101 | def test_get_operation_action_falls_back_for_unresolved_data_ref(self) -> None: | CODE |
| LOW | scripts/test_generate_schema_index.py | 116 | def test_every_get_operation_has_an_indexed_action(self) -> None: | CODE |
| LOW | scripts/test_generate_schema_index.py | 129 | def test_every_request_relationship_in_snapshot_is_indexed(self) -> None: | CODE |
| LOW | scripts/check_website_commands.py | 195 | def telemetry_disabled_environment() -> dict[str, str]: | CODE |
| LOW | scripts/check_website_commands.py | 291 | def truncate_shell_expression(text: str) -> str: | CODE |
| LOW | scripts/check_website_commands.py | 495 | def hidden_deprecated_alias_replacement( | CODE |
| LOW | scripts/check_website_commands.py | 524 | def hidden_deprecated_alias_spec( | CODE |
| LOW | scripts/check_website_commands.py | 799 | def tokens_are_root_only_invocation( | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 10 | def test_empty_change_list_requires_full_suite(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 13 | def test_wall_source_is_the_only_wall_only_change(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 20 | def test_repository_documentation_uses_docs_scope(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 26 | def test_go_source_under_documentation_requires_full_suite(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 31 | def test_openapi_snapshot_requires_schema_drift_tests(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 37 | def test_embedded_guides_require_runtime_docs_tests(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 42 | def test_mintlify_content_uses_website_scope(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 48 | def test_telemetry_scope_requires_only_telemetry_files(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 60 | def test_telemetry_cli_changes_require_command_coverage(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 66 | def test_mixed_specialized_changes_require_full_suite(self) -> None: | CODE |
| LOW⚡ | scripts/test_ci_change_scope.py | 74 | def test_general_go_and_ci_changes_require_full_suite(self) -> None: | CODE |
| 100 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cmd/run.go | 61 | // flag, including typed and repeat-safe values, validates the resolved | COMMENT |
| LOW | cmd/unknown_flag_suggestions.go | 81 | } | COMMENT |
| LOW | cmd/unknown_flag_suggestions.go | 101 | // passed lists flags already on the command line; the selector tier never | COMMENT |
| LOW | cmd/did_you_mean.go | 21 | // installs hits an unknown child under these groups but, by design, never the | COMMENT |
| LOW | cmd/flag_indirection.go | 61 | // unknown-flag diagnostic stays authoritative for that invocation. | COMMENT |
| LOW | cmd/profile_flag_hoist.go | 21 | // `asc apps list --profile prod` selects the same credential as | COMMENT |
| LOW | cmd/task_hints.go | 21 | // the group, using long-form flags that command defines. Tests in | COMMENT |
| LOW | internal/xcode/version_project.go | 61 | updated []byte | COMMENT |
| LOW | internal/xcode/version_project.go | 81 | // compatibility write. Strict signing writes use committedIdentity instead. | COMMENT |
| LOW | internal/xcode/version_project.go | 1921 | COMMENT | |
| LOW | internal/xcode/version_project.go | 2181 | // transaction's update. WriteFileIfSame then couples that identity to the | COMMENT |
| LOW | internal/xcode/signing_settings_test.go | 7281 | return project | COMMENT |
| LOW | internal/xcode/signing_settings.go | 1521 | configuration, expansionConfiguration *versionConfiguration, | COMMENT |
| LOW | internal/xcode/signing_settings.go | 1641 | // signingImplicitSettingValue supplies the build settings Xcode defines for | COMMENT |
| LOW | internal/xcode/stapler.go | 21 | // afterStaplerCommandStartFn is a narrow test seam for cancellation that lands | COMMENT |
| LOW | internal/screenshots/matrix.go | 281 | RunPlan func(context.Context, *Plan) (*RunResult, error) | COMMENT |
| LOW | internal/screenshots/matrix.go | 561 | return &plan, nil | COMMENT |
| LOW | internal/screenshots/matrix.go | 581 | // directory is locked. It models the final construction-window replacement. | COMMENT |
| LOW | internal/screenshots/matrix.go | 601 | ) | COMMENT |
| LOW | internal/screenshots/matrix.go | 621 | COMMENT | |
| LOW | internal/screenshots/matrix.go | 1901 | // validateMatrixReviewDoesNotOverwritePlans refuses a review directory whose | COMMENT |
| LOW | internal/screenshots/frame.go | 101 | // matrixFrameWorkRootBeforeReadForTest is a narrow test seam for replacing the | COMMENT |
| LOW | internal/signing/opensslrepo.go | 21 | openSSLV1Header = "Salted__" | COMMENT |
| LOW | internal/signing/objectstorage.go | 361 | s.observed[object.key] = observedObject{etag: etag, sha256: object.sha256} | COMMENT |
| LOW | internal/asc/finance_regions.go | 1 | package asc | COMMENT |
| LOW | internal/asc/finance.go | 1 | package asc | COMMENT |
| LOW | internal/asc/review_screenshot_image.go | 21 | // https://developer.apple.com/help/app-store-connect/reference/in-app-purchase-information | COMMENT |
| LOW | internal/asc/client_users.go | 61 | } | COMMENT |
| LOW | internal/asc/terminal_sanitize.go | 1 | package asc | COMMENT |
| LOW | internal/asc/errors.go | 81 | AllCodes []string | COMMENT |
| LOW | internal/rootfs/rootfs.go | 1 | // Package rootfs provides rooted filesystem operations for paths that are not | COMMENT |
| LOW | internal/rootfs/rootfs.go | 41 | // ErrFileIdentityChanged reports that a path no longer names the captured | COMMENT |
| LOW | internal/rootfs/rootfs.go | 101 | beforeOpenRootForTest func() | COMMENT |
| LOW | internal/rootfs/rootfs.go | 121 | // conditional publication has verified the published bytes and before its | COMMENT |
| LOW | internal/rootfs/rootfs.go | 141 | beforePublicationOpenForTest func(root *os.Root, name string) | COMMENT |
| LOW | internal/rootfs/rootfs.go | 161 | afterConditionalQuarantineForTest func(root *os.Root, quarantineName, name string) | COMMENT |
| LOW | internal/rootfs/rootfs.go | 181 | // can prove quarantine restore runs after the source descriptor is closed. | COMMENT |
| LOW | internal/auth/file_permissions.go | 21 | COMMENT | |
| LOW | internal/infoplist/infoplist.go | 1 | // Package infoplist holds the shared ceiling the CLI applies when it expands an | COMMENT |
| LOW | internal/infoplist/infoplist.go | 21 | // | COMMENT |
| LOW | internal/web/session_transfer.go | 41 | ErrSessionBundleUnusable = errors.New("web session bundle has no unexpired cookies") | COMMENT |
| LOW | internal/web/developer_icloud_containers_create.go | 81 | } | COMMENT |
| LOW | internal/web/session_lock.go | 21 | // select the keychain backend under different ASC_WEB_SESSION_CACHE_DIR or HOME | COMMENT |
| LOW | internal/web/developer_app_groups.go | 1121 | // developerBundleIDCapabilityReferencesForReplacement resolves the capability | COMMENT |
| LOW | internal/web/session_cache.go | 2941 | } | COMMENT |
| LOW | internal/handlertest/handlertest.go | 1 | // Package handlertest reports test-fixture assertion failures raised by code | COMMENT |
| LOW | internal/cli/testflight/beta_group_membership.go | 41 | } | COMMENT |
| LOW | internal/cli/install/skills_check_env.go | 41 | "XDG_DATA_HOME", | COMMENT |
| LOW | internal/cli/signing/signing_resign_errors.go | 41 | // while errors.Is/errors.As can still inspect every underlying cause. | COMMENT |
| LOW | internal/cli/optimize/keywords_difficulty.go | 1 | // Package optimize composes official Apple sources into read-only | COMMENT |
| LOW | internal/cli/submit/submit_create_items_include_test.go | 81 | // GET /v1/reviewSubmissions/{id}/items, captured on 2026-08-16 against submission | COMMENT |
| LOW | internal/cli/web/web_auth.go | 501 | // until it prints a value other than the one Apple already consumed. Nothing is | COMMENT |
| LOW | internal/cli/web/web_auth.go | 1221 | // front is a non-interactive choice, so falling back to a prompt could hang | COMMENT |
| LOW | internal/cli/web/web_session_flags.go | 41 | } | COMMENT |
| LOW | internal/cli/web/web_apps_create_if_exists_test.go | 21 | // 2026-09-29 when re-creating disposable app 6759231657 (same name, bundle ID | COMMENT |
| LOW | internal/cli/web/main_test.go | 21 | // A temporary HOME alone does not isolate stored config: the upward | COMMENT |
| LOW | internal/cli/shared/safe_write.go | 41 | // callback that runs on each newly created staging or publication file before | COMMENT |
| LOW | internal/cli/shared/if_exists.go | 81 | } | COMMENT |
| LOW | internal/cli/shared/if_exists.go | 121 | // | COMMENT |
| LOW | internal/cli/shared/ambiguous.go | 41 | // Flag is the flag that accepts one candidate ID, for example "--app". | COMMENT |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/asc/client_game_center.go | 1336 | // Step 1: Reserve the upload | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1349 | // Step 2: Upload the file | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1354 | // Step 3: Commit the upload | COMMENT |
| LOW | internal/asc/client_game_center.go | 1482 | // Step 1: Reserve the upload | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1495 | // Step 2: Upload the file | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1500 | // Step 3: Commit the upload | COMMENT |
| LOW | internal/asc/client_game_center.go | 1629 | // Step 1: Reserve upload slot | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1642 | // Step 2: Upload the file | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1647 | // Step 3: Commit the upload | COMMENT |
| LOW⚡ | internal/cli/subscriptions/pricing_equalize.go | 119 | // Step 0: Fail fast if sale availability does not already cover all pricing territories. | COMMENT |
| LOW⚡ | internal/cli/subscriptions/pricing_equalize.go | 127 | // Step 1: Find the base price point | COMMENT |
| LOW⚡ | internal/cli/subscriptions/pricing_equalize.go | 135 | // Step 2: Get equalizations for all territories | COMMENT |
| LOW | internal/cli/subscriptions/pricing_equalize.go | 192 | // Step 3: Set prices for all territories concurrently | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/asc/client_game_center.go | 1336 | // Step 1: Reserve the upload | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1349 | // Step 2: Upload the file | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1354 | // Step 3: Commit the upload | COMMENT |
| LOW | internal/asc/client_game_center.go | 1482 | // Step 1: Reserve the upload | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1495 | // Step 2: Upload the file | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1500 | // Step 3: Commit the upload | COMMENT |
| LOW | internal/asc/client_game_center.go | 1629 | // Step 1: Reserve upload slot | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1642 | // Step 2: Upload the file | COMMENT |
| LOW⚡ | internal/asc/client_game_center.go | 1647 | // Step 3: Commit the upload | COMMENT |
| LOW⚡ | internal/cli/subscriptions/pricing_equalize.go | 119 | // Step 0: Fail fast if sale availability does not already cover all pricing territories. | COMMENT |
| LOW⚡ | internal/cli/subscriptions/pricing_equalize.go | 127 | // Step 1: Find the base price point | COMMENT |
| LOW⚡ | internal/cli/subscriptions/pricing_equalize.go | 135 | // Step 2: Get equalizations for all territories | COMMENT |
| LOW | internal/cli/subscriptions/pricing_equalize.go | 192 | // Step 3: Set prices for all territories concurrently | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/check_website_docs.py | 2 | CODE | |
| LOW | scripts/update-openapi-index.py | 2 | CODE | |
| LOW | scripts/go_test_shard.py | 21 | CODE | |
| LOW | scripts/ci_change_scope.py | 4 | CODE | |
| LOW | scripts/check-commands-docs.py | 4 | CODE | |
| LOW | scripts/test_check_agent_skills.py | 2 | CODE | |
| LOW | scripts/doc_links.py | 1 | CODE | |
| LOW | scripts/test_update_openapi_index.py | 2 | CODE | |
| LOW | scripts/verify_release_assets.py | 4 | CODE | |
| LOW | scripts/test_generate_schema_index.py | 2 | CODE | |
| LOW | scripts/check_website_commands.py | 2 | CODE | |
| LOW | scripts/generate-command-docs.py | 4 | CODE | |
| LOW | scripts/check_repo_docs.py | 2 | CODE | |
| LOW | scripts/release_rehearsal.py | 4 | CODE | |
| LOW | scripts/test_generate_command_docs.py | 2 | CODE | |
| LOW | scripts/generate_winget_manifests.py | 2 | CODE | |
| LOW | scripts/check_agent_skills.py | 4 | CODE | |
| LOW | scripts/test_check_docs.py | 2 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/go_test_shard.py | 162 | except (ProcessLookupError, PermissionError): | CODE |
| HIGH | scripts/release_rehearsal.py | 161 | except ValueError: | CODE |
| HIGH | scripts/release_rehearsal.py | 191 | except ValueError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/check_website_docs.py | 38 | CODE | |
| LOW | scripts/check_website_docs.py | 105 | CODE | |
| LOW | scripts/go_test_shard.py | 96 | CODE | |
| LOW | scripts/assemble_release_candidate.py | 10 | CODE | |
| LOW | scripts/test_generate_schema_index.py | 129 | CODE | |
| LOW | scripts/check_website_commands.py | 291 | CODE | |
| LOW | scripts/check_website_commands.py | 378 | CODE | |
| LOW | scripts/check_website_commands.py | 553 | CODE | |
| LOW | scripts/check_website_commands.py | 853 | CODE | |
| LOW | scripts/generate-command-docs.py | 43 | CODE | |
| LOW | scripts/generate-schema-index.py | 187 | CODE | |
| LOW | scripts/release_rehearsal.py | 275 | CODE | |
| LOW | scripts/check_agent_skills.py | 51 | CODE | |
| LOW | scripts/test_ci_workflows.py | 60 | CODE | |
| LOW | scripts/test_check_docs.py | 332 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/test_ci_workflows.py | 605 | ' gh pr create --repo microsoft/winget-pkgs --head "${WINGET_FORK_OWNER}:${BRANCH}" --title t | CODE |
| HIGH | scripts/test_ci_workflows.py | 619 | count=$(cat "$ATTEMPT_FILE" 2>/dev/null || echo 0) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …l/cli/cmdtest/beta_groups_add_testers_conflict_test.go | 15 | // the membership cannot be created as requested. Quoted verbatim from Apple | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | AGENTS.md | 127 | ## GitHub and issue guardrails | COMMENT |
| MEDIUM | docs/design/agent-native-ad-hoc-distribution.md | 215 | ## PR 6: agent-native orchestration | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | internal/releasenotes/git.go | 29 | // Use NUL between sha and subject so parsing is robust even if subjects contain tabs. | COMMENT |