glitch-soc/mastodon

View on GitHub

Showing 1,287 of 4,903 total issues

Avoid deeply nested control flow statements.
Open

            if (subIndex !== -1) {
              let score = subIndex + 1;
              if (sub === id) score = 0;

              aIndex.results.push(emojisList[id]);
Severity: Major
Found in app/javascript/mastodon/features/emoji/emoji_mart_search_light.js - About 45 mins to fix

    Method set_conversation has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def set_conversation
        self.thread = thread.reblog if thread&.reblog?
    
        self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply
    
    
    Severity: Minor
    Found in app/models/status.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function valueToDomain has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

    const valueToDomain = value => {
      // If the user starts typing an URL
      if (/^https?:\/\//.test(value)) {
        try {
          const url = new URL(value);
    Severity: Minor
    Found in app/javascript/mastodon/features/interaction_modal/index.jsx - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function recountUnread has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

    const recountUnread = (state, last_read_id) => {
      return state.withMutations(mutable => {
        if (compareId(last_read_id, mutable.get('lastReadId')) > 0) {
          mutable.set('lastReadId', last_read_id);
        }
    Severity: Minor
    Found in app/javascript/mastodon/reducers/notifications.js - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method valid_with_challenge? has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def valid_with_challenge?(current_user)
        if current_user.encrypted_password.present?
          errors.add(:current_password, :invalid) unless current_user.valid_password?(current_password)
        else
          errors.add(:current_username, :invalid) unless account.username == current_username
    Severity: Minor
    Found in app/models/form/redirect.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method guessed_type has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def guessed_type
        if csv_headers_match?('Hide notifications') || file_name_matches?('mutes') || file_name_matches?('muted_accounts')
          :muting
        elsif csv_headers_match?('Show boosts') || csv_headers_match?('Notify on new posts') || csv_headers_match?('Languages') || file_name_matches?('follows') || file_name_matches?('following_accounts')
          :following
    Severity: Minor
    Found in app/models/form/import.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method fetch_resource_without_id_validation has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def fetch_resource_without_id_validation(uri, on_behalf_of = nil, raise_on_temporary_error = false, request_options: {})
        on_behalf_of ||= Account.representative
    
        build_request(uri, on_behalf_of, options: request_options).perform do |response|
          raise Mastodon::UnexpectedResponseError, response unless response_successful?(response) || response_error_unsalvageable?(response) || !raise_on_temporary_error
    Severity: Minor
    Found in app/helpers/jsonld_helper.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method verify_body_digest! has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def verify_body_digest!
        return unless signed_headers.include?('digest')
        raise SignatureVerificationError, 'Digest header missing' unless request.headers.key?('Digest')
    
        digests = request.headers['Digest'].split(',').map { |digest| digest.split('=', 2) }.map { |key, value| [key.downcase, value] }
    Severity: Minor
    Found in app/controllers/concerns/signature_verification.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method fetch_resource has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def fetch_resource(uri, id_is_known, on_behalf_of = nil, request_options: {})
        unless id_is_known
          json = fetch_resource_without_id_validation(uri, on_behalf_of)
    
          return if !json.is_a?(Hash) || unsupported_uri_scheme?(json['id'])
    Severity: Minor
    Found in app/helpers/jsonld_helper.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method verify_signature_strength! has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def verify_signature_strength!
        raise SignatureVerificationError, 'Mastodon requires the Date header or (created) pseudo-header to be signed' unless signed_headers.include?('date') || signed_headers.include?('(created)')
        raise SignatureVerificationError, 'Mastodon requires the Digest header or (request-target) pseudo-header to be signed' unless signed_headers.include?(Request::REQUEST_TARGET) || signed_headers.include?('digest')
        raise SignatureVerificationError, 'Mastodon requires the Host header to be signed when doing a GET request' if request.get? && !signed_headers.include?('host')
        raise SignatureVerificationError, 'Mastodon requires the Digest header to be signed when doing a POST request' if request.post? && !signed_headers.include?('digest')
    Severity: Minor
    Found in app/controllers/concerns/signature_verification.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method save_with_challenge has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def save_with_challenge(current_user)
        if current_user.encrypted_password.present?
          errors.add(:current_password, :invalid) unless current_user.valid_password?(current_password)
        else
          errors.add(:current_username, :invalid) unless account.username == current_username
    Severity: Minor
    Found in app/models/account_migration.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function updateReaction has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

    const updateReaction = (state, id, name, updater) => state.update('items', list => list.map(announcement => {
      if (announcement.get('id') === id) {
        return announcement.update('reactions', reactions => {
          const idx = reactions.findIndex(reaction => reaction.get('name') === name);
    
    
    Severity: Minor
    Found in app/javascript/mastodon/reducers/announcements.js - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function compose has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

    export default function compose(state = initialState, action) {
      switch(action.type) {
      case STORE_HYDRATE:
        return hydrate(state, action.state.get('compose'));
      case COMPOSE_MOUNT:
    Severity: Minor
    Found in app/javascript/mastodon/reducers/compose.js - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method broadcast_to_public_streams! has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def broadcast_to_public_streams!
        return if @status.reply? && @status.in_reply_to_account_id != @account.id && !Setting.show_replies_in_public_timelines
    
        redis.publish('timeline:public', anonymous_payload)
        redis.publish(@status.local? ? 'timeline:public:local' : 'timeline:public:remote', anonymous_payload)
    Severity: Minor
    Found in app/services/fan_out_on_write_service.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method attempt_opengraph has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def attempt_opengraph
        return if html.nil?
    
        link_details_extractor = LinkDetailsExtractor.new(@url, @html, @html_charset)
        domain = Addressable::URI.parse(link_details_extractor.canonical_url).normalized_host
    Severity: Minor
    Found in app/services/fetch_link_card_service.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method call has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def call(account, name, force: true)
        @account = account
    
        FeaturedTag.create!(account: account, name: name).tap do |featured_tag|
          ActivityPub::AccountRawDistributionWorker.perform_async(build_json(featured_tag), account.id) if @account.local?
    Severity: Minor
    Found in app/services/create_featured_tag_service.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method call has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def call(statuses, **options)
        ActiveRecord::Associations::Preloader.new(
          records: statuses,
          associations: options[:skip_side_effects] ? :reblogs : [:account, :tags, reblogs: :account]
        ).call
    Severity: Minor
    Found in app/services/batched_remove_status_service.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method import has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

        def import
          authorize :domain_allow, :create?
          begin
            @import = Admin::Import.new(import_params)
            return render :new unless @import.validate
    Severity: Minor
    Found in app/controllers/admin/export_domain_allows_controller.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method html has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def html
        return @html if defined?(@html)
    
        headers = {
          'Accept' => 'text/html',
    Severity: Minor
    Found in app/services/fetch_link_card_service.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Method update_poll! has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
    Open

      def update_poll!
        previous_poll        = @status.preloadable_poll
        @previous_expires_at = previous_poll&.expires_at
    
        if @options[:poll].present?
    Severity: Minor
    Found in app/services/update_status_service.rb - About 45 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Severity
    Category
    Status
    Source
    Language