Repository Analysis

linkwarden/linkwarden

⚡️⚡️⚡️ Self-hosted collaborative bookmark manager to collect, read, annotate, and fully preserve what matters, all in one place.

0.7 Likely human-written View on GitHub
0.7
Adjusted Score
0.7
Raw Score
100%
Time Factor
2026-05-27
Last Push
18,483
Stars
TypeScript
Language
58,802
Lines of Code
493
Files
35
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 1MEDIUM 0LOW 34

Pattern Findings

35 matches across 4 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers18 hits · 18 pts
SeverityFileLineSnippet
LOWpackages/lib/ssrf.ts193export function isHostnameBlockedForServerSideFetch(hostname: string) {
LOWpackages/lib/ssrf.ts204export function isIpAddressBlockedForServerSideFetch(address: string) {
LOWpackages/lib/ssrf.ts259export async function resolveHostnameForServerSideFetch(
LOWpackages/lib/ssrf.ts306export async function assertUrlIsSafeForServerSideFetch(
LOWpackages/lib/ssrf.ts331export async function isUrlSafeForServerSideFetch(
LOW…components/ModalContent/EditCollectionSharingModal.tsx35export default function EditCollectionSharingModal({
LOW…mponents/ModalContent/EmailChangeVerificationModal.tsx15export default function EmailChangeVerificationModal({
LOW…components/ModalContent/DeleteRssSubscriptionModal.tsx15export default function DeleteRssSubscriptionModal({
LOWapps/web/lib/utils.ts29export function customCollisionDetectionAlgorithm(args: any) {
LOWapps/web/lib/api/sendChangeEmailVerificationRequest.ts8export default async function sendChangeEmailVerificationRequest(
LOWapps/web/lib/api/getCollectionRootOwnerAndMembers.ts18export default async function getCollectionRootOwnerAndMembers(
LOWapps/web/lib/api/preserved/createPreservedFormatUrl.ts86export async function decodePreservedFormatToken(token: string) {
LOW…llers/collections/collectionId/deleteCollectionById.ts177async function updateDashboardSectionLayout(
LOW…eb/lib/api/controllers/migration/importFromHTMLFile.ts314// function sortBookmarksTreeByEffectiveDate(
LOWapps/web/pages/login.tsx222 function displayLoginExternalButton() {
LOWapps/web/pages/register.tsx128 function displayLoginExternalButton() {
LOWapps/mobile/plugins/with-daynight-transparent-nav.js38module.exports = function withDayNightTransparentNav(config) {
LOWapps/worker/lib/countUnprocessedBillableLinks.ts3export async function countUnprocessedBillableLinks() {
Over-Commented Block14 hits · 14 pts
SeverityFileLineSnippet
LOW.devcontainer/devcontainer.json1// For format details, see https://aka.ms/devcontainer.json. For config options, see the
LOWpackages/prisma/index.ts21// console.log("\x1b[31m", `Duration: ${e.duration}ms`, "\x1b[0m");
LOWapps/web/playwright.config.ts61 use: { ...devices["Desktop Safari"] },
LOWapps/web/playwright.config.ts81 // name: 'Google Chrome',
LOW…eb/lib/api/controllers/migration/importFromHTMLFile.ts321// const getAttrCaseInsensitive = (el: Element, key: string) =>
LOW…eb/lib/api/controllers/migration/importFromHTMLFile.ts341
LOW…eb/lib/api/controllers/migration/importFromHTMLFile.ts361// } else {
LOW…eb/lib/api/controllers/migration/importFromHTMLFile.ts381
LOW…b/api/controllers/migration/importFromHTMLFile.test.ts321 });
LOW…b/api/controllers/migration/importFromHTMLFile.test.ts341 // <DT><H3>Folder One</H3>
LOW…b/api/controllers/migration/importFromHTMLFile.test.ts361 // orderBy: { id: "asc" },
LOWapps/mobile/nativewind-env.d.ts1/// <reference types="nativewind/types" />
LOWapps/worker/workers/linkIndexing.ts181// const clearIndexes = async () => {
LOWapps/worker/workers/linkIndexing.ts201// });
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippet
HIGHpackages/prisma/seed.js434// Sample data (generated by ChatGPT...)
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippet
LOWpackages/prisma/seed.js22 name: "John Doe",
LOWapps/web/pages/member-onboarding.tsx92 placeholder="John Doe"