Scan timing: clone 2.89s · analysis 50.98s · 5.6 MB · GitHub preflight 414ms
https://github.com/gramps-project/gramps-web
· scanned 2026-06-05 13:15 UTC (5 days, 9 hours ago)
· 10 languages
259 raw signals (153 security + 106 graph) 26th percentile · Javascript · medium (20-100K LoC) System graph score 67 (lower by 15)
Last scanned 5 days, 9 hours ago · v2 · 129 actionable findings from 2 signal sources. 77 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
100.0 | 0.15 | 15.00 |
security_score |
9.0 | 0.25 | 2.25 |
testing_score |
25.0 | 0.20 | 5.00 |
documentation_score |
73.7 | 0.15 | 11.05 |
practices_score |
85.0 | 0.15 | 12.75 |
code_quality |
58.3 | 0.10 | 5.83 |
| Overall | 1.00 | 51.9 |
All 1001 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
global.css |
software | healthy | global.css |
maplibre-gl.css |
software | healthy | maplibre-gl.css |
manifest.json |
software | healthy | manifest.json |
README.md |
software | healthy | README.md |
rollup.config.js |
software | warning | rollup.config.js |
tippy.css |
software | healthy | tippy.css |
CLAUDE.md |
software | healthy | CLAUDE.md |
package.json |
software | healthy | package.json |
vitest.config.js |
software | warning | vitest.config.js |
index.html |
software | healthy | index.html |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
Dockerfile |
software | healthy | Dockerfile |
package-lock.json |
software | healthy | package-lock.json |
tsconfig.json |
software | healthy | tsconfig.json |
CODE_OF_CONDUCT.md |
software | healthy | CODE_OF_CONDUCT.md |
sr.json |
software | healthy | lang/sr.json |
sk.json |
software | healthy | lang/sk.json |
zh_CN.json |
software | healthy | lang/zh_CN.json |
hr.json |
software | healthy | lang/hr.json |
lt.json |
software | healthy | lang/lt.json |
br.json |
software | healthy | lang/br.json |
da.json |
software | healthy | lang/da.json |
ne.json |
software | healthy | lang/ne.json |
he.json |
software | healthy | lang/he.json |
tr.json |
software | healthy | lang/tr.json |
sq.json |
software | healthy | lang/sq.json |
ln.json |
software | healthy | lang/ln.json |
de_AT.json |
software | healthy | lang/de_AT.json |
ja.json |
software | healthy | lang/ja.json |
fi.json |
software | healthy | lang/fi.json |
pt_PT.json |
software | healthy | lang/pt_PT.json |
oc.json |
software | healthy | lang/oc.json |
ga.json |
software | healthy | lang/ga.json |
is.json |
software | healthy | lang/is.json |
hu.json |
software | healthy | lang/hu.json |
zh_HK.json |
software | healthy | lang/zh_HK.json |
sl.json |
software | healthy | lang/sl.json |
eo.json |
software | healthy | lang/eo.json |
cs.json |
software | healthy | lang/cs.json |
it.json |
software | healthy | lang/it.json |
id.json |
software | healthy | lang/id.json |
ko.json |
software | healthy | lang/ko.json |
fr.json |
software | healthy | lang/fr.json |
mk.json |
software | healthy | lang/mk.json |
ka.json |
software | healthy | lang/ka.json |
de.json |
software | healthy | lang/de.json |
sv.json |
software | healthy | lang/sv.json |
ta.json |
software | healthy | lang/ta.json |
pl.json |
software | healthy | lang/pl.json |
mn.json |
software | healthy | lang/mn.json |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tag |
software | healthy | test/unit/styledTextPaste.test.js:tag |
makeDate |
software | healthy | test/unit/util.test.js:makeDate |
makeFakeJwt |
software | healthy | test/unit/appstate.test.js:makeFakeJwt |
getTreeViewTabIndex |
software | healthy | src/treeDefaults.js:getTreeViewTabIndex |
here |
software | healthy | src/charUtils.js:here |
charLength |
software | healthy | src/charUtils.js:charLength |
charToDomOffset |
software | healthy | src/charUtils.js:charToDomOffset |
domOffsetToChar |
software | healthy | src/charUtils.js:domOffsetToChar |
charSlice |
software | healthy | src/charUtils.js:charSlice |
toDate |
software | healthy | src/date.js:toDate |
hex12ToCss |
software | healthy | src/color.js:hex12ToCss |
hex6ToCss |
software | healthy | src/color.js:hex6ToCss |
colorToCss |
software | healthy | src/color.js:colorToCss |
hex12ToHex6 |
software | healthy | src/color.js:hex12ToHex6 |
colorForPicker |
software | healthy | src/color.js:colorForPicker |
hex6ToHex12 |
software | healthy | src/color.js:hex6ToHex12 |
translate |
software | healthy | src/util.js:translate |
personTitleFromProfile |
software | healthy | src/util.js:personTitleFromProfile |
displaySurname |
software | healthy | src/util.js:displaySurname |
personDisplayName |
software | healthy | src/util.js:personDisplayName |
reportSelectItemLabel |
software | healthy | src/util.js:reportSelectItemLabel |
reportSelectItemValue |
software | healthy | src/util.js:reportSelectItemValue |
familyTitleFromProfile |
software | healthy | src/util.js:familyTitleFromProfile |
citationTitleFromProfile |
software | healthy | src/util.js:citationTitleFromProfile |
eventTitleFromProfile |
software | healthy | src/util.js:eventTitleFromProfile |
renderPerson |
software | healthy | src/util.js:renderPerson |
getName |
software | healthy | src/util.js:getName |
showObject |
software | healthy | src/util.js:showObject |
objectDescription |
software | healthy | src/util.js:objectDescription |
objectDetail |
software | healthy | src/util.js:objectDetail |
prettyTimeDiffTimestamp |
software | healthy | src/util.js:prettyTimeDiffTimestamp |
debounce |
software | healthy | src/util.js:debounce |
executedFunction |
software | healthy | src/util.js:executedFunction |
later |
software | healthy | src/util.js:later |
getNameFromProfile |
software | healthy | src/util.js:getNameFromProfile |
fireEvent |
software | healthy | src/util.js:fireEvent |
uuidv4 |
software | healthy | src/util.js:uuidv4 |
makeHandle |
software | healthy | src/util.js:makeHandle |
getSortval |
software | healthy | src/util.js:getSortval |
getBrowserLanguage |
software | healthy | src/util.js:getBrowserLanguage |
dateSpanLocal |
software | healthy | src/util.js:dateSpanLocal |
arrayEqual |
software | healthy | src/util.js:arrayEqual |
_toNumber |
software | healthy | src/util.js:_toNumber |
_clampPercent |
software | healthy | src/util.js:_clampPercent |
normalizeRect |
software | healthy | src/util.js:normalizeRect |
isValidRect |
software | healthy | src/util.js:isValidRect |
_getMediaHandle |
software | healthy | src/util.js:_getMediaHandle |
_getMediaRect |
software | healthy | src/util.js:_getMediaRect |
_getMediaChecksum |
software | healthy | src/util.js:_getMediaChecksum |
renderIcon |
software | healthy | src/util.js:renderIcon |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestViewObject |
software | healthy | test/unit/memoryCleanup.test.js:TestViewObject |
GrampsJs |
software | healthy | src/GrampsJs.js:GrampsJs |
Auth |
software | healthy | src/api.js:Auth |
Relgraph |
software | healthy | src/charts/RelationshipChart.js:Relgraph |
GrampsjsCitations |
software | healthy | src/components/GrampsjsCitations.js:GrampsjsCitations |
GrampsjsFilterObjectType |
software | healthy | src/components/GrampsjsFilterObjectType.js:GrampsjsFilterOb… |
GrampsjsConnectedParents |
software | healthy | src/components/GrampsjsConnectedParents.js:GrampsjsConnecte… |
GrampsjsNote |
software | healthy | src/components/GrampsjsNote.js:GrampsjsNote |
GrampsjsAddMenu |
software | healthy | src/components/GrampsjsAddMenu.js:GrampsjsAddMenu |
GrampsjsFormEditDate |
software | healthy | src/components/GrampsjsFormEditDate.js:GrampsjsFormEditDate |
GrampsjsOidcButton |
software | healthy | src/components/GrampsjsOidcButton.js:GrampsjsOidcButton |
GrampsjsGallery |
software | healthy | src/components/GrampsjsGallery.js:GrampsjsGallery |
GrampsjsSearchResultList |
software | healthy | src/components/GrampsjsSearchResultList.js:GrampsjsSearchRe… |
GrampsjsName |
software | healthy | src/components/GrampsjsName.js:GrampsjsName |
GrampsjsDeleteAll |
software | healthy | src/components/GrampsjsDeleteAll.js:GrampsjsDeleteAll |
GrampsjsLogin |
software | healthy | src/components/GrampsjsLogin.js:GrampsjsLogin |
GrampsjsFilterPrivate |
software | healthy | src/components/GrampsjsFilterPrivate.js:GrampsjsFilterPriva… |
GrampsjsFormAddPersonToFamily |
software | healthy | src/components/GrampsjsFormAddPersonToFamily.js:GrampsjsFor… |
GrampsjsFilterMime |
software | healthy | src/components/GrampsjsFilterMime.js:GrampsjsFilterMime |
GrampsjsFormEditSourceData |
software | healthy | src/components/GrampsjsFormEditSourceData.js:GrampsjsFormEd… |
GrampsjsFormSelectType |
software | healthy | src/components/GrampsjsFormSelectType.js:GrampsjsFormSelect… |
GrampsjsChromosomeBrowser |
software | healthy | src/components/GrampsjsChromosomeBrowser.js:GrampsjsChromos… |
GrampsjsObjectPickerDialog |
software | healthy | src/components/GrampsjsObjectPickerDialog.js:GrampsjsObject… |
GrampsjsFormRegister |
software | healthy | src/components/GrampsjsFormRegister.js:GrampsjsFormRegister |
GrampsjsProgressIndicator |
software | healthy | src/components/GrampsjsProgressIndicator.js:GrampsjsProgres… |
GrampsjsFirstRun |
software | healthy | src/components/GrampsjsFirstRun.js:GrampsjsFirstRun |
GrampsjsFormUser |
software | healthy | src/components/GrampsjsFormUser.js:GrampsjsFormUser |
GrampsjsFormMediaRef |
software | healthy | src/components/GrampsjsFormMediaRef.js:GrampsjsFormMediaRef |
GrampsjsDiffJson |
software | healthy | src/components/GrampsjsDiffJson.js:GrampsjsDiffJson |
GrampsjsSource |
software | healthy | src/components/GrampsjsSource.js:GrampsjsSource |
GrampsjsFormEditRepositoryType |
software | healthy | src/components/GrampsjsFormEditRepositoryType.js:GrampsjsFo… |
GrampsjsDnaMatchTable |
software | healthy | src/components/GrampsjsDnaMatchTable.js:GrampsjsDnaMatchTab… |
GrampsjsTooltip |
software | healthy | src/components/GrampsjsTooltip.js:GrampsjsTooltip |
GrampsjsFilterYears |
software | healthy | src/components/GrampsjsFilterYears.js:GrampsjsFilterYears |
GrampsjsFormEditAssociation |
software | healthy | src/components/GrampsjsFormEditAssociation.js:GrampsjsFormE… |
GrampsjsFormNewSpouse |
software | healthy | src/components/GrampsjsFormNewSpouse.js:GrampsjsFormNewSpou… |
GrampsjsPersonRelationship |
software | healthy | src/components/GrampsjsPersonRelationship.js:GrampsjsPerson… |
GrampsjsFormEventRef |
software | healthy | src/components/GrampsjsFormEventRef.js:GrampsjsFormEventRef |
GrampsjsBlogPreview |
software | healthy | src/components/GrampsjsBlogPreview.js:GrampsjsBlogPreview |
GrampsjsEvents |
software | healthy | src/components/GrampsjsEvents.js:GrampsjsEvents |
GrampsjsFormNewPerson |
software | healthy | src/components/GrampsjsFormNewPerson.js:GrampsjsFormNewPers… |
GrampsjsPillToggle |
software | healthy | src/components/GrampsjsPillToggle.js:GrampsjsPillToggle |
GrampsjsConnectedDnaMatchTable |
software | healthy | src/components/GrampsjsConnectedDnaMatchTable.js:GrampsjsCo… |
GrampsjsAttributes |
software | healthy | src/components/GrampsjsAttributes.js:GrampsjsAttributes |
GrampsjsObject |
software | healthy | src/components/GrampsjsObject.js:GrampsjsObject |
GrampsjsEditableTable |
software | healthy | src/components/GrampsjsEditableTable.js:GrampsjsEditableTab… |
GrampsjsImport |
software | healthy | src/components/GrampsjsImport.js:GrampsjsImport |
GrampsjsParticipants |
software | healthy | src/components/GrampsjsParticipants.js:GrampsjsParticipants |
GrampsjsNames |
software | healthy | src/components/GrampsjsNames.js:GrampsjsNames |
GrampsjsFormNewCitation |
software | healthy | src/components/GrampsjsFormNewCitation.js:GrampsjsFormNewCi… |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
lang |
software | healthy | lang |
.devcontainer |
software | healthy | .devcontainer |
test |
software | healthy | test |
unit |
software | healthy | test/unit |
fonts |
software | healthy | fonts |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
charts |
software | healthy | src/charts |
util |
software | healthy | src/util |
components |
software | healthy | src/components |
mixins |
software | healthy | src/mixins |
views |
software | healthy | src/views |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/sw.js |
security | healthy | src/sw.js |
auth::test/unit/api.test.js |
security | healthy | test/unit/api.test.js |
auth::src/components/GrampsjsLogin.js |
security | healthy | src/components/GrampsjsLogin.js |
auth::test/unit/appstate.test.js |
security | healthy | test/unit/appstate.test.js |
auth::src/oidc.js |
security | healthy | src/oidc.js |
auth::src/components/GrampsjsOidcButton.js |
security | healthy | src/components/GrampsjsOidcButton.js |
auth::package.json |
security | healthy | package.json |
auth::src/api.js |
security | healthy | src/api.js |
auth::src/GrampsJs.js |
security | healthy | src/GrampsJs.js |
auth::src/components/GrampsjsRelogin.js |
security | healthy | src/components/GrampsjsRelogin.js |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::image-release |
cicd | healthy | .github/workflows/image-release.yml |
gha::test |
cicd | healthy | .github/workflows/test.yml |
gha::release |
cicd | healthy | .github/workflows/release.yml |
gha::image-devel |
cicd | healthy | .github/workflows/image-devel.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
build |
cicd | healthy | .github/workflows/image-release.yml |
test |
cicd | healthy | .github/workflows/test.yml |
deploy |
cicd | healthy | .github/workflows/release.yml |
build |
cicd | healthy | .github/workflows/image-devel.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
image::.devcontainer/Dockerfile |
hardware | healthy | .devcontainer/Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::src/components/GrampsjsFormUser.js |
security | healthy | src/components/GrampsjsFormUser.js |
password_literal::src/components/GrampsjsRelogin.js |
security | healthy | src/components/GrampsjsRelogin.js |
| Label | Layer | Status | Path |
|---|---|---|---|
VERSION |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-5kpen_ex |
software | healthy | /tmp/repobility-clone-5kpen_ex |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | src/appState.js |
| Label | Layer | Status | Path |
|---|---|---|---|
celery |
data | healthy | src/appState.js |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | .github/workflows/image-release.yml |
This page is publicly accessible at:
https://repobility.com/scan/e6b93f5d-3924-45dd-bc35-51f744a761fb/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/e6b93f5d-3924-45dd-bc35-51f744a761fb/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.