• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

NodeBB / NodeBB / 26864035575
85%
master: 85%

Build:
Build:
LAST BUILD BRANCH: develop
DEFAULT BRANCH: master
Ran 03 Jun 2026 04:40AM UTC
Jobs 4
Files 433
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Jun 2026 04:38AM UTC coverage: 25.187% (-60.1%) from 85.27%
26864035575

push

github

barisusakli
refactor: change href arg validation

add more tests
only allow http(s):// and relative urls /

1093 of 18900 branches covered (5.78%)

7 of 7 new or added lines in 1 file covered. (100.0%)

20416 existing lines in 389 files now uncovered.

8555 of 33966 relevant lines covered (25.19%)

7.93 hits per line

Coverage Regressions

Lines Coverage ∆ File
347
11.29
-71.25% src/flags.js
288
13.14
-77.21% src/topics/tags.js
272
6.69
-82.67% src/activitypub/actors.js
261
7.99
-59.59% src/activitypub/notes.js
260
9.77
-65.16% src/activitypub/mocks.js
257
14.93
-72.39% src/api/users.js
246
14.24
-76.16% src/api/posts.js
223
27.27
-67.58% src/database/mongo/sorted.js
214
11.85
-79.26% src/topics/posts.js
210
14.21
-54.26% src/activitypub/index.js
208
15.58
-75.36% src/messaging/rooms.js
203
18.49
-76.6% src/categories/index.js
203
15.05
-72.76% src/controllers/helpers.js
197
14.46
-79.12% src/user/data.js
196
27.55
-66.67% src/database/postgres/sorted.js
189
17.79
-74.7% src/messaging/index.js
186
12.12
-80.52% src/topics/unread.js
185
14.29
-61.46% src/notifications.js
183
10.33
-67.53% src/controllers/authentication.js
181
11.31
-81.9% src/middleware/render.js
181
11.34
-76.05% src/posts/queue.js
178
8.01
-40.73% src/activitypub/inbox.js
165
11.79
-77.83% src/controllers/topics.js
164
8.46
-81.59% src/user/profile.js
157
13.4
-80.93% public/src/utils.common.js
157
16.03
-66.24% src/api/chats.js
150
14.81
-79.37% src/routes/feeds.js
148
4.88
-90.24% public/src/modules/helpers.common.js
148
13.59
-80.43% src/api/groups.js
146
17.48
-59.35% src/activitypub/out.js
146
11.89
-78.92% src/controllers/admin/dashboard.js
142
15.16
-51.26% src/activitypub/helpers.js
141
12.5
-80.11% src/controllers/accounts/helpers.js
141
12.07
-81.03% src/topics/create.js
131
20.92
-66.84% src/api/topics.js
126
10.3
-76.36% src/controllers/admin/users.js
125
6.36
-56.82% src/search.js
124
34.52
-62.94% src/database/redis/sorted.js
123
8.92
-78.34% src/groups/update.js
120
13.94
-72.73% src/topics/tools.js
117
11.11
-86.67% src/topics/delete.js
117
6.37
-74.52% src/topics/sorted.js
116
18.78
-64.09% src/middleware/user.js
116
12.33
-79.45% src/posts/user.js
116
12.16
-78.38% src/posts/votes.js
115
10.61
-87.12% src/posts/delete.js
115
24.72
-64.61% src/topics/index.js
114
19.01
-80.28% src/privileges/helpers.js
110
51.59
-38.66% public/src/modules/translator.common.js
110
3.42
-94.02% src/database/mongo/sorted/intersect.js
109
13.33
-66.06% src/controllers/admin/uploads.js
108
17.99
-77.7% src/topics/events.js
103
14.4
-82.4% src/controllers/category.js
103
18.32
-78.63% src/user/notifications.js
97
12.4
-75.19% src/categories/create.js
97
33.54
-61.39% src/groups/index.js
97
15.91
-73.48% src/user/picture.js
96
15.75
-65.75% src/categories/topics.js
96
23.97
-65.75% src/posts/uploads.js
95
14.53
-81.2% src/messaging/data.js
95
41.51
-44.81% src/plugins/index.js
95
9.02
-77.87% src/user/search.js
94
16.0
-75.2% src/controllers/accounts/settings.js
94
34.27
-52.81% src/emailer.js
94
14.74
-60.26% src/widgets/index.js
93
27.87
-50.82% src/middleware/index.js
91
21.08
-54.82% src/analytics.js
89
17.69
-68.46% src/api/categories.js
88
13.51
-79.28% src/categories/recentreplies.js
88
28.68
-68.22% src/controllers/write/topics.js
88
23.84
-51.16% src/socket.io/index.js
87
17.95
-74.36% src/privileges/posts.js
87
11.88
-86.14% src/topics/teaser.js
86
30.41
-50.29% src/controllers/index.js
86
15.13
-72.27% src/user/approval.js
85
19.66
-72.65% src/database/postgres/main.js
85
16.36
-77.27% src/topics/thumbs.js
85
14.88
-70.25% src/user/digest.js
84
14.29
-75.0% src/settings.js
84
14.15
-79.25% src/user/settings.js
82
14.0
-82.0% src/user/create.js
81
45.93
-47.09% src/user/index.js
79
31.06
-59.85% src/controllers/write/users.js
79
15.0
-79.0% src/posts/edit.js
79
17.43
-72.48% src/upgrade.js
78
15.93
-69.03% src/controllers/mods.js
78
28.45
-67.24% src/controllers/write/chats.js
78
19.47
-69.03% src/user/email.js
74
21.37
-63.25% src/controllers/accounts/posts.js
74
20.35
-65.49% src/controllers/users.js
74
30.95
-58.73% src/file.js
73
24.79
-62.39% src/request.js
73
21.14
-59.35% src/socket.io/admin/user.js
73
22.52
-65.77% src/user/invite.js
72
16.16
-72.73% src/controllers/uploads.js
72
19.39
-73.47% src/user/bans.js
72
17.78
-80.0% src/user/info.js
70
14.0
-70.0% src/api/search.js
70
50.0
-46.67% src/database/redis/hash.js
70
21.28
-74.47% src/privileges/topics.js
69
16.67
-71.88% src/controllers/search.js
69
19.23
-66.35% src/database/mongo/sets.js
69
16.67
-76.67% src/topics/crossposts.js
67
34.91
-63.21% src/groups/membership.js
67
15.27
-51.15% src/meta/css.js
67
33.33
-65.69% src/privileges/categories.js
66
47.78
-36.67% src/database/mongo/hash.js
66
20.0
-69.47% src/topics/follow.js
66
20.45
-75.0% src/user/auth.js
65
10.59
-76.47% src/categories/update.js
65
23.16
-68.42% src/database/mongo/main.js
65
20.75
-61.32% src/socket.io/helpers.js
65
19.79
-67.71% src/user/delete.js
64
44.27
-48.85% src/database/postgres/hash.js
63
26.61
-50.81% src/plugins/install.js
63
22.34
-67.02% src/user/reset.js
62
16.09
-71.26% src/api/helpers.js
62
28.46
-50.41% src/controllers/write/posts.js
61
15.91
-46.21% src/meta/build.js
61
19.77
-70.93% src/posts/diffs.js
60
26.05
-50.42% src/meta/minifier.js
60
18.89
-66.67% src/sitemap.js
60
14.1
-76.92% src/socket.io/admin/rooms.js
60
12.64
-68.97% src/topics/fork.js
60
21.43
-71.43% src/user/posts.js
59
20.72
-53.15% src/controllers/admin/categories.js
59
18.99
-74.68% src/meta/templates.js
57
12.9
-61.29% src/controllers/activitypub/topics.js
56
19.48
-72.73% src/controllers/accounts/profile.js
56
14.67
-74.67% src/meta/tags.js
56
16.18
-82.35% src/posts/summary.js
56
16.67
-66.67% src/user/interstitials.js
55
24.05
-69.62% src/database/postgres/sets.js
55
24.0
-73.33% src/topics/data.js
54
17.81
-73.97% src/messaging/create.js
54
21.92
-73.97% src/navigation/admin.js
53
25.33
-70.67% src/categories/data.js
53
17.28
-65.43% src/controllers/accounts/edit.js
53
32.94
-62.35% src/controllers/write/admin.js
53
25.29
-60.92% src/image.js
53
30.38
-67.09% src/socket.io/topics.js
53
33.04
-47.32% src/socket.io/user.js
53
23.29
-72.6% src/topics/scheduled.js
52
20.0
-74.29% src/user/blocks.js
51
20.2
-51.52% src/controllers/activitypub/actors.js
51
16.92
-78.46% src/meta/languages.js
51
36.9
-60.71% src/posts/parse.js
50
37.5
-62.5% src/controllers/admin/settings.js
50
24.64
-72.46% src/database/redis/sets.js
50
28.17
-70.42% src/meta/settings.js
50
27.14
-71.43% src/privileges/users.js
50
19.44
-69.44% src/user/follow.js
49
25.27
-53.85% src/events.js
47
14.04
-82.46% src/batch.js
47
15.63
-73.44% src/controllers/accounts/chats.js
47
18.06
-65.28% src/controllers/admin/info.js
47
16.44
-64.38% src/controllers/errors.js
47
15.15
-71.21% src/groups/leave.js
47
31.71
-57.32% src/middleware/assert.js
46
30.0
-65.71% src/controllers/write/categories.js
46
26.92
-58.97% src/socket.io/categories.js
45
16.13
-72.58% src/categories/search.js
45
36.63
-44.55% src/database/mongo.js
45
32.86
-64.29% src/database/redis/main.js
45
25.81
-72.58% src/socket.io/posts/tools.js
44
42.11
-46.32% src/meta/blacklist.js
43
22.58
-69.35% src/admin/search.js
43
24.19
-69.35% src/api/utils.js
43
17.11
-56.58% src/controllers/admin/federation.js
43
21.05
-75.44% src/controllers/recent.js
42
22.06
-61.76% src/messaging/notifications.js
42
15.63
-65.63% src/middleware/headers.js
41
26.32
-71.93% src/groups/invite.js
41
22.95
-67.21% src/meta/js.js
40
14.58
-83.33% src/controllers/well-known.js
40
22.58
-64.52% src/messaging/edit.js
38
19.15
-80.85% src/database/mongo/list.js
38
9.52
-90.48% src/pagination.js
38
43.84
-52.05% src/posts/index.js
38
40.0
-54.29% src/privileges/admin.js
37
20.41
-75.51% public/src/utils.js
37
22.22
-68.52% src/controllers/admin/groups.js
37
23.53
-72.55% src/controllers/unread.js
37
19.57
-80.43% src/database/postgres/list.js
37
40.0
-41.11% src/logger.js
36
15.69
-70.59% src/controllers/composer.js
36
20.63
-57.14% src/controllers/groups.js
36
14.56
-34.95% src/middleware/activitypub.js
36
53.91
-28.13% src/plugins/hooks.js
36
22.45
-73.47% src/posts/create.js
35
18.75
-54.69% src/api/flags.js
35
21.74
-76.09% src/middleware/helpers.js
35
26.79
-62.5% src/user/categories.js
34
22.92
-70.83% src/controllers/user.js
33
12.24
-67.35% src/groups/search.js
32
31.91
-68.09% src/controllers/tags.js
32
38.46
-61.54% src/controllers/write/groups.js
32
40.32
-51.61% src/database/redis.js
32
13.16
-84.21% src/database/redis/sorted/intersect.js
31
16.67
-73.81% src/activitypub/feps.js
31
27.27
-70.45% src/posts/data.js
31
14.63
-75.61% src/rewards/index.js
31
11.11
-86.11% src/topics/merge.js
31
24.56
-54.39% src/user/admin.js
30
25.58
-69.77% src/categories/delete.js
30
23.81
-71.43% src/groups/cover.js
30
27.66
-63.83% src/topics/recent.js
29
17.07
-70.73% src/topics/suggested.js
28
12.12
-84.85% src/database/helpers.js
28
11.76
-82.35% src/database/mongo/sorted/union.js
28
22.22
-77.78% src/widgets/admin.js
27
40.0
-33.75% src/cache/ttl.js
26
32.5
-65.0% src/categories/icon.js
26
17.14
-74.29% src/controllers/accounts/info.js
26
41.51
-49.06% src/languages.js
26
20.0
-65.0% src/rewards/admin.js
26
27.91
-60.47% src/socket.io/meta.js
26
21.88
-40.63% src/socket.io/topics/tags.js
26
23.68
-68.42% src/topics/bookmarks.js
25
46.3
-46.3% src/controllers/api.js
25
12.9
-80.65% src/database/postgres/sorted/union.js
25
21.15
-48.08% src/middleware/admin.js
25
26.47
-73.53% src/socket.io/admin/config.js
24
31.43
-68.57% src/activitypub/blocklists.js
24
19.35
-77.42% src/controllers/accounts/notifications.js
24
29.41
-70.59% src/controllers/categories.js
24
24.24
-72.73% src/groups/user.js
24
48.33
-40.0% src/privileges/global.js
23
57.63
-38.98% src/database/postgres/sorted/add.js
23
13.79
-79.31% src/database/postgres/sorted/intersect.js
23
25.81
-74.19% src/database/redis/list.js
23
23.81
-54.76% src/messaging/unread.js
23
27.69
-35.38% src/socket.io/groups.js
23
34.09
-52.27% src/user/uploads.js
22
28.13
-68.75% src/controllers/admin.js
22
20.0
-73.33% src/controllers/admin/plugins.js
22
17.86
-78.57% src/controllers/home.js
22
29.41
-64.71% src/database/mongo/sorted/remove.js
22
35.29
-64.71% src/socket.io/notifications.js
22
34.92
-34.92% src/socket.io/posts.js
22
23.53
-64.71% src/socket.io/user/profile.js
21
25.0
-75.0% src/controllers/accounts/categories.js
21
32.26
-67.74% src/controllers/admin/admins-mods.js
21
25.0
-75.0% src/groups/delete.js
21
22.22
-77.78% src/groups/posts.js
21
20.0
-70.0% src/posts/bookmarks.js
21
27.27
-63.64% src/posts/topics.js
21
31.58
-55.26% src/socket.io/admin/plugins.js
21
24.14
-72.41% src/socket.io/topics/infinitescroll.js
20
25.71
-57.14% src/activitypub/rules.js
20
30.3
-60.61% src/database/postgres/sorted/remove.js
20
22.22
-74.07% src/database/redis/sorted/union.js
20
30.3
-60.61% src/user/online.js
19
8.05
-21.84% src/activitypub/contexts.js
19
29.89
-21.84% src/cli/package-install.js
19
31.43
-54.29% src/controllers/posts.js
19
33.9
-32.2% src/meta/errors.js
19
41.67
-19.79% src/routes/authentication.js
18
38.24
-52.94% src/controllers/404.js
18
29.63
-66.67% src/controllers/accounts/follow.js
18
15.48
-11.61% src/controllers/activitypub/index.js
18
25.0
-75.0% src/messaging/delete.js
18
74.83
-12.59% src/meta/configs.js
18
68.31
-12.68% src/plugins/data.js
18
21.28
-38.3% src/posts/attachments.js
18
29.73
-48.65% src/socket.io/topics/unread.js
18
27.27
-54.55% src/socket.io/uploads.js
17
10.0
-21.25% src/controllers/intents.js
17
33.33
-62.96% src/middleware/maintenance.js
17
30.77
-65.38% src/posts/category.js
16
21.95
-39.02% src/activitypub/relays.js
16
36.67
-53.33% src/categories/watch.js
16
30.77
-61.54% src/controllers/admin/events.js
16
23.81
-76.19% src/controllers/admin/privileges.js
16
37.04
-59.26% src/database/redis/sorted/remove.js
16
37.04
-59.26% src/social.js
16
56.58
-21.05% src/socket.io/admin.js
16
29.17
-66.67% src/user/password.js
15
28.57
-71.43% src/controllers/accounts/blocks.js
15
42.31
-57.69% src/controllers/write/flags.js
15
21.43
-53.57% src/controllers/write/intents.js
15
59.62
-28.85% src/database/mongo/sorted/add.js
15
59.52
-35.71% src/database/redis/sorted/add.js
15
32.43
-40.54% src/socket.io/admin/email.js
15
22.73
-68.18% src/socket.io/user/status.js
14
30.43
-60.87% src/cache/tracker.js
14
36.36
-63.64% src/controllers/accounts/uploads.js
14
70.37
-25.93% src/groups/join.js
14
34.62
-53.85% src/groups/ownership.js
14
68.75
-17.5% src/plugins/load.js
14
22.22
-77.78% src/socket.io/admin/analytics.js
13
30.0
-65.0% src/controllers/popular.js
13
30.43
-56.52% src/controllers/sitemap.js
13
45.83
-54.17% src/database/redis/helpers.js
13
22.73
-59.09% src/posts/tools.js
13
38.1
-61.9% src/socket.io/user/picture.js
12
39.13
-52.17% src/admin/versions.js
12
39.13
-52.17% src/api/admin.js
12
36.84
-63.16% src/controllers/accounts/groups.js
12
23.53
-70.59% src/controllers/admin/cache.js
12
36.84
-63.16% src/middleware/expose.js
12
40.0
-48.0% src/socket.io/topics/move.js
12
28.57
-57.14% src/socket.io/user/registration.js
11
42.11
-57.89% src/api/notifications.js
11
21.43
-78.57% src/controllers/admin/database.js
11
33.33
-61.11% src/controllers/top.js
11
42.31
-21.15% src/cron.js
11
68.09
-11.7% src/database/postgres.js
11
77.08
-22.92% src/groups/create.js
11
23.81
-52.38% src/messaging/pins.js
11
38.89
-61.11% src/middleware/uploads.js
11
42.11
-57.89% src/navigation/index.js
11
38.89
-61.11% src/password.js
11
30.0
-55.0% src/socket.io/topics/tools.js
10
47.62
-47.62% src/coverPhoto.js
10
85.53
-13.16% src/groups/data.js
10
73.33
-22.22% src/meta/dependencies.js
10
26.32
-52.63% src/middleware/ratelimit.js
10
41.18
-58.82% src/posts/recent.js
10
47.37
-52.63% src/routes/debug.js
10
33.33
-47.62% src/socket.io/admin/categories.js
10
70.53
-4.83% src/webserver.js
9
33.33
-60.0% src/controllers/accounts/consent.js
9
35.0
-45.0% src/controllers/admin/themes.js
9
50.0
-50.0% src/controllers/globalmods.js
9
43.75
-56.25% src/controllers/write/notifications.js
9
40.0
-60.0% src/middleware/header.js
9
40.0
-60.0% src/socket.io/admin/settings.js
9
33.33
-60.0% src/socket.io/topics/merge.js
8
39.29
-28.57% src/activitypub/analytics.js
8
30.77
-61.54% src/controllers/accounts/tags.js
8
46.67
-53.33% src/controllers/admin/errors.js
8
33.33
-66.67% src/controllers/admin/hooks.js
8
5.14
-2.74% src/install.js
8
38.46
-61.54% src/meta/aliases.js
8
47.62
-38.1% src/plugins/usage.js
8
35.71
-57.14% src/socket.io/admin/tags.js
8
44.44
-44.44% src/socket.io/blacklist.js
8
71.19
-13.56% src/utils.js
7
41.67
-58.33% src/controllers/admin/digest.js
7
25.0
-29.17% src/controllers/service-worker.js
7
50.0
-43.75% src/controllers/write/utilities.js
7
62.5
-21.88% src/database/index.js
7
77.78
-15.56% src/routes/write/index.js
7
36.36
-63.64% src/socket.io/admin/digest.js
7
36.36
-63.64% src/socket.io/admin/themes.js
6
53.33
-40.0% src/activitypub/instances.js
6
40.0
-60.0% src/controllers/accounts/sessions.js
6
60.0
-24.0% src/meta/cacheBuster.js
6
41.18
-35.29% src/meta/debugFork.js
6
27.27
-54.55% src/middleware/csrf.js
6
78.95
-15.79% src/routes/helpers.js
6
40.0
-60.0% src/socket.io/admin/cache.js
6
38.46
-46.15% src/socket.io/posts/votes.js
5
80.9
-5.62% src/cache/lru.js
5
50.0
-50.0% src/categories/activeusers.js
5
54.55
-45.45% src/controllers/write/search.js
5
64.86
-13.51% src/database/postgres/helpers.js
5
64.29
-35.71% src/posts/cache.js
4
55.56
-44.44% src/controllers/admin/appearance.js
4
54.55
-36.36% src/controllers/admin/logs.js
4
50.0
-40.0% src/controllers/osd.js
4
55.56
-44.44% src/controllers/write/files.js
4
55.56
-44.44% src/controllers/write/tags.js
4
41.18
-11.76% src/pubsub.js
4
50.0
-40.0% src/topics/user.js
4
61.54
-10.26% src/user/jobs.js
3
42.86
-42.86% src/controllers/ping.js
3
50.0
-50.0% src/socket.io/admin/widgets.js
3
57.14
-42.86% src/socket.io/categories/search.js
2
86.21
-6.9% public/src/modules/slugify.js
2
66.67
-33.33% src/api/tags.js
2
60.0
-40.0% src/controllers/admin/jobs.js
2
60.0
-40.0% src/controllers/admin/rewards.js
2
60.0
-40.0% src/controllers/admin/tags.js
2
60.0
-40.0% src/controllers/admin/widgets.js
2
92.59
-7.41% src/database/mongo/helpers.js
2
80.85
-4.26% src/meta/index.js
2
75.0
-25.0% src/meta/logs.js
2
79.38
-2.06% src/meta/themes.js
2
66.67
-33.33% src/middleware/multer.js
2
66.67
-33.33% src/socket.io/admin/logs.js
2
66.67
-33.33% src/translator.js
2
66.67
-33.33% src/user/topics.js
1
66.67
-33.33% src/controllers/admin/logger.js
1
96.77
-3.23% src/promisify.js
1
91.47
-0.78% src/routes/index.js
1
75.0
-25.0% src/socket.io/admin/errors.js
1
66.67
-16.67% src/socket.io/admin/rewards.js
Jobs
ID Job ID Ran Files Coverage
1 ubuntu-latest-node-24-db-postgres - 26864035575.1 03 Jun 2026 04:40AM UTC 405
24.52
GitHub Action Run
2 ubuntu-latest-node-24-db-mongo - 26864035575.2 03 Jun 2026 04:40AM UTC 406
24.47
GitHub Action Run
3 ubuntu-latest-node-24-db-mongo-dev - 26864035575.3 03 Jun 2026 04:40AM UTC 407
24.5
GitHub Action Run
4 ubuntu-latest-node-24-db-redis - 26864035575.4 03 Jun 2026 04:40AM UTC 406
24.55
GitHub Action Run
Source Files on build 26864035575
  • Tree
  • List 433
  • Changed 389
  • Source Changed 1
  • Coverage Changed 389
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26864035575
  • d8bb3f40 on github
  • Prev Build on develop (#26857020764)
  • Next Build on develop (#26875108036)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc