OpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub
This report summarizes scanner evidence for opf/openproject, a Ruby project with 16,378 GitHub stars. SynthScan examined 2,644,542 lines of code across 19077 source files, recording 20316 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 8.4 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 19856 finding(s).
Are imports declared and package/API names verified? 358 finding(s).
Are wrappers, guards, and repeated structures necessary? 2217 finding(s).
Which changes need focused human review? 20316 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 20316 distinct pattern matches across 19 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 | lefthook.yml | 1 | # Lefthook configuration | COMMENT |
| LOW | .herb.yml | 1 | # This file configures Herb for your project and team. | COMMENT |
| LOW | .herb.yml | 101 | # | COMMENT |
| LOW | .herb.yml | 121 | indentWidth: 2 | COMMENT |
| LOW | docker-compose.override.example.yml | 21 | # - '5433:5432' | COMMENT |
| LOW | packaging/conf/configuration.yml | 1 | #-- copyright | COMMENT |
| LOW | packaging/conf/configuration.yml | 21 | # | COMMENT |
| LOW | .redocly/plugins/custom-rules.js | 1 | //-- copyright | COMMENT |
| LOW | .redocly/plugins/rules/skip-abbreviated-examples.js | 1 | //-- copyright | COMMENT |
| LOW | docker/prod/artifacthub-repo.yml | 1 | # Artifact Hub repository metadata file | COMMENT |
| LOW | docker/dev/gitlab/docker-compose.override.example.yml | 1 | services: | COMMENT |
| LOW | docker/dev/tls/docker-compose.core-override.example.yml | 1 | # Some containers (e.g. backend and workers) need some variables to be configured properly | COMMENT |
| LOW | app/uploaders/fog_file_uploader.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/uploaders/fog_file_uploader.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/uploaders/fog_file_uploader.rb | 41 | after :store, :delete_tmp_dir | COMMENT |
| LOW | app/uploaders/file_uploader.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/uploaders/file_uploader.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/uploaders/direct_fog_uploader.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/uploaders/direct_fog_uploader.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/uploaders/local_file_uploader.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/uploaders/local_file_uploader.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/forms/application_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/registration_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/login_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/forums/form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/enterprise_trials/form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/attribute_help_texts/form_helper.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/attribute_help_texts/form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/filters/inputs/base_filter_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/filters/inputs/add_filter_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/filters/inputs/text_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/filters/inputs/date_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/filters/inputs/autocomplete_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/filters/inputs/list_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/filters/inputs/boolean_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/settings/form_helper.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/settings/form_helper.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/forms/settings/form_helper.rb | 41 | def setting_label(*names) | COMMENT |
| LOW | app/forms/settings/input_methods.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/settings/input_methods.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/forms/settings/input_methods.rb | 41 | # | COMMENT |
| LOW | app/forms/settings/input_methods.rb | 81 | COMMENT | |
| LOW | app/forms/settings/input_methods.rb | 101 | # "setting_<name>". The radio button label are set from translating the | COMMENT |
| LOW | app/forms/settings/input_methods.rb | 141 | # "setting_<name>_<value>_caption_html", which will be rendered as HTML, or | COMMENT |
| LOW | app/forms/settings/new_project_settings_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/settings/multi_lang_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/settings/authentication_settings_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/settings/form_object_decorator.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/settings/form_object_decorator.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/forms/settings/form_object_decorator.rb | 41 | # @!attribute [r] object | COMMENT |
| LOW | app/forms/settings/input_group_decorator.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/settings/input_group_decorator.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/forms/settings/input_group_decorator.rb | 41 | # @!attribute [r] object | COMMENT |
| LOW | app/forms/settings/new_project_notifications_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/placeholder_users/form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/placeholder_users/criteria_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/placeholder_users/criteria_form.rb | 21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | COMMENT |
| LOW | app/forms/work_package_types/defaults_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | app/forms/work_package_types/artefact_export_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| LOW | …ms/work_package_types/convert_to_global_rename_form.rb | 1 | # frozen_string_literal: true | COMMENT |
| 16866 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/uploaders/direct_fog_uploader.rb | 92 | def extra_fog_hash_attributes(uploader:) | CODE |
| LOW | app/forms/registration_form.rb | 124 | def consent_validation_message(form) | CODE |
| LOW | app/forms/attribute_help_texts/form_helper.rb | 33 | def wrap_attribute_label_with_help_text(label, attribute) | CODE |
| LOW | app/forms/settings/input_methods.rb | 205 | def multi_language_text_select(name:, current_language: I18n.locale.to_s) | CODE |
| LOW | app/forms/settings/input_methods.rb | 244 | def build_radio_button_group_values(group, name:, values:, button_options:) | CODE |
| LOW | app/forms/settings/input_methods.rb | 253 | def build_check_box_group_values(group, name:, values:, check_box_options:) | CODE |
| LOW | app/forms/settings/input_methods.rb | 314 | def decorate_options_with_value(name:, **options) | CODE |
| LOW⚡ | app/forms/settings/new_project_settings_form.rb | 72 | def build_new_project_user_role_options(select) | CODE |
| LOW⚡ | app/forms/settings/new_project_settings_form.rb | 80 | def add_assignable_role_option(select, role) | CODE |
| LOW⚡ | app/forms/settings/new_project_settings_form.rb | 88 | def add_non_qualifying_role_option(select, role) | CODE |
| LOW | app/forms/work_packages/progress_form.rb | 103 | def focused_field_by_selection(field) | CODE |
| LOW | app/forms/custom_fields/custom_field_rendering.rb | 112 | def single_value_custom_field_input(builder, custom_field) | CODE |
| LOW | app/forms/custom_fields/custom_field_rendering.rb | 122 | def multi_value_custom_field_input(builder, custom_field) | CODE |
| LOW | app/mailers/sharing_mailer.rb | 77 | def derive_allowed_work_package_actions(role) | CODE |
| LOW | app/mailers/project_artifacts_mailer.rb | 35 | def creation_wizard_submitted(user, project, artifact_work_package) | CODE |
| LOW | app/mailers/user_mailer.rb | 72 | def password_change_not_possible(user) | CODE |
| LOW | app/mailers/user_mailer.rb | 185 | def account_activation_requested(admin, user) | CODE |
| LOW | app/mailers/user_mailer.rb | 233 | def open_project_wiki_headers(wiki_page) | CODE |
| LOW | app/mailers/user_mailer.rb | 239 | def open_project_message_headers(message) | CODE |
| LOW | app/mailers/application_mailer.rb | 137 | def default_formats_for_setting(format) | CODE |
| LOW | app/contracts/base_contract.rb | 93 | def default_attribute_permission(permission) | CODE |
| LOW | app/contracts/base_contract.rb | 183 | def collect_ancestor_attributes(attribute_to_collect) | CODE |
| LOW | app/contracts/base_contract.rb | 193 | def collect_ancestor_attributes_by(attribute_to_collect, combination_method, cleanup_method) | CODE |
| LOW⚡ | app/contracts/base_contract.rb | 234 | def reduce_writable_attributes(attributes) | CODE |
| LOW⚡ | app/contracts/base_contract.rb | 239 | def reduce_by_writable_conditions(attributes) | CODE |
| LOW⚡ | app/contracts/base_contract.rb | 248 | def reduce_by_writable_permissions(attributes) | CODE |
| LOW | app/contracts/base_contract.rb | 288 | def validate_and_merge_errors(contract) | CODE |
| LOW | app/contracts/base_contract.rb | 306 | def merge_errors_deduplicated(other_errors) | CODE |
| LOW | …rk_package_types/update_form_configuration_contract.rb | 111 | def normalized_legacy_group_key(seen_keys) | CODE |
| LOW | …rk_package_types/update_form_configuration_contract.rb | 123 | def validate_rebuilt_query_group(group, query) | CODE |
| LOW | app/contracts/work_packages/base_contract.rb | 267 | def validate_after_soonest_start(date_attribute) | CODE |
| LOW | app/contracts/work_packages/base_contract.rb | 439 | def validate_version_ids_assignable(ids, error_field, assignable) | CODE |
| LOW | app/contracts/work_packages/base_contract.rb | 666 | def reduce_by_writable_permissions(attributes) | CODE |
| LOW | app/contracts/work_packages/base_contract.rb | 725 | def new_statuses_allowed_from(status) | CODE |
| LOW | …p/contracts/work_packages/skip_authorization_checks.rb | 42 | def reduce_by_writable_permissions(attributes) | CODE |
| LOW | app/contracts/projects/update_contract.rb | 77 | def with_available_custom_fields_only(changes) | CODE |
| LOW | app/contracts/projects/update_contract.rb | 81 | def with_all_available_custom_fields(changes) | CODE |
| LOW | app/contracts/versions/base_contract.rb | 92 | def assignable_custom_field_values(custom_field) | CODE |
| LOW | app/contracts/roles/base_contract.rb | 95 | def add_unmet_dependency_error(selected, unmet) | CODE |
| LOW | app/contracts/groups/base_contract.rb | 85 | def users_already_in_departments(user_ids) | CODE |
| LOW | app/contracts/users/base_contract.rb | 68 | def reduce_writable_attributes(attributes) | CODE |
| LOW | app/contracts/attachments/validate_replacements.rb | 50 | def error_if_attachment_assigned(attachment) | CODE |
| LOW | app/contracts/attachments/validate_replacements.rb | 54 | def error_if_other_user_attachment(attachment) | CODE |
| LOW | app/contracts/concerns/admin_writable_timestamps.rb | 35 | def allow_writable_timestamps(attributes = %i[created_at updated_at]) | CODE |
| LOW | …p/contracts/concerns/assignable_custom_field_values.rb | 35 | def assignable_custom_field_values(custom_field) | CODE |
| LOW | app/models/permitted_params.rb | 134 | def move_work_package_form_values(args = {}) | CODE |
| LOW | app/models/permitted_params.rb | 706 | def build_custom_field_values(key, required:) | CODE |
| LOW | app/models/custom_field.rb | 462 | def possible_version_values_options(obj, options: {}) | CODE |
| LOW | app/models/custom_field.rb | 474 | def possible_user_values_options(obj) | CODE |
| LOW | app/models/watcher.rb | 95 | def destroy_watchers_if_permission_missing(watchable_class, class_candidates) | CODE |
| LOW | app/models/timestamp.rb | 68 | def substitute_special_shortcut_values(string) | CODE |
| LOW | app/models/ldap_auth_source.rb | 192 | def get_user_attributes_from_ldap_entry(entry) | CODE |
| LOW⚡ | app/models/project_custom_field.rb | 69 | def toggleable_ids_in_project_settings(project, user, custom_field_section_id) | CODE |
| LOW⚡ | app/models/project_custom_field.rb | 78 | def custom_field_ids_in_section(custom_field_section_id) | CODE |
| LOW⚡ | app/models/project_custom_field.rb | 82 | def toggleable_ids_in_creation_wizard_settings(project, custom_field_section_id) | CODE |
| LOW | app/models/project_custom_field.rb | 119 | def mappings_with_view_project_attributes_permission(user, project) # rubocop:disable Metrics/AbcSize | CODE |
| LOW | app/models/work_package.rb | 326 | def set_derived_progress_hint(field_name, hint, **params) | CODE |
| LOW | app/models/work_package.rb | 630 | def convert_duration_to_hours(value) | CODE |
| LOW | app/models/work_package.rb | 641 | def convert_value_to_percentage(value) | CODE |
| LOW | app/models/changeset.rb | 205 | def find_referenced_work_package_by_id(id) | CODE |
| 2055 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packaging/conf/configuration.yml | 32 | # This file is auto-generated by OpenProject, | COMMENT |
| MEDIUM | app/contracts/model_contract.rb | 94 | # This method is mostly copied from ActiveModel::Validations#valid? | COMMENT |
| MEDIUM | app/models/wiki_page.rb | 91 | # Create a slug for the given title | COMMENT |
| MEDIUM | app/models/wiki_page.rb | 136 | # Create a redirect to the new title | COMMENT |
| MEDIUM | app/models/scim_client.rb | 59 | # This method is part of a nasty workaround for creating and updating SCIM clients: | COMMENT |
| MEDIUM | app/models/token/base.rb | 57 | # Create a plain and hashed value when creating a new token | COMMENT |
| MEDIUM | …odels/work_package/exports/formatters/project_phase.rb | 44 | # This method is not implemented (yet). | COMMENT |
| MEDIUM | app/models/custom_value/ar_object_strategy.rb | 60 | # This method is not inlined in typed_value to allow separate changes to typed_value and formatted_value | COMMENT |
| MEDIUM | app/models/work_packages/scopes/relatable.rb | 153 | # Creating a parent relationship is destructive since there can only ever be one. | COMMENT |
| MEDIUM | …p/models/queries/filters/shared/custom_field_filter.rb | 64 | # Create a filter instance for the given custom field accessor | COMMENT |
| MEDIUM | …p/models/queries/filters/shared/custom_field_filter.rb | 73 | # Create a filter instance for the given custom field | COMMENT |
| MEDIUM | app/models/journable/with_historic_attributes.rb | 31 | # This class is used to wrap a Journable and provide access to its attributes at given timestamps. | COMMENT |
| MEDIUM | app/models/project_queries/static.rb | 130 | # This method is used to create static queries, so assume clean state after building | COMMENT |
| MEDIUM | …components/work_package_types/wizard/page_component.rb | 43 | # Creating a type hands in the type itself, or nothing at all. Settle what the wizard is | COMMENT |
| MEDIUM | app/workers/shared_job_setup.rb | 33 | # This module is included in `ApplicationJob` and `Mails::MailerJob` and does | COMMENT |
| MEDIUM | app/workers/debounceable_job.rb | 32 | # This module is generalizes the debounce logic that was originally used on {Storages::ManageStorageIntegrationsJob} | COMMENT |
| MEDIUM | app/workers/exports/export_job.rb | 118 | # Create a target file name, replacing any invalid characters | COMMENT |
| MEDIUM | app/workers/scm/create_local_repository_job.rb | 53 | # Create the repository locally. | COMMENT |
| MEDIUM | app/controllers/messages_controller.rb | 84 | # Create a new topic | COMMENT |
| MEDIUM | app/helpers/augmenting_helper.rb | 33 | # Create a collapsible section and yield to render the block | COMMENT |
| MEDIUM | app/helpers/static_links_helper.rb | 33 | # Create a static link to the given key entry | COMMENT |
| MEDIUM | app/helpers/angular_helper.rb | 33 | # Create a component element tag with the given attributes | COMMENT |
| MEDIUM | app/helpers/watchers_helper.rb | 32 | # Create a link to watch/unwatch object | COMMENT |
| MEDIUM | app/services/work_packages/update_ancestors_service.rb | 178 | # This method is called only when parent or parent_id attribute of the | COMMENT |
| MEDIUM | …ype_artefact_export/export_on_status_change_service.rb | 101 | # Creating the attachment through the association does not create a work package | COMMENT |
| MEDIUM | …es/projects/creation_wizard/upload_artifact_service.rb | 79 | # Creating the attachment does not create a work package | COMMENT |
| MEDIUM | app/services/copy/dependency.rb | 63 | # Create a result with an empty error set | COMMENT |
| MEDIUM | app/services/attachments/base_service.rb | 34 | # Create an attachment service bypassing the user-provided whitelist | COMMENT |
| MEDIUM | lib_static/redmine/i18n.rb | 31 | # This file is to be split up into smaller files in the OpenProject namespace. | COMMENT |
| MEDIUM | lib_static/redmine/diff/diffable.rb | 71 | # Create a hash that maps elements of the array to arrays of indices | COMMENT |
| MEDIUM | …tic/plugins/acts_as_journalized/lib/cause_of_change.rb | 31 | # This file is part of the acts_as_journalized plugin for the redMine | COMMENT |
| MEDIUM | …c/plugins/acts_as_journalized/lib/journal_formatter.rb | 31 | # This file is part of the acts_as_journalized plugin for the redMine | COMMENT |
| MEDIUM | …plugins/acts_as_journalized/lib/acts_as_journalized.rb | 31 | # This file is part of the acts_as_journalized plugin for the redMine | COMMENT |
| MEDIUM | …acts_as_journalized/lib/acts/journalized/save_hooks.rb | 31 | # This file is part of the acts_as_journalized plugin for the redMine | COMMENT |
| MEDIUM | …cts_as_journalized/lib/acts/journalized/permissions.rb | 31 | # This file is part of the acts_as_journalized plugin for the redMine | COMMENT |
| MEDIUM | …ts_as_journalized/lib/acts/journalized/format_hooks.rb | 31 | # This file is part of the acts_as_journalized plugin for the redMine | COMMENT |
| MEDIUM | …ugins/acts_as_customizable/lib/acts_as_customizable.rb | 181 | # This method is expected to be used when more comments are needed, so it | COMMENT |
| MEDIUM | …ins/verification/lib/action_controller/verification.rb | 11 | # This module provides a class-level method for specifying that certain | COMMENT |
| MEDIUM | lib_static/open_project/authentication.rb | 91 | # This module is only there to declare all used scopes. Technically a scope can be an | COMMENT |
| MEDIUM | lib_static/open_project/feature_decisions.rb | 33 | # This module is the container for temporary or permanent feature flags. | COMMENT |
| MEDIUM | lib_static/open_project/opentelemetry.rb | 55 | # Create a new span for the exception if no current span | COMMENT |
| MEDIUM | lib_static/open_project/database.rb | 33 | # This module provides some information about the currently used database | COMMENT |
| MEDIUM | config/locales/crowdin/ja.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/el.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/rw.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/fil.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/pt-BR.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/es.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/sr.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/be.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/tr.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/hy.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/cs.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/th.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/no.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/pt-PT.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/ka.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/hu.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/de.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| MEDIUM | config/locales/crowdin/kk.seeders.yml | 3 | #This file is part of the sources sent to crowdin for translation. | COMMENT |
| 457 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/models/user.rb | 498 | # - Will find 'foo+bar@example.org' with input of 'foo@example.org' | COMMENT |
| LOW | app/models/exports/pdf/demo_generator.rb | 134 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " \ | CODE |
| LOW | app/models/exports/pdf/demo_generator.rb | 134 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " \ | CODE |
| LOW | …ntrollers/dynamic/sortable-lists/external-data.spec.ts | 43 | 'mailto:a@example.org', | CODE |
| LOW⚡ | …p/core/setup/globals/global-listeners/color-preview.ts | 57 | } else if (input.getAttribute('placeholder') | CODE |
| LOW⚡ | …p/core/setup/globals/global-listeners/color-preview.ts | 58 | && input.getAttribute('placeholder')!.length > 0) { | CODE |
| LOW⚡ | …p/core/setup/globals/global-listeners/color-preview.ts | 59 | previewColor = input.getAttribute('placeholder')!; | CODE |
| LOW | …global_search/input/global-search-input.component.html | 1 | <div role="search" class="top-menu-search" [attr.aria-label]="placeholder"> | CODE |
| LOW | …omponents/principal/principal-renderer.service.spec.ts | 66 | expect(renderFallback('John Doe')).toBe('JD'); | CODE |
| LOW | …nge-date-picker/basic-range-date-picker.component.html | 16 | [placeholder]="placeholder" | CODE |
| LOW | …nge-date-picker/basic-range-date-picker.component.html | 45 | [placeholder]="placeholder" | CODE |
| LOW | …nge-date-picker/basic-range-date-picker.component.html | 59 | [placeholder]="placeholder" | CODE |
| LOW | …le-date-picker/basic-single-date-picker.component.html | 16 | [placeholder]="placeholder" | CODE |
| LOW | …le-date-picker/basic-single-date-picker.component.html | 36 | [placeholder]="placeholder" | CODE |
| LOW | …leter/op-autocompleter/op-autocompleter.component.html | 52 | [placeholder]="placeholder" | CODE |
| LOW | …p/spot/components/text-field/text-field.component.html | 8 | [placeholder]="placeholder" | CODE |
| LOW | config/locales/crowdin/ro.yml | 5776 | data_consequences: 'Toate prezențele utilizatorului de tip "placeholder" (de exemplu, ca destinatar, responsabil s | CODE |
| LOW | spec/mailers/smtp_settings_spec.rb | 64 | mail(from: "test@op.com", to: "foo@bar.com", subject: "Test mail", body: "body") | CODE |
| LOW | spec/mailers/interceptors/rate_limit_emails_spec.rb | 66 | let(:to) { ["joe@example.org"] } | CODE |
| LOW⚡ | spec/mailers/interceptors/rate_limit_emails_spec.rb | 82 | let(:to) { ["joe@example.org", "jane@example.org"] } | CODE |
| LOW⚡ | spec/mailers/interceptors/rate_limit_emails_spec.rb | 83 | let(:cc) { ["jim@example.org"] } | CODE |
| LOW⚡ | spec/mailers/interceptors/rate_limit_emails_spec.rb | 84 | let(:bcc) { ["janet@example.org"] } | CODE |
| LOW⚡ | spec/mailers/interceptors/rate_limit_emails_spec.rb | 100 | let(:to) { ["joe@example.org"] } | CODE |
| LOW⚡ | spec/mailers/interceptors/rate_limit_emails_spec.rb | 101 | let(:cc) { ["joe@example.org"] } | CODE |
| LOW⚡ | spec/mailers/interceptors/rate_limit_emails_spec.rb | 102 | let(:bcc) { ["joe@example.org"] } | CODE |
| LOW | …cts/authentication/omniauth_auth_hash_contract_spec.rb | 39 | email: "foo@bar.com", | CODE |
| LOW | spec/features/auth/consent_auth_stage_spec.rb | 211 | fill_in "user_mail", with: "foo@example.org" | CODE |
| LOW | spec/features/auth/consent_auth_stage_spec.rb | 265 | context "with contact mail address", with_settings: { consent_decline_mail: "foo@example.org" } do | CODE |
| LOW | spec/features/auth/consent_auth_stage_spec.rb | 275 | expect_flash(type: :error, message: "foo@example.org") | CODE |
| LOW | …ts/project_custom_fields/overview_page/sidebar_spec.rb | 480 | text_project_custom_field.custom_values.where(customized: project).first.update!(value: "Lorem ipsum") | CODE |
| LOW | …ts/project_custom_fields/overview_page/sidebar_spec.rb | 489 | expect(page).to have_text "Lorem ipsum" | CODE |
| LOW | …ts/project_custom_fields/overview_page/sidebar_spec.rb | 560 | text_project_custom_field.update!(default_value: "Dolor sit amet") | CODE |
| LOW | …ts/project_custom_fields/overview_page/sidebar_spec.rb | 567 | expect(page).to have_text "Dolor sit amet" | CODE |
| LOW | spec/features/admin/departments_spec.rb | 164 | departments_page.add_user("Jane Doe") | CODE |
| LOW | spec/features/admin/departments_spec.rb | 167 | departments_page.expect_user_listed("Jane Doe") | CODE |
| LOW | spec/features/admin/departments_spec.rb | 203 | departments_page.select_user_in_autocompleter("Jane Doe") | CODE |
| LOW | spec/features/admin/departments_spec.rb | 215 | departments_page.expect_user_listed("Jane Doe") | CODE |
| LOW⚡ | spec/features/admin/departments_spec.rb | 232 | departments_page.expect_user_listed("Jane Doe") | CODE |
| LOW⚡ | spec/features/admin/departments_spec.rb | 234 | departments_page.remove_user("Jane Doe") | CODE |
| LOW⚡ | spec/features/admin/departments_spec.rb | 237 | departments_page.expect_no_user_listed("Jane Doe") | CODE |
| LOW⚡ | spec/features/admin/departments_spec.rb | 243 | Setting.organization_name = "Acme Corp" | CODE |
| LOW⚡ | spec/features/admin/departments_spec.rb | 249 | departments_page.expect_breadcrumbs("Acme Corp") | CODE |
| LOW⚡ | spec/features/admin/departments_spec.rb | 255 | departments_page.expect_organization_name("Acme Corp") | CODE |
| LOW | spec/features/admin/departments_spec.rb | 274 | departments_page.expect_organization_name("Acme Corp") | CODE |
| LOW | spec/features/admin/enterprise/enterprise_spec.rb | 70 | token.mail = "foo@example.org" | CODE |
| LOW | spec/features/admin/import/jira/import_runs_spec.rb | 63 | expect(page).to have_text("Jane Doe") | CODE |
| LOW | spec/features/activities/time_entry_activity_spec.rb | 62 | comments: "lorem ipsum") | CODE |
| LOW | spec/features/members/membership_spec.rb | 42 | mail: "foo@example.org") | CODE |
| LOW | spec/features/members/membership_filter_spec.rb | 42 | mail: "foo@example.org", | CODE |
| LOW | spec/features/members/membership_filter_spec.rb | 81 | members_page.search_for_name "@example.org" | CODE |
| LOW | spec/features/members/membership_filter_spec.rb | 109 | members_page.search_for_name "@example.org" | CODE |
| LOW | spec/models/mail_handler_spec.rb | 566 | .to include("Lorem ipsum dolor sit amet, consectetuer adipiscing elit.") | CODE |
| LOW | spec/models/mail_handler_spec.rb | 566 | .to include("Lorem ipsum dolor sit amet, consectetuer adipiscing elit.") | CODE |
| LOW | spec/models/mail_handler_spec.rb | 729 | expect(subject.author.mail).to eq("foo@example.org") | CODE |
| LOW | spec/models/mail_handler_spec.rb | 1336 | let!(:mail_user) { create(:admin, mail: "user@example.org") } | CODE |
| LOW | spec/models/user_spec.rb | 95 | .to eql "foo@bar.com" | CODE |
| LOW | spec/models/user_spec.rb | 116 | let(:mail) { "foo@bar.com" } | CODE |
| LOW | spec/models/user_spec.rb | 954 | _, suffixed = described_class.mail_regexp("foo+bar@example.org") | CODE |
| LOW⚡ | spec/models/user_spec.rb | 993 | let!(:user1) { create(:user, mail: "foo+test@example.org") } | CODE |
| LOW⚡ | spec/models/user_spec.rb | 994 | let!(:user2) { create(:user, mail: "foo@example.org") } | CODE |
| 286 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | modules/meeting/config/locales/crowdin/li.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/mn.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/az.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/th.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/be.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ca.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/uz.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ne.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/bg.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/si.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/da.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/fi.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/fil.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ro.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/sk.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/eu.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/he.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/hr.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/et.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/sl.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/kk.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/el.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/hi.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/eo.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ka.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/sr.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/rw.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/af.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/lv.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ms.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ar.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/lt.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ckb-IR.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/no.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/nl.yml | 0 | header_occurrence: 'cancelled: meeting occurrence ''%{title} | STRING |
| HIGH | modules/meeting/config/locales/crowdin/li.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/mn.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/az.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/th.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/be.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ca.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/uz.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ne.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/bg.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/si.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/da.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/fi.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/fil.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ro.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/sk.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/eu.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/he.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/hr.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/et.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/sl.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/kk.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/el.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/hi.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/eo.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| HIGH | modules/meeting/config/locales/crowdin/ka.yml | 0 | summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: an o | STRING |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | spec/features/menu_items/quick_add_menu_spec.rb | 71 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/menu_items/quick_add_menu_spec.rb | 74 | # Step 2: Project details - Parent field is not visible here | COMMENT |
| LOW⚡ | spec/features/projects/subproject_creation_spec.rb | 63 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/subproject_creation_spec.rb | 66 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 61 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 64 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 129 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 132 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 149 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 152 | # Step 2: Try to complete without name | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 183 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 186 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 191 | # Step 3: Fill in custom fields | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 246 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 249 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 254 | # Step 3: Fill in custom fields | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 331 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 334 | # Step 2: Project details - skip to step 3 | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 339 | # Step 3: Custom fields | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 361 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 364 | # Step 2: Fill in name | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 369 | # Step 3: Try to complete without required custom field | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 392 | # Step 1: Select workspace type | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 395 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 399 | # Step 3: Fill in required custom field | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 536 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 539 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 613 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 616 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/attribute_help_texts_spec.rb | 109 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/attribute_help_texts_spec.rb | 112 | # Step 2: Project details - Name field is visible here | COMMENT |
| LOW | spec/features/projects/template_spec.rb | 103 | # Step 2: Project details | COMMENT |
| LOW⚡ | spec/features/projects/template_spec.rb | 152 | # Step 2: Project details | COMMENT |
| LOW⚡ | spec/features/projects/template_spec.rb | 158 | # Step 3: Custom fields - should not show custom field form when creating from template | COMMENT |
| LOW | …ects/creation_wizard/wizard_from_template_flow_spec.rb | 143 | # Step 2: Project details | COMMENT |
| LOW⚡ | spec/features/portfolios/create_spec.rb | 67 | # Step 1: Select workspace type (blank portfolio) | COMMENT |
| LOW⚡ | spec/features/portfolios/create_spec.rb | 70 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | …ec/features/global_roles/global_create_project_spec.rb | 94 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | …ec/features/global_roles/global_create_project_spec.rb | 97 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/programs/create_spec.rb | 67 | # Step 1: Select workspace type (blank program) | COMMENT |
| LOW⚡ | spec/features/programs/create_spec.rb | 70 | # Step 2: Fill in project details | COMMENT |
| LOW | …eatures/notifications/turbo_angular_navigation_spec.rb | 53 | # Step 1: Open notification center | COMMENT |
| LOW⚡ | …eatures/notifications/turbo_angular_navigation_spec.rb | 64 | # Step 2: Click a notification so that the work package opens on the side | COMMENT |
| LOW⚡ | …eatures/notifications/turbo_angular_navigation_spec.rb | 69 | # Step 3: Click on the work package #id from the notifications list | COMMENT |
| LOW⚡ | …eatures/notifications/turbo_angular_navigation_spec.rb | 75 | # Step 4: Click back once | COMMENT |
| LOW⚡ | …eatures/notifications/turbo_angular_navigation_spec.rb | 83 | # Step 5: Click back a second time | COMMENT |
| LOW | …er-guide/projects/project-initiation-request/README.md | 38 | ## Step 1: Create a new project | COMMENT |
| LOW | …er-guide/projects/project-initiation-request/README.md | 58 | ## Step 2: Fill out the project initiation request | COMMENT |
| LOW | …er-guide/projects/project-initiation-request/README.md | 88 | ## Step 3: Submit the project initiation request | COMMENT |
| LOW | docs/development/localhost-ssl/README.md | 9 | ## Step 1: Create a self-signed certificate | COMMENT |
| LOW | docs/development/localhost-ssl/README.md | 21 | ## Step 2: Set up a custom host | COMMENT |
| LOW | docs/development/localhost-ssl/README.md | 27 | ## Step 3: Install and configure Apache2 | COMMENT |
| LOW | docs/development/localhost-ssl/README.md | 93 | ## Step 4: Configure OpenProject for HTTPS usage | COMMENT |
| LOW | docs/use-cases/risk-management/README.md | 126 | ### Step 1: Create and activate the `Risk` work package type | COMMENT |
| LOW | docs/use-cases/risk-management/README.md | 156 | ### Step 2: Configure the risk form | COMMENT |
| LOW | docs/use-cases/risk-management/README.md | 176 | ### Step 3: Configure statuses and workflows | COMMENT |
| LOW | docs/use-cases/risk-management/README.md | 193 | ### Step 4: Create a Risk management board and project template | COMMENT |
| LOW | …s/system-admin-guide/authentication/kerberos/README.md | 19 | ## Step 1: Create Kerberos service and keytab for OpenProject | COMMENT |
| LOW | …s/system-admin-guide/authentication/kerberos/README.md | 41 | ## Step 2: Configure Apache web server | COMMENT |
| LOW | …s/system-admin-guide/authentication/kerberos/README.md | 95 | ## Step 3: Configure OpenProject to use Apache header | COMMENT |
| 68 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …tions/switch_display_representations_on_mobile_spec.rb | 74 | page.driver.browser.manage.window.resize_to(700, 1080) | CODE |
| CRITICAL | …_packages/table/queries/query_name_inline_edit_spec.rb | 116 | page.driver.browser.switch_to.active_element.send_keys("Some other name") | CODE |
| CRITICAL | …_packages/table/queries/query_name_inline_edit_spec.rb | 117 | page.driver.browser.switch_to.active_element.send_keys(:return) | CODE |
| CRITICAL | …s/work_packages/share/share_account_activation_spec.rb | 75 | link = ActionMailer::Base.deliveries.first.text_part.body.encoded.scan(/http:\/\/.+$/).first.chomp | CODE |
| CRITICAL | …features/a11y/work_packages/work_package_query_spec.rb | 184 | page.driver.browser.switch_to.active_element.send_keys("j") | CODE |
| CRITICAL | …features/a11y/work_packages/work_package_query_spec.rb | 187 | page.driver.browser.switch_to.active_element.send_keys("k") | CODE |
| CRITICAL | spec/support/capybara_browser_logs.rb | 42 | Capybara.page.driver.browser.manage.instance_variable_get(:@bridge).log("browser") | CODE |
| CRITICAL | spec/support/shared/with_mobile_screen.rb | 53 | page.driver.browser.manage.window.resize_to(width || 500, height || 1000) | CODE |
| CRITICAL | spec/support/shared/with_mobile_screen.rb | 62 | page.driver.browser.manage.window.resize_to(width_before, height_before) | CODE |
| CRITICAL | …create_project_work_packages_job_custom_fields_spec.rb | 1384 | expect(custom_field.hierarchy_root.children.sole.children.pluck(:label)).to eq(["Security"]) | CODE |
| CRITICAL | spec/controllers/users_controller_spec.rb | 1390 | expect(User.newest.first.attributes.with_indifferent_access.slice(:firstname, :lastname, :login, :mail)) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | spec/features/menu_items/quick_add_menu_spec.rb | 71 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/menu_items/quick_add_menu_spec.rb | 74 | # Step 2: Project details - Parent field is not visible here | COMMENT |
| LOW⚡ | spec/features/projects/subproject_creation_spec.rb | 63 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/subproject_creation_spec.rb | 66 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 61 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 64 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 129 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 132 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 149 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 152 | # Step 2: Try to complete without name | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 183 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 186 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 191 | # Step 3: Fill in custom fields | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 246 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 249 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 254 | # Step 3: Fill in custom fields | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 331 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 334 | # Step 2: Project details - skip to step 3 | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 339 | # Step 3: Custom fields | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 361 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 364 | # Step 2: Fill in name | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 369 | # Step 3: Try to complete without required custom field | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 392 | # Step 1: Select workspace type | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 395 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 399 | # Step 3: Fill in required custom field | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 536 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 539 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 613 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/create_spec.rb | 616 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/projects/attribute_help_texts_spec.rb | 109 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | spec/features/projects/attribute_help_texts_spec.rb | 112 | # Step 2: Project details - Name field is visible here | COMMENT |
| LOW | spec/features/projects/template_spec.rb | 103 | # Step 2: Project details | COMMENT |
| LOW⚡ | spec/features/projects/template_spec.rb | 152 | # Step 2: Project details | COMMENT |
| LOW⚡ | spec/features/projects/template_spec.rb | 158 | # Step 3: Custom fields - should not show custom field form when creating from template | COMMENT |
| LOW | …ects/creation_wizard/wizard_from_template_flow_spec.rb | 143 | # Step 2: Project details | COMMENT |
| LOW⚡ | spec/features/portfolios/create_spec.rb | 67 | # Step 1: Select workspace type (blank portfolio) | COMMENT |
| LOW⚡ | spec/features/portfolios/create_spec.rb | 70 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | …ec/features/global_roles/global_create_project_spec.rb | 94 | # Step 1: Select workspace type (blank project) | COMMENT |
| LOW⚡ | …ec/features/global_roles/global_create_project_spec.rb | 97 | # Step 2: Fill in project details | COMMENT |
| LOW⚡ | spec/features/programs/create_spec.rb | 67 | # Step 1: Select workspace type (blank program) | COMMENT |
| LOW⚡ | spec/features/programs/create_spec.rb | 70 | # Step 2: Fill in project details | COMMENT |
| LOW | …eatures/notifications/turbo_angular_navigation_spec.rb | 53 | # Step 1: Open notification center | COMMENT |
| LOW⚡ | …eatures/notifications/turbo_angular_navigation_spec.rb | 64 | # Step 2: Click a notification so that the work package opens on the side | COMMENT |
| LOW⚡ | …eatures/notifications/turbo_angular_navigation_spec.rb | 69 | # Step 3: Click on the work package #id from the notifications list | COMMENT |
| LOW⚡ | …eatures/notifications/turbo_angular_navigation_spec.rb | 75 | # Step 4: Click back once | COMMENT |
| LOW⚡ | …eatures/notifications/turbo_angular_navigation_spec.rb | 83 | # Step 5: Click back a second time | COMMENT |
| LOW⚡ | …/app/services/bim/ifc_models/view_converter_service.rb | 85 | # Step 0: avoid file name issues (e.g. umlauts) in the pipeline | COMMENT |
| LOW⚡ | …/app/services/bim/ifc_models/view_converter_service.rb | 89 | .then { |ifc_path| convert_to_collada ifc_path } # Step 1: IfcConvert | CODE |
| LOW⚡ | …/app/services/bim/ifc_models/view_converter_service.rb | 90 | .then { |collada_path| convert_to_gltf collada_path } # Step 2: Collada2GLTF | CODE |
| LOW⚡ | …/app/services/bim/ifc_models/view_converter_service.rb | 91 | .then { |gltf_path| convert_to_xkt gltf_path } # Step 3: Create XKT from extracted metadata JSON and GLTF | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/models/work_packages/scopes/relatable.rb | 148 | # WP2 <────follows──────── WP1 <────────follows──── WP5 | COMMENT |
| MEDIUM | …-packages/activities-tab/services/view-port-service.ts | 117 | // ├──────────────────┤ ← returned height; the comment seats below this line | COMMENT |
| MEDIUM | …ackages/table/hierarchy/hierarchy_parent_below_spec.rb | 22 | # --------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 59 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 87 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 89 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 170 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 172 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 251 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 254 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 318 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 320 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 435 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 437 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 470 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 472 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 520 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 522 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 545 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 547 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 596 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 598 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 624 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rvices/groups/hierarchy_membership_integration_spec.rb | 627 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …okbook/previews/open_project/common/divider_preview.rb | 37 | # --------------------- | COMMENT |
| MEDIUM | …ook/previews/open_project/common/datepicker_preview.rb | 37 | # --------------------- | COMMENT |
| MEDIUM | …ook/previews/open_project/common/datepicker_preview.rb | 69 | # --------------------- | COMMENT |
| MEDIUM | …iews/open_project/deprecated/simple_filters_preview.rb | 36 | # -------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/contracts/queries/update_contract.rb | 41 | # Check if the current user may save the changes | COMMENT |
| LOW | app/contracts/user_preferences/params_contract.rb | 70 | # Check if the given notification hash has email-only settings set | COMMENT |
| LOW | app/models/ldap_auth_source.rb | 327 | # Check if a DN (user record) authenticates with the password | COMMENT |
| LOW | …odels/queries/work_packages/filter/typeahead_filter.rb | 78 | # Check if the search string matches translated "open" or "closed" meta statuses | COMMENT |
| LOW | app/models/exports/pdf/common/macro.rb | 71 | # Check if the text node is not inside a mention tag | COMMENT |
| LOW | app/models/exports/formatters/custom_field.rb | 48 | # Print the value meant for export. | COMMENT |
| LOW | app/models/exports/formatters/custom_field_pdf.rb | 46 | # Print the value meant for PDF export. | COMMENT |
| LOW | …ts/open_project/common/inplace_edit_field_component.rb | 200 | # Check if this is a custom field attribute | COMMENT |
| LOW | app/controllers/members_controller.rb | 205 | # Check if there is at least one principal that can be added to the project | COMMENT |
| LOW | app/controllers/work_packages/moves_controller.rb | 120 | # Check if project is unique before bulk operations | COMMENT |
| LOW | app/services/base_services/base_callable.rb | 67 | # Assign state to the service result obtained after the service call. | COMMENT |
| LOW | app/services/work_packages/bulk/copy_service.rb | 146 | # Check if a parent work package is also selected for copying | COMMENT |
| LOW | …set_attributes_service/progress_values_calculations.rb | 67 | # Check if the remaining work value is wrong and can be corrected regarding | COMMENT |
| LOW | …set_attributes_service/progress_values_calculations.rb | 78 | # Check if the % complete value is wrong and can be corrected regarding work | COMMENT |
| LOW | …set_attributes_service/progress_values_calculations.rb | 94 | # Check if one of provided remaining_work or percent_complete matches the calculated one | COMMENT |
| LOW | app/services/oauth_clients/connection_manager.rb | 91 | # Check if a OAuthClientToken already exists and return nil otherwise. | COMMENT |
| LOW | app/services/oauth_clients/connection_manager.rb | 94 | # Check if we've got a token in the database and return nil otherwise. | COMMENT |
| LOW | app/services/import/jira_wiki_markup/parser.rb | 119 | # Check if this line has a closing {code} tag after the opening tag | COMMENT |
| LOW | app/services/import/jira_wiki_markup/parser.rb | 139 | # Check if this line has a closing {noformat} tag after the opening tag | COMMENT |
| LOW | app/services/import/jira_wiki_markup/parser.rb | 170 | # Check if this line has a closing {panel} tag after the opening tag | COMMENT |
| LOW | config/environments/production.rb | 149 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. | COMMENT |
| LOW | config/initializers/health_checks.rb | 59 | # Check if authentication required | COMMENT |
| LOW | …ures/work_packages/datepicker/datepicker_logic_spec.rb | 961 | # Set date to Sunday | COMMENT |
| LOW | spec/features/wysiwyg/tables_spec.rb | 210 | # Set style to dotted | COMMENT |
| LOW⚡ | spec/features/projects/lists/table_spec.rb | 411 | # Check if the description is truncated and shows the Expand button correctly | COMMENT |
| LOW⚡ | spec/features/projects/lists/table_spec.rb | 419 | # Check if the status explanation with an html tag is truncated and shows the cell text and Expand button correctl | COMMENT |
| LOW⚡ | spec/features/projects/lists/table_spec.rb | 425 | # Check if a long-text custom field which has a short text as value is not truncated and there is no Expand button | COMMENT |
| LOW⚡ | spec/features/projects/lists/table_spec.rb | 431 | # Check if a long-text custom field which has a long text as value is truncated and there is an Expand button ther | COMMENT |
| LOW | …ojects/creation_wizard/project_creation_wizard_spec.rb | 473 | # Check if first page still has comment | COMMENT |
| LOW | spec/features/admin/working_days_spec.rb | 270 | # Check if a date is correctly highlighted after selecting it in different time zones | COMMENT |
| LOW | spec/features/admin/working_days_spec.rb | 319 | # Check if date and name are entered then close the datepicker | COMMENT |
| LOW | spec/features/users/user_memberships_spec.rb | 50 | # Check if user with global role is there | COMMENT |
| LOW | script/jira/gen_jira_projects.rb | 747 | # Check if project already exists, generate new key if so | COMMENT |
| LOW | script/jira/gen_jira_projects.rb | 862 | # Check if error mentions a custom field (likely Epic Name) and extract the field ID | COMMENT |
| LOW | lib/open_project/rate_limiting/registration.rb | 9 | # Set registration_rate_limit_per_ip to false to count per instance instead | COMMENT |
| LOW | …ext_formatting/filters/external_link_capture_filter.rb | 66 | # Check if it's an internal link | COMMENT |
| LOW | …project/text_formatting/matchers/wiki_links_matcher.rb | 98 | # Check if linking project exists | COMMENT |
| LOW | lib/open_project/scm/adapters/git.rb | 608 | # Check if a value is a valid commit hash | COMMENT |
| LOW | db/migrate/migration_utils/permission_adder.rb | 64 | # Check if the add-permission already exists before adding | COMMENT |
| LOW | modules/reporting/spec/features/saving_spec.rb | 23 | # Check if the category is displayed | COMMENT |
| LOW | modules/reporting/spec/features/saving_spec.rb | 25 | # Check if the new report is displayed | COMMENT |
| LOW | modules/reporting/spec/features/saving_spec.rb | 40 | # Check if the category is displayed | COMMENT |
| LOW | modules/reporting/spec/features/saving_spec.rb | 42 | # Check if the new report is displayed | COMMENT |
| LOW | …s/gantt/spec/features/timeline/timeline_labels_spec.rb | 165 | # Set labels to start|due|subject | COMMENT |
| LOW | modules/meeting/spec/features/move_to_section_spec.rb | 136 | # Set state to opposite of default | COMMENT |
| LOW | modules/budgets/app/helpers/budgets_helper.rb | 35 | # Check if the current user is allowed to manage the budget. Based on Role | COMMENT |
| LOW | …rds/spec/features/action_boards/assignee_board_spec.rb | 207 | # Add none to the list | COMMENT |
| LOW | …o_factor_authentication/token_strategy/message_bird.rb | 118 | # Check if the translation exist or fall back to english | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .herb.yml | 5 | # - Linter: Validates templates and enforces best practices | COMMENT |
| LOW | app/models/project_query.rb | 74 | # Cannot simply use .visible here as it would | COMMENT |
| MEDIUM | app/models/work_packages/scopes/relatable.rb | 169 | # henceforth. | COMMENT |
| LOW | …dels/queries/filters/shared/project_filter/required.rb | 50 | # will then simply create an empty result but will not cause any | COMMENT |
| LOW | …dels/queries/filters/shared/project_filter/optional.rb | 54 | # will then simply create an empty result but will not cause any | COMMENT |
| MEDIUM | …ls/queries/work_packages/selects/exact_match_select.rb | 94 | # We can leverage this to match in a way that allows index usage. | COMMENT |
| LOW | app/models/queries/projects/filters/ancestor_filter.rb | 62 | # will then simply create an empty result but will not cause any | COMMENT |
| LOW | app/models/query/results.rb | 253 | # included/joined associations are not aliased and as such, they simply use | COMMENT |
| LOW | app/controllers/concerns/member_helper.rb | 66 | # In that case, we just return the existing user. | COMMENT |
| MEDIUM⚡ | app/controllers/concerns/accounts/authorization.rb | 167 | # object is defined for changes, we clone it so that henceforth all changes are local. | COMMENT |
| MEDIUM | app/helpers/sort_helper.rb | 40 | # - Typically used in conjunction with the Pagination module. | COMMENT |
| LOW | app/helpers/backup_helper.rb | 40 | # Also we make sure that in case there is a password that it wasn't just set by a would-be attacker. | COMMENT |
| MEDIUM | …stimulus/controllers/dynamic/sortable-lists/preview.ts | 128 | // Absolutely positioned over the card clone's top-right corner; the | COMMENT |
| MEDIUM | …play/field-types/project-phase-display-field.module.ts | 75 | // This is more robust than using the name as it avoids issues with special characters. | COMMENT |
| LOW | config/initializers/zeitwerk.rb | 82 | # we simply return the general OpenProject namespace for such files. | COMMENT |
| LOW | spec/models/attachment_spec.rb | 270 | # We just use with_direct_uploads here to make sure the | COMMENT |
| MEDIUM | spec/support/rspec_disabled_specs.rb | 5 | # 1. `spec/disable_specs.rbs` to disable specs which don't work in conjunction with the | COMMENT |
| LOW | spec/controllers/shares_controller_spec.rb | 45 | # We test the specifc behavior for loading the entity here. In the rest of the test we just use project_query as the | COMMENT |
| MEDIUM | lib/open_project/plugins/acts_as_op_engine.rb | 82 | # http://blog.pivotal.io/pivotal-labs/labs/leave-your-migrations-in-your-rails-engines | COMMENT |
| LOW | …3/utilities/custom_field_injector/link_value_getter.rb | 110 | # While multi value custom fields are expected to simply return an empty array | COMMENT |
| MEDIUM | modules/backlogs/spec/support/pages/backlog.rb | 759 | # helper robust without any retry. | COMMENT |
| LOW | …s_export/work_package/exporter/xls_integration_spec.rb | 165 | # Since this test has to work without the actual costs plugin we'll just add | COMMENT |
| LOW | …ort/lib/open_project/xls_export/spreadsheet_builder.rb | 86 | # Add a "Title". This basically just set the first column to | COMMENT |
| LOW | …_connect/lib/open_project/openid_connect/sso_logout.rb | 41 | # Upon reauthentication just return directly with HTTP 200 OK | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/forms/llm_models/form.rb | 90 | # An embedding model answers no chat request, so the capabilities that only | COMMENT |
| MEDIUM | app/models/llm_model.rb | 150 | # A model is an embedding model when its embeddings verdict says so, and a | COMMENT |
| MEDIUM | app/components/llm_connections/models_row_component.rb | 60 | # that produces vectors is an embedding model, and everything else is a chat | COMMENT |
| MEDIUM | app/services/llm/errors.rb | 68 | # The prompt exceeded the model's context window. | COMMENT |
| MEDIUM | app/services/llm/client.rb | 37 | # deployment's real context window, and it substitutes OpenAI's capability | COMMENT |
| MEDIUM | app/services/llm/client.rb | 79 | # which is the only trustworthy source for a deployment's real context window. | COMMENT |
| MEDIUM | app/services/llm/adapters/openai.rb | 45 | # actual --max-model-len, and the only trustworthy context window for this | COMMENT |
| MEDIUM | …s/work_package_types/excluded_elements/base_service.rb | 33 | # Shared scaffolding for narrowing what a variant inherits for one aspect. Subclasses only | COMMENT |
| MEDIUM | …/work_package_types/copy_configuration/base_service.rb | 33 | # Shared scaffolding for the per-aspect copy services: the source guard and a | COMMENT |
| MEDIUM | spec/requests/admin/llm_models_spec.rb | 415 | # An embedding model answers no chat request, so tool calling and the rest | COMMENT |
| MEDIUM | spec/requests/admin/llm_models_spec.rb | 484 | # Not every administrator knows what an embedding model is. | COMMENT |
| MEDIUM | spec/requests/admin/llm_models_spec.rb | 571 | # "not an embedding model" could only be undone by editing the model again. | COMMENT |
| MEDIUM | lib/open_project/plugins/frontend_linking/generator.rb | 114 | # Regenerate the frontend plugin module orchestrating the linked frontends | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/models/user.rb | 332 | # Don't forget to check columns_for_name | COMMENT |
| MEDIUM | config/i18n-tasks.yml | 175 | ## In these cases you can use the built-in PatternMapper to map patterns to keys, e.g.: | COMMENT |
| MEDIUM | config/initializers/friendly_id.rb | 81 | # 'slug', but you can change it if you wish. | COMMENT |
| LOW | config/initializers/friendly_id.rb | 111 | # ASCII. If you use this, don't forget to add "babosa" to your Gemfile. | COMMENT |
| LOW | config/initializers/friendly_id.rb | 111 | # ASCII. If you use this, don't forget to add "babosa" to your Gemfile. | COMMENT |
| LOW | lib/open_project/scm/adapters/git.rb | 597 | # make sure to use bare repository path to initialize a managed repository | COMMENT |
| LOW | modules/reporting/spec/features/menu_spec.rb | 56 | # Meaning that you have to make sure to force the absolute URL in a project menu entry | COMMENT |
| LOW | …p/contracts/storages/project_storages/base_contract.rb | 52 | # we have to make sure to not introduce duplicates, because this could lead to one project taking ownership of a fol | COMMENT |
| MEDIUM | …ject/gitlab_integration/notification_handler/helper.rb | 52 | # For private comments you can use the prefix: PP# | COMMENT |
| LOW | …/adapters/providers/xwiki/commands/create_page_spec.rb | 45 | # To record a VCR cassette, make sure to set parent_identifier to the stable ID of an existing wiki page | COMMENT |
| MEDIUM | …/adapters/providers/xwiki/commands/create_page_spec.rb | 109 | # For example you can use "Sandbox Test Page 1" | COMMENT |
| LOW | …p/services/openid_connect/user_tokens/fetch_service.rb | 62 | # recognized as expired, so client's still need to make sure to handle rejected access tokens | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/models/journal/timestamps.rb | 38 | # Usage: | COMMENT |
| LOW | app/models/journable/historic_active_record_relation.rb | 35 | # Usage: | COMMENT |
| LOW | app/models/journable/timestamps.rb | 34 | # Usage: | COMMENT |
| LOW | app/models/journable/with_historic_attributes.rb | 35 | # Usage: | COMMENT |
| LOW | app/helpers/no_results_helper.rb | 33 | # Example usage: | COMMENT |
| LOW | …ins/verification/lib/action_controller/verification.rb | 22 | # Usage: | COMMENT |
| LOW | spec/support/shared/without_env.rb | 32 | # Usage: | COMMENT |
| LOW | spec/support/shared/as_user.rb | 35 | # Example usage: | COMMENT |
| LOW | …es_service/have_correctable_progress_value_matchers.rb | 37 | # Usage: | COMMENT |
| LOW | …es_service/have_correctable_progress_value_matchers.rb | 94 | # Usage: | COMMENT |
| LOW | script/jira/gen_jira_projects.rb | 30 | # Usage: | COMMENT |
| LOW | lib/open_project/multi_key_hash.rb | 34 | # Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …es/admin/custom_fields/work_packages/hierarchy_spec.rb | 141 | # And is the blue banner gone, now that I have added some items? | COMMENT |
| HIGH | lib/redmine/plugin.rb | 74 | # In this example, the settings partial will be found here in the plugin directory: <tt>app/views/settings/_settings.r | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ages/activities_tab/journals/item_component/details.rb | 192 | :"dot-fill", # color is set via CSS as requested by UI/UX Team | CODE |
| HIGH | script/ci/ai_involvement_check.sh | 96 | # or colon as in the template ("Collaborative – AI generated ..."). Only the part | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/projects/settings/project_custom_fields_controller.rb | 64 | # TODO: handle error | COMMENT |
| LOW | …/projects/settings/project_custom_fields_controller.rb | 78 | # TODO: handle error | COMMENT |
| LOW | spec/controllers/wiki_controller_spec.rb | 1110 | # TODO: Add tests for new and toc options within menu item | COMMENT |
| LOW | …c/services/relations/scheduling_mode_switching_spec.rb | 207 | ## TODO: Add tests for changing the relation type (currently supported by API only) | COMMENT |
| LOW | …ules/costs/app/contracts/time_entries/base_contract.rb | 79 | attribute :start_time # TODO: Add validation with global setting | CODE |
| LOW | …/lib/api/v3/time_entries/entity_representer_factory.rb | 150 | # TODO: Handle error if unexpected object | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ollers/dynamic/two-factor-authentication.controller.ts | 135 | print(evt:MouseEvent) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ec/support/components/attachments/attachments_input.js | 151 | getData : function getData(){}, | CODE |