Repository Analysis

FreshRSS/FreshRSS

A free, self-hostable news aggregator…

1.3 Likely human-written View on GitHub
1.3
Adjusted Score
1.3
Raw Score
100%
Time Factor
2026-05-27
Last Push
15,178
Stars
PHP
Language
181,649
Lines of Code
869
Files
204
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 2LOW 202

Pattern Findings

204 matches across 5 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers180 hits · 199 pts
SeverityFileLineSnippet
LOWapp/Models/Feed.php423 public function newestArticleReceivedDate(): int {
LOWapp/Models/Feed.php433 public function newestArticlePublicationDate(): int {
LOWapp/Models/Feed.php958 private function dotNotationForStandardJsonFeed(): array {
LOWapp/Models/UserQuery.php290 public function setPublishLabelsInsteadOfTags(bool $publishLabelsInsteadOfTags): void {
LOWapp/Models/UserQuery.php294 public function publishLabelsInsteadOfTags(): bool {
LOWapp/Models/StatsDAOSQLite.php29 protected function calculateEntryRepartitionPerFeedPerPeriod(string $period, ?int $feed = null): array {
LOWapp/Models/Search.php1323 private function parseNotModifiedDateSearch(string $input): string {
LOWapp/Models/CategoryDAO.php361 public function listCategoriesOrderUpdate(int $defaultCacheDuration = 86400, int $limit = 0): array {
LOWapp/Models/CategoryDAO.php488 private static function daoToCategoriesPrepopulated(array $listDAO): array {
LOWapp/Models/StatsDAOPGSQL.php27 public function calculateEntryRepartitionPerFeedPerHour(?int $feed = null): array {
LOWapp/Models/StatsDAOPGSQL.php36 public function calculateEntryRepartitionPerFeedPerDayOfWeek(?int $feed = null): array {
LOWapp/Models/StatsDAOPGSQL.php45 public function calculateEntryRepartitionPerFeedPerMonth(?int $feed = null): array {
LOWapp/Models/StatsDAOPGSQL.php55 protected function calculateEntryRepartitionPerFeedPerPeriod(string $period, ?int $feed = null): array {
LOWapp/Models/StatsDAO.php41 public function calculateEntryRepartition(): array {
LOWapp/Models/StatsDAO.php58 public function calculateEntryRepartitionPerFeed(?int $feed = null, bool $only_main = false): array|false {
LOWapp/Models/StatsDAO.php126 public function calculateEntryRepartitionPerFeedPerHour(?int $feed = null): array {
LOWapp/Models/StatsDAO.php134 public function calculateEntryRepartitionPerFeedPerDayOfWeek(?int $feed = null): array {
LOWapp/Models/StatsDAO.php142 public function calculateEntryRepartitionPerFeedPerMonth(?int $feed = null): array {
LOWapp/Models/StatsDAO.php154 protected function calculateEntryRepartitionPerFeedPerPeriod(string $period, ?int $feed = null): array {
LOWapp/Models/StatsDAO.php190 public function calculateEntryAveragePerFeedPerHour(?int $feed = null): float {
LOWapp/Models/StatsDAO.php197 public function calculateEntryAveragePerFeedPerDayOfWeek(?int $feed = null): float {
LOWapp/Models/StatsDAO.php204 public function calculateEntryAveragePerFeedPerMonth(?int $feed = null): float {
LOWapp/Models/StatsDAO.php212 protected function calculateEntryAveragePerFeedPerPeriod(float $period, ?int $feed = null): float {
LOWapp/Models/FeedDAO.php559 public function newestArticleReceivedDate(int $feedId): int {
LOWapp/Models/FeedDAO.php567 public function newestArticlePublicationDate(int $feedId): int {
LOWapp/Controllers/userController.php641 public function sendValidationEmailAction(): void {
LOWapp/Controllers/feedController.php1274 public function contentSelectorPreviewAction(): void {
LOWapp/Controllers/extensionController.php47 protected function getAvailableExtensionList(): array {
LOWtests/app/Utils/passwordUtilTest.php13 public function testCheckReturnsFalseIfEmpty(): void {
LOWtests/app/Models/SearchTest.php213 public static function provideModifiedDateSearch(): array {
LOWtests/app/Models/SearchTest.php290 public static function provideSavedQueriesExpansion(): array {
LOWtests/app/Models/SearchTest.php497 public static function provideconsistentOrParentheses(): array {
LOWtests/app/Models/SearchTest.php1137 public static function testBooleanSearchToString(string $input, string $expected): void {
LOWtests/app/Models/SearchTest.php1145 public static function provideBooleanSearchToString(): array {
LOWtests/app/Models/SearchTest.php1194 public static function testBooleanSearchToStringExpansion(array $queries, string $input,
LOWtests/app/Models/SearchTest.php1213 public static function provideBooleanSearchToStringExpansion(): array {
LOWtests/app/Models/SearchTest.php1284 public static function provideBooleanSearchEnforce(): array {
LOWtests/app/Models/SearchTest.php1318 public static function provideBooleanSearchRemove(): array {
LOWtests/app/Models/DatabaseDAOTest.php46 public static function provideStrilikeAccentsCasing(): array {
LOWtests/app/Models/DatabaseDAOTest.php56 public static function provideStrilikeUnicodeCasing(): array {
LOWtests/app/Models/DatabaseDAOTest.php83 public static function provideStrilikeNoUnicodeCasing(): array {
LOWtests/app/Models/UserDAOTest.php10 public function testExistsRejectsPathTraversal(string $payload): void {
LOWtests/app/Models/UserDAOTest.php15 public function testMtimeRejectsPathTraversal(string $payload): void {
LOWtests/app/Models/UserDAOTest.php20 public function testCtimeRejectsPathTraversal(string $payload): void {
LOWtests/app/Models/UserDAOTest.php27 public static function pathTraversalPayloadsProvider(): array {
LOWtests/app/Models/UserDAOTest.php46 public function testExistsAcceptsValidUsernames(string $username): void {
LOWtests/app/Models/UserDAOTest.php52 public function testMtimeAcceptsValidUsernames(string $username): void {
LOWtests/app/Models/UserDAOTest.php58 public function testCtimeAcceptsValidUsernames(string $username): void {
LOWtests/cli/UserConfigOptionsParserTest.php96 public static function testUnknownOptionReturnsError(): void {
LOWtests/cli/CliOptionsParserTest.php57 public static function testInvalidOptionSetWithValueReturnsError(): void {
LOWtests/cli/CliOptionsParserTest.php62 public static function testInvalidOptionSetWithoutValueReturnsError(): void {
LOWtests/cli/CliOptionsParserTest.php67 public static function testValidOptionSetWithValidValueAndInvalidOptionSetWithValueReturnsValueForValidOptionAndErrorFo
LOWtests/cli/CliOptionsParserTest.php73 public static function testOptionWithValueTypeOfStringSetOnceWithValidValueReturnsValueAsString(): void {
LOWtests/cli/CliOptionsParserTest.php78 public static function testOptionWithRequiredValueTypeOfIntSetOnceWithValidValueReturnsValueAsInt(): void {
LOWtests/cli/CliOptionsParserTest.php83 public static function testOptionWithRequiredValueTypeOfBoolSetOnceWithValidValueReturnsValueAsBool(): void {
LOWtests/cli/CliOptionsParserTest.php88 public static function testOptionWithValueTypeOfArrayOfStringSetOnceWithValidValueReturnsValueAsArrayOfString(): void {
LOWtests/cli/CliOptionsParserTest.php93 public static function testOptionWithValueTypeOfStringSetMultipleTimesWithValidValueReturnsLastValueSetAsString(): void
LOWtests/cli/CliOptionsParserTest.php98 public static function testOptionWithValueTypeOfIntSetMultipleTimesWithValidValueReturnsLastValueSetAsInt(): void {
LOWtests/cli/CliOptionsParserTest.php103 public static function testOptionWithValueTypeOfBoolSetMultipleTimesWithValidValueReturnsLastValueSetAsBool(): void {
LOWtests/cli/CliOptionsParserTest.php108 public static function testOptionWithValueTypeOfArrayOfStringSetMultipleTimesWithValidValueReturnsAllSetValuesAsArrayOf
120 more matches not shown…
Over-Commented Block15 hits · 15 pts
SeverityFileLineSnippet
LOWconfig.default.php1<?php
LOWconfig.default.php41
LOWconfig.default.php141 'max_registrations' => 1,
LOWconfig.default.php181
LOWDocker/README.md341 # Optional 'development' for additional logs; default is 'production'
LOWDocker/freshrss/docker-compose.yml21 - extensions:/var/www/FreshRSS/extensions
LOWapp/Models/Search.php181
LOWcli/README.md41# --base-url should be a public (routable) URL if possible, and is used for push (WebSub), for some API functions (e.g.
LOWcli/README.md61### User
LOWcli/README.md161
LOWcli/README.md181# -o, --origin-language selects the origin language (only used with add language action).
LOWlib/phpmailer/phpmailer/src/PHPMailer.php5201 //Note PCRE \s is too broad a definition of whitespace; RFC5322 defines it as `[ \t]`
LOWlib/Minz/FrontController.php1<?php
LOWlib/simplepie/simplepie/src/Parse/Date.php181 'août' => 8,
LOWp/i/index.php1<?php
Fake / Example Data5 hits · 7 pts
SeverityFileLineSnippet
LOWlib/phpmailer/phpmailer/README.md111 $mail->Username = 'user@example.com'; //SMTP username
LOWlib/phpmailer/phpmailer/src/PHPMailer.php1496 * PHPMailer::validateAddress('user@example.com', function($address) {
LOWdata/tos.example.html3<h2>Article 1: Lorem ipsum</h2>
LOWdata/tos.example.html6 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed fringilla,
LOWdata/tos.example.html6 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed fringilla,
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippet
MEDIUMconfig.default.php234 # Will be checked against CONN_REMOTE_ADDR (if available, to be robust even when using Apache mod_remoteip)
MEDIUMapp/Controllers/feedController.php1305 //Get first entry (syntax robust for Generator or Array)
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippet
LOWcli/access-permissions.sh40# Read files, and directory traversal
LOWcli/translation-update.sh15# Check if po4a is installed