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

kobotoolbox / kpi / 26152690191
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 20 May 2026 09:10AM UTC
Jobs 10
Files 916
Run time 3min
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

20 May 2026 09:05AM UTC coverage: 82.033% (+1.0%) from 81.081%
26152690191

push

github

web-flow
feat(auth): environment internal endpoint openapi docs DEV-2014 (#6978)

### 📣 Summary
Added `/environment` endpoint to the OpenAPI docs 

### 📖 Description
Created EnvironmentResponseSerializer (along with SocialAppSerializer
and MetadataFieldSerializer) to explicitly type out all configuration
properties. Added markdown documentation describing what the endpoint
provides. The view get() method was then decorated with @extend_schema
to formally document the endpoint using Kobo's standardized
open_api_200_ok_response format, and added APIV2Versioning so the V2
schema generator picks it up.

### 👀 Preview steps
Go to the API docs and review the generated docs
`http://kf.kobo.local/api/v2/docs/` in the `Configuration` section

---------

Co-authored-by: Rebecca Graber <becca.graber@kobotoolbox.org>

9237 of 12470 branches covered (74.07%)

55 of 55 new or added lines in 2 files covered. (100.0%)

1824 existing lines in 95 files now uncovered.

30544 of 37234 relevant lines covered (82.03%)

5.73 hits per line

Coverage Regressions

Lines Coverage ∆ File
193
57.89
-21.44% kpi/utils/query_parser/canopy_autogenerated_parser/__init__.py
117
61.73
-19.47% kpi/models/import_export_task.py
97
29.35
-48.26% kobo/apps/project_ownership/models/transfer.py
77
0.0
-77.78% kpi/password_validation.py
70
23.4
-74.47% kpi/utils/xlsform_preprocessors/kobomatrix_handler.py
67
59.08
-10.97% kpi/serializers/v2/asset.py
63
32.52
-51.22% kobo/apps/accounts/forms.py
50
83.83
-8.79% kpi/models/asset.py
50
35.5
-25.0% kpi/utils/xml.py
44
60.05
-10.92% kpi/deployment_backends/base_backend.py
39
40.36
-6.43% kpi/deployment_backends/openrosa_backend.py
39
35.2
-31.2% kpi/models/paired_data.py
37
38.83
-35.92% kpi/utils/usage_calculator.py
36
58.92
-9.73% kpi/views/v2/asset.py
35
18.75
-72.92% kpi/utils/xlsform_preprocessors/koborank_handler.py
30
44.29
-42.86% kpi/utils/cache.py
29
64.65
-29.29% kpi/utils/django_orm_helper.py
29
21.95
-70.73% kpi/utils/xlsform_preprocessors/koboscore_handler.py
27
0.0
-72.97% kobo/apps/accounts/adapter.py
27
16.67
-18.0% kobo/apps/project_ownership/utils.py
26
71.72
-17.93% kpi/utils/query_parser/query_parser.py
24
40.0
-53.33% kpi/fields/jsonschema_form_field.py
23
60.41
-11.68% kpi/mixins/formpack_xlsform_utils.py
23
52.38
-18.25% kpi/utils/autoname.py
23
51.06
-48.94% kpi/views/v2/authorized_application_user.py
22
31.58
-38.6% kpi/utils/mailer.py
21
0.0
-70.0% kobo/apps/audit_log/tasks.py
21
23.08
-53.85% kpi/utils/asset_translation_utils.py
21
40.58
-30.43% kpi/utils/data_exports.py
21
26.47
-61.76% kpi/utils/export_cleanup.py
18
35.56
-40.0% kpi/fields/file.py
18
62.41
-13.53% kpi/paginators.py
18
37.84
-48.65% kpi/serializers/v2/create_user.py
18
37.93
-62.07% kpi/views/token.py
17
46.99
-10.24% kobo/apps/organizations/views.py
14
67.27
-25.45% kpi/signals.py
13
37.14
-18.57% hub/utils/i18n.py
13
52.87
-14.94% kpi/tasks.py
12
42.11
-31.58% kobo/apps/data_collectors/signals.py
12
43.06
-16.67% kobo/apps/project_ownership/serializers/invite.py
12
71.83
-16.9% kpi/utils/sluggify.py
11
70.41
-5.61% kobo/apps/openrosa/apps/logger/models/instance.py
11
91.36
-3.06% kpi/mixins/object_permission.py
11
28.09
-3.09% kpi/serializers/v2/asset_permission_assignment.py
11
69.76
-5.37% kpi/utils/mongo_helper.py
11
55.56
-40.74% kpi/utils/xlsform_preprocessors/base_handlers.py
9
47.62
-21.43% kobo/apps/markdownx_uploader/models.py
9
67.61
-12.68% kobo/apps/project_ownership/models/invite.py
9
35.29
-52.94% kpi/serializers/v1/authorized_application_user.py
8
35.71
-4.76% kobo/apps/openrosa/apps/main/models/meta_data.py
8
48.94
-8.51% kobo/apps/openrosa/libs/utils/middleware.py
8
52.94
-47.06% kpi/utils/strings.py
7
67.74
-22.58% kobo/apps/data_collectors/models.py
7
76.4
-7.87% kobo/apps/reports/report_data.py
7
53.33
-46.67% kpi/maintenance_tasks.py
7
70.37
-25.93% kpi/models/extra_project_metadata_field.py
7
82.26
-11.29% kpi/utils/kobo_to_xlsform.py
7
80.0
-6.67% kpi/utils/object_permission.py
6
30.19
-3.77% kobo/apps/openrosa/apps/api/permissions.py
6
43.75
-37.5% kobo/apps/project_ownership/filters.py
6
72.09
-13.95% kobo/apps/project_ownership/serializers/transfer.py
6
0.0
-100.0% kobo/apps/project_views/tasks.py
6
74.51
-11.76% kpi/context_processors.py
6
42.86
-42.86% kpi/mixins/asset.py
6
50.0
-14.29% kpi/utils/urls.py
5
64.98
-1.21% kobo/apps/audit_log/models.py
5
30.0
-7.14% kobo/apps/organizations/permissions.py
5
47.22
-13.89% kobo/apps/organizations/tasks.py
5
90.2
-4.9% kpi/models/asset_file.py
5
81.03
-4.31% kpi/models/asset_snapshot.py
5
75.0
-20.83% kpi/models/authorized_application.py
5
24.1
-6.02% kpi/utils/storage.py
4
53.85
-30.77% kobo/apps/accounts/templatetags/customize_email_content.py
4
22.69
-3.36% kobo/apps/stripe/utils/subscription_limits.py
4
89.47
-7.02% kpi/deployment_backends/mixin.py
4
94.25
-4.6% kpi/utils/asset_content_analyzer.py
4
33.33
-66.67% kpi/utils/chunked_delete.py
4
86.67
-13.33% kpi/utils/project_views.py
4
64.29
-14.29% kpi/utils/submission.py
3
78.43
-5.88% hub/models/extra_user_detail.py
3
59.39
-1.82% kobo/apps/organizations/models.py
3
88.57
-8.57% kobo/apps/project_views/models/project_view.py
2
57.09
-0.79% kobo/apps/openrosa/apps/viewer/models/parsed_instance.py
2
91.3
-8.7% kobo/apps/project_ownership/views/invite.py
2
85.84
-1.77% kpi/exceptions.py
1
44.44
-5.56% kobo/apps/accounts/templatetags/get_provider_appname.py
1
45.72
-0.37% kobo/apps/openrosa/apps/viewer/models/data_dictionary.py
1
57.89
-2.63% kobo/apps/organizations/utils.py
1
57.89
-2.63% kpi/db_routers.py
1
79.49
-2.56% kpi/deployment_backends/kc_access/storage.py
1
95.51
-1.12% kpi/deployment_backends/mock_backend.py
1
78.71
-0.5% kpi/filters.py
1
67.74
-3.23% kpi/mixins/standardize_searchable_field.py
1
92.0
-2.0% kpi/models/asset_version.py
1
72.73
-4.55% kpi/utils/bugfix.py
Jobs
ID Job ID Ran Files Coverage
1 26152690191.1 20 May 2026 09:10AM UTC 912
52.0
2 26152690191.2 20 May 2026 09:12AM UTC 912
52.25
3 26152690191.3 20 May 2026 09:12AM UTC 914
54.89
4 26152690191.4 20 May 2026 09:13AM UTC 914
66.11
5 26152690191.5 20 May 2026 09:13AM UTC 914
60.59
6 26152690191.6 20 May 2026 09:14AM UTC 912
59.45
7 26152690191.7 20 May 2026 09:14AM UTC 916
68.4
8 26152690191.8 20 May 2026 09:19AM UTC 914
53.23
9 26152690191.9 20 May 2026 09:21AM UTC 912
53.63
10 26152690191.10 20 May 2026 09:27AM UTC 914
53.59
Source Files on build 26152690191
  • Tree
  • List 916
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 12d7ce1f on github
  • Prev Build on main (#26131164485)
  • Next Build on main (#26212220147)
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