Skip to content

Release: Merge back 3.1.300 into dev from: master-into-dev/3.1.300-3.2.0-dev - #15363

Merged
rossops merged 49 commits into
devfrom
master-into-dev/3.1.300-3.2.0-dev
Jul 27, 2026
Merged

Release: Merge back 3.1.300 into dev from: master-into-dev/3.1.300-3.2.0-dev#15363
rossops merged 49 commits into
devfrom
master-into-dev/3.1.300-3.2.0-dev

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Release triggered by rossops

paulOsinski and others added 30 commits July 17, 2026 13:26
…3.2.0-dev

Release: Merge back 3.1.200 into bugfix from: master-into-bugfix/3.1.200-3.2.0-dev
* docs(sensei): add Sensei chapter as its own top-level tab

Document DefectDojo Pro's Sensei (AI scan-and-fix) feature as a new
top-level docs tab with a multi-page chapter:

- content/sensei/: About, Set Up, Fixing Findings, Reference (audience: pro)
  plus an Open Source "Pro-only feature" explainer (OS__sensei.md).
- menus.en.toml: Sensei top-level tab + sidebar_sensei section menu.
- params.toml: add "sensei" to doks.sectionNav so the chapter renders a
  left sidebar.
- custom.js: generalize the edition-aware top-nav so the Sensei tab swaps
  between the OS explainer and the Pro guide (mirrors "Model Your Assets").
- pro_features.md: add a Sensei entry linking to the guide.
- Screenshots captured from a DefectDojo-org demo repo (no internal repos).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(sensei): document GitLab connectivity and clean prose

Add the GitLab portion of the Sensei docs alongside the existing GitHub content:
a "Connect GitLab" section (access-token scopes/role, base URL, webhook setup),
a provider note in About, and a "GitLab specifics" reference section
(merge requests, commit-status gate, self-managed). Also remove em dashes and
tidy phrasing across the Sensei chapter for a consistent, plain style.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: add Pro changelog entry for 3.1.200

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: add Pro changelog entry for 3.1.202

