Skip to content

Update dependency django-cms to v5 [SECURITY] - #282

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/pypi-django-cms-vulnerability
Open

Update dependency django-cms to v5 [SECURITY]#282
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/pypi-django-cms-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
django-cms (changelog) ^4.1.6^5.0.0 age confidence

django CMS: Structure endpoint bypasses page-view permission

CVE-2026-54624 / GHSA-vgxm-h9gx-h9w7

More information

Details

Summary

The structure-board endpoint (render_object_structure) renders a page's plugin structure without verifying that the requesting user is allowed to view the page. The edit and preview endpoints enforce this via render_page(), but the structure endpoint does not, allowing a low-privileged staff user to read the plugin structure of a view-restricted page.

Details

render_object_structure (in cms/views.py) loads the PageContent object and renders cms/toolbar/structure.html directly. Unlike render_object_endpoint (used by edit/preview), which renders through render_pagecontentrender_page and calls user_can_view_page(request.user, page) (returning 404 when the user may not view the page), the structure endpoint performs no page-level authorization.

The rendered structure board includes each plugin's get_short_description() (e.g. link names/URLs, text snippets), so the content of a restricted page is disclosed, not just its shape.

Impact

A staff user (any account with is_staff=True) who lacks view permission on a view-restricted page can retrieve that page's plugin structure and short descriptions by requesting the structure endpoint with the page's content-type id and object id.

This only applies when CMS_PERMISSION=True and the page has view restrictions (or CMS_PUBLIC_FOR='staff'). Sites without per-page view restrictions are not affected.

Patches

Fixed in 5.0.8: the structure endpoint now enforces user_can_view_page() for PageContent objects, matching edit/preview.

Workarounds

None other than restricting staff access. Upgrade is recommended.

Credits

Reported by the security team at the University of Sydney ([@​reporter]).

Severity

  • CVSS Score: 6.5 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


django CMS: Clipboard copy IDOR discloses unauthorized plugin content

CVE-2026-54622 / GHSA-4xfr-4p46-gc6p

More information

Details

Summary

