Open source alternative to AWS. Elastic compute, block storage (non replicated), firewall and load balancer, managed Postgres, K8s, AI inference, and IAM services.
This report presents the forensic synthetic code analysis of ubicloud/ubicloud, a Ruby project with 12,149 GitHub stars. SynthScan v2.0 examined 213,469 lines of code across 2038 source files, recording 470 pattern matches distributed across 10 syntactic categories. The overall adjusted score of 3.1 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 470 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ubid.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | rhizome/host/lib/vm_setup.rb | 541 | #{runner_config} | COMMENT |
| LOW | rhizome/postgres/lib/otel_log_config.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | rhizome/postgres/lib/otel_log_config.rb | 21 | # severity_number OTel native severity level (set via severity_parser) | COMMENT |
| LOW | scheduling/allocator.rb | 461 | COMMENT | |
| LOW | scheduling/dispatcher.rb | 21 | super | COMMENT |
| LOW | scheduling/dispatcher.rb | 61 | # The queue size is 4 times the size of the thread pool by default, as that should | COMMENT |
| LOW | scheduling/dispatcher.rb | 101 | # The delay experienced for strands for this partition. Stays at 0 for | COMMENT |
| LOW | scheduling/dispatcher.rb | 141 | # default in shutdown as pushing to the queue can block. | COMMENT |
| LOW | scheduling/dispatcher.rb | 161 | data[:strand_thread].join | COMMENT |
| LOW | scheduling/dispatcher.rb | 181 | # * The connection needs to be checked out for the entire transaction | COMMENT |
| LOW | scheduling/dispatcher.rb | 281 | COMMENT | |
| LOW | scheduling/dispatcher.rb | 301 | # values. | COMMENT |
| LOW | scheduling/dispatcher.rb | 341 | respirate_metrics[:current_strand_delay] = @current_strand_delay = array[(array.count * 0.95r).floor] || 0 | COMMENT |
| LOW | scheduling/dispatcher.rb | 361 | # that's pretty busy, set a minimum sleep time of 0.25 seconds. | COMMENT |
| LOW | scheduling/dispatcher.rb | 381 | # On strand run finish: | COMMENT |
| LOW | scheduling/dispatcher.rb | 421 | COMMENT | |
| LOW | spec/spec_helper.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | spec/spec_helper.rb | 81 | end | COMMENT |
| LOW | spec/spec_helper.rb | 101 | end | COMMENT |
| LOW | spec/spec_helper.rb | 121 | # The settings below are suggested to provide a good initial experience | COMMENT |
| LOW | spec/spec_helper.rb | 141 | # This setting enables warnings. It's recommended, but in some cases may | COMMENT |
| LOW | spec/spec_helper.rb | 161 | # Run specs in random order to surface order dependencies. If you find an | COMMENT |
| LOW | spec/prog/vnet/metal/update_firewall_rules_spec.rb | 361 | # established,related,new traffic because this is outgoing traffic. | COMMENT |
| LOW | spec/prog/vnet/metal/update_firewall_rules_spec.rb | 521 | COMMENT | |
| LOW | spec/model/private_subnet_spec.rb | 501 | # Ordering is by raw uuid bytes, which is not controllable through the | COMMENT |
| LOW | spec/model/firewall_concurrency_spec.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | prog/base.rb | 261 | # If a reaper argument is given, it is called with each child after | COMMENT |
| LOW | prog/learn_network.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | prog/rollout_semaphore.rb | 21 | unless incorrect_semaphores.empty? | COMMENT |
| LOW | prog/vnet/metal/update_firewall_rules.rb | 141 | # If we are using clover_ephemeral, that means we are using ipsec. We need | COMMENT |
| LOW | prog/vnet/metal/update_firewall_rules.rb | 201 | end | COMMENT |
| LOW | prog/vnet/metal/update_firewall_rules.rb | 221 | # 2. 5432-8080 | COMMENT |
| LOW | prog/vnet/metal/subnet_nexus.rb | 161 | COMMENT | |
| LOW | prog/vnet/gcp/update_firewall_rules.rb | 21 | # | COMMENT |
| LOW | prog/vnet/gcp/update_firewall_rules.rb | 41 | end | COMMENT |
| LOW | prog/vnet/gcp/subnet_nexus.rb | 21 | # 10000+ Per-firewall INGRESS: tag-targeted rules managed by VpcUpdateFirewallRules. | COMMENT |
| LOW | prog/vnet/gcp/subnet_nexus.rb | 201 | label def finish_destroy | COMMENT |
| LOW | prog/vnet/gcp/vpc_update_firewall_rules.rb | 21 | COMMENT | |
| LOW | prog/postgres/postgres_server_nexus.rb | 781 | end | COMMENT |
| LOW | prog/kubernetes/kubernetes_cluster_nexus.rb | 361 | coredns_configmap = YAML.load(kubernetes_cluster.client.kubectl("-n kube-system get cm coredns -oyaml")) | COMMENT |
| LOW | serializers/base.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | migrate/20230425_ssh_generation.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | migrate/20230415_add_vm_allocation_counters.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | sdk/ruby/lib/ubicloud/model.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | sdk/ruby/lib/ubicloud/context.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | .github/actions/gcp-cleanup-e2e/cleanup.rb | 1 | #!/usr/bin/env ruby | COMMENT |
| LOW | .github/actions/gcp-cleanup-e2e/cleanup.rb | 21 | # cleanup died leaks its names forever, since later runs grep only | COMMENT |
| LOW | model/pg_gce_image.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | model/archived_record.rb | 41 | # Table: archived_record | COMMENT |
| LOW | model/invoice.rb | 361 | # content | jsonb | NOT NULL | COMMENT |
| LOW | model/victoria_metrics_resource.rb | 41 | {cidr: "::/0", port_range: Sequel.pg_range(8427..8427)}, | COMMENT |
| LOW | model/victoria_metrics_resource.rb | 61 | # project_id | uuid | NOT NULL | COMMENT |
| LOW | model/host_provider.rb | 21 | # server_identifier | text | | COMMENT |
| LOW | model/account.rb | 81 | # name | text | | COMMENT |
| LOW | model/account.rb | 101 | # account_login_failures | account_login_failures_id_fkey | (id) REFERENCES accounts(id) | COMMENT |
| LOW | model/project.rb | 281 | # billable | boolean | NOT NULL DEFAULT true | COMMENT |
| LOW | model/project.rb | 301 | # gcp_vpc | gcp_vpc_project_id_fkey | (project_id) REFERENCES project(id) | COMMENT |
| LOW | model/project.rb | 321 | # victoria_metrics_resource | victoria_metrics_resource_project_id_fkey | (project_id) REFERENCES project(id) | COMMENT |
| LOW | model/private_subnet.rb | 101 | # provider contributes only the addresses it actually reserves instead of | COMMENT |
| 153 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | spec/prog/test/upgrade_postgres_resource_spec.rb | 330 | pgr_test.postgres_resource.servers.first.strand.update(label: "failed") | CODE |
| CRITICAL | spec/prog/kubernetes/kubernetes_cluster_nexus_spec.rb | 725 | kubernetes_cluster.nodepools.first.nodes.last.update(state: "draining") | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 139 | verify_link = Mail::TestMailer.deliveries.first.html_part.body.match(/(\/verify-account.+?)"/)[1] | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 189 | verify_link = Mail::TestMailer.deliveries.first.html_part.body.match(/(\/verify-account.+?)"/)[1] | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 227 | page.driver.browser.rack_mock_session.cookie_jar.delete("_Clover.session") | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 245 | reset_link = Mail::TestMailer.deliveries.first.html_part.body.match(/(\/reset-password.+?)"/)[1] | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 351 | page.driver.browser.rack_mock_session.cookie_jar.delete("_Clover.session") | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 983 | verify_link = Mail::TestMailer.deliveries.first.html_part.body.match(/(\/verify-account.+?)"/)[1] | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 1025 | reset_link = Mail::TestMailer.deliveries.first.html_part.body.match(/(\/reset-password.+?)"/)[1] | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 1587 | verify_link = Mail::TestMailer.deliveries.first.html_part.body.match(/(\/verify-login-change.+?)"/)[1] | CODE |
| CRITICAL | spec/routes/web/auth_spec.rb | 1623 | verify_link = Mail::TestMailer.deliveries.first.html_part.body.match(/(\/verify-login-change.+?)"/)[1] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rhizome/host/spec/storage_key_tool_spec.rb | 29 | def register_ro_storage_key_encryption(kek, key_file, cipher, key, key2) | CODE |
| LOW | rhizome/host/spec/storage_key_tool_spec.rb | 39 | def register_wo_storage_key_encryption(kek, key_file, cipher, key, key2) | CODE |
| LOW | rhizome/host/lib/storage_volume.rb | 132 | def vhost_backend_create_config(encryption_key, key_wrapping_secrets) | CODE |
| LOW | rhizome/host/lib/storage_volume.rb | 150 | def vhost_backend_create_metadata(key_wrapping_secrets) | CODE |
| LOW | rhizome/host/lib/storage_volume.rb | 162 | def vhost_backend_create_encrypted_metadata(key_wrapping_secrets) | CODE |
| LOW | rhizome/host/lib/storage_volume.rb | 543 | def store_spdk_data_encryption_key(data_encryption_key, key_wrapping_secrets) | CODE |
| LOW | rhizome/host/lib/spdk_rpc.rb | 63 | def vhost_create_blk_controller(name, bdev) | CODE |
| LOW | rhizome/postgres/lib/otel_log_config.rb | 259 | def syslog_transform_statements(dest) | CODE |
| LOW | rhizome/postgres/lib/hugepages_setup.rb | 51 | def update_postgres_hugepages_conf(shared_buffers_kib) | CODE |
| LOW | rhizome/postgres/lib/io_throttle.rb | 110 | def calculate_archival_throttle(backlog_count) | CODE |
| LOW | rhizome/postgres/lib/postgres_setup.rb | 26 | def configure_memory_overcommit(strict: false) | CODE |
| LOW | rhizome/inference_endpoint/lib/replica_setup.rb | 27 | def write_inference_gateway_service(s) | CODE |
| LOW | rhizome/inference_endpoint/lib/replica_setup.rb | 35 | def write_inference_engine_service(s) | CODE |
| LOW | rhizome/inference_endpoint/lib/replica_setup.rb | 47 | def write_lb_cert_download_service(s) | CODE |
| LOW | rhizome/inference_endpoint/lib/replica_setup.rb | 51 | def write_lb_cert_download_timer(s) | CODE |
| LOW | scheduling/allocator.rb | 673 | def pci_iommu_groups_for_partition(id) | CODE |
| LOW | scheduling/allocator.rb | 755 | def allocate_storage_volume_associations(vm, vm_host) | CODE |
| LOW | scheduling/dispatcher.rb | 214 | def setup_prepared_statements(strand_id_range:) | CODE |
| LOW | spec/spec_helper.rb | 284 | def create_vhost_block_backend(version: "v0.4.1", **) | CODE |
| LOW | spec/spec_helper.rb | 306 | def create_machine_image_version_metal(project_id: nil, machine_image_id: nil, machine_image_store_id: nil, name: "t | CODE |
| LOW | spec/prog/postgres/spec_helper.rb | 7 | def create_read_replica_resource(parent:) | CODE |
| LOW | spec/serializers/postgres_spec.rb | 28 | def create_representative_server(primary: true) | CODE |
| LOW | spec/model/postgres/postgres_timeline_spec.rb | 372 | def expected_lifecycle_config(days) | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 431 | def create_server_with_boot_image(boot_image_version:, is_representative: false, created_offset: 0) | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 733 | def create_representative_server(strand_label:) | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 1009 | def create_server_with_strand(label:) | CODE |
| LOW | spec/lib/authorization_spec.rb | 74 | def add_single_ace_with_nested_tags(policies, project_id: projects[0].id) | CODE |
| LOW | spec/lib/invoice_generator_spec.rb | 31 | def check_invoice_for_single_vm(invoices, project, vm, duration, begin_time, expected_vat_info: nil) | CODE |
| LOW | spec/lib/metrics_target_resource_spec.rb | 45 | def create_victoria_metrics_setup(project) | CODE |
| LOW | spec/routes/web/admin/model/spec_helper.rb | 338 | def create_machine_image_store(project: nil) | CODE |
| LOW | spec/routes/api/spec_helper.rb | 11 | def project_with_default_policy(account, name: "project-1") | CODE |
| LOW | prog/learn_storage.rb | 33 | def find_underlying_unix_device_ids(unix_device) | CODE |
| LOW | prog/learn_storage.rb | 38 | def find_underlying_unix_device_names(unix_device) | CODE |
| LOW | prog/download_boot_image.rb | 24 | def latest_boot_image_version(image_name) | CODE |
| LOW | prog/test/hetzner_server.rb | 111 | def verify_specs_installation(installed: true) | CODE |
| LOW | prog/test/postgres_base.rb | 121 | def verify_timelines_destroyed(timeline_ids) | CODE |
| LOW | prog/vnet/update_load_balancer_node.rb | 135 | def generate_lb_ip_set_definition(neighbor_vm_ports) | CODE |
| LOW | prog/vnet/metal/update_firewall_rules.rb | 285 | def consolidate_rules_by_protocol(rules) | CODE |
| LOW | prog/vnet/metal/update_firewall_rules.rb | 290 | def combine_continuous_ranges_for_same_subnet(rules) | CODE |
| LOW | prog/vnet/gcp/update_firewall_rules.rb | 89 | def firewall_tag_namespaced_name(firewall) | CODE |
| LOW | prog/vnet/gcp/vpc_update_firewall_rules.rb | 348 | def build_tag_based_policy_rules(rules, tag_value_name:) | CODE |
| LOW | prog/postgres/postgres_server_aws_nic_migration.rb | 333 | def authorize_mgmt_ssh_ingress(sg_id, cidr) | CODE |
| LOW | prog/ai/inference_router_replica_nexus.rb | 90 | def write_inference_router_service(asset_name, workdir) | CODE |
| LOW | sdk/ruby/lib/ubicloud/model/postgres.rb | 86 | def add_syslog_log_destination(name:, host:, port: 6514, structured_data: {}) | CODE |
| LOW | sdk/ruby/lib/ubicloud/model/postgres.rb | 102 | def delete_metric_destination(md_id) | CODE |
| LOW | sdk/ruby/lib/ubicloud/model/postgres.rb | 228 | def create_client_cert_keypair(common_name:, duration:) | CODE |
| LOW | model/account.rb | 34 | def create_project_with_default_policy(name, reputation: "new", default_policy: true) | CODE |
| LOW | model/project.rb | 113 | def insert_project_discount_code(discount) | CODE |
| LOW | model/private_subnet.rb | 136 | def incr_destroy_if_only_used_internally(ubid:, vm_ids:) | CODE |
| LOW | model/vm_host.rb | 241 | def download_cloud_hypervisor(version_x64: nil, version_arm64: nil, sha256_ch_bin_x64: nil, sha256_ch_bin_arm64: nil, | CODE |
| LOW | model/vm_host.rb | 362 | def check_storage_kernel_logs(ssh_session, devices) | CODE |
| LOW | model/api_key.rb | 53 | def restrict_token_for_project(project_id) | CODE |
| LOW | model/api_key.rb | 57 | def unrestrict_token_for_project(project_id) | CODE |
| LOW | model/api_key.rb | 71 | def unrestricted_project_access_dataset(project_id) | CODE |
| LOW | model/vm.rb | 44 | def unattached_to_load_balancer(project) | CODE |
| LOW | model/vm.rb | 241 | def fire_firewall_rules_update_for_vm_firewall(_firewall) | CODE |
| LOW | model/firewall.rb | 54 | def associate_with_private_subnet(private_subnet, apply_firewalls: true) | CODE |
| LOW | model/firewall.rb | 63 | def disassociate_from_private_subnet(private_subnet, apply_firewalls: true) | CODE |
| LOW | model/metal/private_subnet.rb | 98 | def metal_validate_firewall_attachment(firewall) | CODE |
| LOW | model/metal/vm.rb | 230 | def metal_validate_firewall_cap(firewall) | CODE |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | rhizome/postgres/lib/postgres_extensions.rb | 3 | # This file is used to define the upgrade scripts for extensions. | COMMENT |
| MEDIUM | scheduling/allocator.rb | 465 | # This class handles two distinct cases - one when a dedicated slice | COMMENT |
| MEDIUM | scheduling/dispatcher.rb | 124 | # This method is called implicitly with the appropriate partition when | COMMENT |
| MEDIUM | scheduling/dispatcher.rb | 228 | # Create a separate prepared statement for older strands, not tied to | COMMENT |
| MEDIUM | spec/scheduling/allocator_spec.rb | 1286 | # Create a real nic to generate params_json so we can check the slice_name | COMMENT |
| MEDIUM | spec/scheduling/allocator_spec.rb | 1414 | # Create a second host | COMMENT |
| MEDIUM | spec/scheduling/allocator_spec.rb | 1522 | # Create a standard VM in a slice | COMMENT |
| MEDIUM | spec/scheduling/allocator_spec.rb | 1544 | # Create a burstable VM in a slice | COMMENT |
| MEDIUM | spec/scheduling/allocator_spec.rb | 1567 | # Create a second burstable VM in a slice. It should go to the same slice | COMMENT |
| MEDIUM | spec/prog/vnet/nic_nexus_spec.rb | 194 | # Create a NIC that occupies an IP | COMMENT |
| MEDIUM | spec/prog/postgres/postgres_server_nexus_spec.rb | 722 | # Create an AWS timeline to trigger the cloudwatch path | COMMENT |
| MEDIUM | spec/prog/postgres/postgres_server_nexus_spec.rb | 828 | # Create a metric destination to trigger the map block | COMMENT |
| MEDIUM | spec/prog/github/github_runner_nexus_spec.rb | 275 | # Create a record | COMMENT |
| MEDIUM | spec/model/postgres/postgres_resource_spec.rb | 388 | # Create a server that doesn't need recycling (matches target_vm_size, target_storage_size_gib, target_version) | COMMENT |
| MEDIUM | spec/model/postgres/postgres_resource_spec.rb | 589 | # Create a server that doesn't need recycling and has strand.label == "wait" | COMMENT |
| MEDIUM | spec/routes/web/admin/admin_spec.rb | 1676 | # Create a new quota | COMMENT |
| MEDIUM | prog/vnet/metal/update_firewall_rules.rb | 208 | # This method is needed to properly consolidate port_ranges + cidrs. | COMMENT |
| MEDIUM | prog/vm/aws/nexus.rb | 116 | # Create the custom user | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud.rb | 39 | # Create a new Ubicloud::Context for the given adapter type | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model.rb | 22 | # Create a new model object in Ubicloud with the given location, name, and params. | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model.rb | 42 | # Create a new model instance, which should represent an object that already exists | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/adapter/rack.rb | 20 | # Create a new rack request enviroment hash for the internal | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/machine_image.rb | 22 | # Create a new version of this machine image by capturing a stopped VM. | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/machine_image_version.rb | 9 | # Create a new instance from a hash returned by the Ubicloud API. | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/inference_api_key.rb | 15 | # Create a new inference api key | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/inference_api_key.rb | 20 | # Create a new InferenceApiKey instance. +values+ can be: | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/github_repository.rb | 13 | # Create a new GithubRepository instance. +values+ must be a hash with | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/postgres.rb | 145 | # Create a read replica of this database, with the given name. | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/postgres.rb | 226 | # Create a client certificate keypair with the given common name, expiring after duration seconds. | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/github_cache_entry.rb | 13 | # Create a new GithubCacheEntry instance. +values+ must be a hash with | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/github_installation.rb | 15 | # Create a new GithubInstallation instance. +values+ can be: | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/ssh_public_key.rb | 16 | # Create a new SSH public key with the given parameters. | COMMENT |
| MEDIUM | sdk/ruby/lib/ubicloud/model/ssh_public_key.rb | 21 | # Create a new SSHPublicKey instance. +values+ can be: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | spec/ruby_sdk_spec.rb | 135 | account = Account.create(email: "user@example.com", status_id: 2) | CODE |
| LOW | spec/prog/check_usage_alerts_spec.rb | 13 | user_id = Account.create(email: "user@example.com").id | CODE |
| LOW | spec/prog/check_usage_alerts_spec.rb | 38 | user_id = Account.create(email: "user@example.com").id | CODE |
| LOW | spec/serializers/account_spec.rb | 6 | let(:account) { Account.create(email: "user@example.com") } | CODE |
| LOW | spec/model/usage_alert_spec.rb | 11 | alert = described_class.create(project_id: Project.create(name: "project1").id, user_id: Account.create(email: "user | CODE |
| LOW | spec/model/page_spec.rb | 69 | expect(Config).to receive(:pagerduty_key).and_return("dummy-key").at_least(:once) | CODE |
| LOW | spec/model/page_spec.rb | 104 | expect(Config).to receive(:incidentio_key).and_return("dummy-key").at_least(:once) | CODE |
| LOW | spec/model/page_spec.rb | 121 | "Authorization" => "Bearer dummy-key", | CODE |
| LOW | spec/model/page_spec.rb | 143 | "Authorization" => "Bearer dummy-key", | CODE |
| LOW | spec/model/page_spec.rb | 162 | "Authorization" => "Bearer dummy-key", | CODE |
| LOW⚡ | spec/model/billing_info_spec.rb | 17 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "John Doe", "address" => | CODE |
| LOW⚡ | spec/model/billing_info_spec.rb | 17 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "John Doe", "address" => | CODE |
| LOW⚡ | spec/model/billing_info_spec.rb | 18 | expect(billing_info.stripe_data["name"]).to eq("John Doe") | CODE |
| LOW⚡ | spec/model/billing_info_spec.rb | 19 | expect(billing_info.stripe_data["address"]).to eq("123 Main St") | CODE |
| LOW | spec/model/minio/minio_server_spec.rb | 104 | minio_client: Minio::Client.new(endpoint: "https://1.2.3.4:9000", access_key: "dummy-key", secret_key: "dummy-secr | CODE |
| LOW | spec/model/minio/minio_server_spec.rb | 127 | minio_client: Minio::Client.new(endpoint: "https://1.2.3.4:9000", access_key: "dummy-key", secret_key: "dummy-secr | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 1401 | Account.create(email: "user@example.com").add_project(project) | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 1440 | Account.create(email: "user@example.com").add_project(project) | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 1471 | account = Account.create(email: "user@example.com") | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 1490 | ["user@example.com"], | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 1550 | account = Account.create(email: "user@example.com") | CODE |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 1585 | ["user@example.com"], | CODE |
| LOW | spec/lib/validation_spec.rb | 316 | "John Doe", | CODE |
| LOW⚡ | spec/lib/invoice_generator_spec.rb | 192 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW⚡ | spec/lib/invoice_generator_spec.rb | 201 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW⚡ | spec/lib/invoice_generator_spec.rb | 210 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW⚡ | spec/lib/invoice_generator_spec.rb | 219 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW⚡ | spec/lib/invoice_generator_spec.rb | 228 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW⚡ | spec/lib/invoice_generator_spec.rb | 238 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW⚡ | spec/lib/invoice_generator_spec.rb | 248 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW⚡ | spec/lib/invoice_generator_spec.rb | 257 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW | spec/lib/invoice_generator_spec.rb | 275 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW | spec/lib/invoice_generator_spec.rb | 284 | expect(customers_service).to receive(:retrieve).with("cs_1234567890").and_return({"name" => "ACME Inc.", "metadata | CODE |
| LOW | spec/lib/util_spec.rb | 51 | described_class.send_email("user@example.com", "Hello", greeting: "Hi", body: "Welcome") | CODE |
| LOW | spec/lib/util_spec.rb | 57 | described_class.send_email("user@example.com", "Hello", greeting: "Hi", body: "Welcome", author_name: "The Ubiclou | CODE |
| LOW | spec/lib/log_dna_batcher_spec.rb | 5 | let(:log_dna_batcher) { described_class.new("dummy-key") } | CODE |
| LOW | spec/lib/log_dna_batcher_spec.rb | 56 | log_dna_batcher = described_class.new("dummy-key") | CODE |
| LOW | spec/lib/log_dna_batcher_spec.rb | 68 | let(:log_dna_batcher) { described_class.new("dummy-key", base_url: "https://localhost/logdna/ingest", flush_interval | CODE |
| LOW | spec/lib/log_dna_batcher_spec.rb | 185 | log_dna_batcher = described_class.new("dummy-key", base_url: "https://localhost/logdna/ingest?param=test") | CODE |
| LOW | spec/routes/spec_helper.rb | 9 | TEST_USER_EMAIL = "user@example.com" | CODE |
| LOW | spec/routes/web/oidc_auth_spec.rb | 89 | def generate_id_token(nonce:, iss: "http://www.example.com", aud: "client_id_test", sub: "oidc_sub_123", email: "user@ | CODE |
| LOW | spec/routes/web/oidc_auth_spec.rb | 113 | def stub_userinfo_endpoint(body: {"sub" => "oidc_sub_123", "email" => "user@example.com"}) | CODE |
| LOW | spec/routes/web/oidc_auth_spec.rb | 133 | expect(account.email).to eq("user@example.com") | CODE |
| LOW | spec/routes/web/oidc_auth_spec.rb | 150 | expect(account.email).to eq("user@example.com") | CODE |
| LOW | spec/routes/web/oidc_auth_spec.rb | 188 | stub_userinfo_endpoint(body: {"sub" => "oidc_sub_123", "email" => "user@example.com", "groups" => %w[foo bar]}) | CODE |
| LOW | spec/routes/web/auth_spec.rb | 7 | def mock_provider(provider, email = TEST_USER_EMAIL, name: "John Doe", mock_config: true) | CODE |
| LOW | spec/routes/web/auth_spec.rb | 42 | fill_in "Full Name", with: "John Doe" | CODE |
| LOW | spec/routes/web/auth_spec.rb | 90 | fill_in "Full Name", with: "John Doe" | CODE |
| LOW | spec/routes/web/auth_spec.rb | 130 | fill_in "Full Name", with: "John Doe" | CODE |
| LOW | spec/routes/web/auth_spec.rb | 180 | fill_in "Full Name", with: "John Doe" | CODE |
| LOW | spec/routes/web/auth_spec.rb | 477 | "verify_login_change" => ip_hash("new_login" => "new@example.com", "previous_login" => "user@example.com"), | CODE |
| LOW | spec/routes/web/auth_spec.rb | 946 | info: {email: "user@example.com"}) | CODE |
| LOW | spec/routes/web/auth_spec.rb | 950 | expect(account.email).to eq "user@example.com" | CODE |
| LOW | spec/routes/web/auth_spec.rb | 974 | fill_in "Full Name", with: "John Doe" | CODE |
| LOW | spec/routes/web/auth_spec.rb | 1003 | fill_in "Full Name", with: "John Doe" | CODE |
| LOW | spec/routes/web/auth_spec.rb | 1114 | info: {email: "user@example.com"}) | CODE |
| LOW | spec/routes/web/auth_spec.rb | 1118 | expect(account.email).to eq "user@example.com" | CODE |
| LOW | spec/routes/web/auth_spec.rb | 1151 | info: {email: "user@example.com"}) | CODE |
| LOW | spec/routes/web/auth_spec.rb | 1248 | create_account("user@example.com") | CODE |
| LOW | spec/routes/web/auth_spec.rb | 1336 | info: {email: "user@example.com"}) | CODE |
| 23 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rhizome/host/lib/spdk_rpc.rb | 175 | # Check if we can return a specific subclass. | COMMENT |
| LOW | rhizome/postgres/lib/postgres_setup.rb | 20 | # Check if the packages exist in the cache, if so, install them. | COMMENT |
| LOW | bin/generate_instance_availability.rb | 134 | # Check if instance storage is supported | COMMENT |
| LOW | spec/prog/test/ha_postgres_resource_spec.rb | 257 | # Set servers to "wait" state | COMMENT |
| LOW | spec/model/postgres/postgres_resource_spec.rb | 408 | # Set target_version to trigger upgrade path (version < target_version) | COMMENT |
| LOW | spec/routes/web/admin/admin_spec.rb | 1692 | # Set quota to zero | COMMENT |
| LOW | prog/page_nexus.rb | 40 | # Check if the new page is related to an existing recent active page that did not suppress triggers. | COMMENT |
| LOW | prog/test/upgrade_postgres_resource.rb | 185 | # Check if all servers have been upgraded | COMMENT |
| LOW | prog/postgres/postgres_server_nexus.rb | 965 | # Check if log file was modified recently and last 50 lines contain recovery messages. | COMMENT |
| LOW | model/postgres/postgres_timeline.rb | 77 | # Check if we have cached earliest backup time, if not, calculate it. | COMMENT |
| LOW | lib/hosting/hetzner_apis.rb | 107 | # Check if it is IPv6 or not by the existence of colon in the IP address | COMMENT |
| LOW | routes/project/discount_code.rb | 13 | # Check if the discount code exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | rhizome/postgres/lib/postgres_lockout.rb | 16 | # ================================================================ | COMMENT |
| MEDIUM | rhizome/postgres/lib/pg_bouncer_setup.rb | 84 | # ============================ | COMMENT |
| MEDIUM | .github/actions/gcp-cleanup-e2e/cleanup.rb | 241 | # --------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | spec/spec_helper.rb | 122 | # with RSpec, but feel free to customize to your heart's content. | COMMENT |
| LOW | model/project.rb | 137 | # Don't forget to clean up billing info and payment methods. | COMMENT |
| MEDIUM | lib/validation.rb | 134 | fail ValidationFailed.new({boot_image: "\"#{image_name}\" is not a valid boot image name. Available boot image nam | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | model/postgres/postgres_resource.rb | 591 | "Auto-scaling for your PostgreSQL database '#{name}' (#{ubid}) has been canceled as requested.", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rhizome/host/lib/storage_volume.rb | 422 | # key, and auth_data is key name, so just pass the base64-encoded | COMMENT |
| LOW | spec/routes/web/kubernetes_cluster_spec.rb | 32 | # These are just set for passing the creation validations | COMMENT |