Add a 3.1.202 entry above 3.1.200, covering only the changes not
already documented in the 3.1.200 entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…se fields, push filters) (#15298)

* docs(integrators): refresh ServiceNow guide — OAuth (Zurich + legacy), close fields, push filters [sc-13803]

- Instance Setup now covers both auth paths: ServiceNow Zurich+ (New Inbound
  Integration Experience -> OAuth client-credentials grant, with an OAuth
  Application User) and earlier releases (the legacy App Registry + refresh
  token). ServiceNow deprecated the classic 'Create an OAuth API endpoint for
  external clients' option our guide relied on. Also fixes the duplicated
  'Client ID' field label (the second one is the Client Secret).
- New 'Close and resolution fields' section documenting the apply_on custom
  field recipe for instances whose data policy makes the Resolution code
  mandatory on close (the 403 'Data Policy Exception'), with a worked example
  and the reserved-field / sys_id notes.
- integrations.md documents the new per-assignment push filters (minimum
  severity, active-only) and the one-assignment-per-asset guidance.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(servicenow): document custom numeric state values in the status mapping

Customized instances (and non-incident tables) use state values outside the standard set. Documents that numeric values pass through as configured, and that the built-in Resolution-code default only accompanies standard resolved/closed states - custom values pair with the close/resolution field mappings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs(servicenow): transition timing, JSON value coercion, and custom-table state caveats

Documents when transition mappings actually fire (state changes only - one journal entry per transition), the JSON typing of mapping values including the null-clears-field behavior and quoting escape, and the Incident-semantics caveat for standard state values on non-incident tables.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…r API (#15296)

Assigning or changing a user's configuration permissions through the user
API is now limited to superusers, matching how the serializer already
treats the other privilege-bearing fields (staff and superuser status).
Adds a regression test. No functional change for superusers.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a Sonatype IQ (Nexus Lifecycle) section to the connectors tool
reference: prerequisites (View IQ Elements permission, user token,
on-prem/SaaS base URLs) and connector mappings (Location, Username,
User Token, Stage, Minimum Severity). Pairs with connector
DefectDojo-Inc/connectors#712 and DD Pro registration
DefectDojo-Inc/dojo-pro#1905.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Document the new Kubescape connector on the Pro connectors reference:
it reads the Kubescape operator's in-cluster posture results
(WorkloadConfigurationScan objects, spdx.softwarecomposition.kubescape.io)
via the Kubernetes API — no ARMO SaaS account required — mapping each
namespace to a Product and each failed control to a Finding. Adds it to
the tool reference and the supported-connectors list.

Story: sc-13764
Document the new Intruder.io connector on the Pro connectors reference:
it uses the Intruder REST API (Bearer access token) to pull the whole
account's posture — targets -> issues -> occurrences — mapping each target
to a Product and each occurrence to a Finding. Add it to the tool reference
and the supported-connectors list.

Story: sc-13768
Document the runZero asset / attack-surface connector: prerequisites
(XT Export Token, community tier), the Location/Secret/Import-Vulnerabilities/
Minimum-Severity mappings, the whole-org asset -> Record model (site becomes
Product Type), and the optional vulnerability -> finding import.

Companion to connectors#732 and dojo-pro#1939.

sc-13774

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
The open-source "Go Pro" promo banner (data-source="os") renders from
identical markup in both the classic (Bootstrap) and Tailwind base
templates, but the classic stylesheet was missing the OS-banner-specific
CSS the Tailwind stylesheet already had. As a result the dismiss control
fell back to a bulky default browser button and the banner row was not
laid out consistently.

Port the same OS-banner block into classic/dojo.css so both UIs render
the banner identically: a single centered row (dismiss ×, headline,
expand caret) with a compact bordered dismiss button, and the expanded
message dropping to its own full-width row.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
)

These are live in the production Pro connector/integration catalog but had
no reference docs. Adds a Bugcrowd finding-connector section and a
ServiceNow CMDB asset-connector section to the connectors tool reference,
and a Linear section to the downstream integrators reference (plus the two
integrations.md index lists).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Setup and usage for the Sysdig Secure connector: API token from Settings,
region/base URL Location, connector field mappings (scopes + runtime product
grouping), and import behavior (whole-account sync; runtime findings dynamic +
k8s-tagged, registry/pipeline static; NEGLIGIBLE -> Info). Placed
alphabetically between Snyk and Tenable.

Story: sc-13726
Setup and usage for the Acunetix 360 connector: API User ID + API Token
(HTTP Basic) from the account API Settings page, the cloud Location, connector
field mappings, and import behavior (one Record per scanned website; findings
from the latest completed scan; accepted-risk / false-positive imported but
flagged inactive). Distinguishes the cloud product from the on-prem Acunetix
Standard scanner. Placed first (alphabetical).

Story: sc-13709
…#15195)

In every *_pdf_report.html template the Executive-Summary charts render
from a jQuery ready handler, while the table-of-contents builder runs on
window.onload and reassigns #contents.innerHTML. The chart containers
live inside #contents, so whenever the charts paint before the TOC
rebuild, the innerHTML round-trip re-parses the subtree and silently
discards the painted canvases (Chart.js instances in the new UI, Flot
canvases in the classic UI), leaving blank chart boxes with no console
error.

The two orderings race each other: on a warm local cache the async ready
callback can land after onload and the charts survive, but with realistic
network latency the charts paint first and are destroyed. The symptom was
reported as far back as #2294 and #3253 (2020, Flot era) and never fixed -
both were auto-closed by the stale bot.

Wrap the chart rendering in renderReportCharts() in all seven report
templates (engagement, product, product type, test, endpoint, finding,
product endpoint) in both template trees (dojo/templates and
dojo/templates_classic) and invoke it after the TOC builder has finished
(or on a ready handler when the TOC is disabled), so the charts are
always created into the final DOM.

In five of the seven templates (product, test, endpoint, finding, product
endpoint) the window.onload TOC builder was also missing the
{% if include_table_of_contents %} guard the other templates have, so it
ran even with the table of contents disabled. Because the #contents
wrapper is itself rendered only when the TOC is enabled, the ungated
handler dereferences a null #contents on its first line and throws an
uncaught TypeError before it can rewrite anything (the finding template
null-checks #contents and stays silent) - so the charts survive in that
configuration, but every such report logs a console error. Those five now
carry the same guard as their siblings, so the handler is not emitted when
the TOC is off. In the test template the chart code was split between a
ready handler and top-level script code; both pieces are consolidated into
renderReportCharts() preserving their order, and its call sites stay inside
{% if include_executive_summary %} because the function definition is only
rendered with the executive summary.

Add a regression assertion to the Selenium report tests that the summary
charts end up painted when executive summary and table of contents are
enabled together (factored into a helper and applied to the product type,
product, engagement, test, and product-endpoint report tests). The check
is chart-library agnostic (painted canvas pixels), so it holds on both
the Chart.js and classic Flot report pages.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…15300)

Hardening to object-level authorization on several API and UI write paths that
associate locations and endpoints with findings and products. These paths now
restrict the selectable references to the objects the requesting user is
authorized for, matching the scoping the UI forms and dedicated viewsets
already apply. Adds regression tests. No functional change for
correctly-permissioned users.
The bundled PostgreSQL server is 18.x, but the client tools shipped in
the images lagged behind (Debian: 17, Alpine/nginx: 16). pg_dump refuses
to dump a server newer than itself, so `manage.py dbbackup` failed with
"aborting because of server version mismatch".

Align the client to the server (v18):
- Alpine images: bump base to alpine3.23 and use postgresql18-client
  (18 is not available in the alpine3.22 repos).
- Debian image: add the PostgreSQL APT (PGDG) repository and install
  postgresql-client-18 (Debian trixie only ships v17).

Fixes #15301
* change fortify parser to prefer true line

* create v2 scan
Notes get added to a test through the notes endpoint, not when you create the test. The finding create serializer already keeps notes read-only, so this does the same for tests. Added a regression test.
Document the Quay container-registry connector: prerequisites (OAuth
token, Clair enabled), the Location/Secret/Namespace/Minimum-Severity
mappings, and the repository -> Record + Clair-report -> finding model
(manifest dedupe, skip-unscanned, Negligible/Unknown -> Informational).

Companion to connectors#729 and dojo-pro#1936.

sc-13766

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com>
dependabot Bot and others added 13 commits July 24, 2026 11:24
Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.50 to 3.1.52.
- [Release notes](https://github.com/gitpython-developers/GitPython/releases)
- [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
- [Commits](gitpython-developers/GitPython@3.1.50...3.1.52)

---
updated-dependencies:
- dependency-name: gitpython
  dependency-version: 3.1.52
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Setup and usage for the Black Duck SCA connector: API token (exchanged for a
short-lived bearer) from My Access Tokens, the hub Location, connector field
mappings, and import behavior (one Record per project; findings from the
project's released version's vulnerable BOM components). Placed alphabetically
between Backstage and Bitbucket.

Story: sc-13723
… connections (#15349)

Extend the Sensei docs for the new self-hosted-scanning SCM providers:

- setup_sensei.md: "Choose a source-control provider" section + the four
  per-provider connect flows (GitHub / GitHub Enterprise Server / GitLab /
  Bitbucket / Azure DevOps) in the existing Step-1/2/3 style, with per-provider
  specifics. Refreshed the Connections-table description (Installs column
  removed; multi-provider).
- sensei_reference.md: per-provider auth/webhook specifics blocks and
  generalized troubleshooting.
- about_sensei.md: intro/prerequisites updated for the broader provider set.
- images: refreshed connections.png (multi-provider table) and added
  setup_providers.png (the source-control chooser + GitHub host / GHES field).
Document the NeuVector connector: the controller username/password
prerequisite, the Location/Username/Password/Skip-TLS/Minimum-Severity
mappings, and the whole-controller image -> Record + CVE -> finding
model (severity, package/version, CVSSv3, fix, dedupe key).

Companion to connectors#757 and dojo-pro#2007.

sc-13905

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Adds a tool-reference entry for the GitHub asset connector, which imports GitHub repositories as Assets via the GitHub GraphQL API (repository metadata only). Distinguishes it from the existing GitHub Advanced Security connector, which imports security alerts as findings.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…5191)

Only superusers may change the username or email of another account.
Prevents account takeover via changing a victim's email then triggering
password reset. Users may still edit their own identity fields.

Config-permission guards already landed via #15296; this adds the
remaining identity-field guard PR #15191 intended.

Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
DefectDojo Pro can now build roles from individual permissions, with the
five built-in roles becoming locked, clonable presets. Document that, and
correct the existing role docs that describe the five roles as the whole
model.

- Add admin/user_management/PRO__custom_rbac_roles.md: enabling the
  feature, who can manage roles, the Roles table, cloning vs starting
  from scratch, all four permission groups, the grid legend and the
  View/Manage gate rule, assignment surfaces, how custom global roles map
  onto the built-in tiers, role history, and the API.
- Reframe the built-in roles as locked presets in the permissions
  overview and the permission charts, and document the union rule for a
  user holding more than one role on the same object.
- Link the new page from the User Management section index.
…behavior (#15347)

Documents the opt-in artifact-level record granularity (one record per
first-level entry under a repository), automatic parent/child asset-hierarchy
relationships, the mode-switch runbook in both directions, and corrects the
sync description: every sync generates a complete per-repository report
(the previous text described incremental delta reports, which the connector
does not do).

Co-authored-by: devGregA <greg-agent-2@defectdojo.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…#15360)

The v3_relabel feature moved from environment-driven to DB-backed and
self-serve, but the docs still described the old behavior. Three places
were stale:

* The Feature availability table listed relabeling as controlled by
  "Deployment configuration: DD_ENABLE_V3_ORGANIZATION_ASSET_RELABEL".
  That table exists to list exceptions to the self-serve rule, and
  relabeling is no longer one, so the row is removed. Its facts (on by
  default, plus which surfaces the toggle governs) move into a new
  "Organization / Asset Relabeling" subsection next to the toggle
  instructions.
* The "Managed by deployment" example used relabeling, which is no
  longer env-managed. Swapped to DD_V3_FEATURE_LOCATIONS, which is
  genuinely source=env with a restart-required warning. The DD_ prefix
  matches what the Feature Flags page renders.
* The asset hierarchy page told on-premise users to set the env var and
  restart, and Cloud users to email Support. It now documents both
  controls and what each one covers.

The toggle governs the Pro UI only. The Classic UI labels, its URLs, and
generated reports read DD_ENABLE_V3_ORGANIZATION_ASSET_RELABEL at process
start, and no restart makes the toggle reach them: those branches live in
dojo/asset/labels.py, dojo/organization/labels.py, dojo/asset/urls.py,
dojo/organization/urls.py, dojo/metrics/urls.py,
dojo/system_settings/labels.py, and dojo/reports/ui/urls.py, and the
setting is only ever assigned from the environment in settings.dist.py.
Verified by forcing the env var and the DB flag to disagree in a running
instance: OSS labels followed the environment while only Pro's overlay
followed the database.

Also corrects two adjacent stale claims on the hierarchy page: the name
change is on by default as of 3.0 rather than opt-in, and the two
hierarchy pieces are still enabled by different means.

Co-authored-by: Claude <noreply@anthropic.com>
Release: Merge release into master from: release/3.1.300
@github-actions github-actions Bot added the release-management Automated release-train PR label Jul 27, 2026
@dryrunsecurity

dryrunsecurity Bot commented Jul 27, 2026

Copy link
Copy Markdown

DryRun Security

This pull request contains multiple critical findings where sensitive codepaths in the dojo directory were modified by authors stevewallone, svader0, and rossops, who are not on the allowed authors list. These unauthorized modifications span various Python modules, database migrations, and HTML templates, triggering failing risk thresholds across the project.

🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/endpoint_pdf_report.html (drs_6b6eb339)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/endpoint_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/engagement_pdf_report.html (drs_96794d68)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/engagement_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/finding_pdf_report.html (drs_4de20038)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/finding_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/product_endpoint_pdf_report.html (drs_b6c5e4a8)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/product_endpoint_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/product_pdf_report.html (drs_5ea8599d)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/product_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/product_type_pdf_report.html (drs_3d4674a6)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/product_type_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/test_pdf_report.html (drs_b450b941)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/test_pdf_report.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'stevewallone' (commit e67e8fa) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/api_v2/serializers.py (drs_cc018ff2)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/api_v2/serializers.py' matches configured sensitive codepath pattern 'dojo/api_v2/*.py' and was modified by 'svader0' (commit 3f2ebcf) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0280_vulnerability_id_upper_index.py (drs_005b2f02)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/db_migrations/0280_vulnerability_id_upper_index.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit f091b53) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/models.py (drs_04d1443d)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/finding/models.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit f091b53) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/api_v2/views.py (drs_3c0ad0f8)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/api_v2/views.py' matches configured sensitive codepath pattern 'dojo/api_v2/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/authorization/api_permissions.py (drs_42cd846b)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/authorization/api_permissions.py' matches configured sensitive codepath pattern 'dojo/authorization/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/authorization/query_registrations.py (drs_78bd9eb2)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/authorization/query_registrations.py' matches configured sensitive codepath pattern 'dojo/authorization/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/authorization/template_filters.py (drs_6bdd6808)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/authorization/template_filters.py' matches configured sensitive codepath pattern 'dojo/authorization/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/celery.py (drs_dee4eef8)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/celery.py' matches configured sensitive codepath pattern 'dojo/celery.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0281_vulnerability_id_type.py (drs_ac166368)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/db_migrations/0281_vulnerability_id_type.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0282_backfill_vulnerability_id_type.py (drs_08bb5c92)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/db_migrations/0282_backfill_vulnerability_id_type.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0283_unique_finding_vulnerability_id.py (drs_215bfe68)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/db_migrations/0283_unique_finding_vulnerability_id.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0284_finding_cwe.py (drs_0b17b5d6)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/db_migrations/0284_finding_cwe.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0285_backfill_finding_cwe.py (drs_c10805af)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/db_migrations/0285_backfill_finding_cwe.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/db_migrations/0286_cicd_infrastructure.py (drs_bbd5c6d0)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/db_migrations/0286_cicd_infrastructure.py' matches configured sensitive codepath pattern 'dojo/db_migrations/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/endpoint/queries.py (drs_8a88ebb3)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/endpoint/queries.py' matches configured sensitive codepath pattern 'dojo/endpoint/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/engagement/models.py (drs_4df0ea5d)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/engagement/models.py' matches configured sensitive codepath pattern 'dojo/engagement/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/engagement/queries.py (drs_eaa8af7b)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/engagement/queries.py' matches configured sensitive codepath pattern 'dojo/engagement/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/cwe.py (drs_014ade79)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/finding/cwe.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/deduplication.py (drs_caecca94)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/finding/deduplication.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/helper.py (drs_f1660e2e)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/finding/helper.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/queries.py (drs_6a144727)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/finding/queries.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding/vulnerability_id.py (drs_dfb893bb)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/finding/vulnerability_id.py' matches configured sensitive codepath pattern 'dojo/finding/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/finding_group/queries.py (drs_903ff8ac)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/finding_group/queries.py' matches configured sensitive codepath pattern 'dojo/finding_group/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/forms.py (drs_5a91caa5)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/forms.py' matches configured sensitive codepath pattern 'dojo/forms.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/importers/base_importer.py (drs_d74e897d)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/importers/base_importer.py' matches configured sensitive codepath pattern 'dojo/importers/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/importers/default_reimporter.py (drs_c6841692)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/importers/default_reimporter.py' matches configured sensitive codepath pattern 'dojo/importers/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/jira/helper.py (drs_90719830)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/jira/helper.py' matches configured sensitive codepath pattern 'dojo/jira/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/jira/queries.py (drs_b39ae408)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/jira/queries.py' matches configured sensitive codepath pattern 'dojo/jira/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/jira/services.py (drs_97e5f879)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/jira/services.py' matches configured sensitive codepath pattern 'dojo/jira/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/middleware.py (drs_960099e6)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/middleware.py' matches configured sensitive codepath pattern 'dojo/middleware.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/models.py (drs_420c8fad)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/models.py' matches configured sensitive codepath pattern 'dojo/models.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/notes/helper.py (drs_7b5e97da)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/notes/helper.py' matches configured sensitive codepath pattern 'dojo/notes/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/product/queries.py (drs_da43f6c3)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/product/queries.py' matches configured sensitive codepath pattern 'dojo/product/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/product_type/queries.py (drs_79f5d215)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/product_type/queries.py' matches configured sensitive codepath pattern 'dojo/product_type/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/risk_acceptance/queries.py (drs_9f6f0758)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/risk_acceptance/queries.py' matches configured sensitive codepath pattern 'dojo/risk_acceptance/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/tasks.py (drs_204e8c78)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/tasks.py' matches configured sensitive codepath pattern 'dojo/tasks.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/base.html (drs_a185fb7d)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/base.html' matches configured sensitive codepath pattern 'dojo/templates/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/ad_hoc_findings.html (drs_6d77a3fe)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/ad_hoc_findings.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/add_findings.html (drs_09c04c3e)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/add_findings.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/cicd_infrastructure.html (drs_2fc57558)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/cicd_infrastructure.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/delete_cicd_infrastructure.html (drs_805a55d5)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/delete_cicd_infrastructure.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/edit_cicd_infrastructure.html (drs_18700474)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/edit_cicd_infrastructure.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/edit_finding.html (drs_d074d35b)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/edit_finding.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/findings_list_snippet.html (drs_9eee0b40)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/findings_list_snippet.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/new_cicd_infrastructure.html (drs_18428540)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/new_cicd_infrastructure.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/view_eng.html (drs_8f2c0d5b)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/view_eng.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/view_finding.html (drs_788cbb47)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/view_finding.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/templates/dojo/view_test.html (drs_097e8f1a)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/templates/dojo/view_test.html' matches configured sensitive codepath pattern 'dojo/templates/**/*.html' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/test/queries.py (drs_1cebfa36)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/test/queries.py' matches configured sensitive codepath pattern 'dojo/test/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/tool_product/queries.py (drs_f546c15b)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/tool_product/queries.py' matches configured sensitive codepath pattern 'dojo/tool_product/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/urls.py (drs_38aec65a)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/urls.py' matches configured sensitive codepath pattern 'dojo/urls.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/user/queries.py (drs_0681bc5b)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/user/queries.py' matches configured sensitive codepath pattern 'dojo/user/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/user/utils.py (drs_9d3a5ae3)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/user/utils.py' matches configured sensitive codepath pattern 'dojo/user/*.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.
🔴 Configured Sensitive Codepath Modified by Non-Allowed Author in dojo/views.py (drs_baf08e75)
Vulnerability Configured Sensitive Codepath Modified by Non-Allowed Author
Description File 'dojo/views.py' matches configured sensitive codepath pattern 'dojo/views.py' and was modified by 'rossops' (commit adaccf6) who is not in the allowed authors list.

We've notified @mtesauro.


Comment to provide feedback on these findings.

Report false positive: @dryrunsecurity fp [FINDING ID] [FEEDBACK]
Report low-impact: @dryrunsecurity nit [FINDING ID] [FEEDBACK]

Example: @dryrunsecurity fp drs_90eda195 This code is not user-facing

All finding details can be found in the DryRun Security Dashboard.

…0-3.2.0-dev

Resolved conflicts:

- requirements.txt: kept gitpython==3.1.54 (higher of the two pins).
- dojo/finding/api/serializer.py: kept both imports (get_authorized_endpoints
  from the release branch, cwe_label/cwe_number from dev). Both are used.
- helm/defectdojo/Chart.yaml: kept version 1.9.40-dev (higher) and dev's
  artifacthub.io/changes entry for the valkey 0.24.4 bump, which is unreleased
  and ships in 1.9.40.
- helm/defectdojo/README.md: version badge aligned to 1.9.40-dev.

Also relinearised the dojo migration history. Both sides branched from
0279_jira_project_transition_fields, leaving two 0280 migrations and two leaves.
Kept the release branch's 0280_vulnerability_id_upper_index in place and shifted
dev's chain to 0281-0286, re-pointing its first migration's dependency at
0280_vulnerability_id_upper_index. Migration references in
docs/content/releases/os_upgrading/3.2.md were renumbered to match.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@rossops

rossops commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Conflict resolution — master-into-dev/3.1.300-3.2.0-devdev

Four files came back with conflict markers, and one latent conflict that git merged cleanly but would have broken Django: the migration graph. All of it is resolved and verified below.

Files with conflict markers

requirements.txt

Both sides bumped gitpython: the release branch to 3.1.52, dev to 3.1.54. This is a pinned dependency version, so I kept the larger one, gitpython==3.1.54 (dev's). Nothing else in the file was touched.

dojo/finding/api/serializer.py

Not a real disagreement, just two unrelated imports landing on the same line. The release branch added from dojo.endpoint.queries import get_authorized_endpoints; dev added from dojo.finding.cwe import cwe_label, cwe_number. I kept both, in isort order (dojo.endpoint before dojo.finding). Both are genuinely used — get_authorized_endpoints at line 399, and cwe_label/cwe_number at lines 315, 318, 483 and 692 — so dropping either side would have been a NameError at import time.

helm/defectdojo/Chart.yaml

Two separate hunks.

version: — release branch had 1.9.40-dev, dev had 1.9.39-dev. Chart version, so the larger wins: 1.9.40-dev.

artifacthub.io/changes: — the release branch had it reset to "" (the release-3-master-into-dev.yml workflow blanks this annotation at lines 80-81 as part of its normal run), while dev carried a real entry from the valkey 0.24.1 → v0.24.4 bump (#15313). I kept dev's entry. The empty string is just the absence of content, so keeping dev's preserves both intents: the new chart version from this branch plus the changelog record of an unreleased change that ships in 1.9.40. Worth noting the valkey bump landed on dev after the last release, so blanking it would have silently dropped it from the ArtifactHub changelog. The CI check that normally requires this annotation to differ from the target branch is explicitly skipped for master-into-dev/ branches (test-helm-chart.yml line 74), so keeping dev's value does not fail the build.

helm/defectdojo/README.md

The generated version badge, mirroring the Chart.yaml conflict. Set to 1.9.40-dev to match the resolved version: field. appVersion was 3.2.0-dev on both sides and is unchanged. There are no stale 1.9.39 references left in either helm file.

Migration graph conflict (no conflict markers — git merged this cleanly)

Git had no textual conflict here because each side simply added files. But both sides branched from 0279_jira_project_transition_fields, which left the dojo app with two 0280_* migrations and two leaf nodes. Django refuses to run with a non-linear history, so this needed fixing.

  • From bugfix/release: 0280_vulnerability_id_upper_index
  • From dev: 0280_vulnerability_id_type0281_backfill_vulnerability_id_type0282_unique_finding_vulnerability_id0283_finding_cwe0284_backfill_finding_cwe0285_cicd_infrastructure

Following the rule that bugfix migrations win their position, I left 0280_vulnerability_id_upper_index untouched at 0280 and shifted dev's whole six-migration chain up by one, re-pointing its head at bugfix's migration:

dev (before) now dependencies now points at
0280_vulnerability_id_type 0281_vulnerability_id_type 0280_vulnerability_id_upper_index (was 0279_...)
0281_backfill_vulnerability_id_type 0282_backfill_vulnerability_id_type 0281_vulnerability_id_type
0282_unique_finding_vulnerability_id 0283_unique_finding_vulnerability_id 0282_backfill_vulnerability_id_type
0283_finding_cwe 0284_finding_cwe 0283_unique_finding_vulnerability_id
0284_backfill_finding_cwe 0285_backfill_finding_cwe 0284_finding_cwe
0285_cicd_infrastructure 0286_cicd_infrastructure 0285_backfill_finding_cwe

Renames were done with git mv in reverse order so no two files ever collided. Only the dependencies line changed inside each file; no operation was altered, added, or dropped.

The two adjacent index migrations do not collide at the database level — bugfix's creates dojo_vulnid_upper_idx (a UPPER(vulnerability_id), finding_id expression index) and dev's creates dojo_vuln_id_lookup_idx (a plain vulnerability_id index). Different names, different definitions, both CONCURRENTLY and idempotent, so ordering them one after the other is safe.

Follow-on edits from the renumbering

Two docstrings inside dev's migrations referenced sibling migrations by number and were correct on dev, so my shift made them wrong. I corrected exactly those:

  • 0281_vulnerability_id_type.py — "the data backfill (0281) and the unique constraint (0282" → (0282) and (0283
  • 0283_unique_finding_vulnerability_id.py — "Runs after the 0281" → 0282

docs/content/releases/os_upgrading/3.2.md lists all five of dev's upgrade migrations by name, so those were renumbered to match too.

Two other docstring references were already inaccurate on dev before this merge (0282_backfill_vulnerability_id_type.py cites "(0278)", 0284_finding_cwe.py cites "(0280)"). My renumbering did not cause those and I left them alone rather than fold unrelated fixes into a merge commit. Flagging them here as a cleanup for a separate PR.

Verification performed

  • No conflict markers anywhere in the tree. A recursive grep for <<<<<<< , >>>>>>> and ======= returns nothing outside .git/. The only hits are four ======= lines in NOTICE, which are RST heading underlines (License / =======); that file has zero <<<<<<< or >>>>>>> markers and is byte-identical to HEAD.
  • No unmerged paths remaingit diff --diff-filter=U is empty.
  • Syntax validpy_compile passes on dojo/finding/api/serializer.py and all 288 migration files. helm/defectdojo/Chart.yaml parses under yaml.safe_load.
  • Internal consistency — Chart.yaml version matches the README badge exactly; both serializer imports resolve to real definitions (cwe_number/cwe_label in dojo/finding/cwe.py, get_authorized_endpoints in dojo/endpoint/queries.py).
  • Migration graph walked programmatically — parsed every dependencies entry via AST across all 287 migrations: zero dangling references, zero parents with more than one child, zero migrations with multiple parents, and a single linear chain of 286 migrations from 0001_initial terminating at exactly one leaf, 0286_cicd_infrastructure. (0001_squashed_0090_index_duplicate_finding also reads as a leaf, but it is a pre-existing Django squash migration with a replaces list, unchanged by this merge and unrelated to the conflict.)
  • .settings.dist.py.sha256sum does not exist in this repository, so there was no sha to recompute.

@rossops
rossops merged commit 077d475 into dev Jul 27, 2026
276 of 277 checks passed
@rossops
rossops deleted the master-into-dev/3.1.300-3.2.0-dev branch July 27, 2026 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

apiv2 docker docs helm integration_tests New Migration Adding a new migration file. Take care when merging. parser release-management Automated release-train PR ui unittests

Projects

None yet

Development

Successfully merging this pull request may close these issues.