The clipboard copy paths of the copy_plugins admin endpoint validate only the target (the user's own clipboard) and skip source-side authorization. A staff user can copy plugins out of a placeholder they have no permission on into their clipboard, then read the (secret) content.

Details

In cms/admin/placeholderadmin.py, _copy_plugin_to_clipboard and _copy_placeholder_to_clipboard check has_copy_plugins_permission, which only evaluates request.toolbar.clipboard.has_add_plugins_permission(...) — the
clipboard belongs to the requesting user, and check_source is likewise applied only to the clipboard. The source placeholder identified by the attacker-supplied source_placeholder_id / source_plugin_id is never authorization-checked. (The placeholder-to-placeholder copy path, has_copy_from_placeholder_permission, correctly checks both sides.)

Impact

A staff user holding the global add permission for a plugin type, but with no access to a given placeholder/page, can copy that placeholder's plugins into their own clipboard and read content (e.g. link names/URLs, text) they cannot reach through the normal edit endpoints.

Requires CMS_PERMISSION=True with per-placeholder/page restrictions.

Patches

Fixed in 5.0.8: the clipboard copy paths now also verify source-side permission (has_add_plugins_permission + check_source on the source placeholder), matching placeholder-to-placeholder copy.

Workarounds

None. Upgrade is recommended.

Credits

Reported by the security team at the University of Sydney ([@​reporter]).

Severity

  • CVSS Score: 6.5 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


django CMS: Broken access control in page Duplicate allows reading the content of any page (cross-site / restriction bypass)

CVE-2026-63003 / GHSA-6x92-6vx4-5fwr

More information

Details

Impact

The only authorization gate on the duplicate flow is PageAdmin.has_add_permission,
which checks user_can_add_page(user, site) / user_can_add_subpage(...) — i.e. “may
this user create a page at all”
. Nothing checks the user’s relationship to the page being
copied:

  • cms/admin/forms.pyDuplicatePageForm.source = ModelChoiceField(queryset=Page.objects.all(), widget=HiddenInput())
    spans every page in the database, on every site.
  • cms/admin/forms.pyAddPageForm.__init__ returns early when the source widget is
    hidden, so the queryset is never narrowed to the user’s site/subtree.
  • cms/admin/forms.pyAddPageForm.clean() validates only URL uniqueness; source is
    never validated against the user.
  • cms/admin/pageadmin.pyduplicate() seeds source from the URL only on GET; on
    POST the value comes entirely from the request body.
  • cms/admin/forms.pyAddPageForm.save()from_source() performs
    source.copy(..., permissions=False) and copies every placeholder and all plugins of
    source into a new page on the attacker’s site. Because permissions=False drops the
    source’s view restrictions, the resulting copy is fully readable by the attacker.

This crosses a real privilege boundary: a staff user restricted (via CMS_PERMISSION) to
their own site or subtree can exfiltrate the content of restricted pages and of pages
belonging to other tenants.

Read-back is trivial (verified): the copy is created on the attacker’s site and, because
copy(..., permissions=False) strips the source’s view restrictions, the new page is
unrestricted. user_can_view_page() then returns True for it (unrestricted +
PUBLIC_FOR), so the attacker — or even an anonymous visitor — can read the duplicated
content directly from the front end. No further permission on the new page is required.

Proof of concept
  1. Log in as a staff user attacker who has add page permission but no view/change
    permission on a target (secret / other-site) page SECRET_ID.
  2. Send (the URL <id> only needs to be a PageContent the attacker can already see —
    e.g. one of their own pages; the victim id goes in the POST body):
POST /admin/cms/pagecontent/<MY_OWN_PAGECONTENT_ID>/duplicate/ HTTP/1.1
Cookie: sessionid=<attacker session>
Content-Type: application/x-www-form-urlencoded

csrfmiddlewaretoken=...&title=x&slug=x&language=en&source=<SECRET_ID>
  1. A new, unrestricted page is created under the attacker’s site containing a verbatim
    copy of the secret page’s plugins, which the attacker can now preview/edit/read.
Patches

Enforce an object-level permission check on source:

class DuplicatePageForm(AddPageForm):
    source = forms.ModelChoiceField(
        queryset=Page.objects.all(),
        required=True,
        widget=forms.HiddenInput(),
    )

    def clean_source(self):
        source = self.cleaned_data.get("source")
        if source and not user_can_view_page(self._user, source):
            raise ValidationError(_("You do not have permission to copy this page."))
        return source

(user_can_view_page is imported from cms.utils.page_permissions.)

Workarounds

Until patched, restrict access to the cms.add_page permission to fully-trusted staff, or
disable the duplicate action for delegated/limited editors.

References
  • cms/admin/pageadmin.pyduplicate(), has_add_permission(), get_urls()
  • cms/admin/forms.pyDuplicatePageForm, AddPageForm.__init__/clean/save/from_source
  • Regression tests: cms/tests/test_forms.py::DuplicatePageFormSecurityTestCase

Severity

  • CVSS Score: 6.5 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


django CMS: Missing authorization in render_object_structure discloses non-PageContent placeholder structure to low-privileged staff

CVE-2026-61663 / GHSA-8qj2-c6q4-f399

More information

Details

Summary

The django-cms frontend-editing structure endpoint

GET /<lang>/admin/cms/placeholder/object/<content_type_id>/structure/<object_id>/

did not perform an object-level authorization check for non-PageContent objects. Any authenticated, active staff user could request the structure endpoint for a frontend-editable object (a model using PlaceholderRelationField) and read its placeholder/plugin structure, even without permission to change that object and without the cms.use_structure permission that the toolbar UI requires before offering structure mode.

PageContent objects were already protected (a page-view check added in GHSA/PR #​8644); this advisory covers the remaining non-PageContent branch of the same view.

Severity

The issue is staff-gated and read-only, disclosing CMS structure metadata (placeholder slot names, plugin tree, plugin identifiers/labels, object existence) rather than write access or arbitrary field data.

Affected versions
  • django-cms >= 4.0.0, <= 5.0.x and 5.1.0a1
    (the vulnerable non-PageContent branch was introduced with the frontend-editing endpoints in 4.0)
Patched versions
  • django-cms TODO: 5.0.9
Preconditions
  • An authenticated, active staff account (is_staff=True).
  • The deployment exposes a non-PageContent model with django-cms placeholders / frontend editing (e.g. via PlaceholderRelationField).
  • The attacker can guess or enumerate the target content_type_id and object id.
  • The attacker needs no model/object change permission and no cms.use_structure permission.
Impact

A low-privileged staff user can read the editorial placeholder/plugin structure of non-PageContent objects they are not authorized to edit through the toolbar. Depending on the installed plugins and templates this may reveal placeholder names, plugin layout, plugin identifiers and the existence of objects owned by other staff users or teams. This is most relevant for deployments using third-party or custom django-cms apps that expose frontend-editable objects outside the page tree.

Proof of concept

Using django-cms' own test model placeholder_relation_field_app.FancyPoll (a non-PageContent model with a PlaceholderRelationField):

target = FancyPoll.objects.create(name="private-fancy-poll")
placeholder = rescan_placeholders_for_obj(target)["content"]
attacker = self._create_user("low_staff", is_staff=True, is_superuser=False)

##### attacker has neither change_fancypoll nor cms.use_structure

with self.login_user_context(attacker):
    response = self.client.get(get_object_structure_url(target, language="en"))

##### Before fix: HTTP 200, body contains '"placeholder_id": "<pk>"'

##### After fix:  HTTP 404, structure not disclosed
Patch

render_object_structure now authorizes the non-PageContent branch, mirroring
Placeholder.has_change_permission at the object level (honouring a custom
has_placeholder_change_permission hook, otherwise falling back to the model/object
change permission) and returning 404 when the user is not authorized:

else:
    content_type_obj = content_type.get_object_for_this_type(pk=object_id)
    if not _can_change_placeholder_object(request.user, content_type_obj):
        raise Http404
Workarounds

No configuration workaround. Deployments that do not register any non-PageContent
frontend-editable model are not affected. Otherwise, upgrade to a patched release.

Credit

Reported by doanmanhducz.

Severity

  • CVSS Score: 4.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

django-cms/django-cms (django-cms)

v5.0.9

Compare Source

What's Changed

Full Changelog: django-cms/django-cms@5.0.8...5.0.9

v5.0.8

Compare Source

==================

Bug Fixes:

  • Enforce authorization on structure, move and clipboard endpoints (#​8644) (#​8645) (7642a98) -- Fabian Braun
  • GrouperModelAdmin shadowed prepopulated_fields class attribute (#​8636) (#​8639) (1b164a4) -- Fabian Braun
  • Honour plugin-declared Vary headers in the page cache key (#​8646) (#​8647) (d5dc1ef) -- Fabian Braun
  • Missing redirect_url in CMSNavigationNode.attr (#​8625) (f975cac) -- Venelin Stoykov
  • Release script dropped changes (#​8655) (23df299) -- Fabian Braun
  • Slugs of published pages could be changed (#​8640) (#​8654) (9fed876) -- Fabian Braun
  • Transifex upload script failed (#​8656) (936a620) -- Fabian Braun
  • template-specific CMS_PLACEHOLDER_CONF keys ignored when rendering page placeholders (#​8652) (c7424f7) -- Ralph
  • Correct lookup prefix and register length lookup in PermissionTuple.allow_list()
  • Use loop variable instead of queryset in user_can_delete_page placeholder check
  • Return 404 instead of 500 for missing objects in delete_view and edit_title_fields
  • Use target language for position shift and cache clearing in _paste_placeholder

Statistics:

This release includes 14 pull requests, and was created with the help of the following contributors (in alphabetical order):

  • Fabian Braun (8 pull requests)
  • Ralph (1 pull request)
  • Venelin Stoykov (1 pull request)

With the review help of the following contributors:

  • Fabian Braun
  • Vinit Kumar

Thanks to all contributors for their efforts!

v5.0.7

Compare Source

==================

Bug Fixes:

Statistics:

This release includes 15 pull requests, and was created with the help of the following contributors (in alphabetical order):

  • Fabian Braun (15 pull request)

With the review help of the following contributors:

  • Vinit Kumar

Thanks to all contributors for their efforts!

v5.0.6

Compare Source

==================

Features:

Bug Fixes:

Statistics:

This release includes 15 pull requests, and was created with the help of the following contributors (in alphabetical order):

  • Fabian Braun (10 pull requests)

With the review help of the following contributors:

  • Django CMS Release
  • Moritz Pietzschke
  • Vinit Kumar
  • [Aaditya1273]

Thanks to all contributors for their efforts!

v5.0.5

Compare Source

==================

Bug Fixes:

  • Pin language of toolbar update to the request language
  • Ensure edit endpoint language selection when admin is not using i18n_patterns (#​8367) (#​8390) (9e00f69) -- Fabian Braun
  • Copying x-language lead to unique constraint violation (#​8366) (#​8386)
  • Avoid escaping (= stringify) None-values in PageAttribute-TemplateTag (#​8375) (#​8384) -- Wolfgang Fehr
  • Set default value for edit_fields parameter to avoid AttributeError (#​8381)
  • Link in welcome.html for fellowship program (#​8365) -- Fabian Braun
  • Searching pages for language-specific content failed due to wrong search queryset (#​8355) (#​8358)

Statistics:

This release includes 5 pull requests, and was created with the help of the following contributors (in alphabetical order):

  • Fabian Braun (7 pull requests)

With the review help of the following contributors:

  • Vinit Kumar

Thanks to all contributors for their efforts!

v5.0.4

Compare Source

==================

Bug Fixes:

  • Wrong placeholders rendered when using apphooks with own placeholders (#​8343) (#​8348) (7753923) -- Fabian Braun

Statistics:

This release includes 1 pull request, and was created with the help of the following contributors (in alphabetical order):

  • Fabian Braun (1 pull request)

With the review help of the following contributors:

  • Vinit Kumar

Thanks to all contributors for their efforts!

v5.0.3

Compare Source

==================

Bug Fixes:

  • Django 6 compatibility (July 2025) (8302) -- Fabian Braun
  • Respect individual placeholder checks if they can be changed (#​8318) -- Fabian Braun
  • Cut children from inactive menu nodes when level is less or equal to 0 (#​8324) -- Stefan Wehrmeyer
  • Copy lang management command - include PageUrl (#​8335) -- Vašek Chalupníček
  • Optimize placeholder and plugin utilities (#​8337) -- Fabian Braun
  • Migration 0033 failed when empty placeholder objects were not present in the db (#​8339) -- Fabian Braun

Statistics:

This release includes 9 pull requests, and was created with the help of the following contributors (in alphabetical order):

  • Fabian Braun (5 pull requests)
  • Stefan Wehrmeyer (1 pull request)
  • Vašek Chalupníček (1 pull request)
  • Github Release Action (3 pull requests)

With the review help of the following contributors:

  • Fabian Braun
  • Vinit Kumar

Thanks to all contributors for their efforts!

v5.0.2

Compare Source

==================

Bug Fixes:

Statistics:

This release includes 13 pull requests, and was created with the help of the following contributors (in alphabetical order):

  • Fabian Braun (6 pull request)
  • Github Release Action (3 pull requests)
  • jmit-modern (1 pull request)
  • Muhammad Hassan Siddiqi (1 pull request)
  • Stefan Wehrmeyer (2 pull requests)

With the review help of the following contributors:

  • Fabian Braun
  • Vinit Kumar

Thanks to all contributors for their efforts!

v5.0.1

Compare Source

==================

Bug Fixes:

  • Adjust checks for GrouperAdmin to allow for prepopulated_fields (d6be474) -- Fabian Braun
  • Show all text-enabled plugins inside djangocms-text (0a2ce64) -- Fabian Braun
  • Structure board update sometimes failed to add all interactive elements (d040cee) -- Fabian Braun
  • Remove circular import in cms.forms.validators (1548fba) -- Fabian Braun

Statistics:

This release includes 4 pull requests, and was created with the help of the following contributors (in alphabetical order):

  • Fabian Braun (4 pull request)

With the review help of the following contributors:

  • Jacob Rief
  • Vinit Kumar

Thanks to all contributors for their efforts!

v5.0.0

Compare Source

==================

Features:

  • Port forward of automatic JS updates (#​8165) (fae83a8) -- Fabian Braun
  • Adds backwards migration of the Page/TreeNode model merge (#​8163) (f85297d) -- Fabian Braun
  • Add CMS_ALWAYS_REFRESH_CONTENT setting and other fixes (#​8154) (1e2ff09) -- Fabian Braun
  • Improved editing response time by global caching of plugin restrictions (#​8157) (3981f92) -- Fabian Braun
  • Better editor turn-around times (#​8140) (2704cd4) -- Fabian Braun
  • add django 5.2 to the test matrix (#​8151) (203dfcb) -- Vinit Kumar
  • Allow for CSP - remove inline scripts from edit endpoint markup (#​8109) (6731f24) -- Fabian Braun
  • Optimize DB queries for edit and structure endpoints (#​8120) (be71c9d) -- Fabian Braun
  • add placeholder-level error handling (#​8118) (8274ff6) -- Fabian Braun
  • Don't show plugin selector if only one plugin can be selected (#​8105) (ea98301) -- Fabian Braun
  • Improved delete page confirmation message (#​8070) (47b6301) -- Fabian Braun
  • Add FrontendEditableAdminMixin endpoint to plugins (#​8062) (0224f1e) -- Fabian Braun
  • Updated welcome page (#​8057) (adbcb71) -- Fabian Braun
  • Headless readiness (#​7850) (d0a25c0) -- Fabian Braun
  • merge page with node tree (#​7947) (8577444) -- Jacob Rief
  • Performant permission calculation for pages (#​7943) (8630db8) -- Fabian Braun

Bug Fixes:

  • Remove more text decorations in page tree introduced by Django 5.2 (#​8219) (7f8a6e3) -- Fabian Braun
  • Racing condition after content update through data bridge (4b5d0f0) -- Fabian Braun
  • deleting users cascaded to deleting PageUser or PageUserGroup (#​8167) (2403d4e) -- Fabian Braun
  • Add get_ancestors method to CMSPlugin (#​8159) (502ced1) -- Fabian Braun
  • respect object-level permissions in placeholder model (#​8156) (eab0f34) -- Hana Belay
  • ensure page content translations are created with the same template than existing (#​8145) (4777a02) -- Amanda Savluchinske
  • Async support and middleware update for django CMS 4.2+ (#​8147) (693e910) -- Fabian Braun
  • Creation of text plugins failed (#​8149) (fa3618e) -- Fabian Braun
  • accept custom template engines that inherit from DjangoTemplates (#​8144) (579db86) -- Hana Belay
  • Replace inline script done.html redirect wizard (#​8142) (1ee530c) -- Fabian Braun
  • Copy plugins was broken (#​8135) (733c377) -- Fabian Braun
  • Detect page when getting toolbar for endpoint (#​8137) (76cb708) -- Fabian Braun
  • Django 6 tried to adding object tools to the page tree throwing an error (#​8133) (01fd09b) -- Fabian Braun
  • Allow frontend editing of page title fields (#​8131) (5f36e1c) -- Fabian Braun
  • #​7904 - manage.py cms fixtree did not fix PageUrl model (#​7905) (63a3836) -- Jacob Rief
  • Respect setting CMS_DEFAULT_IN_NAVIGATION (#​8094) (ded96db) -- Fabian Braun
  • Added the new delete confirmation for pages also to delete translation (#​8111) (df40666) -- Fabian Braun
  • Use correct changed_date of page content in sitemap (#​8122) (d987576) -- Jacob Rief
  • Placeholder page getter failed for unpublished pages (#​8115) (4bcb4b4) -- Fabian Braun
  • Fallback page names were not escaped (#​8113) (4632949) -- Fabian Braun
  • Adjust tests for updated django 5.2 admin templates (#​8095) (f2c367d) -- Fabian Braun
  • Correct ContentRenderer logic for toolbar and page content handling (#​8092) (3f8fcb5) -- Fabian Braun
  • Resolve incorrect example in django CMS API reference documentation (#​8079) (58eb76b) -- 사재혁
  • Remove Page object from admin index (introduced by #​7995) (#​8066) (fe54de4) -- Fabian Braun
  • Ensure plugin class properties are available to the Django template engine (#​8071) (9e33db4) -- Fabian Braun
  • Replaced languages field from Page which used to become inconsistent (#​8080) (1031d20) -- Fabian Braun
  • XSS vulnerability for page title (#​8075) (241d1cb) -- Fabian Braun
  • Grouper admin raised AttributeError when used outside the admin views (#​8067) (e1af998) -- Fabian Braun
  • Sites menu was empty in the page tree (#​8064) (d4b811d) -- Fabian Braun
  • Fall back to class name when app name is None (#​8059) (17343b0) -- Halit Çelik
  • Handle cms command raising error (#​8054) (69962fe) -- Abdulwasiu Apalowo
  • added redirect message when in editing a redirect toolbar object (#​8056) (835938c) -- Sal
  • Issue 7997 remove edit page dialog (#​7999) (e8d1abf) -- Jacob Rief
  • In rare situations the page tree preview button did not view the latest version (#​8050) (052eac5) -- Jens-Erik Weber
  • Language tabs didn't show existing content due to caching issue (#​8046) (db0a0c7) -- Filip Weidemann
  • X frame options added to page settings form (#​8041) (1acb816) -- Sal
  • Improve UX when page content is missing in selected language (#​8033) (19ef774) -- Jacob Rief
  • Sitemap: Return a QuerySet in CMSSitemap.items() (#​8031) (accc8da) -- Jens-Erik Weber
  • Accept legacy action names for page permission check (#​8021) (9a1e178) -- Fabian Braun
  • Consistent toolbar mode (#​8011) (1f864af) -- Fabian Braun
  • Respect ContentAdminManager pattern for frontend-editable models (#​7998) (a56decf) -- Fabian Braun
  • Also clear menu cache if page permissions are changed (#​7988) (4f1cbc5) -- Fabian Braun
  • Consistent labels and help texts for page content model and page content forms (#​7968) (5f2f9e4) -- Fabian Braun
  • Inconsistent color codes for dark mode and prefers-color-scheme: auto (#​7979) (f82bcac) -- Fabian Braun
  • Refactor menus app: significant time saving (queries and cpu) (#​7956) (59d50f2) -- Fabian Braun
  • template tag get_admin_url_for_language did not return the latest page content (#​7967) (b4f54a5) -- Fabian Braun
  • Regression: Turning a cached property into a property in a subclass leads to side-effects (#​7971) (93f6fc5) -- Fabian Braun
  • Invalidate permissions cache if group assignment of user changes (1240e18) -- Fabian Braun
  • Fail silently when rendering a placeholder on a missing toolbar object (#​7954) (0f81cea) -- Fabian Braun
  • Show fallback language titles in pagetree (#​7955) (302c1b5) -- Fabian Braun

Refactoring and Cleanups:

  • Replace PageAdmin.delete_view by two smaller methods (#​7995) (cca00a5) -- Jacob Rief

Statistics:

This release includes 137 pull requests, and was created with the help of the following contributors (in alphabetical order):

  • 사재혁 (1 pull request)
  • Abdulwasiu Apalowo (2 pull requests)
  • Amanda Savluchinske (2 pull requests)
  • dependabot[bot] (0 pull request)
  • Fabian Braun (88 pull requests)
  • Filip Weidemann (3 pull requests)
  • Github Release Action (5 pull requests)
  • Halit Çelik (1 pull request)
  • Hana Belay (2 pull requests)
  • Jacob Rief (7 pull requests)
  • Jeffrey de Lange (1 pull request)
  • Jens-Erik Weber (2 pull requests)
  • jianghuyiyuan (1 pull request)
  • Mario Colombo (1 pull request)
  • Mark Walker (2 pull requests)
  • Sal (2 pull requests)
  • Stefan Heinen (1 pull request)
  • Vinit Kumar (2 pull requests)
  • Waithaka Waweru (1 pull request)

With the review help of the following contributors:

  • dependabot[bot]
  • Fabian Braun
  • Github Release Action
  • Jacob Rief
  • John Bazik
  • Mario Colombo
  • sourcery-ai[bot]
  • Vinit Kumar

Thanks to all contributors for their efforts!

v4.1.11

[Compare Source](https://re

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants