Repository Analysis

rclone/rclone

"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files

1.1 Likely human-written View on GitHub
1.1
Adjusted Score
1.1
Raw Score
100%
Time Factor
2026-05-29
Last Push
57,467
Stars
Go
Language
417,072
Lines of Code
1921
Files
361
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 11MEDIUM 11LOW 339

Pattern Findings

361 matches across 11 categories. Click a row to expand file-level details.

Over-Commented Block302 hits · 302 pts
SeverityFileLineSnippet
LOW.markdownlint.yml41# Markdown files we must use whatever works in the final HTML generated docs.
LOWcmd/gitannex/e2e_test.go101 ephemeralRepoDir string
LOWcmd/gitannex/gitannex.go1// Package gitannex provides the "gitannex" command, which enables [git-annex]
LOWcmd/gitannex/configparse.go81// validateRemoteName validates the "rcloneremotename" config that we receive
LOWcmd/gitannex/gitannex_test.go1121 remoteItem := fstest.NewItem("KeyAbsolute", "HELLO", item.ModTime)
LOWcmd/cmount/fs.go221 }
LOWcmd/cmount/fs.go661 //_ fuse.FileSystemChflags = (*FS)(nil)
LOWcmd/cmount/mount_unsupported.go1//go:build !((linux && cgo && cmount) || (darwin && cgo && cmount) || (freebsd && cgo && cmount) || (openbsd && cgo && c
LOWcmd/cmount/mountpoint_windows.go21
LOWcmd/bisync/bisync_test.go61
LOW…d/bisync/testdata/test_createemptysrcdirs/scenario.txt1test createemptysrcdirs
LOWcmd/bisync/testdata/test_dry_run/scenario.txt1test dry-run
LOW…ck_access_filters/golden/include-other-filtersfile.txt1# INCLUDE OTHER Filters file for Check Access filtering testing
LOW…_access_filters/modfiles/include-other-filtersfile.txt1# INCLUDE OTHER Filters file for Check Access filtering testing
LOWcmd/bisync/testdata/test_compare_all/scenario.txt1test changes compare-all
LOWcmd/bisync/testdata/test_backupdir/scenario.txt1test backupdir
LOWcmd/bisync/testdata/test_nomodtime/scenario.txt1test changes
LOWcmd/bisync/testdata/test_changes/scenario.txt1test changes
LOWcmd/bisync/testdata/test_resync/scenario.txt1test resync
LOW…d/bisync/testdata/test_filtersfile_checks/scenario.txt1test filtersfile-checks
LOWcmd/bisync/testdata/test_ext_paths/scenario.txt1test extended-char-paths
LOW…d/bisync/testdata/test_extended_filenames/scenario.txt1test extended-filenames
LOWcmd/version/version_test.go41 // This causes rclone to exit and the tests to stop!
LOWcmd/mount2/file.go21// InodeEmbedder level, for example, one can implement NodeReader
LOWcmd/mount2/mount_unsupported.go1//go:build !linux && (!darwin || !amd64)
LOWcmd/mount2/node.go61// // lookup a Dir given a path
LOWcmd/mount2/node.go161 fuseFlags |= fuse.FOPEN_DIRECT_IO
LOWcmd/mount2/node.go181// returned to the kernel, the kernel can issue further operations,
LOWcmd/mount2/mount.go41 /*
LOWcmd/mount2/mount.go61 //
LOWcmd/mount2/mount.go81 //
LOWcmd/mount2/mount.go161
LOWcmd/mount2/mount.go201 // ClientInodes: false,
LOWcmd/mount/handle.go61// opened file due to dup(), dup2() or fork() calls. It is not
LOWcmd/mount/mount_unsupported.go1//go:build !linux
LOWcmd/serve/docker/options.go21// It is usually named "remote" in documentation but can be aliased as
LOWcmd/serve/sftp/handler.go181 }
LOWcmd/serve/webdav/webdav.go221}
LOWvfs/write.go101
LOWvfs/write.go221
LOWvfs/dir.go601 delete(d.virtual, name)
LOWvfs/dir.go661// Manage the virtuals in a listing
LOWvfs/make_open_tests.go1// This makes the open test suite. It tries to open a file (existing
LOWvfs/dir_handle.go41}
LOWvfs/dir_handle.go81// Readdirnames reads and returns a slice of names from the directory f.
LOWvfs/vfs.go1// Package vfs provides a virtual filing system layer over rclone's
LOWvfs/file.go21)
LOWvfs/file.go741
LOWvfs/file.go821// Open a file according to the flags provided
LOWvfs/read.go181 case io.SeekEnd:
LOWvfs/read.go201//
LOWvfs/read.go381// subsequent call. An instance of this general case is that a Reader returning
LOWvfs/vfscache/item.go21
LOWvfs/vfscache/item.go41// NB Item and writeback are tightly linked so it is necessary to
LOWvfs/vfscache/item.go1241 }
LOWvfs/vfscache/downloaders/downloaders.go41 // not larger than the file.
LOWvfs/vfscache/downloaders/downloaders.go281// ensure a downloader is running for the range if required. If one isn't found
LOWvfs/vfscache/downloaders/downloaders.go521// open the file from offset
LOWvfs/vfscache/writeback/writeback.go241// SetID sets the Handle pointed to if it is non zero to the next
LOWfstest/run.go361// CheckLocalListing checks the local fs with proper precision
242 more matches not shown…
Magic Placeholder Names9 hits · 52 pts
SeverityFileLineSnippet
HIGHdocs/content/shade.md73api_key> [YOUR_API_KEY]
HIGHdocs/content/shade.md84- api_key: [YOUR_API_KEY]
HIGHdocs/content/quatrix.md46api_key> your_api_key
HIGHdocs/content/quatrix.md53- api_key: your_api_key
HIGHdocs/content/quatrix.md113- api_key: your_api_key
HIGHdocs/content/quatrix.md118Enter a string value. Press Enter for the default (your_api_key)
HIGHdocs/content/quatrix.md128- api_key: your_api_key
HIGHdocs/content/storj.md209api_key> your-api-key-for-your-storj-project
HIGHdocs/content/storj.md218- api_key: your-api-key-for-your-storj-project
Excessive Try-Catch Wrapping11 hits · 22 pts
SeverityFileLineSnippet
MEDIUMcmd/test/info/internal/build_csv/main.go123 fs.Fatal(nil, fmt.Sprint("Error writing csv:", err))
MEDIUMcmd/test/info/internal/build_csv/main.go132 fs.Fatal(nil, fmt.Sprint("Error writing csv:", err))
MEDIUMcmd/test/info/internal/build_csv/main.go134 fs.Fatal(nil, fmt.Sprint("Error writing csv:", err))
LOWbin/make_backend_docs.py73 except Exception as e:
LOWbin/make_backend_docs.py82 except Exception as e:
LOWbin/check_autogenerated_edits.py44 except Exception:
MEDIUMbin/manage_backends.py183 print(f"Error running rclone: {e.stderr}")
MEDIUMbin/manage_backends.py186 print("Error: 'rclone' command not found in PATH.")
MEDIUMbin/manage_backends.py243 print(f"Error: {filepath} not found.")
MEDIUMbin/manage_backends.py250 print(f"Error: [{filepath}] 'remote' field is missing or empty. Cannot fetch features.")
MEDIUMbin/manage_backends.py292 print("Error: No files specified.")
Verbosity Indicators10 hits · 17 pts
SeverityFileLineSnippet
LOWbackend/internxt/internxt.go892 // Step 1: If file exists, rename to backup (preserves old file during upload)
LOWbackend/internxt/internxt.go978 // Step 3: Upload succeeded - delete the backup file
LOWbackend/cache/cache.go1292 // we need to check if the directory exists in the temp fs
LOWbackend/iclouddrive/api/session.go207 // Step 1: Initialize the auth session
LOWbackend/iclouddrive/api/session.go212 // Step 2: Federate (submit account name)
LOWbackend/iclouddrive/api/session.go217 // Step 3: SRP init - send client public value A, get salt + B
LOWbackend/iclouddrive/api/session.go239 // Step 4: Derive password key and process the SRP challenge
LOWbackend/iclouddrive/api/session.go248 // Step 5: Complete - send M1, M2 proofs
LOWbackend/filelu/filelu.go351 // Step 1: Check if folder is empty
LOWbackend/filelu/filelu.go360 // Step 2: Delete the folder
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippet
HIGHbackend/s3/gen_setfrom.go40// are frequently present in auto-generated code for cloud storage
HIGHlib/structs/structs.go18// are frequently present in auto-generated code for cloud storage
Fake / Example Data12 hits · 12 pts
SeverityFileLineSnippet
LOWcmd/gitannex/e2e_test.go176 e.runInRepo(t, "git", "config", "--global", "user.email", "user@example.com")
LOWbackend/onedrive/metadata.go53 Example: "John Doe",
LOWbackend/onedrive/metadata.go76 Example: "John Doe",
LOWbackend/onedrive/metadata.md71 "displayName": "John Doe",
LOWbackend/onedrive/metadata_test.go104 "id": "user@example.com"
LOWbackend/dropbox/dropbox_internal_test.go56Lorem ipsum __dolor__ sit amet
LOWbackend/dropbox/dropbox_internal_test.go91 "Lorem ipsum",
LOWbackend/drive/metadata.go56 Example: "user@example.com",
LOWbackend/drive/drive_internal_test.go310 "Lorem ipsum dolor sit amet, consectetur",
LOWbackend/drive/drive_internal_test.go310 "Lorem ipsum dolor sit amet, consectetur",
LOWdocs/content/onedrive.md963 "displayName": "John Doe",
LOWfs/fspath/path_test.go44 {"user@example.com", nil, "user@example.com"},
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippet
MEDIUMcmd/bisync/checkfn.go26// It is more robust and accurate than Check because
MEDIUMlib/oauthutil/oauthutil.go141// SharedOptions are shared between backends the utilize an OAuth flow
MEDIUMfs/fshttp/http.go61// This function is designed as a robust replacement for tls.X509KeyPair,
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippet
LOWdocs/content/install.sh12#when adding a tool to the list make sure to also add its corresponding command further in the script
LOWcontrib/docker/docker-compose.webdav-server.yml26 # make sure to make rclone listen on 0.0.0.0.
LOWlib/pacer/tokens.go22// Get gets a token from the pool - don't forget to return it with Put
Unused Imports4 hits · 4 pts
SeverityFileLineSnippet
LOWbin/make_backend_docs.py8
LOWlibrclone/python/test_rclone.py7
LOWlibrclone/python/test_rclone.py9
LOWlibrclone/python/rclone.py22
Deep Nesting4 hits · 4 pts
SeverityFileLineSnippet
LOWbin/make_backend_docs.py33
LOWbin/config.py60
LOWbin/check_autogenerated_edits.py73
LOWbin/decrypt_names.py21
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippet
LOWbin/manage_backends.py164def get_backend_name_from_file(filepath):