Scan timing: clone 3.72s · analysis 34.89s · 9.6 MB · GitHub API rate-limit (preflight)
https://github.com/twbs/bootstrap
· scanned 2026-06-05 04:38 UTC (5 hours, 22 minutes ago)
· 10 languages
160 findings (48 legacy + 112 scanner) 50th percentile · Javascript · medium (20-100K LoC) Scanner says 72 (higher by 3)
Last scanned 5 hours, 22 minutes ago · v2 · 104 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
60.0 | 0.15 | 9.00 |
security_score |
73.3 | 0.25 | 18.32 |
testing_score |
85.0 | 0.20 | 17.00 |
documentation_score |
62.5 | 0.15 | 9.38 |
practices_score |
99.0 | 0.15 | 14.85 |
code_quality |
68.3 | 0.10 | 6.83 |
| Overall | 1.00 | 75.4 |
All 660 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 |
|---|---|---|---|
.bundlewatch.config.json |
software | healthy | .bundlewatch.config.json |
README.md |
software | healthy | README.md |
.stylelintrc.json |
software | healthy | .stylelintrc.json |
.cspell.json |
software | healthy | .cspell.json |
.ncurc.json |
software | healthy | .ncurc.json |
package.json |
software | healthy | package.json |
composer.json |
software | healthy | composer.json |
package-lock.json |
software | healthy | package-lock.json |
config.yml |
software | healthy | config.yml |
package.js |
software | warning | package.js |
.eslintrc.json |
software | healthy | .eslintrc.json |
.babelrc.js |
software | warning | .babelrc.js |
CODE_OF_CONDUCT.md |
software | healthy | CODE_OF_CONDUCT.md |
SECURITY.md |
software | healthy | SECURITY.md |
index.umd.js |
software | warning | js/index.umd.js |
index.esm.js |
software | warning | js/index.esm.js |
README.md |
software | healthy | js/tests/README.md |
karma.conf.js |
software | warning | js/tests/karma.conf.js |
browsers.js |
software | warning | js/tests/browsers.js |
rollup.bundle-modularity.js |
software | warning | js/tests/integration/rollup.bundle-modularity.js |
bundle.js |
software | warning | js/tests/integration/bundle.js |
bundle-modularity.js |
software | warning | js/tests/integration/bundle-modularity.js |
index.html |
software | healthy | js/tests/integration/index.html |
rollup.bundle.js |
software | warning | js/tests/integration/rollup.bundle.js |
modal.spec.js |
software | healthy | js/tests/unit/modal.spec.js |
base-component.spec.js |
software | healthy | js/tests/unit/base-component.spec.js |
button.spec.js |
software | healthy | js/tests/unit/button.spec.js |
jquery.spec.js |
software | warning | js/tests/unit/jquery.spec.js |
alert.spec.js |
software | healthy | js/tests/unit/alert.spec.js |
scrollspy.spec.js |
software | healthy | js/tests/unit/scrollspy.spec.js |
tooltip.spec.js |
software | healthy | js/tests/unit/tooltip.spec.js |
collapse.spec.js |
software | healthy | js/tests/unit/collapse.spec.js |
tab.spec.js |
software | healthy | js/tests/unit/tab.spec.js |
dropdown.spec.js |
software | healthy | js/tests/unit/dropdown.spec.js |
popover.spec.js |
software | warning | js/tests/unit/popover.spec.js |
toast.spec.js |
software | healthy | js/tests/unit/toast.spec.js |
offcanvas.spec.js |
software | healthy | js/tests/unit/offcanvas.spec.js |
carousel.spec.js |
software | healthy | js/tests/unit/carousel.spec.js |
swipe.spec.js |
software | healthy | js/tests/unit/util/swipe.spec.js |
index.spec.js |
software | healthy | js/tests/unit/util/index.spec.js |
focustrap.spec.js |
software | healthy | js/tests/unit/util/focustrap.spec.js |
config.spec.js |
software | healthy | js/tests/unit/util/config.spec.js |
backdrop.spec.js |
software | healthy | js/tests/unit/util/backdrop.spec.js |
sanitizer.spec.js |
software | healthy | js/tests/unit/util/sanitizer.spec.js |
scrollbar.spec.js |
software | healthy | js/tests/unit/util/scrollbar.spec.js |
component-functions.spec.js |
software | healthy | js/tests/unit/util/component-functions.spec.js |
template-factory.spec.js |
software | healthy | js/tests/unit/util/template-factory.spec.js |
event-handler.spec.js |
software | healthy | js/tests/unit/dom/event-handler.spec.js |
data.spec.js |
software | warning | js/tests/unit/dom/data.spec.js |
selector-engine.spec.js |
software | warning | js/tests/unit/dom/selector-engine.spec.js |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
expectedDone |
software | healthy | js/tests/unit/modal.spec.js:expectedDone |
expectDone |
software | healthy | js/tests/unit/modal.spec.js:expectDone |
shownCallback |
software | healthy | js/tests/unit/modal.spec.js:shownCallback |
hideCallback |
software | healthy | js/tests/unit/modal.spec.js:hideCallback |
hideListener |
software | healthy | js/tests/unit/modal.spec.js:hideListener |
showListener |
software | healthy | js/tests/unit/modal.spec.js:showListener |
createInstance |
software | healthy | js/tests/unit/base-component.spec.js:createInstance |
getAlert |
software | healthy | js/tests/unit/alert.spec.js:getAlert |
scrollTo |
software | healthy | js/tests/unit/scrollspy.spec.js:scrollTo |
onScrollStop |
software | healthy | js/tests/unit/scrollspy.spec.js:onScrollStop |
getDummyFixture |
software | healthy | js/tests/unit/scrollspy.spec.js:getDummyFixture |
testElementIsActiveAfterScroll |
software | healthy | js/tests/unit/scrollspy.spec.js:testElementIsActiveAfterScr… |
scrollHeight |
software | healthy | js/tests/unit/scrollspy.spec.js:scrollHeight |
expectToBeCloseToArray |
software | healthy | js/tests/unit/scrollspy.spec.js:expectToBeCloseToArray |
active |
software | healthy | js/tests/unit/scrollspy.spec.js:active |
activeId |
software | healthy | js/tests/unit/scrollspy.spec.js:activeId |
was |
software | healthy | js/tests/unit/tooltip.spec.js:was |
firstCallback |
software | healthy | js/tests/unit/tooltip.spec.js:firstCallback |
expectedDone |
software | healthy | js/tests/unit/tooltip.spec.js:expectedDone |
in |
software | healthy | js/tests/unit/tooltip.spec.js:in |
assertDone |
software | healthy | js/tests/unit/tooltip.spec.js:assertDone |
tip |
software | healthy | js/tests/unit/tooltip.spec.js:tip |
with |
software | healthy | js/tests/unit/tooltip.spec.js:with |
expectEnd |
software | healthy | js/tests/unit/collapse.spec.js:expectEnd |
firstTest |
software | healthy | js/tests/unit/collapse.spec.js:firstTest |
secondTest |
software | healthy | js/tests/unit/collapse.spec.js:secondTest |
handlerCollapseOne |
software | healthy | js/tests/unit/collapse.spec.js:handlerCollapseOne |
handlerNestedCollapseOne |
software | healthy | js/tests/unit/collapse.spec.js:handlerNestedCollapseOne |
target2Shown |
software | healthy | js/tests/unit/collapse.spec.js:target2Shown |
expectDone |
software | healthy | js/tests/unit/tab.spec.js:expectDone |
was |
software | healthy | js/tests/unit/dropdown.spec.js:was |
test |
software | healthy | js/tests/unit/dropdown.spec.js:test |
expectDropdownToBeOpened |
software | healthy | js/tests/unit/dropdown.spec.js:expectDropdownToBeOpened |
handleArrowDown |
software | healthy | js/tests/unit/dropdown.spec.js:handleArrowDown |
handleArrowUp |
software | healthy | js/tests/unit/dropdown.spec.js:handleArrowUp |
assertDone |
software | healthy | js/tests/unit/toast.spec.js:assertDone |
expected |
software | healthy | js/tests/unit/toast.spec.js:expected |
expectEnd |
software | healthy | js/tests/unit/offcanvas.spec.js:expectEnd |
clearPointerEvents |
software | healthy | js/tests/unit/carousel.spec.js:clearPointerEvents |
restorePointerEvents |
software | healthy | js/tests/unit/carousel.spec.js:restorePointerEvents |
getActiveId |
software | healthy | js/tests/unit/carousel.spec.js:getActiveId |
doneTest |
software | healthy | js/tests/unit/carousel.spec.js:doneTest |
clearPointerEvents |
software | healthy | js/tests/unit/util/swipe.spec.js:clearPointerEvents |
restorePointerEvents |
software | healthy | js/tests/unit/util/swipe.spec.js:restorePointerEvents |
defineDocumentElementOntouchstart |
software | healthy | js/tests/unit/util/swipe.spec.js:defineDocumentElementOntou… |
deleteDocumentElementOntouchstart |
software | healthy | js/tests/unit/util/swipe.spec.js:deleteDocumentElementOntou… |
mockSwipeGesture |
software | healthy | js/tests/unit/util/swipe.spec.js:mockSwipeGesture |
callback |
software | healthy | js/tests/unit/util/swipe.spec.js:callback |
functionFoo |
software | healthy | js/tests/unit/util/index.spec.js:functionFoo |
functionBar |
software | healthy | js/tests/unit/util/index.spec.js:functionBar |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
js |
software | healthy | js |
tests |
software | healthy | js/tests |
integration |
software | healthy | js/tests/integration |
unit |
software | healthy | js/tests/unit |
util |
software | healthy | js/tests/unit/util |
dom |
software | healthy | js/tests/unit/dom |
helpers |
software | healthy | js/tests/helpers |
visual |
software | healthy | js/tests/visual |
src |
software | healthy | js/src |
util |
software | healthy | js/src/util |
dom |
software | healthy | js/src/dom |
site |
software | healthy | site |
static |
software | healthy | site/static |
docs |
software | healthy | site/static/docs |
[version] |
software | healthy | site/static/docs/[version] |
assets |
software | healthy | site/static/docs/[version]/assets |
js |
software | healthy | site/static/docs/[version]/assets/js |
img |
software | healthy | site/static/docs/[version]/assets/img |
favicons |
software | healthy | site/static/docs/[version]/assets/img/favicons |
src |
software | healthy | site/src |
types |
software | healthy | site/src/types |
components |
software | healthy | site/src/components |
shortcodes |
software | healthy | site/src/components/shortcodes |
assets |
software | healthy | site/src/assets |
partials |
software | healthy | site/src/assets/partials |
examples |
software | healthy | site/src/assets/examples |
blog |
software | healthy | site/src/assets/examples/blog |
modals |
software | healthy | site/src/assets/examples/modals |
jumbotrons |
software | healthy | site/src/assets/examples/jumbotrons |
dropdowns |
software | healthy | site/src/assets/examples/dropdowns |
navbars |
software | healthy | site/src/assets/examples/navbars |
sticky-footer-navbar |
software | healthy | site/src/assets/examples/sticky-footer-navbar |
product |
software | healthy | site/src/assets/examples/product |
dashboard |
software | healthy | site/src/assets/examples/dashboard |
sign-in |
software | healthy | site/src/assets/examples/sign-in |
sticky-footer |
software | healthy | site/src/assets/examples/sticky-footer |
grid |
software | healthy | site/src/assets/examples/grid |
breadcrumbs |
software | healthy | site/src/assets/examples/breadcrumbs |
list-groups |
software | healthy | site/src/assets/examples/list-groups |
sidebars |
software | healthy | site/src/assets/examples/sidebars |
navbars-offcanvas |
software | healthy | site/src/assets/examples/navbars-offcanvas |
headers |
software | healthy | site/src/assets/examples/headers |
cheatsheet |
software | healthy | site/src/assets/examples/cheatsheet |
offcanvas-navbar |
software | healthy | site/src/assets/examples/offcanvas-navbar |
cover |
software | healthy | site/src/assets/examples/cover |
carousel |
software | healthy | site/src/assets/examples/carousel |
badges |
software | healthy | site/src/assets/examples/badges |
heroes |
software | healthy | site/src/assets/examples/heroes |
dashboard-rtl |
software | healthy | site/src/assets/examples/dashboard-rtl |
checkout |
software | healthy | site/src/assets/examples/checkout |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
is |
software | healthy | js/tests/unit/modal.spec.js:is |
DummyClass |
software | healthy | js/tests/unit/base-component.spec.js:DummyClass |
on |
software | healthy | js/tests/unit/button.spec.js:on |
on |
software | healthy | js/tests/unit/scrollspy.spec.js:on |
to |
software | healthy | js/tests/unit/scrollspy.spec.js:to |
provided |
software | healthy | js/tests/unit/tooltip.spec.js:provided |
is |
software | healthy | js/tests/unit/collapse.spec.js:is |
too |
software | healthy | js/tests/unit/collapse.spec.js:too |
from |
software | healthy | js/tests/unit/collapse.spec.js:from |
to |
software | healthy | js/tests/unit/collapse.spec.js:to |
and |
software | healthy | js/tests/unit/collapse.spec.js:and |
if |
software | healthy | js/tests/unit/tab.spec.js:if |
to |
software | healthy | js/tests/unit/tab.spec.js:to |
if |
software | healthy | js/tests/unit/dropdown.spec.js:if |
is |
software | healthy | js/tests/unit/offcanvas.spec.js:is |
during |
software | healthy | js/tests/unit/offcanvas.spec.js:during |
on |
software | healthy | js/tests/unit/offcanvas.spec.js:on |
on |
software | healthy | js/tests/unit/carousel.spec.js:on |
DummyConfigClass |
software | healthy | js/tests/unit/util/config.spec.js:DummyConfigClass |
if |
software | healthy | js/tests/unit/util/backdrop.spec.js:if |
DummyClass2 |
software | healthy | js/tests/unit/util/component-functions.spec.js:DummyClass2 |
if |
software | healthy | js/tests/unit/util/template-factory.spec.js:if |
ScrollSpy |
software | healthy | js/src/scrollspy.js:ScrollSpy |
Tab |
software | healthy | js/src/tab.js:Tab |
Collapse |
software | healthy | js/src/collapse.js:Collapse |
Tooltip |
software | healthy | js/src/tooltip.js:Tooltip |
Toast |
software | healthy | js/src/toast.js:Toast |
Popover |
software | healthy | js/src/popover.js:Popover |
Modal |
software | healthy | js/src/modal.js:Modal |
Dropdown |
software | healthy | js/src/dropdown.js:Dropdown |
Button |
software | healthy | js/src/button.js:Button |
and |
software | healthy | js/src/button.js:and |
Carousel |
software | healthy | js/src/carousel.js:Carousel |
Alert |
software | healthy | js/src/alert.js:Alert |
BaseComponent |
software | healthy | js/src/base-component.js:BaseComponent |
Offcanvas |
software | healthy | js/src/offcanvas.js:Offcanvas |
Backdrop |
software | healthy | js/src/util/backdrop.js:Backdrop |
ScrollBarHelper |
software | healthy | js/src/util/scrollbar.js:ScrollBarHelper |
Config |
software | healthy | js/src/util/config.js:Config |
Swipe |
software | healthy | js/src/util/swipe.js:Swipe |
TemplateFactory |
software | healthy | js/src/util/template-factory.js:TemplateFactory |
FocusTrap |
software | healthy | js/src/util/focustrap.js:FocusTrap |
const |
software | healthy | site/src/libs/prism.ts:const |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::browserstack |
cicd | healthy | .github/workflows/browserstack.yml |
gha::codeql |
cicd | healthy | .github/workflows/codeql.yml |
gha::cspell |
cicd | healthy | .github/workflows/cspell.yml |
gha::node-sass |
cicd | healthy | .github/workflows/node-sass.yml |
gha::lint |
cicd | healthy | .github/workflows/lint.yml |
gha::issue-close-require |
cicd | healthy | .github/workflows/issue-close-require.yml |
gha::css |
cicd | healthy | .github/workflows/css.yml |
gha::js |
cicd | healthy | .github/workflows/js.yml |
gha::scorecard |
cicd | healthy | .github/workflows/scorecard.yml |
gha::issue-labeled |
cicd | healthy | .github/workflows/issue-labeled.yml |
gha::docs |
cicd | healthy | .github/workflows/docs.yml |
gha::bundlewatch |
cicd | healthy | .github/workflows/bundlewatch.yml |
gha::calibreapp-image-actions |
cicd | healthy | .github/workflows/calibreapp-image-actions.yml |
gha::publish-nuget |
cicd | healthy | .github/workflows/publish-nuget.yml |
gha::release-notes |
cicd | healthy | .github/workflows/release-notes.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
browserstack |
cicd | healthy | .github/workflows/browserstack.yml |
analyze |
cicd | healthy | .github/workflows/codeql.yml |
cspell |
cicd | healthy | .github/workflows/cspell.yml |
css |
cicd | healthy | .github/workflows/node-sass.yml |
lint |
cicd | healthy | .github/workflows/lint.yml |
issue-close-require |
cicd | healthy | .github/workflows/issue-close-require.yml |
css |
cicd | healthy | .github/workflows/css.yml |
run |
cicd | healthy | .github/workflows/js.yml |
analysis |
cicd | healthy | .github/workflows/scorecard.yml |
issue-labeled |
cicd | healthy | .github/workflows/issue-labeled.yml |
docs |
cicd | healthy | .github/workflows/docs.yml |
bundlewatch |
cicd | healthy | .github/workflows/bundlewatch.yml |
build |
cicd | healthy | .github/workflows/calibreapp-image-actions.yml |
package-nuget |
cicd | healthy | .github/workflows/publish-nuget.yml |
update_release_draft |
cicd | healthy | .github/workflows/release-notes.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
BROWSER_STACK_USERNAME |
cicd | healthy | — |
N |
cicd | healthy | — |
SCORECARD_TOKEN |
cicd | healthy | — |
NODE |
cicd | healthy | — |
BROWSER_STACK_ACCESS_KEY |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
BUNDLEWATCH_GITHUB_TOKEN |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
port:9876 |
network | healthy | js/tests/karma.conf.js |
port:12 |
network | healthy | .github/dependabot.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
/robots.txt |
frontend | healthy | site/src/pages/robots.txt.ts |
/docs/[version]/examples/[...asset] |
frontend | healthy | site/src/pages/docs/[version]/examples/[...asset].ts |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-hwg6h67c |
software | healthy | /tmp/repobility-clone-hwg6h67c |
| Label | Layer | Status | Path |
|---|---|---|---|
generic_api_key::config.yml |
security | healthy | config.yml |
This page is publicly accessible at:
https://repobility.com/scan/935c29dc-369e-472d-bfda-3b07b68b47c0/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/935c29dc-369e-472d-bfda-3b07b68b47c0/
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.