[
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/313407865",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/313407865/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/313407865/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.1.1",
        "id": 313407865,
        "author": {
            "login": "github-actions[bot]",
            "id": 41898282,
            "node_id": "MDM6Qm90NDE4OTgyODI=",
            "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/github-actions%5Bbot%5D",
            "html_url": "https://github.com/apps/github-actions",
            "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
            "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
            "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
            "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
            "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
            "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
            "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
            "type": "Bot",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Srjl5",
        "tag_name": "v3.1.1",
        "target_commitish": "main",
        "name": "v3.1.1 - 2026-04-27",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-04-27T14:16:59Z",
        "updated_at": "2026-04-27T14:28:40Z",
        "published_at": "2026-04-27T14:17:46Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/406649582",
                "id": 406649582,
                "node_id": "RA_kwDOFEucDc4YPPru",
                "name": "nautobot-3.1.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/octet-stream",
                "state": "uploaded",
                "size": 49952690,
                "digest": "sha256:c6a35da9f643f7ca4fd51c946073e930ac921a64a52fbae97f34c2c37dc1ef5c",
                "download_count": 3,
                "created_at": "2026-04-27T14:28:38Z",
                "updated_at": "2026-04-27T14:28:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.1/nautobot-3.1.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/406649583",
                "id": 406649583,
                "node_id": "RA_kwDOFEucDc4YPPrv",
                "name": "nautobot-3.1.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/x-gtar",
                "state": "uploaded",
                "size": 48293409,
                "digest": "sha256:f9981f561a362d312bba275a15508b729d891dae9c4ca5c55da5541b68b893be",
                "download_count": 1,
                "created_at": "2026-04-27T14:28:38Z",
                "updated_at": "2026-04-27T14:28:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.1/nautobot-3.1.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.1.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.1.1",
        "body": "## v3.1.1 (2026-04-27)\r\n\r\n### Security in v3.1.1\r\n\r\n- [#8840](https://github.com/nautobot/nautobot/issues/8840) - Updated dependency `GitPython` to `>=3.1.47,<3.2` to mitigate CVE-2026-42215 and CVE-2026-42284.\r\n- [#8895](https://github.com/nautobot/nautobot/issues/8895) - Updated dependency `lxml` to `6.1.0` to mitigate CVE-2026-41066. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Added in v3.1.1\r\n\r\n- [#8876](https://github.com/nautobot/nautobot/issues/8876) - Added `render_default_panels_for_object` template tag.\r\n- [#8883](https://github.com/nautobot/nautobot/issues/8883) - Added copyright notice to the About page.\r\n\r\n### Changed in v3.1.1\r\n\r\n- [#8894](https://github.com/nautobot/nautobot/issues/8894) - Changed the CSV export algorithm to speed up the export of a large number of objects.\r\n\r\n### Fixed in v3.1.1\r\n\r\n- [#6199](https://github.com/nautobot/nautobot/issues/6199) - Fixed job class template override not working when template_name is set as a Meta attribute.\r\n- [#8876](https://github.com/nautobot/nautobot/issues/8876) - Re-added placeholders for files `nautobot/extras/templates/extras/inc/jobresult_js.html`, `nautobot/project-static/js/job_result.js`, and `nautobot/project-static/js/log_level_filtering.js` that were removed in 3.1.0, in order to avoid breaking Apps still referencing these files.\r\n- [#8877](https://github.com/nautobot/nautobot/issues/8877) - Fixed incorrect refreshing of GitRepository \"Synchronization Status\" tab.\r\n- [#8885](https://github.com/nautobot/nautobot/issues/8885) - Fixed Kubernetes job kwarg serialization.\r\n- [#8887](https://github.com/nautobot/nautobot/issues/8887) - Fixed `NoReverseMatch` crash when adding Data Validation Rules.\r\n\r\n### Dependencies in v3.1.1\r\n\r\n- [#8840](https://github.com/nautobot/nautobot/issues/8840) - Updated dependency `djangorestframework` to `>=3.17.1,<3.18`.\r\n- [#8840](https://github.com/nautobot/nautobot/issues/8840) - Updated dependency `psycopg2-binary` to `>=2.9.12,<2.10`.\r\n- [#8840](https://github.com/nautobot/nautobot/issues/8840) - Updated dependency `social-auth-core` to `>=4.8.6,<4.9`.\r\n- [#8880](https://github.com/nautobot/nautobot/issues/8880) - Updated npm dependency `htmx.org` to `^2.0.10`.\r\n- [#8909](https://github.com/nautobot/nautobot/issues/8909) - Updated dependency `social-auth-core` to `>=4.8.7,<4.9`.\r\n\r\n### Documentation in v3.1.1\r\n\r\n- [#8820](https://github.com/nautobot/nautobot/issues/8820) - Added documentation on how to set logging levels for Nautobot Jobs.\r\n- [#8873](https://github.com/nautobot/nautobot/issues/8873) - Improved documentation for VPN Terminations, VPN service types, and related VPN models added in v3.1.0.\r\n\r\n### Housekeeping in v3.1.1\r\n\r\n- [#8840](https://github.com/nautobot/nautobot/issues/8840) - Updated development dependency `rich` to `~14.3.4`.\r\n- [#8840](https://github.com/nautobot/nautobot/issues/8840) - Updated documentation dependency `mkdocs-section-index` to `~0.3.12`.\r\n- [#8840](https://github.com/nautobot/nautobot/issues/8840) - Updated documentation dependency `mkdocstrings` to `~1.0.4`.\r\n- [#8840](https://github.com/nautobot/nautobot/issues/8840) - Updated development dependency `ruff` to `~0.15.11`.\r\n- [#8880](https://github.com/nautobot/nautobot/issues/8880) - Updated npm development dependency `postcss` to `^8.5.10`.\r\n- [#8880](https://github.com/nautobot/nautobot/issues/8880) - Updated npm development dependency `prettier` to `^3.8.3`.\r\n- [#8906](https://github.com/nautobot/nautobot/issues/8906) - Fixed a unit test issue that was causing a number of view test cases to be incorrectly skipped.\r\n- [#8906](https://github.com/nautobot/nautobot/issues/8906) - Adjusted the RouteTargetFactory implementation to ensure data is suitable for use with the `bulk_rename` test cases.\r\n- [#8909](https://github.com/nautobot/nautobot/issues/8909) - Updated development dependency `ruff` to `~0.15.12`.\r\n- [#8909](https://github.com/nautobot/nautobot/issues/8909) - Updated development dependency `openapi-spec-validator` to `~0.8.5`.\r\n\r\n## Contributors\r\n* @Defiantearth\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @joewesch\r\n* @nkallergis\r\n* @nopg\r\n* @pastoreerrante\r\n* @renovate\r\n\r\n## New Contributors\r\n* @pastoreerrante made their first contribution in https://github.com/nautobot/nautobot/pull/8894\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.1.0...v3.1.1\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8914",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/314102522",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/314102522/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/314102522/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.32",
        "id": 314102522,
        "author": {
            "login": "github-actions[bot]",
            "id": 41898282,
            "node_id": "MDM6Qm90NDE4OTgyODI=",
            "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/github-actions%5Bbot%5D",
            "html_url": "https://github.com/apps/github-actions",
            "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
            "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
            "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
            "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
            "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
            "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
            "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
            "type": "Bot",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4SuNL6",
        "tag_name": "v2.4.32",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.32 - 2026-04-27",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-04-27T15:42:51Z",
        "updated_at": "2026-04-27T15:52:33Z",
        "published_at": "2026-04-27T15:43:29Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/406702403",
                "id": 406702403,
                "node_id": "RA_kwDOFEucDc4YPclD",
                "name": "nautobot-2.4.32-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/octet-stream",
                "state": "uploaded",
                "size": 44742456,
                "digest": "sha256:d810230e840d46ca2007dade7095484d05af806bb14b43c3473eda04c4deeb3e",
                "download_count": 1,
                "created_at": "2026-04-27T15:52:30Z",
                "updated_at": "2026-04-27T15:52:33Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.32/nautobot-2.4.32-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/406702404",
                "id": 406702404,
                "node_id": "RA_kwDOFEucDc4YPclE",
                "name": "nautobot-2.4.32.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/x-gtar",
                "state": "uploaded",
                "size": 43404635,
                "digest": "sha256:363bbeb2fb602212566f663e07294f9a731765d9331b581c893b120b4a99281e",
                "download_count": 2,
                "created_at": "2026-04-27T15:52:30Z",
                "updated_at": "2026-04-27T15:52:33Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.32/nautobot-2.4.32.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.32",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.32",
        "body": "## v2.4.32 (2026-04-27)\r\n\r\n### Security in v2.4.32\r\n\r\n- [#8842](https://github.com/nautobot/nautobot/issues/8842) - Updated dependency `Pillow` to `^12.2.0` to mitigate a number of security vulnerabilities.\r\n- [#8895](https://github.com/nautobot/nautobot/issues/8895) - Updated dependency `lxml` to `6.1.0` to mitigate CVE-2026-41066. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8904](https://github.com/nautobot/nautobot/issues/8904) - Updated dependency `GitPython` to `~3.1.47` to mitigate CVE-2026-42215 and CVE-2026-42284.\r\n\r\n### Fixed in v2.4.32\r\n\r\n- [#7146](https://github.com/nautobot/nautobot/issues/7146) - Fixed an issue where filtering a nested relation (e.g. interfaces with role filter on devices) via GraphQL would produce N+1 queries.\r\n- [#8629](https://github.com/nautobot/nautobot/issues/8629) - Fixed a scenario where rendering a GitRepository-related Jobs \"Scheduled Job View\" would sometimes show the Job as not installed.\r\n- [#8690](https://github.com/nautobot/nautobot/issues/8690) - Fixed a 500 error when using tag-based permission constraints on objects with multiple matching tags.\r\n- [#8885](https://github.com/nautobot/nautobot/issues/8885) - Fixed Kubernetes job kwarg serialization.\r\n\r\n### Housekeeping in v2.4.32\r\n\r\n- [#7146](https://github.com/nautobot/nautobot/issues/7146) - Added the AssertNoRepeatedQueries context manager test helper to detect N+1 patterns in SQL queries.\r\n\r\n## Contributors\r\n* @ddavtian-nv\r\n* @glennmatthews\r\n* @itdependsnetworks\r\n* @joewesch\r\n\r\n## New Contributors\r\n* @ddavtian-nv made their first contribution in https://github.com/nautobot/nautobot/pull/8863\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.31...v2.4.32\r\n",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/308921528",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/308921528/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/308921528/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.1.0",
        "id": 308921528,
        "author": {
            "login": "github-actions[bot]",
            "id": 41898282,
            "node_id": "MDM6Qm90NDE4OTgyODI=",
            "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/github-actions%5Bbot%5D",
            "html_url": "https://github.com/apps/github-actions",
            "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
            "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
            "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
            "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
            "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
            "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
            "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
            "type": "Bot",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4SacS4",
        "tag_name": "v3.1.0",
        "target_commitish": "main",
        "name": "v3.1.0 - 2026-04-14",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-04-14T21:37:42Z",
        "updated_at": "2026-04-14T21:47:46Z",
        "published_at": "2026-04-14T21:38:49Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/396513665",
                "id": 396513665,
                "node_id": "RA_kwDOFEucDc4XolGB",
                "name": "nautobot-3.1.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/octet-stream",
                "state": "uploaded",
                "size": 50072864,
                "digest": "sha256:e8d7f60a0f2dae527642d62c25ee7b3fc94e23f8c95dfab29cb515710f09ef03",
                "download_count": 2,
                "created_at": "2026-04-14T21:47:44Z",
                "updated_at": "2026-04-14T21:47:46Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0/nautobot-3.1.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/396513664",
                "id": 396513664,
                "node_id": "RA_kwDOFEucDc4XolGA",
                "name": "nautobot-3.1.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/x-gtar",
                "state": "uploaded",
                "size": 48405800,
                "digest": "sha256:4b2153e5c089aa12c012e3e5113c5c85e9fcd6ab4a3e8264fe80f65a432e3ab8",
                "download_count": 4,
                "created_at": "2026-04-14T21:47:44Z",
                "updated_at": "2026-04-14T21:47:46Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0/nautobot-3.1.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.1.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.1.0",
        "body": "This document describes all new features and changes in Nautobot 3.1.\r\n\r\n## Upgrade Actions\r\n\r\n### Administrators\r\n\r\n#### Migrate From Legacy PostgreSQL Versions As Needed\r\n\r\nNautobot 3.1, as a consequence of the [Django 5.2 dependency upgrade](#django-52), drops support for PostgreSQL versions 12.x and 13.x and now requires a minimum of PostgreSQL 14.0. If you have an existing Nautobot deployment on these no-longer-supported versions of PostgreSQL, you will need to [upgrade and migrate your database](../user-guide/administration/upgrading/postgresql.md).\r\n\r\n!!! tip\r\n    In general we recommend that you upgrade PostgreSQL as a _separate_ step and change window from upgrading Nautobot in order to reduce the complexity of the upgrade and allow easier troubleshooting and recovery should anything go wrong in the process.\r\n\r\n#### Migrate Configuration To `STORAGES` As Needed\r\n\r\nAs a consequence of the [Django 5.2 dependency upgrade](#django-52), Nautobot 3.1 drops support for the Django `DEFAULT_FILE_STORAGE` and `STATICFILES_STORAGE` settings variables in favor of a unified `STORAGES` setting. Additionally, support for the corresponding Nautobot-specific `STORAGE_BACKEND`, `STORAGE_CONFIG`, and `JOB_FILE_IO_STORAGE` settings variables has been removed and merged into the [`STORAGES`](https://docs.djangoproject.com/en/5.2/ref/settings/#std-setting-STORAGES) setting.\r\n\r\nIf your deployment of Nautobot had overridden any of the above settings (for example, to use [S3 storage](../user-guide/administration/guides/s3-django-storage.md)), you will need to update your `nautobot_config.py` file to use the `STORAGES` setting instead. More details are available in the Nautobot [documentation for `STORAGES`](../user-guide/administration/configuration/settings.md#storages).\r\n\r\n#### Configure New Performance Settings As Appropriate\r\n\r\nIf you have a large number of Location and/or Prefix records, you can configure [`LOCATION_LIST_DEFAULT_MAX_DEPTH`](../user-guide/administration/configuration/settings.md#location_list_default_max_depth) and/or [`PREFIX_LIST_DEFAULT_MAX_DEPTH`](../user-guide/administration/configuration/settings.md#prefix_list_default_max_depth) to limit the depth of data that's initially retrieved and rendered when first accessing these list views, with the potential to significantly improve the performance of these enhanced views as a result.\r\n\r\n#### Enforced Permissions for Job Log Entries\r\n\r\nNautobot 3.1 introduces stricter permission enforcement for viewing job log entries in the log table view. Previously, the `extras.view_joblogentry` permission was not consistently required to access this data.\r\n\r\nAs a result, users who were previously able to view job logs may now be restricted unless they have been explicitly granted the appropriate `extras.view_joblogentry` permission. This change may have unexpected impact on existing deployments where access to job logs was implicitly available.\r\n\r\nAdministrators should review user roles and permissions to ensure that appropriate access to job logs is granted where needed.\r\n\r\n### App Authors/Maintainers\r\n\r\n#### Changes For Django 5.2 Compatibility\r\n\r\nNautobot's [dependency update to Django 5.2](#django-52), as typical of Django major version updates, included a small number of breaking changes to Django's Python APIs. For a comprehensive guide, refer to the \"Backwards incompatible changes\" and \"Features removed\" sections of Django's release-notes for versions [5.0](https://docs.djangoproject.com/en/5.2/releases/5.0/#backwards-incompatible-changes-in-5-0), [5.1](https://docs.djangoproject.com/en/5.2/releases/5.1/#backwards-incompatible-changes-in-5-1), and [5.2](https://docs.djangoproject.com/en/5.2/releases/5.2/#backwards-incompatible-changes-in-5-2). The most likely impacts we have identified to Nautobot Apps are the following:\r\n\r\n- Support for `Model.Meta.index_together` (previously deprecated in Django 4.2) is removed; App models with custom indexes using `index_together` will need to migrate to use `Model.Meta.indexes` instead and create a database migration accordingly.\r\n- Models using a `ManyToManyField` with an explicit `through` table (as is recommended by Nautobot) may need to run `nautobot-server makemigrations <app>` to generate a schema migration explicitly specifying the `through_fields` for each such `ManyToManyField`.\r\n- The test method `assertQuerysetEqual()` (previously deprecated in Django 4.2) is removed; App tests using this method will need to migrate to use `assertQuerySetEqual()` (note capitalization) instead.\r\n- Nautobot previously maintained a Django templatetag named `querystring`, which may conflict with the built-in [`querystring` templatetag introduced in Django 5.1](https://docs.djangoproject.com/en/5.1/ref/templates/builtins/#querystring). Additionally, [Django Tables2 has a similar namespace conflict](https://github.com/jieter/django-tables2/issues/976). It is recommended to use Django's built-in version where possible. If compatibility issues arise, use `nautobot.app.templatetags.legacy_querystring` instead.\r\n\r\n#### Changes for HTMX\r\n\r\nSee [HTMX List View Rendering](#htmx-list-view-rendering) below.\r\n\r\n#### Support Dependent Object Creation and Search In Forms\r\n\r\nSee [Dependent Object Creation and Search](#dependent-object-creation-and-search) below.\r\n\r\n#### Bootstrap FileStyle Deprecation\r\n\r\nThe Bootstrap FileStyle library is now deprecated and will be removed in Nautobot 4.0. The `ClearableFileInput` widget, which previously depended on Bootstrap FileStyle, has already been migrated to the standard Bootstrap 5 file input.\r\n\r\nIf you do not directly reference the `bootstrap-filestyle-1.2.3/bootstrap-filestyle.min.js` script in your code, no action is required. Otherwise, we encourage you to transition to the Bootstrap 5 file input or import an external library of your choice.\r\n\r\n#### `django-ajax-tables` Deprecation\r\n\r\nThe `django-ajax-tables` library is now deprecated and will be removed in Nautobot 4.0. The dynamic table rendering, filtering, and pagination features, which previously depended on this library, have been migrated to use standard `django-tables2` combined with HTMX.\r\n\r\nIf you do not directly reference `django-ajax-tables` components or its associated JavaScript handlers in your code, no action is required. Otherwise, we encourage you to transition your dynamic tables to the new HTMX-based approach.\r\n\r\n## Release Overview\r\n\r\n### Breaking Changes\r\n\r\n#### Dropped Support for PostgreSQL Versions Less Than 14.0\r\n\r\nAs a consequence of the [dependency update to Django 5.2](#django-52), support for PostgreSQL versions before 14.0 has been removed from Nautobot.\r\n\r\n#### Dropped Support for MySQL Versions Less Than 8.0.11\r\n\r\nAs a consequence of the [dependency update to Django 5.2](#django-52), support for MySQL versions before 8.0.11 has been removed from Nautobot.\r\n\r\n#### Unified Storage Backend Configuration\r\n\r\nAs a consequence of the [dependency update to Django 5.2](#django-52), Nautobot 3.1 drops support for the Django `DEFAULT_FILE_STORAGE` and `STATICFILES_STORAGE` settings variables in favor of a unified `STORAGES` setting. Additionally, support for the corresponding Nautobot-specific `STORAGE_BACKEND`, `STORAGE_CONFIG`, and `JOB_FILE_IO_STORAGE` settings variables has been removed and merged into the [`STORAGES`](https://docs.djangoproject.com/en/5.2/ref/settings/#std-setting-STORAGES) setting. More details are available in the Nautobot [documentation for `STORAGES`](../user-guide/administration/configuration/settings.md#storages).\r\n\r\n### Added\r\n\r\n#### Dependent Object Creation and Search\r\n\r\nDependent objects can now be created directly from the current page using an embedded modal, without interrupting your workflow. Additionally, dependent object search supports advanced filtering, making it easier to find related records, especially in cases like interfaces where simple string matching was not sufficient.\r\n\r\nBoth creation and search are handled within a modal, so you don't have to leave the main form.\r\n\r\nForm migration guide for App developers is available in [Embedded Actions](../development/apps/migration/embedded_actions.md).\r\n\r\n#### Configurable Columns\r\n\r\nConfigurable Columns have been redesigned for improved usability. You can now easily toggle columns on and off via moveable checkboxes, while preserving the order of selected columns.\r\n\r\n#### Job Console\r\n\r\nWhen running jobs, Nautobot now optionally captures and displays all console output in the [Job Console](../development/jobs/job-logging.md#console-logging) tab, including logs previously omitted due to log settings or C-program output. You can now see the complete console log as if running the job interactively, creating a clear separation between job troubleshooting (Job Console) and job reporting (Job Log Entries).\r\n\r\n#### Custom Field Scoping\r\n\r\nCustom Fields can now be scoped to display or edit only when specific, user-defined filtering conditions are met. Previously, all Custom Fields appeared on all objects. Common use cases include:\r\n\r\n- Displaying SMARTnet details for `Device` objects only when the device is a Cisco model.\r\n- Showing local contact information for `Location` objects only when the `LocationType` is `Site`.\r\n- Presenting ATT billing account information for `Circuit` objects only when the circuit is an ATT circuit.\r\n\r\n#### Python 3.14 Support\r\n\r\nAdded official support for Python 3.14.\r\n\r\n#### Bulk Rename for More Models\r\n\r\nUI viewsets inheriting from `NautobotUIViewSet` now include a **Rename** bulk action alongside Bulk Edit and Bulk Delete when their model exposes an editable `name` field. Users can supply a find/replace pattern (literal string or regular expression) against the selected objects' names and preview the resulting names before applying the change. Previously, bulk rename was only available on a small number of legacy views. Models without a `name` field are automatically opted out, so Apps pick this up with no code changes required.\r\n\r\nTo ensure server responsiveness, regular-expression patterns submitted for bulk rename are validated before execution and may be rejected with a clear error message if too complex. Additionally, only objects visible to the user can be renamed in bulk, unlike other bulk operations that allow the full queryset. This ensures users can preview changes before applying them.\r\n\r\n### Changed\r\n\r\n#### HTMX List View Rendering\r\n\r\nIn Nautobot 3.1, object list views (including both those derived from `generic.ObjectListView` and those using `NautobotUIViewSet`) now load in two stages (using [HTMX](https://htmx.org)) to improve the responsiveness of the UI. Custom implementations of these views, and/or custom test cases written for these views, may require some updates to handle this behavior correctly. Refer to the [developer documentation](../development/core/htmx.md#object-list-views-and-htmx) for more specific guidance.\r\n\r\n#### Async Global Search\r\n\r\nGlobal search is now loaded asynchronously. When performing a search, results are returned incrementally, so you see matches immediately without waiting for the slowest queries to complete.\r\n\r\n#### Improved Location and Prefix List Views\r\n\r\nIn addition to the generalized list-view performance enhancements described above, the list views for Location and Prefix records specifically have been enhanced in several ways:\r\n\r\n- The rendering of the \"tree\" data hierarchy for these records has in general been improved to visualize object relationships more clearly.\r\n- An administrator can configure [`LOCATION_LIST_DEFAULT_MAX_DEPTH`](../user-guide/administration/configuration/settings.md#location_list_default_max_depth) and/or [`PREFIX_LIST_DEFAULT_MAX_DEPTH`](../user-guide/administration/configuration/settings.md#prefix_list_default_max_depth) to limit the depth of data that's initially retrieved and rendered when first accessing these list views, improving their responsiveness substantially at high data scale.\r\n- Users can interactively \"drill down\" into deeper nested data as needed with a few quick clicks, incrementally loading additional \"child\" records on the fly.\r\n\r\n### Deprecated\r\n\r\n#### `assertQuerysetEqualAndNotEmpty()` Test Method\r\n\r\nThe Nautobot test method `assertQuerysetEqualAndNotEmpty()` has been deprecated in favor of the new `assertQuerySetEqualAndNotEmpty()` method (note change in capitalization) to align with Django's `assertQuerySetEqual()` test method. Support for `assertQuerysetEqualAndNotEmpty()` may be removed in a future Nautobot release.\r\n\r\n### Dependencies\r\n\r\n#### Django 5.2\r\n\r\nNautobot 3.1 upgrades the core `Django` dependency from 4.2.x LTS to 5.2.x LTS. Nautobot has been updated accordingly, but Apps and third-party dependencies may need to update to newer versions for compatibility with Django 5.2.\r\n\r\n## Contributors\r\n\r\n* @Defiantearth \r\n* @KalebFenley\r\n* @Kircheneer \r\n* @Sridevi-NTC\r\n* @bryanculver \r\n* @djhoward12\r\n* @dsoftait\r\n* @glennmatthews\r\n* @gsnider2195 \r\n* @icovada\r\n* @itdependsnetworks\r\n* @jvanderaa \r\n* @joaquinalmora \r\n* @joewesch\r\n* @mateusz-lachowski-codilime \r\n* @mvanhorn\r\n* @nidzrai\r\n* @nkallergis\r\n* @nopg\r\n* @norbert-mieczkowski-codilime\r\n* @nrnvgh \r\n* @renovate\r\n* @sirisha-bode\r\n* @smk4664 \r\n* @sudheervarma-network\r\n\r\n## New Contributors\r\n* @mvanhorn made their first contribution in https://github.com/nautobot/nautobot/pull/8729\r\n* @KalebFenley made their first contribution in https://github.com/nautobot/nautobot/pull/8664\r\n* @nidzrai made their first contribution in https://github.com/nautobot/nautobot/pull/8467\r\n* @sudheervarma-network made their first contribution in https://github.com/nautobot/nautobot/pull/8815\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.11...v3.1.0\r\n",
        "mentions_count": 25
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/307077500",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/307077500/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/307077500/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.31",
        "id": 307077500,
        "author": {
            "login": "github-actions[bot]",
            "id": 41898282,
            "node_id": "MDM6Qm90NDE4OTgyODI=",
            "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/github-actions%5Bbot%5D",
            "html_url": "https://github.com/apps/github-actions",
            "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
            "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
            "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
            "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
            "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
            "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
            "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
            "type": "Bot",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4STaF8",
        "tag_name": "v2.4.31",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.31 - 2026-04-09",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-04-09T14:45:46Z",
        "updated_at": "2026-04-09T14:55:15Z",
        "published_at": "2026-04-09T14:46:40Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/392466839",
                "id": 392466839,
                "node_id": "RA_kwDOFEucDc4XZJGX",
                "name": "nautobot-2.4.31-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/octet-stream",
                "state": "uploaded",
                "size": 44729022,
                "digest": "sha256:cb80097f6d37eaf5e1612b5b1c3ca23d8baf7f5fdea1b3bec4d3de0998feb9f5",
                "download_count": 1,
                "created_at": "2026-04-09T14:55:13Z",
                "updated_at": "2026-04-09T14:55:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.31/nautobot-2.4.31-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/392466841",
                "id": 392466841,
                "node_id": "RA_kwDOFEucDc4XZJGZ",
                "name": "nautobot-2.4.31.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/x-gtar",
                "state": "uploaded",
                "size": 43398654,
                "digest": "sha256:dd868e3bb75ce76b97fef8800fd90824a779d28c83f2cf7edd612ba1d34300ed",
                "download_count": 1,
                "created_at": "2026-04-09T14:55:13Z",
                "updated_at": "2026-04-09T14:55:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.31/nautobot-2.4.31.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.31",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.31",
        "body": "## v2.4.31 (2026-04-09)\r\n\r\n### Security in v2.4.31\r\n\r\n- [#8782](https://github.com/nautobot/nautobot/issues/8782) - Updated dependency `pygments` to `2.20.0` to mitigate CVE-2026-4539. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8782](https://github.com/nautobot/nautobot/issues/8782) - Updated dependency `pymdown-extensions` to `10.21.2` to address an incompatibility with `pygments` version `2.20`. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8790](https://github.com/nautobot/nautobot/issues/8790) - Updated dependency `Django` to `~4.2.30` to mitigate CVE-2026-33033 and others.\r\n- [#8790](https://github.com/nautobot/nautobot/issues/8790) - Updated dependency `cryptography` to `~46.0.7` to mitigate CVE-2026-39892.\r\n\r\n### Added in v2.4.31\r\n\r\n- [#8689](https://github.com/nautobot/nautobot/issues/8689) - Added ARM64 variants for all published Docker images.\r\n\r\n### Fixed in v2.4.31\r\n\r\n- [#8316](https://github.com/nautobot/nautobot/issues/8316) - Fixed scheduled jobs with custom crontab schedules running once immediately (ASAP) before following their crontab schedule.\r\n- [#8824](https://github.com/nautobot/nautobot/issues/8824) - Fixed k8s job with sensitive variables.\r\n\r\n### Housekeeping in v2.4.31\r\n\r\n- [#6267](https://github.com/nautobot/nautobot/issues/6267) - Replaced third-party GitHub action in release CI.\r\n- [#8502](https://github.com/nautobot/nautobot/issues/8502) - Improved the Docker build process and tagging in CI.\r\n- [#8689](https://github.com/nautobot/nautobot/issues/8689) - Refactored GitHub CI to use multi-architecture runners for Docker image build and publish.\r\n- [#8697](https://github.com/nautobot/nautobot/issues/8697) - Fixed Docker image publication for integration branches and releases.\r\n- [#8699](https://github.com/nautobot/nautobot/issues/8699) - Fixed isolation of docker image digests by cache scope when building multiple images in a single workflow.\r\n- [#8774](https://github.com/nautobot/nautobot/issues/8774) - Updated PyPI publication to use Trusted Publisher.\r\n- [#8799](https://github.com/nautobot/nautobot/issues/8799) - Fixed state leakage between consecutive calls to `merge-image-digests` GitHub action.\r\n\r\n## Contributors\r\n* @dsoftait\r\n* @glennmatthews\r\n* @itdependsnetworks\r\n* @joewesch\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.30...v2.4.31\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8834",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/306683450",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/306683450/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/306683450/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.11",
        "id": 306683450,
        "author": {
            "login": "github-actions[bot]",
            "id": 41898282,
            "node_id": "MDM6Qm90NDE4OTgyODI=",
            "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/github-actions%5Bbot%5D",
            "html_url": "https://github.com/apps/github-actions",
            "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
            "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
            "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
            "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
            "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
            "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
            "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
            "type": "Bot",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4SR546",
        "tag_name": "v3.0.11",
        "target_commitish": "main",
        "name": "v3.0.11 - 2026-04-08",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-04-08T20:42:25Z",
        "updated_at": "2026-04-08T20:49:19Z",
        "published_at": "2026-04-08T20:42:56Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/391849159",
                "id": 391849159,
                "node_id": "RA_kwDOFEucDc4XWyTH",
                "name": "nautobot-3.0.11-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/octet-stream",
                "state": "uploaded",
                "size": 49665261,
                "digest": "sha256:3633493d1bdcde95a8b3ab2b98fd17b33480acf10f6208bc052aed85ab4aa9d9",
                "download_count": 4,
                "created_at": "2026-04-08T20:49:17Z",
                "updated_at": "2026-04-08T20:49:19Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.11/nautobot-3.0.11-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/391849158",
                "id": 391849158,
                "node_id": "RA_kwDOFEucDc4XWyTG",
                "name": "nautobot-3.0.11.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/x-gtar",
                "state": "uploaded",
                "size": 48042767,
                "digest": "sha256:5d7a2f86b699b42cc46ba11efb037940bae234be2d3b510d331d6e5240d599f3",
                "download_count": 4,
                "created_at": "2026-04-08T20:49:17Z",
                "updated_at": "2026-04-08T20:49:19Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.11/nautobot-3.0.11.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.11",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.11",
        "body": "## v3.0.11 (2026-04-08)\r\n\r\n### Security in v3.0.11\r\n\r\n- [#8768](https://github.com/nautobot/nautobot/issues/8768) - Updated dependency `Django` to `~4.2.30` to mitigate CVE-2026-33033 and others.\r\n- [#8768](https://github.com/nautobot/nautobot/issues/8768) - Updated dependency `cryptography` to `~46.0.7` to mitigate CVE-2026-39892.\r\n- [#8782](https://github.com/nautobot/nautobot/issues/8782) - Updated dependency `pygments` to `2.20.0` to mitigate CVE-2026-4539. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8782](https://github.com/nautobot/nautobot/issues/8782) - Updated dependency `pymdown-extensions` to `10.21.2` to address an incompatibility with `pygments` version `2.20`. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Added in v3.0.11\r\n\r\n- [#8432](https://github.com/nautobot/nautobot/issues/8432) - Added the capability to assign a Secrets Group to a VPN Tunnel.\r\n- [#8689](https://github.com/nautobot/nautobot/issues/8689) - Added ARM64 variants for all published Docker images.\r\n- [#8791](https://github.com/nautobot/nautobot/issues/8791) - Added VPN, VPNTunnel to searchable models.\r\n\r\n### Changed in v3.0.11\r\n\r\n- [#8388](https://github.com/nautobot/nautobot/issues/8388) - Changed rear of full-length device in rack elevation view to be clickable\r\n\r\n### Fixed in v3.0.11\r\n\r\n- [#8316](https://github.com/nautobot/nautobot/issues/8316) - Fixed scheduled jobs with custom crontab schedules running once immediately (ASAP) before following their crontab schedule.\r\n- [#8730](https://github.com/nautobot/nautobot/issues/8730) - Fixed filtering for all VPN-related list views.\r\n- [#8802](https://github.com/nautobot/nautobot/issues/8802) - Fixed config_context_schema value failing to update when syncing a config context repository.\r\n\r\n### Dependencies in v3.0.11\r\n\r\n- [#8767](https://github.com/nautobot/nautobot/issues/8767) - Updated npm dependency `mini-css-extract-plugin` to `^2.10.2`.\r\n- [#8767](https://github.com/nautobot/nautobot/issues/8767) - Updated npm dependency `postcss` to `^8.5.9`.\r\n- [#8768](https://github.com/nautobot/nautobot/issues/8768) - Updated dependency `requests` to `~2.33.1`.\r\n\r\n### Documentation in v3.0.11\r\n\r\n- [#8774](https://github.com/nautobot/nautobot/issues/8774) - Updated release process documentation to reflect available automation.\r\n\r\n### Housekeeping in v3.0.11\r\n\r\n- [#6267](https://github.com/nautobot/nautobot/issues/6267) - Replaced third-party GitHub action in release CI.\r\n- [#8502](https://github.com/nautobot/nautobot/issues/8502) - Improved the Docker build process and tagging in CI.\r\n- [#8689](https://github.com/nautobot/nautobot/issues/8689) - Refactored GitHub CI to use multi-architecture runners for Docker image build and publish.\r\n- [#8697](https://github.com/nautobot/nautobot/issues/8697) - Fixed Docker image publication for integration branches and releases.\r\n- [#8699](https://github.com/nautobot/nautobot/issues/8699) - Fixed isolation of docker image digests by cache scope when building multiple images in a single workflow.\r\n- [#8768](https://github.com/nautobot/nautobot/issues/8768) - Updated development dependency `djhtml` to `~3.0.11`.\r\n- [#8768](https://github.com/nautobot/nautobot/issues/8768) - Updated development dependency `mkdocs-redirects` to `~1.2.3`.\r\n- [#8774](https://github.com/nautobot/nautobot/issues/8774) - Updated PyPI publication to use Trusted Publisher.\r\n- [#8799](https://github.com/nautobot/nautobot/issues/8799) - Fixed state leakage between consecutive calls to `merge-image-digests` GitHub action.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @icovada\r\n* @joewesch\r\n* @nkallergis\r\n* @nopg\r\n* @renovate\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.10...v3.0.11\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8829",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/306141746",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/306141746/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/306141746/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.1.0a5",
        "id": 306141746,
        "author": {
            "login": "github-actions[bot]",
            "id": 41898282,
            "node_id": "MDM6Qm90NDE4OTgyODI=",
            "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/github-actions%5Bbot%5D",
            "html_url": "https://github.com/apps/github-actions",
            "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
            "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
            "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
            "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
            "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
            "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
            "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
            "type": "Bot",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4SP1oy",
        "tag_name": "v3.1.0a5",
        "target_commitish": "next",
        "name": "v3.1.0a5 - 2026-04-07",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2026-04-07T19:45:55Z",
        "updated_at": "2026-04-07T19:54:28Z",
        "published_at": "2026-04-07T19:46:29Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/391041939",
                "id": 391041939,
                "node_id": "RA_kwDOFEucDc4XTtOT",
                "name": "nautobot-3.1.0a5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/octet-stream",
                "state": "uploaded",
                "size": 49885824,
                "digest": "sha256:45bfbba1d2eadb190f8b8a8558ec332092233886a6c6dbdbe9b6271db10a47c3",
                "download_count": 1,
                "created_at": "2026-04-07T19:54:26Z",
                "updated_at": "2026-04-07T19:54:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a5/nautobot-3.1.0a5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/391041940",
                "id": 391041940,
                "node_id": "RA_kwDOFEucDc4XTtOU",
                "name": "nautobot-3.1.0a5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/x-gtar",
                "state": "uploaded",
                "size": 48235311,
                "digest": "sha256:9067b2a906203793128bff442f635d5a7ba7ae653d0476aee9451978635f0127",
                "download_count": 1,
                "created_at": "2026-04-07T19:54:26Z",
                "updated_at": "2026-04-07T19:54:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a5/nautobot-3.1.0a5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.1.0a5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.1.0a5",
        "body": "## v3.1.0a5 (2026-04-07)\r\n\r\n### Security in v3.1.0a5\r\n\r\n- [#8819](https://github.com/nautobot/nautobot/issues/8819) - Updated dependency `Django` to `>=5.2.13,<5.3` to mitigate CVE-2026-33033 and others.\r\n\r\n### Changed in v3.1.0a5\r\n\r\n- [#8805](https://github.com/nautobot/nautobot/issues/8805) - JobResult modal now displays link to View job results as soon as the modal loads.\r\n- [#8813](https://github.com/nautobot/nautobot/issues/8813) - Changed job form modal to replace the Run button with a disabled \"Enqueuing...\" button and spinner when the form is submitted.\r\n\r\n### Fixed in v3.1.0a5\r\n\r\n- [#8784](https://github.com/nautobot/nautobot/issues/8784) - Fixed invalid results in Static Assignment to Dynamic Groups embedded search.\r\n\r\n### Housekeeping in v3.1.0a5\r\n\r\n- [#8799](https://github.com/nautobot/nautobot/issues/8799) - Fixed state leakage between consecutive calls to `merge-image-digests` GitHub action.\r\n\r\n## Contributors\r\n* @bryanculver\r\n* @glennmatthews\r\n* @norbert-mieczkowski-codilime\r\n* @smk4664\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.1.0a4...v3.1.0a5\r\n",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/304826181",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/304826181/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/304826181/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.1.0a4",
        "id": 304826181,
        "author": {
            "login": "github-actions[bot]",
            "id": 41898282,
            "node_id": "MDM6Qm90NDE4OTgyODI=",
            "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/github-actions%5Bbot%5D",
            "html_url": "https://github.com/apps/github-actions",
            "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
            "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
            "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
            "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
            "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
            "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
            "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
            "type": "Bot",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4SK0dF",
        "tag_name": "v3.1.0a4",
        "target_commitish": "next",
        "name": "v3.1.0a4 - 2026-04-02",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2026-04-02T20:57:27Z",
        "updated_at": "2026-04-02T21:04:47Z",
        "published_at": "2026-04-02T20:58:06Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/387287615",
                "id": 387287615,
                "node_id": "RA_kwDOFEucDc4XFYo_",
                "name": "nautobot-3.1.0a4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/octet-stream",
                "state": "uploaded",
                "size": 49884401,
                "digest": "sha256:82514cd5c0b0858b398294f608b5f69ff9f11f00684c741e8f90d78e2b815521",
                "download_count": 2,
                "created_at": "2026-04-02T21:04:45Z",
                "updated_at": "2026-04-02T21:04:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a4/nautobot-3.1.0a4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/387287616",
                "id": 387287616,
                "node_id": "RA_kwDOFEucDc4XFYpA",
                "name": "nautobot-3.1.0a4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "application/x-gtar",
                "state": "uploaded",
                "size": 48234345,
                "digest": "sha256:121192f493753423b62e410deeabc57509044c2d39ee66997d6f7288ddf43c2f",
                "download_count": 2,
                "created_at": "2026-04-02T21:04:45Z",
                "updated_at": "2026-04-02T21:04:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a4/nautobot-3.1.0a4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.1.0a4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.1.0a4",
        "body": "### Security in v3.1.0a4\r\n\r\n- [#8663](https://github.com/nautobot/nautobot/issues/8663) - Updated dependency `Django` to `>=5.2.12,<5.3` to mitigate CVE-2026-25673 and CVE-2026-25674.\r\n\r\n### Added in v3.1.0a4\r\n\r\n- [#8578](https://github.com/nautobot/nautobot/issues/8578) - Added jobs to manage and clean up custom field data.\r\n- [#8612](https://github.com/nautobot/nautobot/issues/8612) - Implemented embedded object search.\r\n- [#8627](https://github.com/nautobot/nautobot/issues/8627) - Added the ability to run k8s jobs with the console log.\r\n- [#8627](https://github.com/nautobot/nautobot/issues/8627) - Added `execute_job_result` management command introduced as the shared leaf executor for both `runjob --local` and `runjob_with_job_result` flows and JobConsoleLogExecutor subprocess mode.\r\n- [#8644](https://github.com/nautobot/nautobot/issues/8644) - Added `deferred_render` flag to UI Component Framework `Component` class, allowing components to opt in to deferred rendering via HTMX to improve initial page render times.\r\n- [#8644](https://github.com/nautobot/nautobot/issues/8644) - Added deferred-rendering placeholder templates for generic `Component`, `Button`, and `Panel` classes.\r\n- [#8644](https://github.com/nautobot/nautobot/issues/8644) - Added autogenerated but overridable `component_id` hash string to each UI `Component` instance.\r\n- [#8644](https://github.com/nautobot/nautobot/issues/8644) - Enhanced `ObjectView` and `NautobotUIViewSetMixin` to support HTMX queries with `?component_id` query parameter to render a single UI `Component` on request.\r\n- [#8644](https://github.com/nautobot/nautobot/issues/8644) - Enhanced `ObjectDetailContent` to support looking up its member `Component` instances by their `component_id`.\r\n- [#8650](https://github.com/nautobot/nautobot/issues/8650) - Added `Re-Run` button to `Console Log` tab.\r\n- [#8650](https://github.com/nautobot/nautobot/issues/8650) - Added saving the same data in `JonConsoleEntry` which are stored in `JobLogEntry` when console log is enabled.\r\n- [#8650](https://github.com/nautobot/nautobot/issues/8650) - Added `sanitize` data before saving it to `JobConsoleEntry`.\r\n- [#8672](https://github.com/nautobot/nautobot/issues/8672) - Added experimental `_JobModalButton` as an ObjectDetail Component.\r\n- [#8689](https://github.com/nautobot/nautobot/issues/8689) - Added ARM64 variants for all published Docker images.\r\n- [#8693](https://github.com/nautobot/nautobot/issues/8693) - Added support for bulk adding and removing VLANs from interfaces.\r\n- [#8703](https://github.com/nautobot/nautobot/issues/8703) - Added `export_job_console_entries` action to JobResult to download console entries to plain text file.\r\n- [#8723](https://github.com/nautobot/nautobot/issues/8723) - Added a note to Job forms when the job has no user inputs to avoid rendering an empty card.\r\n- [#8738](https://github.com/nautobot/nautobot/issues/8738) - - Added `pre_delete` signal `prevent_delete_definition_with_pending_workflows` on `ApprovalWorkflowDefinition` to block deletion when pending `ApprovalWorkflow` instances exist.\r\n- [#8738](https://github.com/nautobot/nautobot/issues/8738) - - Added `pre_delete` signal `prevent_delete_stage_definition_with_pending_stages` on `ApprovalWorkflowStageDefinition` to block deletion when pending `ApprovalWorkflowStage` instances exist.\r\n- [#8738](https://github.com/nautobot/nautobot/issues/8738) - - Added `_handle_validation_error` override in `ApprovalWorkflowDefinitionUIViewSet` to display a user-friendly HTML error message with a link to the affected workflows when deletion is blocked by a pending workflow signal.\r\n- [#8750](https://github.com/nautobot/nautobot/issues/8750) - Added boolean column for JobResult table showing whether a record has a console log or not, set as default column.\r\n- [#8750](https://github.com/nautobot/nautobot/issues/8750) - Added `has_job_console_entries` filter for JobResults.\r\n- [#8750](https://github.com/nautobot/nautobot/issues/8750) - Added action buttons on JobResult list view for downloading console output and job logs.\r\n- [#8751](https://github.com/nautobot/nautobot/issues/8751) - Added logic to `object_list.html` to handle error responses when loading table contents over HTMX.\r\n\r\n### Changed in v3.1.0a4\r\n\r\n- [#7066](https://github.com/nautobot/nautobot/issues/7066) - Add support for parent-child device types to enable multi-level nested devices.\r\n- [#8627](https://github.com/nautobot/nautobot/issues/8627) - Changed `runjob --local` now delegates execution to `execute_job_result` instead `JobResult.execute_job`.\r\n- [#8627](https://github.com/nautobot/nautobot/issues/8627) - Changed `runjob_with_job_result` now delegates to `execute_job_result` directly (non-console path) or via JobConsoleLogExecutor subprocess (console path), replacing its previous execution logic.\r\n- [#8635](https://github.com/nautobot/nautobot/issues/8635) - Updated CustomField clean method to block setting both required and scope filter values\r\n- [#8635](https://github.com/nautobot/nautobot/issues/8635) - Updated UI to hide scope filter section when required is marked.\r\n- [#8644](https://github.com/nautobot/nautobot/issues/8644) - Changed Device detail view \"Power Utilization\" panel to deferred rendering via HTMX to improve page loading performance.\r\n- [#8650](https://github.com/nautobot/nautobot/issues/8650) - Report for status is also displayed and saved to `JobConsoleEntry` when console log is enabled.\r\n- [#8696](https://github.com/nautobot/nautobot/issues/8696) - Changed \"dependent object search\" modal behavior so that when first opened, an initial search query is automatically triggered.\r\n- [#8696](https://github.com/nautobot/nautobot/issues/8696) - Changed global search behavior to display only a single loading spinner while search is in progress.\r\n- [#8696](https://github.com/nautobot/nautobot/issues/8696) - Changed Location and Prefix list view behavior so that when table subtrees are toggled, the \"Showing X of Y\" pagination info is hidden.\r\n- [#8703](https://github.com/nautobot/nautobot/issues/8703) - Changed `render_on_tab_id` from `Button` class to support also a list.\r\n- [#8716](https://github.com/nautobot/nautobot/issues/8716) - Added rendering custom form templates capability to Embedded Create modal.\r\n- [#8738](https://github.com/nautobot/nautobot/issues/8738) - Changed `ApprovalWorkflow.approval_workflow_definition` on_delete behavior from CASCADE to SET_NULL.\r\n- [#8738](https://github.com/nautobot/nautobot/issues/8738) - Changed `ApprovalWorkflowStage.approval_workflow_stage_definition` on_delete behavior from CASCADE to SET_NULL.\r\n- [#8753](https://github.com/nautobot/nautobot/issues/8753) - Changed the default ordering of models in the global Search results to place Device, Location, Prefix, and IPAddress first in the results, followed by all remaining core models, followed by all app models.\r\n- [#8753](https://github.com/nautobot/nautobot/issues/8753) - Changed behavior of `LOCATION_LIST_DEFAULT_MAX_DEPTH`, `PREFIX_LIST_DEFAULT_MAX_DEPTH`, and `PREFIX_LIST_DEFAULT_CONTAINER_ONLY` settings to simply redirect unfiltered access to the Prefix and Location list views to a filtered equivalent, rather than automagically filtering the data behind the scenes.\r\n- [#8770](https://github.com/nautobot/nautobot/issues/8770) - Changed handling of `nautobot_config.py` to be passed explicitly via `--config=settings.SETTINGS_PATH` in job execution commands.\r\n- [#8777](https://github.com/nautobot/nautobot/issues/8777) - Updated the CustomField's Job name.\r\n- [#8787](https://github.com/nautobot/nautobot/issues/8787) - Replaced Bootstrap FileStyle library with standard Bootstrap 5 file input.\r\n\r\n### Deprecated in v3.1.0a4\r\n\r\n- [#8787](https://github.com/nautobot/nautobot/issues/8787) - Deprecated Bootstrap FileStyle library as a provided dependency. It is recommended to use Bootstrap 5 file input instead.\r\n\r\n### Removed in v3.1.0a4\r\n\r\n- [#8703](https://github.com/nautobot/nautobot/issues/8703) - Removed `Re-Run` button from `Console Log` tab in Job Result detail view. `Re-Run` button it's only available on `Job Result` tab.\r\n\r\n### Fixed in v3.1.0a4\r\n\r\n- [#8627](https://github.com/nautobot/nautobot/issues/8627) - Fixed missing fallback value for `last_timestamp` when no console log entries exist.\r\n- [#8649](https://github.com/nautobot/nautobot/issues/8649) - Fixed displaying Django messages after dependent objects creation.\r\n- [#8649](https://github.com/nautobot/nautobot/issues/8649) - Fixed form error message wrapping.\r\n- [#8650](https://github.com/nautobot/nautobot/issues/8650) - Fixed subprocess-based(console log) job execution incorrectly reporting SUCCESS when a job raised an exception, caused by Celery eager mode silently capturing exceptions inside EagerResult rather than propagating them to the subprocess exit code.\r\n- [#8650](https://github.com/nautobot/nautobot/issues/8650) - Fixed `task_name` when job is run immediately with console log.\r\n- [#8662](https://github.com/nautobot/nautobot/issues/8662) - Fixed component ID generation crash caused by non-string dictionary keys.\r\n- [#8693](https://github.com/nautobot/nautobot/issues/8693) - Fixed styling for two boolean columns.\r\n- [#8717](https://github.com/nautobot/nautobot/issues/8717) - Fixed bug with `_JobModalButton` modifying class instead of context.\r\n- [#8720](https://github.com/nautobot/nautobot/issues/8720) - Fixed validation of ApprovalWorkflowDefinition formset to require at least one stage on create and update.\r\n- [#8750](https://github.com/nautobot/nautobot/issues/8750) - Fixed JobResult rerun behavior to persist the \"console log\" field properly.\r\n- [#8769](https://github.com/nautobot/nautobot/issues/8769) - Fixed Git Repositories table \"Sync\" action button.\r\n- [#8773](https://github.com/nautobot/nautobot/issues/8773) - Fixed eChart title color handling between dark mode and light mode switching.\r\n\r\n### Dependencies in v3.1.0a4\r\n\r\n- [#8728](https://github.com/nautobot/nautobot/issues/8728) - Updated dependency `django-filter` to `>=25.2,<25.3`.\r\n- [#8728](https://github.com/nautobot/nautobot/issues/8728) - Updated dependency `django-silk` to `>=5.5.0,<5.6`.\r\n- [#8728](https://github.com/nautobot/nautobot/issues/8728) - Updated dependency `djangorestframework` to `>=3.17.0,<3.18`.\r\n- [#8728](https://github.com/nautobot/nautobot/issues/8728) - Updated dependency `kubernetes` to `>=35.0.0,<36`.\r\n- [#8728](https://github.com/nautobot/nautobot/issues/8728) - Updated dependency `Markdown` to `>=3.10.2,<3.11`.\r\n- [#8728](https://github.com/nautobot/nautobot/issues/8728) - Updated dependency `prometheus-client` to `>=0.24.1,<0.25`.\r\n- [#8728](https://github.com/nautobot/nautobot/issues/8728) - Updated dependency `social-auth-app-django` to `>=5.7.0,<5.8`.\r\n- [#8728](https://github.com/nautobot/nautobot/issues/8728) - Updated optional dependency `django-auth-ldap` to `>=5.3.0,<5.4`.\r\n\r\n### Documentation in v3.1.0a4\r\n\r\n- [#8692](https://github.com/nautobot/nautobot/issues/8692) - Updated the 3.1 release documentation with the new features.\r\n- [#8716](https://github.com/nautobot/nautobot/issues/8716) - Added Embedded Actions migration guide for Nautobot App developers.\r\n- [#8774](https://github.com/nautobot/nautobot/issues/8774) - Updated release process documentation to reflect available automation.\r\n\r\n### Housekeeping in v3.1.0a4\r\n\r\n- [#6267](https://github.com/nautobot/nautobot/issues/6267) - Replaced third-party GitHub action in release CI.\r\n- [#8632](https://github.com/nautobot/nautobot/issues/8632) - Improved reliability of `nautobot.ipam.tests.integration.test_prefixes` integration test cases.\r\n- [#8656](https://github.com/nautobot/nautobot/issues/8656) - Merged in latest fixes and updates from v3.0.8.\r\n- [#8689](https://github.com/nautobot/nautobot/issues/8689) - Refactored GitHub CI to use multi-architecture runners for Docker image build and publish.\r\n- [#8697](https://github.com/nautobot/nautobot/issues/8697) - Fixed Docker image publication for integration branches and releases.\r\n- [#8699](https://github.com/nautobot/nautobot/issues/8699) - Fixed isolation of docker image digests by cache scope when building multiple images in a single workflow.\r\n- [#8711](https://github.com/nautobot/nautobot/issues/8711) - Merged in latest fixes and updates from v3.0.9.\r\n- [#8719](https://github.com/nautobot/nautobot/issues/8719) - Updated development dependency `coverage` to `~7.13.5`.\r\n- [#8719](https://github.com/nautobot/nautobot/issues/8719) - Updated development dependency `django-debug-toolbar` to `~6.2.0`.\r\n- [#8719](https://github.com/nautobot/nautobot/issues/8719) - Updated development dependency `faker` to `^40.11.0`.\r\n- [#8719](https://github.com/nautobot/nautobot/issues/8719) - Updated development dependency `openapi-spec-validator` to `~0.8.4`.\r\n- [#8719](https://github.com/nautobot/nautobot/issues/8719) - Updated development dependency `rich` to `~14.3.3`.\r\n- [#8719](https://github.com/nautobot/nautobot/issues/8719) - Updated development dependency `ruff` to `~0.15.6`.\r\n- [#8719](https://github.com/nautobot/nautobot/issues/8719) - Updated development dependency `time-machine` to `~3.2.0`.\r\n- [#8719](https://github.com/nautobot/nautobot/issues/8719) - Updated development dependency `yamllint` to `~1.38.0`.\r\n- [#8721](https://github.com/nautobot/nautobot/issues/8721) - Updated documentation dependency `mkdocstrings` to `~1.0.3`.\r\n- [#8721](https://github.com/nautobot/nautobot/issues/8721) - Updated documentation dependency `mkdocstrings-python` to `~2.0.3`.\r\n- [#8721](https://github.com/nautobot/nautobot/issues/8721) - Updated development dependency `pylint` to `~4.0.5`.\r\n- [#8721](https://github.com/nautobot/nautobot/issues/8721) - Updated development dependency `pylint-django` to `~2.7.0`.\r\n- [#8721](https://github.com/nautobot/nautobot/issues/8721) - Updated development dependency `ruff` to `~0.15.7`.\r\n- [#8770](https://github.com/nautobot/nautobot/issues/8770) - Added `CelerySubprocessTestCase` utility to facilitate E2E testing of Celery tasks that spawn subprocesses.\r\n- [#8774](https://github.com/nautobot/nautobot/issues/8774) - Updated PyPI publication to use Trusted Publisher.\r\n- [#8792](https://github.com/nautobot/nautobot/issues/8792) - Merged in latest code and updates from v3.0.10.\r\n\r\n## Contributors\r\n* @Defiantearth\r\n* @bryanculver\r\n* @dsoftait\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @itdependsnetworks\r\n* @mateusz-lachowski-codilime\r\n* @norbert-mieczkowski-codilime\r\n* @nrnvgh\r\n* @smk4664\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.1.0a3...v3.1.0a4\r\n",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/303472127",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/303472127/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/303472127/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.30",
        "id": 303472127,
        "author": {
            "login": "itdependsnetworks",
            "id": 9260483,
            "node_id": "MDQ6VXNlcjkyNjA0ODM=",
            "avatar_url": "https://avatars.githubusercontent.com/u/9260483?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/itdependsnetworks",
            "html_url": "https://github.com/itdependsnetworks",
            "followers_url": "https://api.github.com/users/itdependsnetworks/followers",
            "following_url": "https://api.github.com/users/itdependsnetworks/following{/other_user}",
            "gists_url": "https://api.github.com/users/itdependsnetworks/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/itdependsnetworks/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/itdependsnetworks/subscriptions",
            "organizations_url": "https://api.github.com/users/itdependsnetworks/orgs",
            "repos_url": "https://api.github.com/users/itdependsnetworks/repos",
            "events_url": "https://api.github.com/users/itdependsnetworks/events{/privacy}",
            "received_events_url": "https://api.github.com/users/itdependsnetworks/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4SFp3_",
        "tag_name": "v2.4.30",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.30 - 2026-03-30",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-03-31T01:03:29Z",
        "updated_at": "2026-03-31T01:11:16Z",
        "published_at": "2026-03-31T01:09:45Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/385177818",
                "id": 385177818,
                "node_id": "RA_kwDOFEucDc4W9Vja",
                "name": "nautobot-2.4.30-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44726134,
                "digest": "sha256:6e790fb5eb9c5e2a071b46a0bdf508a37fef51abe9461fc6dd99346231ec5e62",
                "download_count": 4,
                "created_at": "2026-03-31T01:11:14Z",
                "updated_at": "2026-03-31T01:11:16Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.30/nautobot-2.4.30-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/385177802",
                "id": 385177802,
                "node_id": "RA_kwDOFEucDc4W9VjK",
                "name": "nautobot-2.4.30.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43393983,
                "digest": "sha256:e9a314227d5f0fbca27b3bd86b072b4876625056c3326f68695e466290a7ee7a",
                "download_count": 5,
                "created_at": "2026-03-31T01:11:12Z",
                "updated_at": "2026-03-31T01:11:14Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.30/nautobot-2.4.30.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.30",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.30",
        "body": "### Security in v2.4.30\r\n\r\n- [#8710](https://github.com/nautobot/nautobot/issues/8710) - Updated dependency `pyasn1` to `0.6.3` to mitigate CVE-2026-30922. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated dependency `cryptography` to `~46.0.6` to mitigate CVE-2026-34073.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated dependency `requests` to `~2.33.0`. to mitigate CVE-2026-25645. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8779](https://github.com/nautobot/nautobot/issues/8779) - Added missing enforcement of any configured Django password validators when managing users via the REST API (CVE-2026-34203).\r\n\r\n### Added in v2.4.30\r\n\r\n- [#8463](https://github.com/nautobot/nautobot/issues/8463) - Added default values for additional Kubernetes settings variables.\r\n- [#8736](https://github.com/nautobot/nautobot/issues/8736) - Added `clear_cache` step to `nautobot-server post_upgrade` command.\r\n\r\n### Fixed in v2.4.30\r\n\r\n- [#6111](https://github.com/nautobot/nautobot/issues/6111) - Fixed an issue where Contact and Team objects could not be looked up by name alone when creating a ContactAssociation via the REST API.\r\n- [#8547](https://github.com/nautobot/nautobot/issues/8547) - Resolves issues with the job logs DB connection. It now correctly respects `CONN_MAX_AGE` and can recover from errored connections.\r\n- [#8614](https://github.com/nautobot/nautobot/issues/8614) - Fixed a race condition when running jobs concurrently that could cause multiple threads to modify the `jobs` registry at the same time.\r\n- [#8724](https://github.com/nautobot/nautobot/issues/8724) - Fixed permission name in `JobRunScheduleButton` in `JobView`.\r\n- [#8725](https://github.com/nautobot/nautobot/issues/8725) - Fixed an issue where nested job kwargs were not being serialized correctly which caused problems when using Kubernetes jobs.\r\n- [#8748](https://github.com/nautobot/nautobot/issues/8748) - Fixed a performance issue where the `validated_save()` method was being called unnecessarily on all `VRFDeviceAssignment` objects when adding a new assignment to a VRF.\r\n\r\n### Housekeeping in v2.4.30\r\n\r\n- [#8734](https://github.com/nautobot/nautobot/issues/8734) - Changed ObjectChangeFactory to use set start and end dates for deterministic timestamps for the `time` field for tests.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @dependabot[bot] \r\n* @joewesch\r\n* @jvanderaa\r\n* @dsoftait \r\n* @progala \r\n* @itdependsnetworks \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.29...v2.4.30",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/303273810",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/303273810/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/303273810/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.10",
        "id": 303273810,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4SE5dS",
        "tag_name": "v3.0.10",
        "target_commitish": "main",
        "name": "v3.0.10 - 2026-03-30",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-03-30T16:09:52Z",
        "updated_at": "2026-03-30T16:14:20Z",
        "published_at": "2026-03-30T16:12:44Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/384864664",
                "id": 384864664,
                "node_id": "RA_kwDOFEucDc4W8JGY",
                "name": "nautobot-3.0.10-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49578878,
                "digest": "sha256:e741390fa9aec02382f40a7882b9ab7ea5004b917350d69cdf8fd0608d1218dd",
                "download_count": 6,
                "created_at": "2026-03-30T16:14:18Z",
                "updated_at": "2026-03-30T16:14:20Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.10/nautobot-3.0.10-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/384864645",
                "id": 384864645,
                "node_id": "RA_kwDOFEucDc4W8JGF",
                "name": "nautobot-3.0.10.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 47957055,
                "digest": "sha256:60c21847c8b4ce8b6614a6f4a5e50a5f3be6a6d0c2d2564a711d48ea285274b7",
                "download_count": 7,
                "created_at": "2026-03-30T16:14:16Z",
                "updated_at": "2026-03-30T16:14:18Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.10/nautobot-3.0.10.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.10",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.10",
        "body": "## What's Changed\r\n\r\n### Security in v3.0.10\r\n\r\n- [#8710](https://github.com/nautobot/nautobot/issues/8710) - Updated dependency `pyasn1` to `0.6.3` to mitigate CVE-2026-30922. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated dependency `cryptography` to `~46.0.6` to mitigate CVE-2026-34073.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated dependency `requests` to `~2.33.0`. to mitigate CVE-2026-25645. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated development npm dependency `flatted` to `~3.4.2` to mitigate CVE-2026-33228.\r\n- [#8778](https://github.com/nautobot/nautobot/issues/8778) - Added missing enforcement of any configured Django password validators when managing users via the REST API (CVE-2026-34203).\r\n\r\n### Added in v3.0.10\r\n\r\n- [#5789](https://github.com/nautobot/nautobot/issues/5789) - Added `graphql` and `webhooks` extras features to all `ComponentTemplateModel` subclasses.\r\n- [#8736](https://github.com/nautobot/nautobot/issues/8736) - Added `clear_cache` step to `nautobot-server post_upgrade` command.\r\n\r\n### Changed in v3.0.10\r\n\r\n- [#8747](https://github.com/nautobot/nautobot/issues/8747) - Job profiling results are now available for download as a file attached to the Job Result, rather than only being written to the worker's local filesystem.\r\n\r\n### Fixed in v3.0.10\r\n\r\n- [#6111](https://github.com/nautobot/nautobot/issues/6111) - Fixed an issue where Contact and Team objects could not be looked up by name alone when creating a ContactAssociation via the REST API.\r\n- [#8465](https://github.com/nautobot/nautobot/issues/8465) - Fixed an issue where cable terminations for module interfaces incorrectly displayed as \"Circuit\" instead of showing the device, type, and component fields.\r\n- [#8547](https://github.com/nautobot/nautobot/issues/8547) - Resolved issues with the job logs DB connection. It now correctly respects `CONN_MAX_AGE` and can recover from errored connections.\r\n- [#8614](https://github.com/nautobot/nautobot/issues/8614) - Fixed a race condition when running jobs concurrently that could cause multiple threads to modify the `jobs` registry at the same time.\r\n- [#8629](https://github.com/nautobot/nautobot/issues/8629) - Fixed a scenario where rendering a GitRepository related Jobs \"Scheduled Job View\" would sometimes show the Job as not installed\r\n- [#8706](https://github.com/nautobot/nautobot/issues/8706) - Fixed a bug where GraphQL queries that included related objects were not being optimized correctly since upgrading to `graphene-django` v3.x in Nautobot 3.0.0.\r\n- [#8724](https://github.com/nautobot/nautobot/issues/8724) - Fixed permission name in `JobRunScheduleButton` in `JobView`.\r\n- [#8725](https://github.com/nautobot/nautobot/issues/8725) - Fixed an issue where nested job kwargs were not being serialized correctly which caused problems when using Kubernetes jobs.\r\n- [#8748](https://github.com/nautobot/nautobot/issues/8748) - Fixed a performance issue where the `validated_save()` method was being called unnecessarily on all `VRFDeviceAssignment` objects when adding a new assignment to a VRF.\r\n- [#8759](https://github.com/nautobot/nautobot/issues/8759) - Fixed an exception related to version control branches and recursive Job execution.\r\n- [#8763](https://github.com/nautobot/nautobot/issues/8763) - Fixed `get_config_context` and ConfigContexModel annotation for subclasses of Device model\r\n\r\n### Dependencies in v3.0.10\r\n\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated dependency `celery` to `~5.6.3`.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated dependency `nh3` to `~0.3.4`.\r\n\r\n### Documentation in v3.0.10\r\n\r\n- [#4234](https://github.com/nautobot/nautobot/issues/4234) - Documented suggested method for periodic metrics files removal.\r\n\r\n### Housekeeping in v3.0.10\r\n\r\n- [#8607](https://github.com/nautobot/nautobot/issues/8607) - Refreshed indirect npm dependencies to their latest relevant versions.\r\n- [#8608](https://github.com/nautobot/nautobot/issues/8608) - Refreshed indirect dependencies to their latest valid versions.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated documentation dependency `mkdocs-gen-files` to `~0.6.1`.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated documentation dependency `mkdocs-material` to `~9.7.6`.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated documentation dependency `mkdocs-section-index` to `~0.3.11`.\r\n- [#8722](https://github.com/nautobot/nautobot/issues/8722) - Updated development dependency `coverage` to `~7.13.5`.\r\n- [#8734](https://github.com/nautobot/nautobot/issues/8734) - Changed ObjectChangeFactory to use set start and end dates for deterministic timestamps for the `time` field for tests.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @dependabot[bot] \r\n* @nkallergis \r\n* @jigangz\r\n* @joewesch\r\n* @jvanderaa\r\n* @dsoftait \r\n* @djhoward12\r\n* @progala \r\n* @renovate[bot]\r\n* @LochieP \r\n* @Kircheneer\r\n* @jordiasla \r\n\r\n## New Contributors\r\n* @jigangz made their first contribution in https://github.com/nautobot/nautobot/pull/8715\r\n* @jordiasla made their first contribution in https://github.com/nautobot/nautobot/pull/8766\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.9...v3.0.10",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8780",
        "mentions_count": 13
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/298053929",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/298053929/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/298053929/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.9",
        "id": 298053929,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Rw_Ep",
        "tag_name": "v3.0.9",
        "target_commitish": "main",
        "name": "v3.0.9 - 2026-03-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-03-17T16:32:58Z",
        "updated_at": "2026-03-17T16:37:07Z",
        "published_at": "2026-03-17T16:35:27Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/375863010",
                "id": 375863010,
                "node_id": "RA_kwDOFEucDc4WZzbi",
                "name": "nautobot-3.0.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49558935,
                "digest": "sha256:c0eaaab03169d7618d452d13139e75e54814708e5382ed47f7d0efa9cb403526",
                "download_count": 4,
                "created_at": "2026-03-17T16:37:05Z",
                "updated_at": "2026-03-17T16:37:07Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.9/nautobot-3.0.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/375862995",
                "id": 375862995,
                "node_id": "RA_kwDOFEucDc4WZzbT",
                "name": "nautobot-3.0.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 47932223,
                "digest": "sha256:5cc8aa9104286b5754b40088f984c8977eb0e568f16df53c150d5b1850a72001",
                "download_count": 4,
                "created_at": "2026-03-17T16:37:03Z",
                "updated_at": "2026-03-17T16:37:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.9/nautobot-3.0.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.9",
        "body": "## What's Changed\r\n\r\n### Security in v3.0.9\r\n\r\n- [#8663](https://github.com/nautobot/nautobot/issues/8663) - Updated dependency `Django` to `~4.2.29` to mitigate CVE-2026-25673 and CVE-2026-25674.\r\n- [#8670](https://github.com/nautobot/nautobot/issues/8670) - Updated `immutable` npm development dependency to 5.1.5 to mitigate CVE-2026-29063.\r\n- [#8670](https://github.com/nautobot/nautobot/issues/8670) - Updated `minimatch` npm development dependency to 3.1.5 to mitigate CVE-2026-27903.\r\n- [#8670](https://github.com/nautobot/nautobot/issues/8670) - Updated `serialize-javascript` npm development dependency to 7.0.4 to mitigate GHSA-5c6j-r48x-rmvq.\r\n- [#8691](https://github.com/nautobot/nautobot/issues/8691) - Updated dependency `pyjwt` to `2.12.1` to mitigate CVE-2026-32597. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Added in v3.0.9\r\n\r\n- [#8488](https://github.com/nautobot/nautobot/issues/8488) - Added the ability to configure multiple Kubernetes job manifests via file-based configuration.\r\n- [#8682](https://github.com/nautobot/nautobot/issues/8682) - Added `software_version__platform` filter to `SoftwareImageFileFilterSet` to allow filtering software image files by their software version's platform.\r\n\r\n### Fixed in v3.0.9\r\n\r\n- [#8643](https://github.com/nautobot/nautobot/issues/8643) - Fixed a bug in \"Update Group Assignment\" modal where modal title rendering is broken, after applying the fix, the close button is on the top right corner and the title is on the far left margin.\r\n- [#8657](https://github.com/nautobot/nautobot/issues/8657) - Fixed a few display regressions in the JobResult detail view.\r\n- [#8661](https://github.com/nautobot/nautobot/issues/8661) - Enhanced `import_string_optional` to avoid ignoring certain exceptions unrelated to the specific import.\r\n- [#8681](https://github.com/nautobot/nautobot/issues/8681) - Fixed an exception when viewing JobResult records with associated file outputs.\r\n\r\n### Dependencies in v3.0.9\r\n\r\n- [#8639](https://github.com/nautobot/nautobot/issues/8639) - Updated dependency `django-constance` to `~4.3.5`.\r\n- [#8670](https://github.com/nautobot/nautobot/issues/8670) - Updated `Node.js` UI dependency to version 24.\r\n- [#8670](https://github.com/nautobot/nautobot/issues/8670) - Updated `npm` UI dependency to `>=11.9.0`.\r\n\r\n### Housekeeping in v3.0.9\r\n\r\n- [#8638](https://github.com/nautobot/nautobot/issues/8638) - Updated development npm dependency `@eslint/js` and `eslint` to `^9.39.4`.\r\n- [#8638](https://github.com/nautobot/nautobot/issues/8638) - Updated development npm dependency `mini-css-extract-plugin` to `^2.10.1`.\r\n- [#8638](https://github.com/nautobot/nautobot/issues/8638) - Updated development npm dependency `postcss` to `^8.5.8`.\r\n- [#8638](https://github.com/nautobot/nautobot/issues/8638) - Updated development npm dependency `webpack` to `^5.105.4`.\r\n- [#8639](https://github.com/nautobot/nautobot/issues/8639) - Updated documentation dependency `mkdocs-material` to `~9.7.5`.\r\n- [#8639](https://github.com/nautobot/nautobot/issues/8639) - Updated development dependency `pymarkdownlnt` to `~0.9.36`.\r\n- [#8670](https://github.com/nautobot/nautobot/issues/8670) - Updated development npm dependency `copy-webpack-plugin` to `^14.0.0`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @joewesch\r\n* @psyberck\r\n* @Pkawa-ntc \r\n\r\n## New Contributors\r\n* @psyberck made their first contribution in https://github.com/nautobot/nautobot/pull/8648\r\n* @Pkawa-ntc made their first contribution in https://github.com/nautobot/nautobot/pull/8682\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.8...v3.0.9",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8707",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/298055655",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/298055655/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/298055655/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.29",
        "id": 298055655,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Rw_fn",
        "tag_name": "v2.4.29",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.29 - 2026-03-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-03-17T16:37:35Z",
        "updated_at": "2026-03-17T16:42:59Z",
        "published_at": "2026-03-17T16:39:00Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/375865591",
                "id": 375865591,
                "node_id": "RA_kwDOFEucDc4WZ0D3",
                "name": "nautobot-2.4.29-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44716097,
                "digest": "sha256:6c0f9ef627151442e7142ff8eeb1351c550474b576df65f925735d3580d7bf77",
                "download_count": 4,
                "created_at": "2026-03-17T16:42:57Z",
                "updated_at": "2026-03-17T16:42:59Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.29/nautobot-2.4.29-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/375865570",
                "id": 375865570,
                "node_id": "RA_kwDOFEucDc4WZ0Di",
                "name": "nautobot-2.4.29.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43378028,
                "digest": "sha256:a54513204da72b32e9076e51e56b2ecbcba5269797412b5ac2d19ee4cca8e8b0",
                "download_count": 6,
                "created_at": "2026-03-17T16:42:54Z",
                "updated_at": "2026-03-17T16:42:56Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.29/nautobot-2.4.29.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.29",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.29",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.29\r\n\r\n- [#8663](https://github.com/nautobot/nautobot/issues/8663) - Updated dependency `Django` to `~4.2.29` to mitigate CVE-2026-25673 and CVE-2026-25674.\r\n- [#8691](https://github.com/nautobot/nautobot/issues/8691) - Updated dependency `pyjwt` to `2.12.1` to mitigate CVE-2026-32597. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Added in v2.4.29\r\n\r\n- [#8488](https://github.com/nautobot/nautobot/issues/8488) - Added the ability to configure multiple Kubernetes job manifests via file-based configuration.\r\n\r\n### Fixed in v2.4.29\r\n\r\n- [#8473](https://github.com/nautobot/nautobot/issues/8473) - Fixed issue of not using the setting `KUBERNETES_JOB_POD_NAME`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews \r\n* @joewesch\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.28...v2.4.29",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/292120668",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/292120668/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/292120668/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.8",
        "id": 292120668,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4RaWhc",
        "tag_name": "v3.0.8",
        "target_commitish": "main",
        "name": "v3.0.8 - 2026-03-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-03-02T15:18:08Z",
        "updated_at": "2026-03-02T15:22:14Z",
        "published_at": "2026-03-02T15:20:32Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/365378147",
                "id": 365378147,
                "node_id": "RA_kwDOFEucDc4Vxzpj",
                "name": "nautobot-3.0.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49553663,
                "digest": "sha256:a01fa26417ddc5c62218667154c37ce29b12c79619efea23dd533e6abc191659",
                "download_count": 5,
                "created_at": "2026-03-02T15:22:12Z",
                "updated_at": "2026-03-02T15:22:14Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.8/nautobot-3.0.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/365378112",
                "id": 365378112,
                "node_id": "RA_kwDOFEucDc4VxzpA",
                "name": "nautobot-3.0.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 47927606,
                "digest": "sha256:f2869e2d733b47dd186ba8f3df3cef26cdbbb82f56081add02205e75b938cc47",
                "download_count": 5,
                "created_at": "2026-03-02T15:22:10Z",
                "updated_at": "2026-03-02T15:22:11Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.8/nautobot-3.0.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.8",
        "body": "## What's Changed\r\n\r\n### Added in v3.0.8\r\n\r\n- [#8575](https://github.com/nautobot/nautobot/issues/8575) - Added `HYPERLINKED_OBJECT` option to `ObjectTextPanel.RenderOptions` to automatically render the value as a hyperlink to the related object.\r\n\r\n### Changed in v3.0.8\r\n\r\n- [#8519](https://github.com/nautobot/nautobot/issues/8519) - Improved rendering of cable traces, particularly for black and white colored cables.\r\n\r\n### Fixed in v3.0.8\r\n\r\n- [#8537](https://github.com/nautobot/nautobot/issues/8537) - Fixed sorting on multiple tables.\r\n- [#8560](https://github.com/nautobot/nautobot/issues/8560) - Fixed an issue where the `JobResult` status was not being set to `STARTED` when a job was run synchronously.\r\n- [#8571](https://github.com/nautobot/nautobot/issues/8571) - Fixed filtering on multiple tables.\r\n- [#8589](https://github.com/nautobot/nautobot/issues/8589) - Fixed the ability to provide your own CACHES client to allow `health_check` to pass.\r\n- [#8642](https://github.com/nautobot/nautobot/issues/8642) - Fixed issue where `islower` was not called as a function in the conditional.\r\n- [#8642](https://github.com/nautobot/nautobot/issues/8642) - Added missing f-string to the raised error message.\r\n- [#8646](https://github.com/nautobot/nautobot/issues/8646) - Fixed scheduled jobs incorrectly running after their associated approval workflow was denied.\r\n\r\n### Dependencies in v3.0.8\r\n\r\n- [#8556](https://github.com/nautobot/nautobot/issues/8556) - Updated dependency `django-tree-queries` to `~0.23.1`.\r\n- [#8556](https://github.com/nautobot/nautobot/issues/8556) - Updated dependency `nh3` to `~0.3.3`.\r\n\r\n### Housekeeping in v3.0.8\r\n\r\n- [#7729](https://github.com/nautobot/nautobot/issues/7729) - Refactored JobResult model related UI views to use `UI component framework`.\r\n- [#8555](https://github.com/nautobot/nautobot/issues/8555) - Updated development npm dependency `@eslint/js` to `^9.39.3`.\r\n- [#8555](https://github.com/nautobot/nautobot/issues/8555) - Updated development npm dependency `autoprefixer` to `^10.4.26`.\r\n- [#8555](https://github.com/nautobot/nautobot/issues/8555) - Updated development npm dependency `css-loader` to `^7.1.4`.\r\n- [#8555](https://github.com/nautobot/nautobot/issues/8555) - Updated development npm dependency `eslint` to `^9.39.3`.\r\n- [#8555](https://github.com/nautobot/nautobot/issues/8555) - Updated development npm dependency `postcss-loader` to `^8.2.1`.\r\n- [#8555](https://github.com/nautobot/nautobot/issues/8555) - Updated development npm dependency `webpack` to `^5.105.2`.\r\n- [#8556](https://github.com/nautobot/nautobot/issues/8556) - Updated documentation dependency `mkdocs-material` to `~9.7.3`.\r\n- [#8590](https://github.com/nautobot/nautobot/issues/8590) - Updated `deploy-sandbox` action for release CI.\r\n- [#8613](https://github.com/nautobot/nautobot/issues/8613) - Fixed `ui_build` container not running successfully in a fresh development environment.\r\n- [#8613](https://github.com/nautobot/nautobot/issues/8613) - Changed `invoke npm` and related tasks to not install `node_modules` into the local filesystem.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @joewesch\r\n* @sirisha-bode\r\n* @jeffkala\r\n* @itdependsnetworks\r\n* @dsoftait\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.7...v3.0.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8652",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/292121460",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/292121460/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/292121460/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.28",
        "id": 292121460,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4RaWt0",
        "tag_name": "v2.4.28",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.28 - 2026-03-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-03-02T15:21:09Z",
        "updated_at": "2026-03-02T15:24:17Z",
        "published_at": "2026-03-02T15:22:32Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/365379764",
                "id": 365379764,
                "node_id": "RA_kwDOFEucDc4Vx0C0",
                "name": "nautobot-2.4.28-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44711526,
                "digest": "sha256:a87c4249829136c437724d8ba443c1fa3cb43816e320b00f9619f6462ab77af8",
                "download_count": 5,
                "created_at": "2026-03-02T15:24:15Z",
                "updated_at": "2026-03-02T15:24:17Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.28/nautobot-2.4.28-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/365379744",
                "id": 365379744,
                "node_id": "RA_kwDOFEucDc4Vx0Cg",
                "name": "nautobot-2.4.28.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43373696,
                "digest": "sha256:89f14edb4e963ade9eb71b9ba838a1706801bfd599e5f330af7993343d41cab6",
                "download_count": 4,
                "created_at": "2026-03-02T15:24:13Z",
                "updated_at": "2026-03-02T15:24:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.28/nautobot-2.4.28.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.28",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.28",
        "body": "## What's Changed\r\n\r\n### Fixed in v2.4.28\r\n\r\n- [#8519](https://github.com/nautobot/nautobot/issues/8519) - Fixed cable color display in dark mode to ensure cable colors render closer to the configured value.\r\n- [#8537](https://github.com/nautobot/nautobot/issues/8537) - Fixed sorting on multiple tables.\r\n- [#8571](https://github.com/nautobot/nautobot/issues/8571) - Fixed filtering on multiple tables.\r\n\r\n### Housekeeping in v2.4.28\r\n\r\n- [#8591](https://github.com/nautobot/nautobot/issues/8591) - Updated `deploy-sandbox` action for release CI.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @nrnvgh\r\n* @itdependsnetworks\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.27...v2.4.28",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/290522321",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/290522321/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/290522321/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.1.0a3",
        "id": 290522321,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4RUQTR",
        "tag_name": "v3.1.0a3",
        "target_commitish": "next",
        "name": "v3.1.0a3 - 2026-02-25",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2026-02-25T19:05:58Z",
        "updated_at": "2026-02-25T19:11:16Z",
        "published_at": "2026-02-25T19:09:27Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/362317999",
                "id": 362317999,
                "node_id": "RA_kwDOFEucDc4VmIiv",
                "name": "nautobot-3.1.0a3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49683803,
                "digest": "sha256:ab535ea7e3ac4af7014b5257d586d327adf8aae2c3f8ff4f90afe314c5659850",
                "download_count": 3,
                "created_at": "2026-02-25T19:11:14Z",
                "updated_at": "2026-02-25T19:11:16Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a3/nautobot-3.1.0a3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/362317976",
                "id": 362317976,
                "node_id": "RA_kwDOFEucDc4VmIiY",
                "name": "nautobot-3.1.0a3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48053214,
                "digest": "sha256:19c740cba24f3cd7646c5253feaa63785020960a9e64b528fec4818315cdd5a2",
                "download_count": 1,
                "created_at": "2026-02-25T19:11:11Z",
                "updated_at": "2026-02-25T19:11:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a3/nautobot-3.1.0a3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.1.0a3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.1.0a3",
        "body": "## What's Changed\r\n\r\n### Added in v3.1.0a3\r\n\r\n- [#2516](https://github.com/nautobot/nautobot/issues/2516) - Enhanced Prefix list view to support dynamic expansion/collapsing of prefix subtrees.\r\n- [#2516](https://github.com/nautobot/nautobot/issues/2516) - Added support for `prefix_and_descendants` filter on Prefix list view.\r\n- [#2516](https://github.com/nautobot/nautobot/issues/2516) - Added option for `ButtonsColumn` in tables to be passed an explicit `return_url` in the render context in order to override its default behavior.\r\n- [#2516](https://github.com/nautobot/nautobot/issues/2516) - Added `Prefix.next_sibling` property.\r\n- [#2516](https://github.com/nautobot/nautobot/issues/2516) - Added `/ipam/prefixes/<uuid>/children/` URL endpoint in support of enhanced Prefix list view functionality.\r\n- [#8516](https://github.com/nautobot/nautobot/issues/8516) - Added dynamically rendered scope filter fields to the Custom Field edit form.\r\n- [#8524](https://github.com/nautobot/nautobot/issues/8524) - Added `Console Log` tab to Job Result detial view.\r\n- [#8524](https://github.com/nautobot/nautobot/issues/8524) - Added `job_console_entries` action to `JobResultUIViewSet` to stream output from SQL into the UI in realtime.\r\n- [#8524](https://github.com/nautobot/nautobot/issues/8524) - Modified `runjob_with_job_result.py` command to `run_job` instead of `execute_job`.\r\n- [#8524](https://github.com/nautobot/nautobot/issues/8524) - Improved `job_result.js` and `job_level_filtering.js`.\r\n- [#8546](https://github.com/nautobot/nautobot/issues/8546) - Implemented embedded create and search buttons accompanying dynamic model choice fields.\r\n- [#8551](https://github.com/nautobot/nautobot/issues/8551) - Added `max_depth` filter support to the Location list view.\r\n- [#8551](https://github.com/nautobot/nautobot/issues/8551) - Added `max_depth` filter to the Location basic filter form.\r\n- [#8551](https://github.com/nautobot/nautobot/issues/8551) - Added support for the setting/Constance variable `LOCATION_LIST_DEFAULT_MAX_DEPTH`. Configuring this may improve the performance of the Location list view at scale.\r\n- [#8559](https://github.com/nautobot/nautobot/issues/8559) - Implemented embedded object creation modal.\r\n- [#8562](https://github.com/nautobot/nautobot/issues/8562) - Added tables of \"Sibling Prefixes\" and \"Child Prefixes\" to Prefix detail view.\r\n- [#8562](https://github.com/nautobot/nautobot/issues/8562) - Added `TreeModel.siblings` convenience property.\r\n- [#8562](https://github.com/nautobot/nautobot/issues/8562) - Added table of \"Sibling Locations\" to Location detail view.\r\n- [#8571](https://github.com/nautobot/nautobot/issues/8571) - Added testing of `test_filter_form_fields_are_working` to catch more filter form issues.\r\n- [#8579](https://github.com/nautobot/nautobot/issues/8579) - Added role-based precedence for `console_log` (Author -> Admin -> Runner).\r\n- [#8579](https://github.com/nautobot/nautobot/issues/8579) - Added the ability to run scheduled jobs with the console log.\r\n\r\n### Changed in v3.1.0a3\r\n\r\n- [#8527](https://github.com/nautobot/nautobot/issues/8527) - Changed behavior of `PREFIX_LIST_DEFAULT_MAX_DEPTH` and `max_depth` Prefix filter to start at 1 instead of 0.\r\n- [#8527](https://github.com/nautobot/nautobot/issues/8527) - Changed behavior of table paginator widget to automatically return to page 1 when changing the `per_page` selection.\r\n- [#8527](https://github.com/nautobot/nautobot/issues/8527) - Renamed Prefix table column \"Children\" to \"Descendants\" for improved clarity.\r\n- [#8527](https://github.com/nautobot/nautobot/issues/8527) - Changed hierarchy rendering in Prefix table to more clearly indicate parent, child, and sibling relations.\r\n- [#8537](https://github.com/nautobot/nautobot/issues/8537) - Updated testing of `test_model_properties_as_table_columns_are_not_orderable` to catch more sortable issues.\r\n- [#8551](https://github.com/nautobot/nautobot/issues/8551) - Changed Location list view behavior so that filtering by the filters `max_depth` and/or `subtree` (in the absence of any other filters) will not prevent the indentation of locations based on their nesting depth.\r\n- [#8562](https://github.com/nautobot/nautobot/issues/8562) - Renamed \"Child Prefixes\" tab on Prefix detail view to \"Descendant Prefixes\" for clarity.\r\n- [#8562](https://github.com/nautobot/nautobot/issues/8562) - Renamed \"Parent Prefixes\" table on Prefix detail view to \"Ancestor Prefixes\" for clarity.\r\n- [#8564](https://github.com/nautobot/nautobot/issues/8564) - Updated the logic that determines which nav menu item is marked \"active\" to always prefer exact URL matches before falling back to introspecting the view and model.\r\n- [#8579](https://github.com/nautobot/nautobot/issues/8579) - Job run form split into 3 separate sections: `Job Data`, `Job Execution` and `Job Schedule Type`.\r\n- [#8579](https://github.com/nautobot/nautobot/issues/8579) - `Job.as_form()` no longer includes execution fields (`_profile`, `_console_log`, `_job_queue`, `_ignore_singleton_lock`). These have been moved to the new `Job.as_execution_form()`.\r\n- [#8579](https://github.com/nautobot/nautobot/issues/8579) - `Job.as_execution_form()` added as a new classmethod returning a standalone `JobExecutionForm` populated with execution-related fields only.\r\n- [#8579](https://github.com/nautobot/nautobot/issues/8579) - `JobRunView.post()` updated to validate `job_form`, `job_execution_form`, and `schedule_form` independently. Execution fields are now read from `job_execution_form.cleaned_data` and job data fields from `job_form.cleaned_data`.\r\n- [#8579](https://github.com/nautobot/nautobot/issues/8579) - Template `nautobot/extras/templates/extras/job.html` updated to render three separate cards: `Job Data`, `Job Execution`, and `Job Schedule Type`.\r\n- [#8596](https://github.com/nautobot/nautobot/issues/8596) - Changed behavior of model edit forms to hide custom fields that are out of scope.\r\n- [#8596](https://github.com/nautobot/nautobot/issues/8596) - Improved unit test coverage for scope filter HTMX endpoint.\r\n- [#8609](https://github.com/nautobot/nautobot/issues/8609) - Made embedded object create form footer sticky.\r\n- [#8617](https://github.com/nautobot/nautobot/issues/8617) - Enhanced Location list view tree rendering to follow the same pattern as Prefix list view tree.\r\n- [#8622](https://github.com/nautobot/nautobot/issues/8622) - Restored support for `DATE_FORMAT`, `DATETIME_FORMAT`, `SHORT_DATE_FORMAT`, `SHORT_DATETIME_FORMAT`, and `TIME_FORMAT` settings.\r\n- [#8622](https://github.com/nautobot/nautobot/issues/8622) - Removed user-defined locale/language selection feature (previously introduced for 3.1 by #8417).\r\n- [#8628](https://github.com/nautobot/nautobot/issues/8628) - Changed \"global\" search to load results incrementally with HTMX in order to avoid timing out when searching a large amount of data.\r\n\r\n### Fixed in v3.1.0a3\r\n\r\n- [#8527](https://github.com/nautobot/nautobot/issues/8527) - Fixed `per_page` list view dropdown not working in Chrome and similar browsers.\r\n- [#8537](https://github.com/nautobot/nautobot/issues/8537), [#8571](https://github.com/nautobot/nautobot/issues/8571) - Fixed sorting on multiple tables.\r\n- [#8562](https://github.com/nautobot/nautobot/issues/8562) - Fixed a warning appearing in Firefox when updating table configuration in a view that contained multiple instances of the same table class.\r\n- [#8570](https://github.com/nautobot/nautobot/issues/8570) - Fixed an exception under Django 5.2 when bulk-editing or bulk-deleting certain types of records.\r\n- [#8597](https://github.com/nautobot/nautobot/issues/8597) - Fixed initial HTMX loading of Job list view (table or tiles).\r\n- [#8597](https://github.com/nautobot/nautobot/issues/8597) - Fixed rendering of \"Descendants\" column in Prefix table.\r\n- [#8597](https://github.com/nautobot/nautobot/issues/8597) - Fixed duplicated messages when applying invalid filters to object list views.\r\n- [#8602](https://github.com/nautobot/nautobot/issues/8602) - Fixed ECharts not resizing with their container.\r\n- [#8617](https://github.com/nautobot/nautobot/issues/8617) - Reduced the number of database queries needed to render Location tree view.\r\n\r\n### Dependencies in v3.1.0a3\r\n\r\n- [#8563](https://github.com/nautobot/nautobot/issues/8563) - Added declared support for Python 3.14.\r\n\r\n### Documentation in v3.1.0a3\r\n\r\n- [#8527](https://github.com/nautobot/nautobot/issues/8527) - Improved developer documentation and release note content about HTMX.\r\n\r\n### Housekeeping in v3.1.0a3\r\n\r\n- [#8532](https://github.com/nautobot/nautobot/issues/8532) - Changed the Python API for the UI components to allow default values to be set directly as class attributes.\r\n- [#8602](https://github.com/nautobot/nautobot/issues/8602) - Decoupled the EChartsPanel and EChartsBase classes.\r\n- [#8602](https://github.com/nautobot/nautobot/issues/8602) - Removed the redundant `permission` attribute from the EChartsBase class.\r\n- [#8622](https://github.com/nautobot/nautobot/issues/8622) - Removed leftover test case for `social-auth-app-django` patch.\r\n\r\n## Contributors\r\n\r\n* @nrnvgh \r\n* @joewesch\r\n* @joaquinalmora\r\n* @itdependsnetworks\r\n* @Kircheneer\r\n* @jvanderaa\r\n* @dsoftait \r\n* @norbert-mieczkowski-codilime\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @mateusz-lachowski-codilime\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.1.0a2...v3.1.0a3",
        "mentions_count": 11
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/287310063",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/287310063/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/287310063/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.7",
        "id": 287310063,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4RIADv",
        "tag_name": "v3.0.7",
        "target_commitish": "main",
        "name": "v3.0.7 - 2026-02-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-02-17T15:37:11Z",
        "updated_at": "2026-02-17T15:44:32Z",
        "published_at": "2026-02-17T15:39:25Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/357404075",
                "id": 357404075,
                "node_id": "RA_kwDOFEucDc4VTY2r",
                "name": "nautobot-3.0.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49544971,
                "digest": "sha256:81d21772852e0deb90091b460cee2b9e86ffcdd3c97835cb5e9e6f50a064c078",
                "download_count": 10,
                "created_at": "2026-02-17T15:41:22Z",
                "updated_at": "2026-02-17T15:41:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.7/nautobot-3.0.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/357404067",
                "id": 357404067,
                "node_id": "RA_kwDOFEucDc4VTY2j",
                "name": "nautobot-3.0.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 47923311,
                "digest": "sha256:04b537bbc0802052e270096a0a9dd9cd32e38381dbba2b23d04e940f1290919c",
                "download_count": 13,
                "created_at": "2026-02-17T15:41:20Z",
                "updated_at": "2026-02-17T15:41:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.7/nautobot-3.0.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.7",
        "body": "## What's Changed\r\n\r\n### Security in v3.0.7\r\n\r\n- [#8504](https://github.com/nautobot/nautobot/issues/8504) - Updated dependency `django` to `~4.2.28` to mitigate several CVEs including CVE-2026-1287 and CVE-2026-1312.\r\n- [#8539](https://github.com/nautobot/nautobot/issues/8539) - Updated dependency `cryptography` to `46.0.5` to mitigate CVE-2026-26007.\r\n- [#8544](https://github.com/nautobot/nautobot/issues/8544) - Updated dependency `pillow` to `^12.1.1` to mitigate CVE-2026-25990.\r\n\r\n### Added in v3.0.7\r\n\r\n- [#8484](https://github.com/nautobot/nautobot/issues/8484) - Added polish type variants to CS connector in PortTypeChoices\r\n- [#8511](https://github.com/nautobot/nautobot/issues/8511) - Added missing bulk edit buttons to the IP Addresses and Child Prefix tabs on the Prefix detail view.\r\n- [#8530](https://github.com/nautobot/nautobot/issues/8530) - Added `Status` field to `InterfaceRedundancyGroupTable`.\r\n\r\n### Fixed in v3.0.7\r\n\r\n- [#8267](https://github.com/nautobot/nautobot/issues/8267) - Fixed missing stack traces for HTTP 500 errors in the REST API when using structlog.\r\n- [#8319](https://github.com/nautobot/nautobot/issues/8319) - Fixed the creation of Interface Dynamic Groups by Duplex, 802.1Q Mode and Tagged/Untagged VLANs.\r\n- [#8479](https://github.com/nautobot/nautobot/issues/8479) - Fixed missing text on the trace action button.\r\n- [#8500](https://github.com/nautobot/nautobot/issues/8500) - Fixed `KeyError` when `CACHES` setting does not include an explicit `TIMEOUT` key.\r\n- [#8522](https://github.com/nautobot/nautobot/issues/8522) - Adjusted the foreground color contrast threshold used for color labels to improve readability.\r\n- [#8530](https://github.com/nautobot/nautobot/issues/8530) - Fixed FilterForm definitions of `InterfaceRedundancyGroupFilterForm` and `VirtualDeviceContextFilterForm`.\r\n- [#8550](https://github.com/nautobot/nautobot/issues/8550) - Fixed \"Rack\" selection on basic filter form for Cables being incorrectly mapped to `rack=<UUID>` instead of `rack=<name>`.\r\n- [#8550](https://github.com/nautobot/nautobot/issues/8550) - Fixed Cable filterset support for `rack=null` and `tenant=null` filters.\r\n\r\n### Dependencies in v3.0.7\r\n\r\n- [#8475](https://github.com/nautobot/nautobot/issues/8475) - Updated npm dependency `jquery-ui` to `^1.14.2`.\r\n- [#8476](https://github.com/nautobot/nautobot/issues/8476) - Updated dependency `mysqlclient` to `~2.2.8`.\r\n- [#8476](https://github.com/nautobot/nautobot/issues/8476) - Updated dependency `social-auth-core` to `~4.8.5`.\r\n\r\n### Housekeeping in v3.0.7\r\n\r\n- [#8475](https://github.com/nautobot/nautobot/issues/8475) - Updated development npm dependency `autoprefixer` to `^10.4.24`.\r\n- [#8475](https://github.com/nautobot/nautobot/issues/8475) - Updated development npm dependency `mini-css-extract-plugin` to `^2.10.0`.\r\n- [#8475](https://github.com/nautobot/nautobot/issues/8475) - Updated development npm dependency `prettier` to `^3.8.1`.\r\n- [#8475](https://github.com/nautobot/nautobot/issues/8475) - Updated development npm dependency `sass-loader` to `^16.0.7`.\r\n- [#8476](https://github.com/nautobot/nautobot/issues/8476) - Updated development dependency `coverage` to `~7.13.4`.\r\n- [#8508](https://github.com/nautobot/nautobot/issues/8508) - Changed many invoke commands to accept multiple services as arguments.\r\n- [#8534](https://github.com/nautobot/nautobot/issues/8534) - Removed AWX reference from Nautobot Cloud documentation.\r\n- [#8550](https://github.com/nautobot/nautobot/issues/8550) - Added test method `assertQuerySetEqualAndNotEmpty`, which for now is equivalent to `assertQuerysetEqualAndNotEmpty` (note differing capitalization). The latter name will be deprecated in Nautobot 3.1 and eventually removed in a future release.\r\n\r\n## Contributors\r\n\r\n* @itdependsnetworks\r\n* @dsoftait\r\n* @nrnvgh\r\n* @joewesch\r\n* @joaquinalmora \r\n* @Kircheneer\r\n* @jvanderaa\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.6...v3.0.7",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8583",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/287311742",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/287311742/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/287311742/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.27",
        "id": 287311742,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4RIAd-",
        "tag_name": "v2.4.27",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.27 - 2026-02-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-02-17T15:42:24Z",
        "updated_at": "2026-02-17T15:45:36Z",
        "published_at": "2026-02-17T15:44:01Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/357405915",
                "id": 357405915,
                "node_id": "RA_kwDOFEucDc4VTZTb",
                "name": "nautobot-2.4.27-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44710722,
                "digest": "sha256:6138d5abcd63aae30d0f1b407473bf598b442f580b080b868a8fa4977c91fb1b",
                "download_count": 5,
                "created_at": "2026-02-17T15:45:34Z",
                "updated_at": "2026-02-17T15:45:36Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.27/nautobot-2.4.27-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/357405897",
                "id": 357405897,
                "node_id": "RA_kwDOFEucDc4VTZTJ",
                "name": "nautobot-2.4.27.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43373266,
                "digest": "sha256:a2b80a4827d4d22678741cb71579d2ea1af5da214b38956d74a59b55005061d5",
                "download_count": 7,
                "created_at": "2026-02-17T15:45:32Z",
                "updated_at": "2026-02-17T15:45:34Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.27/nautobot-2.4.27.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.27",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.27",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.27\r\n\r\n- [#8504](https://github.com/nautobot/nautobot/issues/8504) - Updated dependency `django` to `~4.2.28` to mitigate several CVEs including CVE-2026-1287 and CVE-2026-1312.\r\n- [#8539](https://github.com/nautobot/nautobot/issues/8539) - Updated dependency `cryptography` to `46.0.5` to mitigate CVE-2026-26007.\r\n- [#8544](https://github.com/nautobot/nautobot/issues/8544) - Updated dependency `pillow` to `^12.1.1` to mitigate CVE-2026-25990.\r\n\r\n### Added in v2.4.27\r\n\r\n- [#8484](https://github.com/nautobot/nautobot/issues/8484) - Added polish type variants to CS connector in PortTypeChoices\r\n- [#8511](https://github.com/nautobot/nautobot/issues/8511) - Added missing bulk edit buttons to the IP Addresses and Child Prefix tabs on the Prefix detail view.\r\n- [#8525](https://github.com/nautobot/nautobot/issues/8525) - Added missing table action buttons to the Child Prefixes and IP Addresses tabs on the respective Prefix detail view tabs.\r\n\r\n### Fixed in v2.4.27\r\n\r\n- [#8267](https://github.com/nautobot/nautobot/issues/8267) - Fixed missing stack traces for HTTP 500 errors in the REST API when using structlog.\r\n- [#8319](https://github.com/nautobot/nautobot/issues/8319) - Fixed the creation of Interface Dynamic Groups by Duplex, 802.1Q Mode and Tagged/Untagged VLANs.\r\n- [#8453](https://github.com/nautobot/nautobot/issues/8453) - Fixed an issue where a link on a Prefix's Child Prefixes tab was not working as expected.\r\n- [#8478](https://github.com/nautobot/nautobot/issues/8478) - Fixed an issue where a link on a Prefix's IP Addresses tab was not working as expected.\r\n- [#8500](https://github.com/nautobot/nautobot/issues/8500) - Fixed `KeyError` when `CACHES` setting does not include an explicit `TIMEOUT` key.\r\n- [#8522](https://github.com/nautobot/nautobot/issues/8522) - Adjusted the foreground color contrast threshold used for color labels to improve readability.\r\n\r\n### Dependencies in v2.4.27\r\n\r\n- [#8462](https://github.com/nautobot/nautobot/issues/8462) - Updated dependency `celery` to ~5.6.2.\r\n- [#8476](https://github.com/nautobot/nautobot/issues/8476) - Updated dependency `mysqlclient` to `~2.2.8`.\r\n- [#8476](https://github.com/nautobot/nautobot/issues/8476) - Updated dependency `social-auth-core` to `~4.8.5`.\r\n\r\n### Housekeeping in v2.4.27\r\n\r\n- [#8476](https://github.com/nautobot/nautobot/issues/8476) - Updated development dependency `coverage` to `~7.13.4`.\r\n- [#8508](https://github.com/nautobot/nautobot/issues/8508) - Changed many invoke commands to accept multiple services as arguments.\r\n\r\n## Contributors\r\n\r\n* @itdependsnetworks\r\n* @glennmatthews\r\n* @joewesch\r\n* @nrnvgh\r\n* @joaquinalmora \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.26...v2.4.27",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8585",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/285262624",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/285262624/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/285262624/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.1.0a2",
        "id": 285262624,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4RAMMg",
        "tag_name": "v3.1.0a2",
        "target_commitish": "next",
        "name": "v3.1.0a2 - 2026-02-11",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2026-02-11T13:50:11Z",
        "updated_at": "2026-02-11T13:53:33Z",
        "published_at": "2026-02-11T13:51:48Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/354216386",
                "id": 354216386,
                "node_id": "RA_kwDOFEucDc4VHOnC",
                "name": "nautobot-3.1.0a2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49644665,
                "digest": "sha256:d613a7f6a553831072406850d1d411991e8fe460a33b85cfc74662f954427079",
                "download_count": 3,
                "created_at": "2026-02-11T13:53:31Z",
                "updated_at": "2026-02-11T13:53:33Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a2/nautobot-3.1.0a2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/354216380",
                "id": 354216380,
                "node_id": "RA_kwDOFEucDc4VHOm8",
                "name": "nautobot-3.1.0a2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48020836,
                "digest": "sha256:77a16aa8bc847aabb4c6451857d538426155e90b21e06bbf20b20da66e19f423",
                "download_count": 2,
                "created_at": "2026-02-11T13:53:29Z",
                "updated_at": "2026-02-11T13:53:30Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a2/nautobot-3.1.0a2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.1.0a2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.1.0a2",
        "body": "## What's Changed\r\n\r\n\r\n### Housekeeping in v3.1.0a2\r\n\r\n- [#8538](https://github.com/nautobot/nautobot/issues/8538) - Fixed missing end of conditional in release CI.\r\n\r\n## Contributors\r\n\r\n* @bryanculver\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.1.0a1...v3.1.0a2",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/285016778",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/285016778/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/285016778/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.1.0a1",
        "id": 285016778,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Q_QLK",
        "tag_name": "v3.1.0a1",
        "target_commitish": "next",
        "name": "v3.1.0a1 - 2026-02-10",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2026-02-10T14:32:53Z",
        "updated_at": "2026-02-10T21:34:47Z",
        "published_at": "2026-02-10T21:33:13Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/353831021",
                "id": 353831021,
                "node_id": "RA_kwDOFEucDc4VFwht",
                "name": "nautobot-3.1.0a1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49644522,
                "digest": "sha256:39dfbc8bbeb84dd47b44126ef93ec9f81a686f1acf95453945f4e3ab995a361b",
                "download_count": 2,
                "created_at": "2026-02-10T21:34:45Z",
                "updated_at": "2026-02-10T21:34:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a1/nautobot-3.1.0a1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/353831013",
                "id": 353831013,
                "node_id": "RA_kwDOFEucDc4VFwhl",
                "name": "nautobot-3.1.0a1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48020570,
                "digest": "sha256:77d8fbb990693482209ef3aa7a041789caf23156be985ab32797f7584dbc446a",
                "download_count": 3,
                "created_at": "2026-02-10T21:34:43Z",
                "updated_at": "2026-02-10T21:34:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.1.0a1/nautobot-3.1.0a1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.1.0a1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.1.0a1",
        "body": "## What's Changed\r\n\r\n### Breaking Changes in v3.1.0a1\r\n\r\n- [#694](https://github.com/nautobot/nautobot/issues/694) - Removed support for settings variables `DEFAULT_FILE_STORAGE`, `JOB_FILE_IO_STORAGE`, `STATICFILES_STORAGE`, `STORAGE_BACKEND`, and `STORAGE_CONFIG`. These are all now incorporated into the Django standard `STORAGES` settings variable.\r\n- [#8459](https://github.com/nautobot/nautobot/issues/8459) - Dropped support for PostgreSQL versions 12 and 13 as a consequence of upgrading to Django 5.2.\r\n\r\n### Security in v3.1.0a1\r\n\r\n- [#8459](https://github.com/nautobot/nautobot/issues/8459) - Updated dependency `social-auth-app-django` to 5.6.0 in order to pick up the official fix for `CVE-2025-61783`, and removed the local patch previously implemented in Nautobot for that vulnerability.\r\n- [#8507](https://github.com/nautobot/nautobot/issues/8507) - Updated dependency `django` to `>=5.2.11,<5.3` to mitigate several CVEs including CVE-2026-1287 and CVE-2026-1312.\r\n\r\n### Added in v3.1.0a1\r\n\r\n- [#7018](https://github.com/nautobot/nautobot/issues/7018) - Added support for per-user configuration of preferred language/locale through the User Preferences UI. Currently this configuration applies primarily to date/time display in the UI.\r\n- [#7957](https://github.com/nautobot/nautobot/issues/7957) - Added `port_type` field to Interface and InterfaceTemplate models to track physical connector type.\r\n- [#8410](https://github.com/nautobot/nautobot/issues/8410) - Added `scope_filter` field to `CustomField` model.\r\n- [#8427](https://github.com/nautobot/nautobot/issues/8427) - Added checks for `CustomField.scope_filter` to show/hide custom fields on object detail view based on scope filters.\r\n- [#8457](https://github.com/nautobot/nautobot/issues/8457) - Implemented table column config drag and drop.\r\n- [#8458](https://github.com/nautobot/nautobot/issues/8458) - Added initial support for running jobs in a subprocess and asynchronously capturing console output.\r\n- [#8461](https://github.com/nautobot/nautobot/issues/8461) - Implemented table column config saved ordering on unselected columns.\r\n- [#8468](https://github.com/nautobot/nautobot/issues/8468) - Added `max_depth` filter support to the Prefix list view.\r\n- [#8468](https://github.com/nautobot/nautobot/issues/8468) - Added `max_depth` and `namespace` filters to the Prefix basic filter form.\r\n- [#8468](https://github.com/nautobot/nautobot/issues/8468) - Added support for the settings/Constance variables `PREFIX_LIST_DEFAULT_MAX_DEPTH` and `PREFIX_LIST_DEFAULT_CONTAINER_ONLY`. Configuring either or both of these may improve the performance of the Prefix list view at scale.\r\n- [#8498](https://github.com/nautobot/nautobot/issues/8498) - Added saving output (stdout/stderr) line by line to `JobConsoleEntry` table.\r\n\r\n### Changed in v3.1.0a1\r\n\r\n- [#8446](https://github.com/nautobot/nautobot/issues/8446) - Changed object list views to render in two passes with HTMX, improving initial load times.\r\n- [#8446](https://github.com/nautobot/nautobot/issues/8446) - Changed rendering of table sorting indicator arrows from client-side to server-side rendering.\r\n- [#8450](https://github.com/nautobot/nautobot/issues/8450) - Converted table column config to checkboxes.\r\n- [#8468](https://github.com/nautobot/nautobot/issues/8468) - Enhanced the \"Max Length\" dropdown in the Prefix list view to allow deselecting a previously selected value.\r\n- [#8468](https://github.com/nautobot/nautobot/issues/8468) - Changed Prefix list view behavior so that filtering by the filters `ip_version`, `max_depth`, `namespace`, `prefix_length__lte`, and/or `type=container` (in the absence of any other filters) will not prevent the indentation of prefixes based on their nesting depth.\r\n\r\n### Deprecated in v3.1.0a1\r\n\r\n- [#8459](https://github.com/nautobot/nautobot/issues/8459) - Following upstream Django patterns, the test helper method `assertQuerysetEqualAndNotEmpty` has been renamed to `assertQuerySetEqualAndNotEmpty`. The old method name is still available but is deprecated and will be removed in a future release.\r\n\r\n### Removed in v3.1.0a1\r\n\r\n- [#7018](https://github.com/nautobot/nautobot/issues/7018) - As a consequence of upgrading to Django 5.2, necessarily removed support for customizing date/time display in the UI through `nautobot_config.py` settings `DATE_FORMAT`, `DATETIME_FORMAT`, `TIME_FORMAT`, `SHORT_DATE_FORMAT`, and `SHORT_DATETIME_FORMAT`. Formatting of date/time information is now controlled by the application-level `LANGUAGE_CODE` setting and/or by per-user language preferences.\r\n\r\n### Fixed in v3.1.0a1\r\n\r\n- [#7018](https://github.com/nautobot/nautobot/issues/7018) - Fixed rendering of \"last sync time\" and \"last synced by\" columns in Git Repository list view.\r\n- [#8315](https://github.com/nautobot/nautobot/issues/8315) - Fixed bug in Interface template causing emdash to not be used for Port Type if no value was set.\r\n- [#8349](https://github.com/nautobot/nautobot/issues/8349) - Fixed unit tests failing after upgrading to Django 5.2.\r\n- [#8422](https://github.com/nautobot/nautobot/issues/8422) - Fixed incompatibilities with `django_celery_beat` v2.8.1.\r\n- [#8468](https://github.com/nautobot/nautobot/issues/8468) - Fixed dynamic-group filter calculation for cases where the filter is using `exclude=True`.\r\n- [#8479](https://github.com/nautobot/nautobot/issues/8479) - Fixed missing text on the trace action button.\r\n\r\n### Dependencies in v3.1.0a1\r\n\r\n- [#8459](https://github.com/nautobot/nautobot/issues/8459) - Updated dependency `django` to `>=5.2.10,<5.3`.\r\n- [#8459](https://github.com/nautobot/nautobot/issues/8459) - Updated dependency `django-celery-beat` to `==2.8.1` for compatibility with Django 5.2; pinned to an exact version due to Nautobot's use of some internals of this dependency.\r\n\r\n### Housekeeping in v3.1.0a1\r\n\r\n- [#8327](https://github.com/nautobot/nautobot/issues/8327) - Updated `pyproject.toml` to be compatible with PEP 621.\r\n- [#8327](https://github.com/nautobot/nautobot/issues/8327) - Updated Nautobot development environment to require Poetry 2.x.\r\n- [#8377](https://github.com/nautobot/nautobot/issues/8377) - Fixed a bad merge in `pyproject.toml`.\r\n- [#8502](https://github.com/nautobot/nautobot/issues/8502) - Improved the Docker build process and tagging in CI.\r\n\r\n## Contributors\r\n\r\n* @bryanculver\r\n* @glennmatthews\r\n* @nrnvgh\r\n* @dsoftait\r\n* @mateusz-lachowski-codilime\r\n* @norbert-mieczkowski-codilime\r\n* @itdependsnetworks\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.6...v3.1.0a1",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/282195294",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/282195294/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/282195294/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.6",
        "id": 282195294,
        "author": {
            "login": "dsoftait",
            "id": 117984547,
            "node_id": "U_kgDOBwhNIw",
            "avatar_url": "https://avatars.githubusercontent.com/u/117984547?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/dsoftait",
            "html_url": "https://github.com/dsoftait",
            "followers_url": "https://api.github.com/users/dsoftait/followers",
            "following_url": "https://api.github.com/users/dsoftait/following{/other_user}",
            "gists_url": "https://api.github.com/users/dsoftait/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/dsoftait/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/dsoftait/subscriptions",
            "organizations_url": "https://api.github.com/users/dsoftait/orgs",
            "repos_url": "https://api.github.com/users/dsoftait/repos",
            "events_url": "https://api.github.com/users/dsoftait/events{/privacy}",
            "received_events_url": "https://api.github.com/users/dsoftait/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Q0fVe",
        "tag_name": "v3.0.6",
        "target_commitish": "main",
        "name": "v3.0.6 - 2026-02-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-02-02T14:01:18Z",
        "updated_at": "2026-02-02T14:12:49Z",
        "published_at": "2026-02-02T14:11:21Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/349574265",
                "id": 349574265,
                "node_id": "RA_kwDOFEucDc4U1hR5",
                "name": "nautobot-3.0.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49565115,
                "digest": "sha256:549ff36967679b687a7ac7337f639166b4e562f27fc012780171c2c14a649a90",
                "download_count": 8,
                "created_at": "2026-02-02T14:12:47Z",
                "updated_at": "2026-02-02T14:12:49Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.6/nautobot-3.0.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/349574259",
                "id": 349574259,
                "node_id": "RA_kwDOFEucDc4U1hRz",
                "name": "nautobot-3.0.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 47942792,
                "digest": "sha256:903f2145fc58ddcc1cd107f090d9e56567ab64aff6b04814114a5717a7b8c616",
                "download_count": 10,
                "created_at": "2026-02-02T14:12:45Z",
                "updated_at": "2026-02-02T14:12:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.6/nautobot-3.0.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.6",
        "body": "## What's Changed\r\n### Security in v3.0.6\r\n\r\n- [#8428](https://github.com/nautobot/nautobot/issues/8428) - Updated dependency `pyasn1` to `0.6.2` to mitigate CVE-2026-23490. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Added in v3.0.6\r\n\r\n- [#8416](https://github.com/nautobot/nautobot/issues/8416) - Enhanced the `q` filter for the `VirtualServer` model to include searching by port, device name, and load balancer pool name.\r\n- [#8443](https://github.com/nautobot/nautobot/issues/8443) - Added `change_context` and `change_context_detail` to ObjectChange FilterSet.\r\n\r\n### Fixed in v3.0.6\r\n\r\n- [#6935](https://github.com/nautobot/nautobot/issues/6935) - Fixed ModularComponentCreateForm forms not showing description field.\r\n- [#6935](https://github.com/nautobot/nautobot/issues/6935) - Fixed ComponentCreateView views not applying the specified Tags.\r\n- [#7214](https://github.com/nautobot/nautobot/issues/7214) - Fixed logic in the 'tests' invoke task to respect 'cache_test_fixtures: False' in 'invoke.yml'.\r\n- [#7762](https://github.com/nautobot/nautobot/issues/7762) - Added a reentrant lock to the `import_modules_privately()` method to address a race condition in multithreaded code.\r\n- [#8404](https://github.com/nautobot/nautobot/issues/8404) - Fixed the ability to re-run a Kubernetes Job.\r\n- [#8407](https://github.com/nautobot/nautobot/issues/8407) - Fixed issue adding new devices due to Attribute Error 'NoneType' object has no attribute 'location'.\r\n- [#8441](https://github.com/nautobot/nautobot/issues/8441) - Fixed issues where Custom Fields and Relationships were not being updated when editing a Module or Rack via the UI.\r\n- [#8444](https://github.com/nautobot/nautobot/issues/8444) - Fixed an exception in `get_item()` when rendering the response to a CSRF failure.\r\n- [#8447](https://github.com/nautobot/nautobot/issues/8447) - Fixed an issue where the VLAN toggle was not working on the interface edit form.\r\n- [#8463](https://github.com/nautobot/nautobot/issues/8463) - Fixed default values of Kubernetes related settings.\r\n- [#8473](https://github.com/nautobot/nautobot/issues/8473) - Fixed issue of not using the setting `KUBERNETES_JOB_POD_NAME`.\r\n\r\n### Dependencies in v3.0.6\r\n\r\n- [#8400](https://github.com/nautobot/nautobot/issues/8400) - Updated dependency `cryptography` to `~46.0.4`.\r\n- [#8462](https://github.com/nautobot/nautobot/issues/8462) - Updated dependency Celery to ~5.6.2.\r\n\r\n### Documentation in v3.0.6\r\n\r\n- [#8421](https://github.com/nautobot/nautobot/issues/8421) - Fixed some headings and whitespace in the Google OAuth2 documentation.\r\n- [#8448](https://github.com/nautobot/nautobot/issues/8448) - Provide clarification regarding our dependency, CVE, and backport maintenance policies.\r\n\r\n### Housekeeping in v3.0.6\r\n\r\n- [#8192](https://github.com/nautobot/nautobot/issues/8192) - Updated Nautobot documentation screenshots to reflect the latest UI.\r\n- [#8399](https://github.com/nautobot/nautobot/issues/8399) - Updated NPM development dependency `css-loader` to `^7.1.3`.\r\n- [#8399](https://github.com/nautobot/nautobot/issues/8399) - Updated NPM development dependency `sass` to `^1.97.3`.\r\n- [#8400](https://github.com/nautobot/nautobot/issues/8400) - Updated development dependency `pymarkdownlnt` to `~0.9.35`.\r\n- [#8400](https://github.com/nautobot/nautobot/issues/8400) - Updated development dependency `ruff` to `~0.14.14`.\r\n- [#8400](https://github.com/nautobot/nautobot/issues/8400) - Updated development dependency `coverage` to `~7.13.2`.\r\n- [#8441](https://github.com/nautobot/nautobot/issues/8441) - Enhanced `NautobotTestCaseMixin.model_to_dict()` and `NautobotTestCaseMixin.assertInstanceEqual()` to correctly account for and validate custom-field and relationship data.\r\n\r\n## Contributors\r\n* @mateusz-lachowski-codilime\r\n* @glennmatthews\r\n* @itdependsnetworks\r\n* @gneville-ot\r\n* @joewesch\r\n* @bryanculver\r\n* @Philip-Walsh\r\n* @gertzakis\r\n* @renovate[bot]\r\n* @dependabot[bot]\r\n* @pszulczewski\r\n* @qduk\r\n* @icovada\r\n* @Pavan-183\r\n* @dsoftait\r\n\r\n## New Contributors\r\n* @gneville-ot made their first contribution in https://github.com/nautobot/nautobot/pull/8440\r\n* @Philip-Walsh made their first contribution in https://github.com/nautobot/nautobot/pull/8445\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.5...v3.0.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8492",
        "mentions_count": 15
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/282278301",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/282278301/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/282278301/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.26",
        "id": 282278301,
        "author": {
            "login": "dsoftait",
            "id": 117984547,
            "node_id": "U_kgDOBwhNIw",
            "avatar_url": "https://avatars.githubusercontent.com/u/117984547?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/dsoftait",
            "html_url": "https://github.com/dsoftait",
            "followers_url": "https://api.github.com/users/dsoftait/followers",
            "following_url": "https://api.github.com/users/dsoftait/following{/other_user}",
            "gists_url": "https://api.github.com/users/dsoftait/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/dsoftait/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/dsoftait/subscriptions",
            "organizations_url": "https://api.github.com/users/dsoftait/orgs",
            "repos_url": "https://api.github.com/users/dsoftait/repos",
            "events_url": "https://api.github.com/users/dsoftait/events{/privacy}",
            "received_events_url": "https://api.github.com/users/dsoftait/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Q0zmd",
        "tag_name": "v2.4.26",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.26 - 2026-02-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-02-02T17:18:22Z",
        "updated_at": "2026-02-03T08:35:10Z",
        "published_at": "2026-02-02T17:23:21Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/349654570",
                "id": 349654570,
                "node_id": "RA_kwDOFEucDc4U104q",
                "name": "nautobot-2.4.26-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44706082,
                "digest": "sha256:02ce95973b99cb6242eedd05f28edfd2f188609feac6d17a5ff58e89cbeb8901",
                "download_count": 4,
                "created_at": "2026-02-02T17:24:51Z",
                "updated_at": "2026-02-02T17:24:53Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.26/nautobot-2.4.26-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/349654546",
                "id": 349654546,
                "node_id": "RA_kwDOFEucDc4U104S",
                "name": "nautobot-2.4.26.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43371411,
                "digest": "sha256:c480432c003a585b7fcc25fd54131fcf89972d41a9fa0282036c02ef16da81c7",
                "download_count": 6,
                "created_at": "2026-02-02T17:24:49Z",
                "updated_at": "2026-02-02T17:24:51Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.26/nautobot-2.4.26.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.26",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.26",
        "body": "## What's Changed\r\n### Security in v2.4.26\r\n\r\n- [#8428](https://github.com/nautobot/nautobot/issues/8428) - Updated dependency `pyasn1` to `0.6.2` to mitigate CVE-2026-23490. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Fixed in v2.4.26\r\n\r\n- [#7076](https://github.com/nautobot/nautobot/issues/7076) - Fixed various font sizes that are used by the admin interface.\r\n- [#8404](https://github.com/nautobot/nautobot/issues/8404) - Fixed the ability to re-run a Kubernetes Job.\r\n\r\n## Contributors\r\n* @joewesch\r\n* @itdependsnetworks\r\n* @glennmatthews\r\n* @dsoftait\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.25...v2.4.26",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8495",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/277902536",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/277902536/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/277902536/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.5",
        "id": 277902536,
        "author": {
            "login": "mateusz-lachowski-codilime",
            "id": 182650692,
            "node_id": "U_kgDOCuMHRA",
            "avatar_url": "https://avatars.githubusercontent.com/u/182650692?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/mateusz-lachowski-codilime",
            "html_url": "https://github.com/mateusz-lachowski-codilime",
            "followers_url": "https://api.github.com/users/mateusz-lachowski-codilime/followers",
            "following_url": "https://api.github.com/users/mateusz-lachowski-codilime/following{/other_user}",
            "gists_url": "https://api.github.com/users/mateusz-lachowski-codilime/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/mateusz-lachowski-codilime/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/mateusz-lachowski-codilime/subscriptions",
            "organizations_url": "https://api.github.com/users/mateusz-lachowski-codilime/orgs",
            "repos_url": "https://api.github.com/users/mateusz-lachowski-codilime/repos",
            "events_url": "https://api.github.com/users/mateusz-lachowski-codilime/events{/privacy}",
            "received_events_url": "https://api.github.com/users/mateusz-lachowski-codilime/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4QkHTI",
        "tag_name": "v3.0.5",
        "target_commitish": "main",
        "name": "v3.0.5 - 2026-01-19",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-01-19T12:00:49Z",
        "updated_at": "2026-01-19T12:09:41Z",
        "published_at": "2026-01-19T12:08:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/342734084",
                "id": 342734084,
                "node_id": "RA_kwDOFEucDc4UbbUE",
                "name": "nautobot-3.0.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49386293,
                "digest": "sha256:7b25aad146660aaeaaa1fcd924c626d4b509d3a5913caf85f4fc5b7b58021d00",
                "download_count": 9,
                "created_at": "2026-01-19T12:09:40Z",
                "updated_at": "2026-01-19T12:09:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.5/nautobot-3.0.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/342734050",
                "id": 342734050,
                "node_id": "RA_kwDOFEucDc4UbbTi",
                "name": "nautobot-3.0.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 47768550,
                "digest": "sha256:907619ca2dc823c28685d6ce2fbc877158943febf65f652cdc98c70730fa1561",
                "download_count": 11,
                "created_at": "2026-01-19T12:09:37Z",
                "updated_at": "2026-01-19T12:09:39Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.5/nautobot-3.0.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.5",
        "body": "## What's Changed\r\n\r\n### Added in v3.0.5\r\n\r\n- [#8375](https://github.com/nautobot/nautobot/issues/8375) - Added `prefix_exact` filter and updated REST API filter documentation.\r\n\r\n### Changed in v3.0.5\r\n\r\n- [#8406](https://github.com/nautobot/nautobot/issues/8406) - Use graceful degradation in case of media failure. When a dependency fails to load, show an error alert instead of navigating to a separate page.\r\n\r\n### Fixed in v3.0.5\r\n\r\n- [#8396](https://github.com/nautobot/nautobot/issues/8396) - Improved rendering of custom-field values in list views, including adding support for rendering of JSON and Markdown custom fields.\r\n- [#8396](https://github.com/nautobot/nautobot/issues/8396) - Improved rendering of null/empty values in various list view tables.\r\n\r\n### Documentation in v3.0.5\r\n\r\n- [#8374](https://github.com/nautobot/nautobot/issues/8374) - Added a note to the documentation recommending upgrading to latest 2.4.x before upgrading to 3.x.\r\n- [#8420](https://github.com/nautobot/nautobot/issues/8420) - Added documentation providing a basic overview of how to upgrade and migrate to a new major version of PostgreSQL.\r\n- [#8420](https://github.com/nautobot/nautobot/issues/8420) - Added a note to document that support for PostgreSQL versions 12.x and 13.x will be dropped in Nautobot 3.1, and a recommendation to update before upgrading Nautobot.\r\n\r\n### Housekeeping in v3.0.5\r\n\r\n- [#8412](https://github.com/nautobot/nautobot/issues/8412) - Synced release notes from ltm-2.4 to develop branch.\r\n\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @itdependsnetworks\r\n* @norbert-mieczkowski-codilime\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.4...v3.0.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8436",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/276052075",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/276052075/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/276052075/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.4",
        "id": 276052075,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4QdDhr",
        "tag_name": "v3.0.4",
        "target_commitish": "main",
        "name": "v3.0.4 - 2026-01-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-01-12T15:10:57Z",
        "updated_at": "2026-01-12T15:14:31Z",
        "published_at": "2026-01-12T15:12:50Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/339512089",
                "id": 339512089,
                "node_id": "RA_kwDOFEucDc4UPIsZ",
                "name": "nautobot-3.0.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49326041,
                "digest": "sha256:85456ad9d0d564a79e6477d0f6880d3fcd088b6b9a8ee8754e07c52b0915ee15",
                "download_count": 9,
                "created_at": "2026-01-12T15:14:29Z",
                "updated_at": "2026-01-12T15:14:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.4/nautobot-3.0.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/339512074",
                "id": 339512074,
                "node_id": "RA_kwDOFEucDc4UPIsK",
                "name": "nautobot-3.0.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 47711728,
                "digest": "sha256:b22f3bcefe23b85261db29f99f7004e5e85a125eadb67e1f396acb03192d54b5",
                "download_count": 8,
                "created_at": "2026-01-12T15:14:25Z",
                "updated_at": "2026-01-12T15:14:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.4/nautobot-3.0.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.4",
        "body": "## What's Changed\r\n\r\n### Security in v3.0.4\r\n\r\n- [#8383](https://github.com/nautobot/nautobot/issues/8383) - Updated dependency `pynacl` to `1.6.2` to mitigate CVE-2025-69277. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8395](https://github.com/nautobot/nautobot/issues/8395) - Updated dependency `urllib3` to `2.6.3` to mitigate CVE-2026-21441. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Added in v3.0.4\r\n\r\n- [#8387](https://github.com/nautobot/nautobot/issues/8387) - Added permissions lockout in time-travel mode.\r\n- [#8401](https://github.com/nautobot/nautobot/issues/8401) - Added `Service` to the list of models registered with Nautobot's search backend.\r\n\r\n### Changed in v3.0.4\r\n\r\n- [#8385](https://github.com/nautobot/nautobot/issues/8385) - Marked `Job`, `JobLogEntry`, `JobQueue`, `JobQueueAssignment`, `JobResult`, and `ScheduledJob` models as non-version-controlled as it is not appropriate to branch the data they contain.\r\n\r\n### Fixed in v3.0.4\r\n\r\n- [#8356](https://github.com/nautobot/nautobot/issues/8356) - Added description column to Device Redundancy Group table.\r\n- [#8362](https://github.com/nautobot/nautobot/issues/8362) - Fixed an IntegrityError when using kubernetes workers to run jobs.\r\n- [#8364](https://github.com/nautobot/nautobot/issues/8364) - Fixed Cable basic filter form to filter by device name instead of device UUID.\r\n- [#8365](https://github.com/nautobot/nautobot/issues/8365) - Fixed inconsistent empty state for Tenant column and Device redundancy group policy.\r\n- [#8365](https://github.com/nautobot/nautobot/issues/8365) - Fixed Platform network driver select to match UI.\r\n- [#8372](https://github.com/nautobot/nautobot/issues/8372) - Fixed the import/export dropdown behavior in CustomField, ComputedField, GraphQL and DynamicGroup table views.\r\n- [#8380](https://github.com/nautobot/nautobot/issues/8380) - Restored (still-deprecated) support for explicit configuration of `STATICFILES_STORAGE` and `DEFAULT_FILE_STORAGE` in `nautobot_config.py` that was inadvertently broken when deprecating these settings in the previous release.\r\n- [#8385](https://github.com/nautobot/nautobot/issues/8385) - Added logic to handle the case of change logging for changes to a non-version-controlled model while a non-default branch is checked out via the Version Control app.\r\n\r\n### Dependencies in v3.0.4\r\n\r\n- [#8370](https://github.com/nautobot/nautobot/issues/8370) - Updated dependency `celery` to `~5.6.1`.\r\n- [#8370](https://github.com/nautobot/nautobot/issues/8370) - Updated dependency `django-health-check` to `~3.20.8`.\r\n- [#8370](https://github.com/nautobot/nautobot/issues/8370) - Updated dependency `GitPython` to `~3.1.46`.\r\n\r\n### Documentation in v3.0.4\r\n\r\n- [#8361](https://github.com/nautobot/nautobot/issues/8361) - Updated step `Sync Changes into next` in `nautobot/docs/development/core/release-checklist.md`.\r\n- [#8366](https://github.com/nautobot/nautobot/issues/8366) - Updated VLAN and VLAN groups documentation to include 3.0 screenshots.\r\n- [#8368](https://github.com/nautobot/nautobot/issues/8368) - Updated tenants documentation to include 3.0 screenshots.\r\n- [#8380](https://github.com/nautobot/nautobot/issues/8380) - Updated documentation for the deprecated `STORAGE_BACKEND` and `STORAGE_CONFIG` settings to clarify their migration path.\r\n\r\n### Housekeeping in v3.0.4\r\n\r\n- [#8369](https://github.com/nautobot/nautobot/issues/8369) - Updated development npm dependency `prettier` to `^3.7.4`.\r\n- [#8369](https://github.com/nautobot/nautobot/issues/8369) - Updated development npm dependency `sass` to `^1.97.1`.\r\n- [#8369](https://github.com/nautobot/nautobot/issues/8369) - Updated development npm dependency `webpack` to `^5.104.1`.\r\n- [#8370](https://github.com/nautobot/nautobot/issues/8370) - Updated development dependency `pymarkdownlnt` to `~0.9.34`.\r\n- [#8370](https://github.com/nautobot/nautobot/issues/8370) - Updated development dependency `coverage` to `~7.13.1`.\r\n\r\n## Contributors\r\n\r\n* @dsoftait\r\n* @mateusz-lachowski-codilime\r\n* @icovada\r\n* @renovate[bot]\r\n* @qduk\r\n* @Sridevi-NTC\r\n* @glennmatthews \r\n* @dependabot[bot]\r\n* @SoulSniper-V2\r\n* @joewesch\r\n* @nkallergis \r\n\r\n## New Contributors\r\n* @SoulSniper-V2 made their first contribution in https://github.com/nautobot/nautobot/pull/8381\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.3...v3.0.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8408",
        "mentions_count": 11
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/275602119",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/275602119/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/275602119/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.25",
        "id": 275602119,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4QbVrH",
        "tag_name": "v2.4.25",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.25 - 2026-01-09",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2026-01-09T19:58:41Z",
        "updated_at": "2026-01-09T20:02:47Z",
        "published_at": "2026-01-09T20:01:05Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/338484159",
                "id": 338484159,
                "node_id": "RA_kwDOFEucDc4ULNu_",
                "name": "nautobot-2.4.25-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44705430,
                "digest": "sha256:76754f60b7e5c9e93bccbdab2db868e80051691b1eb2fb2931cd9cd0e7fb5621",
                "download_count": 6,
                "created_at": "2026-01-09T20:02:45Z",
                "updated_at": "2026-01-09T20:02:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.25/nautobot-2.4.25-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/338484151",
                "id": 338484151,
                "node_id": "RA_kwDOFEucDc4ULNu3",
                "name": "nautobot-2.4.25.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43371007,
                "digest": "sha256:2d6aa7ff2b58aa4edab0e51a72a241f7cc842a1d56c79c0174262da617c1d539",
                "download_count": 5,
                "created_at": "2026-01-09T20:02:43Z",
                "updated_at": "2026-01-09T20:02:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.25/nautobot-2.4.25.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.25",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.25",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.25\r\n\r\n- [#8383](https://github.com/nautobot/nautobot/issues/8383) - Updated dependency `pynacl` to `1.6.2` to mitigate CVE-2025-69277. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n- [#8395](https://github.com/nautobot/nautobot/issues/8395) - Updated dependency `urllib3` to `2.6.3` to mitigate CVE-2026-21441. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Added in v2.4.25\r\n\r\n- [#7252](https://github.com/nautobot/nautobot/issues/7252) - Added `NAUTOBOT_KUBERNETES_JOB_MANIFEST` environment variable to configure `KUBERNETES_JOB_MANIFEST` setting.\r\n\r\n### Changed in v2.4.25\r\n\r\n- [#8350](https://github.com/nautobot/nautobot/issues/8350) - Use graceful degradation in case of media failure. When a dependency fails to load, show an error alert instead of navigating to a separate page.\r\n\r\n### Fixed in v2.4.25\r\n\r\n- [#8340](https://github.com/nautobot/nautobot/issues/8340) - Fixed incorrect default timeout values for cache entries intended to be long-lived when not explicitly invalidated.\r\n- [#8362](https://github.com/nautobot/nautobot/issues/8362) - Fixed an IntegrityError when using kubernetes workers to run jobs.\r\n- [#8380](https://github.com/nautobot/nautobot/issues/8380) - Restored (still-deprecated) support for explicit configuration of `STATICFILES_STORAGE` and `DEFAULT_FILE_STORAGE` in `nautobot_config.py` that was inadvertently broken when deprecating these settings in the previous release.\r\n\r\n### Documentation in v2.4.25\r\n\r\n- [#8380](https://github.com/nautobot/nautobot/issues/8380) - Updated documentation for the deprecated `STORAGE_BACKEND` and `STORAGE_CONFIG` settings to clarify their migration path.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @joewesch\r\n* @norbert-mieczkowski-codilime\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.24...v2.4.25",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8405",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/272178646",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/272178646/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/272178646/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.3",
        "id": 272178646,
        "author": {
            "login": "dsoftait",
            "id": 117984547,
            "node_id": "U_kgDOBwhNIw",
            "avatar_url": "https://avatars.githubusercontent.com/u/117984547?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/dsoftait",
            "html_url": "https://github.com/dsoftait",
            "followers_url": "https://api.github.com/users/dsoftait/followers",
            "following_url": "https://api.github.com/users/dsoftait/following{/other_user}",
            "gists_url": "https://api.github.com/users/dsoftait/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/dsoftait/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/dsoftait/subscriptions",
            "organizations_url": "https://api.github.com/users/dsoftait/orgs",
            "repos_url": "https://api.github.com/users/dsoftait/repos",
            "events_url": "https://api.github.com/users/dsoftait/events{/privacy}",
            "received_events_url": "https://api.github.com/users/dsoftait/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4QOR3W",
        "tag_name": "v3.0.3",
        "target_commitish": "main",
        "name": "v3.0.3 - 2025-12-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-12-22T11:14:51Z",
        "updated_at": "2025-12-22T11:28:49Z",
        "published_at": "2025-12-22T11:27:10Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/331704806",
                "id": 331704806,
                "node_id": "RA_kwDOFEucDc4TxWnm",
                "name": "nautobot-3.0.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49145780,
                "digest": "sha256:9d5bde2508e2c717dcc39c097e4ee0081c6a4e8768468ac9a5b8a512e934f411",
                "download_count": 6,
                "created_at": "2025-12-22T11:28:47Z",
                "updated_at": "2025-12-22T11:28:49Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.3/nautobot-3.0.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/331704791",
                "id": 331704791,
                "node_id": "RA_kwDOFEucDc4TxWnX",
                "name": "nautobot-3.0.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 47534098,
                "digest": "sha256:bbc86eb55b590472d2df82a2385a80872d977be9c60cd6f60722ed30762e0ae3",
                "download_count": 5,
                "created_at": "2025-12-22T11:28:45Z",
                "updated_at": "2025-12-22T11:28:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.3/nautobot-3.0.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.3",
        "body": "## What's Changed\r\n\r\n### Added in v3.0.3\r\n\r\n- [#694](https://github.com/nautobot/nautobot/issues/694) - Added support for defining Job input/output file storage via Django's `STORAGES` setting. This deprecates the separate settings `DEFAULT_FILE_STORAGE`, `JOB_FILE_IO_STORAGE`, `STATICFILES_STORAGE`, `STORAGE_BACKEND`, and `STORAGE_CONFIG`, which will be removed entirely in Nautobot v3.1.\r\n- [#7252](https://github.com/nautobot/nautobot/issues/7252) - Added `NAUTOBOT_KUBERNETES_JOB_MANIFEST` environment variable to configure `KUBERNETES_JOB_MANIFEST` setting.\r\n- [#8119](https://github.com/nautobot/nautobot/issues/8119) - Added `TreeModel.cacheable_descendants_pks` method to be usable for improved performance.\r\n- [#8119](https://github.com/nautobot/nautobot/issues/8119) - Added `nautobot.apps.api.StatsSerializer` and `nautobot.apps.ui.AsyncStatsPanel` to allow for defining a StatsPanel that renders asynchronously.\r\n- [#8298](https://github.com/nautobot/nautobot/issues/8298) - Added side panels to IP Address detail view for Load Balancer Pool Members and Virtual Servers.\r\n- [#8326](https://github.com/nautobot/nautobot/issues/8326) - Added option to close Approval Workflow directly.\r\n- [#8326](https://github.com/nautobot/nautobot/issues/8326) - Added support for ExtraDetailViewActionButton to define additional object detail view action buttons, integrated into the consolidated action button system.\r\n- [#8326](https://github.com/nautobot/nautobot/issues/8326) - Added new field `last_updated` to `ApprovalWorkflowStageResponse` to improve ordering.\r\n- [#8326](https://github.com/nautobot/nautobot/issues/8326) - Added new property `is_canceled` and `is_active` to `ApprovalWorkflow` model.\r\n- [#8335](https://github.com/nautobot/nautobot/issues/8335) - Added UI widget for time-travel under Version Control.\r\n\r\n### Changed in v3.0.3\r\n\r\n- [#8326](https://github.com/nautobot/nautobot/issues/8326) - Improved `consolidate_detail_view_action_buttons` template tag to support model-defined ExtraDetailViewActionButton instances.\r\n\r\n### Deprecated in v3.0.3\r\n\r\n- [#694](https://github.com/nautobot/nautobot/issues/694) - Deprecated support for the settings variables `DEFAULT_FILE_STORAGE`, `JOB_FILE_IO_STORAGE`, `STATICFILES_STORAGE`, `STORAGE_BACKEND`, and `STORAGE_CONFIG`, which are replaced with Django's unified `STORAGES` setting. Support for these variables will be removed entirely in Nautobot v3.1.\r\n\r\n### Fixed in v3.0.3\r\n\r\n- [#7326](https://github.com/nautobot/nautobot/issues/7326) - Fixed handling of `DecimalFields` (such as `Location.latitude` and `Location.longitude`) with `MinMaxValidationRule`.\r\n- [#7326](https://github.com/nautobot/nautobot/issues/7326) - Fixed rendering of Location latitude/longitude in detail view when either one is exactly zero.\r\n- [#8119](https://github.com/nautobot/nautobot/issues/8119) - Improved performance of Location detail view by adding caching of a repeated expensive database query and asynchronous loading of related-object statistics.\r\n- [#8274](https://github.com/nautobot/nautobot/issues/8274) - Fixed unintended omission of the rendered documentation from `.whl` packages.\r\n- [#8291](https://github.com/nautobot/nautobot/issues/8291) - Removed a redundant error condition in Interface form validation when setting interface mode to tagged-all.\r\n- [#8306](https://github.com/nautobot/nautobot/issues/8306) - Fixed missing description field on interface creation form.\r\n- [#8330](https://github.com/nautobot/nautobot/issues/8330) - Fixed action buttons in IPAddress table incorrectly linking to actions for Prefixes.\r\n- [#8343](https://github.com/nautobot/nautobot/issues/8343) - Fixed issue where Bulk Edit and Bulk Destroy jobs submitted for approval in the Approval Workflow displayed `{scheduled_job.name}` instead of the actual job name in the success message.\r\n- [#8340](https://github.com/nautobot/nautobot/issues/8340) - Fixed incorrect default timeout values for cache entries intended to be long-lived when not explicitly invalidated.\r\n- [#8352](https://github.com/nautobot/nautobot/issues/8352) - Fixed inability to use filters in any \"Basic\" filter forms that had dependencies on other filter fields (for example, the \"Rack\" filter on the Device filter form has a dependency on the \"Rack Group\" and \"Location\" filters).\r\n\r\n### Dependencies in v3.0.3\r\n\r\n- [#8347](https://github.com/nautobot/nautobot/issues/8347) - Updated dependency `django-health-check` to `~3.20.2`.\r\n- [#8347](https://github.com/nautobot/nautobot/issues/8347) - Updated dependency `social-auth-core` to `~4.8.3`.\r\n\r\n### Documentation in v3.0.3\r\n\r\n- [#8270](https://github.com/nautobot/nautobot/issues/8270) - Updated the `Getting Started` feature guide to include version 3.0 screenshots.\r\n- [#8310](https://github.com/nautobot/nautobot/issues/8310) - Added documentation about using `custom_view_base_action` and `custom_view_additional_permissions` to control permission requirements for custom NautobotUIViewSet actions.\r\n- [#8326](https://github.com/nautobot/nautobot/issues/8326) - Updated Approval Workflow documentation.\r\n- [#8329](https://github.com/nautobot/nautobot/issues/8329) - Updated IPAM documentation to include 3.0 screenshots.\r\n- [#8347](https://github.com/nautobot/nautobot/issues/8347) - Updated documentation dependency `mkdocs-material` to `~9.7.1`.\r\n\r\n### Housekeeping in v3.0.3\r\n\r\n- [#8261](https://github.com/nautobot/nautobot/issues/8261) - Updated development npm dependency `@eslint/js` to `^9.39.2`.\r\n- [#8261](https://github.com/nautobot/nautobot/issues/8261) - Updated development npm dependency `autoprefixer` to `^10.4.23`.\r\n- [#8261](https://github.com/nautobot/nautobot/issues/8261) - Updated development npm dependency `eslint` to `^9.39.2`.\r\n- [#8282](https://github.com/nautobot/nautobot/issues/8282) - Updated approval-workflows documentation to include 3.0 screenshots.\r\n- [#8305](https://github.com/nautobot/nautobot/issues/8305) - Updated ECharts documentation to include 3.0 screenshots.\r\n- [#8314](https://github.com/nautobot/nautobot/issues/8314) - Updated search-bar documentation to include 3.0 screenshots.\r\n- [#8334](https://github.com/nautobot/nautobot/issues/8334) - Updated Platform documentation to include 3.0 screenshots.\r\n- [#8347](https://github.com/nautobot/nautobot/issues/8347) - Updated development dependency `ruff` to `~0.14.10`.\r\n- [#8348](https://github.com/nautobot/nautobot/issues/8348) - Upstream testing now uses branch name from input instead of hard-coded matrix.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @sirisha-bode\r\n* @nkallergis\r\n* @Sridevi-NTC\r\n* @dsoftait\r\n* @Defiantearth\r\n* @joewesch\r\n* @itdependsnetworks\r\n* @smk4664\r\n\r\n## New Contributors\r\n* @Defiantearth made their first contribution in https://github.com/nautobot/nautobot/pull/8343\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.2...v3.0.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8358",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/270464482",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/270464482/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/270464482/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.24",
        "id": 270464482,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4QHvXi",
        "tag_name": "v2.4.24",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.24 - 2025-12-15",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-12-15T16:27:57Z",
        "updated_at": "2025-12-15T16:31:40Z",
        "published_at": "2025-12-15T16:29:56Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/328970216",
                "id": 328970216,
                "node_id": "RA_kwDOFEucDc4Tm6_o",
                "name": "nautobot-2.4.24-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44696881,
                "digest": "sha256:a94f706e520844ac4a07bedebc705e6426a6f7cee7ca8d8b3a1e5b8734ac4ae5",
                "download_count": 7,
                "created_at": "2025-12-15T16:31:38Z",
                "updated_at": "2025-12-15T16:31:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.24/nautobot-2.4.24-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/328970194",
                "id": 328970194,
                "node_id": "RA_kwDOFEucDc4Tm6_S",
                "name": "nautobot-2.4.24.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43368672,
                "digest": "sha256:4b3da5f715debce2040f94bb9d5c67adf199bec3e4933cab3bdbc0c4d18b8bbf",
                "download_count": 5,
                "created_at": "2025-12-15T16:31:36Z",
                "updated_at": "2025-12-15T16:31:37Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.24/nautobot-2.4.24.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.24",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.24",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.24\r\n\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `celery` to `~5.6.0` to include a security fix (`https://github.com/celery/celery/pull/9997`).\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `urllib3` to version `2.6.1` due to CVE-2025-66418 and CVE-2025-66471. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#8271](https://github.com/nautobot/nautobot/issues/8271) - Updated dependency `Django` to `~4.2.27` to protect against CVE-2025-13372 and CVE-2025-64460.\r\n\r\n### Added in v2.4.24\r\n\r\n- [#694](https://github.com/nautobot/nautobot/issues/694) - Added support for defining Job input/output file storage via Django's `STORAGES` setting. This deprecates the separate settings `DEFAULT_FILE_STORAGE`, `JOB_FILE_IO_STORAGE`, `STATICFILES_STORAGE`, `STORAGE_BACKEND`, and `STORAGE_CONFIG`, which will be removed entirely in Nautobot v3.1.\r\n- [#8119](https://github.com/nautobot/nautobot/issues/8119) - Added `TreeModel.cacheable_descendants_pks` method to be usable for improved performance.\r\n- [#8119](https://github.com/nautobot/nautobot/issues/8119) - Added `nautobot.apps.api.StatsSerializer` and `nautobot.apps.ui.AsyncStatsPanel` to allow for defining a StatsPanel that renders asynchronously.\r\n- [#8215](https://github.com/nautobot/nautobot/issues/8215) - Added support for custom Celery worker health probes based on files.\r\n\r\n### Deprecated in v2.4.24\r\n\r\n- [#694](https://github.com/nautobot/nautobot/issues/694) - Deprecated support for the settings variables `DEFAULT_FILE_STORAGE`, `JOB_FILE_IO_STORAGE`, `STATICFILES_STORAGE`, `STORAGE_BACKEND`, and `STORAGE_CONFIG`, which are replaced with Django's unified `STORAGES` setting. Support for these variables will be removed entirely in Nautobot v3.1.\r\n\r\n### Fixed in v2.4.24\r\n\r\n- [#8119](https://github.com/nautobot/nautobot/issues/8119) - Improved performance of Location detail view by adding caching of a repeated expensive database query and asynchronous loading of related-object statistics.\r\n- [#8235](https://github.com/nautobot/nautobot/issues/8235) - Fixed inability to set a default saved view for list views defined in an App.\r\n- [#8235](https://github.com/nautobot/nautobot/issues/8235) - Fixed inability to use UI Component Framework `BulkButton` for a model defined in an App.\r\n- [#8274](https://github.com/nautobot/nautobot/issues/8274) - Fixed unintended omission of the rendered documentation from `.whl` packages.\r\n- [#8291](https://github.com/nautobot/nautobot/issues/8291) - Removed a redundant error condition in Interface form validation when setting interface mode to tagged-all.\r\n\r\n### Dependencies in v2.4.24\r\n\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `django-tables2` to `~2.8.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `django-timezone-field` to `~7.2.1`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `django-tree-queries` to `~0.23.0`.\r\n\r\n### Housekeeping in v2.4.24\r\n\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated development dependency `coverage` to `~7.13.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated development dependency `ruff` to `~0.14.8`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated development dependency `tblib` to `~3.2.2`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated documentation dependency `mkdocs-gen-files` to `~0.6.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated documentation dependency `mkdocs-macros-plugin` to `~1.5.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated documentation dependency `mkdocs-material` to `~9.7.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated documentation dependency `mkdocstrings-python` to `~1.19.0`.\r\n- [#8295](https://github.com/nautobot/nautobot/issues/8295) - Fixed incorrect generic filter test error message.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @gsnider2195 \r\n* @gertzakis\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.23...v2.4.24",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8331",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/268485822",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/268485822/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/268485822/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.2",
        "id": 268485822,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4QAMS-",
        "tag_name": "v3.0.2",
        "target_commitish": "main",
        "name": "v3.0.2 - 2025-12-08",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-12-08T21:17:36Z",
        "updated_at": "2025-12-08T21:21:38Z",
        "published_at": "2025-12-08T21:20:00Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/326078654",
                "id": 326078654,
                "node_id": "RA_kwDOFEucDc4Tb5C-",
                "name": "nautobot-3.0.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 11759447,
                "digest": "sha256:1a54ba475ccc8d33eb798f4854188ee96db3accb639da2b0182a3447740a28b2",
                "download_count": 7,
                "created_at": "2025-12-08T21:21:37Z",
                "updated_at": "2025-12-08T21:21:38Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.2/nautobot-3.0.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/326078585",
                "id": 326078585,
                "node_id": "RA_kwDOFEucDc4Tb5B5",
                "name": "nautobot-3.0.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43064667,
                "digest": "sha256:0f2547aeb3f433976ec36e71c64202db3790126271c51c1cf4f838351bc3a141",
                "download_count": 7,
                "created_at": "2025-12-08T21:21:34Z",
                "updated_at": "2025-12-08T21:21:36Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.2/nautobot-3.0.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.2",
        "body": "## What's Changed\r\n\r\n### Security in v3.0.2\r\n\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `celery` to `~5.6.0` to include a security fix (https://github.com/celery/celery/pull/9997). \r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `urllib3` to version `2.6.1` due to CVE-2025-66418 and CVE-2025-66471. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#8271](https://github.com/nautobot/nautobot/issues/8271) - Updated dependency `Django` to `~4.2.27` to protect against CVE-2025-13372 and CVE-2025-64460.\r\n\r\n### Fixed in v3.0.2\r\n \r\n- [#8255](https://github.com/nautobot/nautobot/issues/8255) - Marked system `ScheduledJobs` table as non-version-controlled.\r\n- [#8266](https://github.com/nautobot/nautobot/issues/8266) - Fixed a bug where JSON custom field types were not being displayed in the UI.\r\n- [#8273](https://github.com/nautobot/nautobot/issues/8273) - Fixed logic for rendering `module` column in device-component tables for components not belonging to a module.\r\n- [#8280](https://github.com/nautobot/nautobot/issues/8280) - Fixed Device Type front and rear images not always fully visible.\r\n\r\n### Documentation in v3.0.2\r\n \r\n- [#8218](https://github.com/nautobot/nautobot/issues/8218) - Updated the Jobs Getting Started documentation to include the 3.0 screenshots.\r\n- [#8225](https://github.com/nautobot/nautobot/issues/8225) - Updated the VPN documentation to include the 3.0 screenshots.\r\n- [#8230](https://github.com/nautobot/nautobot/issues/8230) - Updated the index and `django-admin` documentation to include the 3.0 screenshots. \r\n- [#8245](https://github.com/nautobot/nautobot/issues/8245) - Updated the release checklist steps for accuracy and clarity.\r\n\r\n### Dependencies in v3.0.2\r\n\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `django-tables2` to `~2.8.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `django-timezone-field` to `~7.2.1`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated dependency `django-tree-queries` to `~0.23.0`.\r\n\r\n### Housekeeping in v3.0.2\r\n\r\n- [#8194](https://github.com/nautobot/nautobot/issues/8194) - Updated SoftwareImageFiles and Versions documentation to include 3.0 screenshots.\r\n- [#8219](https://github.com/nautobot/nautobot/issues/8219) - Updated ui-component-framework documentation to include 3.0 screenshots.\r\n- [#8227](https://github.com/nautobot/nautobot/issues/8227) - Updated DynamicGroup documentation to include 3.0 screenshots.\r\n- [#8231](https://github.com/nautobot/nautobot/issues/8231) - Updated JobButton documentation to include 3.0 screenshots.\r\n- [#8233](https://github.com/nautobot/nautobot/issues/8233) - Added `invoke compress-images` task to auto-compress images in documentation and others.\r\n- [#8233](https://github.com/nautobot/nautobot/issues/8233) - Added `compress-images` job to `ci_pullrequest` workflow.\r\n- [#8233](https://github.com/nautobot/nautobot/issues/8233) - Run `invoke compress-images` against current images.\r\n- [#8237](https://github.com/nautobot/nautobot/issues/8237) - Updated development npm dependency `@eslint/js` to `^9.39.1`.\r\n- [#8237](https://github.com/nautobot/nautobot/issues/8237) - Updated development npm dependency `eslint` to `^9.39.1`.\r\n- [#8237](https://github.com/nautobot/nautobot/issues/8237) - Updated development npm dependency `globals` to `^16.5.0`.\r\n- [#8237](https://github.com/nautobot/nautobot/issues/8237) - Updated development npm dependency `postcss-loader` to `^8.2.0`.\r\n- [#8237](https://github.com/nautobot/nautobot/issues/8237) - Updated development npm dependency `prettier` to `^3.6.2`.\r\n- [#8237](https://github.com/nautobot/nautobot/issues/8237) - Updated development npm dependency `sass` to `^1.94.2`.\r\n- [#8238](https://github.com/nautobot/nautobot/issues/8238) - Updated development dependency `ruff` to `~0.14.6`.\r\n- [#8241](https://github.com/nautobot/nautobot/issues/8241) - Updated Data Validation Engine documentation to include 3.0 screenshots.\r\n- [#8259](https://github.com/nautobot/nautobot/issues/8259) - Updated git-as-data-source documentation to include 3.0 screenshots.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated development dependency `coverage` to `~7.13.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated development dependency `ruff` to `~0.14.8`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated development dependency `tblib` to `~3.2.2`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated documentation dependency `mkdocs-gen-files` to `~0.6.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated documentation dependency `mkdocs-macros-plugin` to `~1.5.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated documentation dependency `mkdocs-material` to `~9.7.0`.\r\n- [#8262](https://github.com/nautobot/nautobot/issues/8262) - Updated documentation dependency `mkdocstrings-python` to `~1.19.0`.\r\n- [#8286](https://github.com/nautobot/nautobot/issues/8286) - Added ObjectDataComplianceViewMixin to `nautobot.apps.views`.\r\n- [#8294](https://github.com/nautobot/nautobot/issues/8294) - Fixed incorrect generic filter test error message.\r\n\r\n## Contributors\r\n\r\n* @mateusz-lachowski-codilime\r\n* @renovate[bot]\r\n* @sirisha-bode\r\n* @glennmatthews\r\n* @Sridevi-NTC\r\n* @tsm1th\r\n* @dependabot[bot]\r\n* @gsnider2195 \r\n* @norbert-mieczkowski-codilime \r\n* @dsoftait \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.1...v3.0.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8303",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/265138970",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/265138970/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/265138970/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.23",
        "id": 265138970,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4PzbMa",
        "tag_name": "v2.4.23",
        "target_commitish": "ltm-2.4",
        "name": "v2.4.23 - 2025-11-25",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-11-25T13:46:06Z",
        "updated_at": "2025-11-25T13:49:41Z",
        "published_at": "2025-11-25T13:48:07Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/320673118",
                "id": 320673118,
                "node_id": "RA_kwDOFEucDc4THRVe",
                "name": "nautobot-2.4.23-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 7229315,
                "digest": "sha256:c0945af791f887207e92049fc59214a6ea042fb00714c1c570e763b603f9c672",
                "download_count": 5,
                "created_at": "2025-11-25T13:49:40Z",
                "updated_at": "2025-11-25T13:49:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.23/nautobot-2.4.23-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/320673107",
                "id": 320673107,
                "node_id": "RA_kwDOFEucDc4THRVT",
                "name": "nautobot-2.4.23.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43317977,
                "digest": "sha256:63e6b5f535057c9fdfe4f34c48abebe211224f75314e871f23556af8becad503",
                "download_count": 5,
                "created_at": "2025-11-25T13:49:38Z",
                "updated_at": "2025-11-25T13:49:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.23/nautobot-2.4.23.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.23",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.23",
        "body": "## What's Changed\r\n\r\n### Added in v2.4.23\r\n\r\n- [#1629](https://github.com/nautobot/nautobot/issues/1629) - Added additional celery worker metrics.\r\n\r\n### Fixed in v2.4.23\r\n\r\n- [#7848](https://github.com/nautobot/nautobot/issues/7848) - Fixed the Logs Cleanup job to skip records with a protected relationship instead of raising an error.\r\n- [#8025](https://github.com/nautobot/nautobot/issues/8025) - Fixed a `KeyError` when viewing a record with a symmetric one-to-one `Relationship` defined.\r\n- [#8164](https://github.com/nautobot/nautobot/issues/8164) - Fixed insertion order of middleware for `nautobot.core.settings_funcs.setup_structlog_logging`.\r\n- [#8178](https://github.com/nautobot/nautobot/issues/8178) - Fixed \"Create and Add Another\" behavior for UIViewSet-derived views.\r\n- [#8202](https://github.com/nautobot/nautobot/issues/8202) - Fixed Bulk operations when using Saved View and selecting all.\r\n\r\n### Documentation in v2.4.23\r\n\r\n- [#1629](https://github.com/nautobot/nautobot/issues/1629) - Updated prometheus metrics documentation.\r\n\r\n### Housekeeping in v2.4.23\r\n\r\n- [#8162](https://github.com/nautobot/nautobot/issues/8162) - Updated GitHub Actions definitions for ltm-2.4 branch.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @itdependsnetworks\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.22...v2.4.23",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8253",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/264856950",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/264856950/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/264856950/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.1",
        "id": 264856950,
        "author": {
            "login": "mateusz-lachowski-codilime",
            "id": 182650692,
            "node_id": "U_kgDOCuMHRA",
            "avatar_url": "https://avatars.githubusercontent.com/u/182650692?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/mateusz-lachowski-codilime",
            "html_url": "https://github.com/mateusz-lachowski-codilime",
            "followers_url": "https://api.github.com/users/mateusz-lachowski-codilime/followers",
            "following_url": "https://api.github.com/users/mateusz-lachowski-codilime/following{/other_user}",
            "gists_url": "https://api.github.com/users/mateusz-lachowski-codilime/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/mateusz-lachowski-codilime/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/mateusz-lachowski-codilime/subscriptions",
            "organizations_url": "https://api.github.com/users/mateusz-lachowski-codilime/orgs",
            "repos_url": "https://api.github.com/users/mateusz-lachowski-codilime/repos",
            "events_url": "https://api.github.com/users/mateusz-lachowski-codilime/events{/privacy}",
            "received_events_url": "https://api.github.com/users/mateusz-lachowski-codilime/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4PyWV2",
        "tag_name": "v3.0.1",
        "target_commitish": "main",
        "name": "v3.0.1 - 2025-11-24",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-11-24T16:26:12Z",
        "updated_at": "2025-11-24T16:33:02Z",
        "published_at": "2025-11-24T16:31:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/320302557",
                "id": 320302557,
                "node_id": "RA_kwDOFEucDc4TF23d",
                "name": "nautobot-3.0.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 11836422,
                "digest": "sha256:3a93aef2b47f57cafabc7b3be73282627dde6d02ec9a67d824c215324f87a5a3",
                "download_count": 9,
                "created_at": "2025-11-24T16:33:01Z",
                "updated_at": "2025-11-24T16:33:02Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.1/nautobot-3.0.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/320302546",
                "id": 320302546,
                "node_id": "RA_kwDOFEucDc4TF23S",
                "name": "nautobot-3.0.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 66954056,
                "digest": "sha256:43ff38c3e75083a2869f54e015cb274e005092d6bbcbd7f7e655f4b10473bc62",
                "download_count": 9,
                "created_at": "2025-11-24T16:32:58Z",
                "updated_at": "2025-11-24T16:33:00Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.1/nautobot-3.0.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.1",
        "body": "## What's changed\r\n\r\n### Added in v3.0.1\r\n\r\n- [#1629](https://github.com/nautobot/nautobot/issues/1629) - Added additional Celery worker metrics.\r\n- [#7970](https://github.com/nautobot/nautobot/issues/7970) - Detailed test cases for Dynamic Groups with Custom Fields filters.\r\n- [#8215](https://github.com/nautobot/nautobot/issues/8215) - Custom Celery worker health probes based on files.\r\n\r\n### Fixed in v3.0.1\r\n\r\n- [#8202](https://github.com/nautobot/nautobot/issues/8202) - Fixed Bulk operations when using Saved View and selecting all.\r\n- [#8211](https://github.com/nautobot/nautobot/issues/8211) - Fixed unwanted `<code>` elements coloring in special views.\r\n- [#8221](https://github.com/nautobot/nautobot/issues/8221) - Fixed NautobotUIViewSet custom action additional permissions being limited to one additional permission.\r\n- [#8235](https://github.com/nautobot/nautobot/issues/8235) - Fixed inability to set a default saved view for list views defined in an App.\r\n- [#8235](https://github.com/nautobot/nautobot/issues/8235) - Fixed inability to use UI Component Framework `BulkButton` for a model defined in an App.\r\n\r\n### Documentation in v3.0.1\r\n\r\n- [#1629](https://github.com/nautobot/nautobot/issues/1629) - Updated prometheus metrics documentation.\r\n- [#8195](https://github.com/nautobot/nautobot/issues/8195) - Updated the RelationshipModel and UserGroup documentation to include the 3.0 screenshots.\r\n- [#8209](https://github.com/nautobot/nautobot/issues/8209) - Clean up migration and impact docs to include Saved Views as well.\r\n- [#8220](https://github.com/nautobot/nautobot/issues/8220) - Updated the homepage documentation to include the 3.0 screenshots.\r\n\r\n### Housekeeping in v3.0.1\r\n\r\n- [#8206](https://github.com/nautobot/nautobot/issues/8206) - Removed `card-body` from `body_wrapper_generic_table.html`, because it doesn't work when the class is a table.\r\n- [#8207](https://github.com/nautobot/nautobot/issues/8207) - Updated ip-address-merge-tool documentation to include 3.0 screenshots.\r\n- [#8208](https://github.com/nautobot/nautobot/issues/8208) - Improved message in approve/deny confirmation form.\r\n- [#8226](https://github.com/nautobot/nautobot/issues/8226) - Update grid resizing in Bootstrap migration script, making it is more constrained but idempotent.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews  \r\n* @dsoftait \r\n* @mateusz-lachowski-codilime \r\n* @Sridevi-NTC\r\n* @norbert-mieczkowski-codilime \r\n* @sirisha-bode \r\n* @gsnider2195\r\n* @gertzakis\r\n* @Kircheneer\r\n* @itdependsnetworks\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.0...v3.0.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8247",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/262813572",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/262813572/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/262813572/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.0",
        "id": 262813572,
        "author": {
            "login": "itdependsnetworks",
            "id": 9260483,
            "node_id": "MDQ6VXNlcjkyNjA0ODM=",
            "avatar_url": "https://avatars.githubusercontent.com/u/9260483?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/itdependsnetworks",
            "html_url": "https://github.com/itdependsnetworks",
            "followers_url": "https://api.github.com/users/itdependsnetworks/followers",
            "following_url": "https://api.github.com/users/itdependsnetworks/following{/other_user}",
            "gists_url": "https://api.github.com/users/itdependsnetworks/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/itdependsnetworks/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/itdependsnetworks/subscriptions",
            "organizations_url": "https://api.github.com/users/itdependsnetworks/orgs",
            "repos_url": "https://api.github.com/users/itdependsnetworks/repos",
            "events_url": "https://api.github.com/users/itdependsnetworks/events{/privacy}",
            "received_events_url": "https://api.github.com/users/itdependsnetworks/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4PqjeE",
        "tag_name": "v3.0.0",
        "target_commitish": "main",
        "name": "v3.0.0 - 2025-11-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-11-16T23:50:12Z",
        "updated_at": "2025-11-17T01:11:58Z",
        "published_at": "2025-11-17T00:00:41Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/317203017",
                "id": 317203017,
                "node_id": "RA_kwDOFEucDc4S6CJJ",
                "name": "nautobot-3.0.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 11831776,
                "digest": "sha256:8c75b03563b793c1e626ba08d9c74b21e93b3168af13e2ca742781c6e7ffe641",
                "download_count": 9,
                "created_at": "2025-11-17T00:02:14Z",
                "updated_at": "2025-11-17T00:02:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0/nautobot-3.0.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/317203012",
                "id": 317203012,
                "node_id": "RA_kwDOFEucDc4S6CJE",
                "name": "nautobot-3.0.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 65405544,
                "digest": "sha256:c159e66c09b3ed5d34927641da97066214fbb782b0adf0638ccd6f3f6d5d1667",
                "download_count": 9,
                "created_at": "2025-11-17T00:02:10Z",
                "updated_at": "2025-11-17T00:02:14Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0/nautobot-3.0.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.0",
        "body": "# Nautobot v3.0\r\n\r\nThis document describes all new features and changes in Nautobot 3.0.\r\n\r\n## Upgrade Actions\r\n\r\n### Administrators\r\n\r\n- Job approval permissions have been updated in the UI and API. Approvers must now be granted the `extras.change_approvalworkflowstage` and `extras.view_approvalworkflowstage` permissions, replacing the previous requirement for `extras.approve_job`. This change aligns with updates to the approval workflow implementation and permissions model.\r\n- The `approval_required` field from `extras.Job` model has been removed. This is a breaking change for any custom Jobs or applications that reference this field. This functionality has been replaced by a new approval workflow system. For more information on how the new approach works, see [approval workflow documentation](../user-guide/platform-functionality/approval-workflow.md)\r\n    - If you're upgrading from Nautobot 2.x, a management command, `nautobot-server check_job_approval_status` is available in 2.x to help identify jobs and scheduled jobs that still have `approval_required=True`. Running this command prior to upgrading can help you detect and address these cases by either clearing scheduled jobs or defining approval workflows for Jobs.\r\n    - To maintain a similar approval process, see the steps in [predefined approval workflow](../user-guide/platform-functionality/approval-workflow.md#predefined-approval-workflow).\r\n- A small number of breaking [filter field changes](#filter-standardization-improvements-1889) may impact Dynamic Group filter definitions; you are recommended to run `nautobot-server validate_models extras.dynamicgroup` (or the newly added `Validate Model Data` system Job) after the upgrade to identify any impacted Dynamic Groups.\r\n\r\n### Job Authors & App Developers\r\n\r\n- Apps that provide any user interface will likely require updates to account for the [Bootstrap upgrade from v3.4 to v5.3](#bootstrap-upgrade-from-v34-to-v53) described below.\r\n- The Data Compliance feature set from the Data Validation Engine App has been moved directly into core. Import paths that reference `nautobot_data_validation_engine.custom_validators.DataComplianceRule` or `nautobot_data_validation_engine.custom_validators.ComplianceError` should be updated to `nautobot.apps.models.DataComplianceRule` and `nautobot.apps.models.ComplianceError`, respectively.\r\n- Code that calls the GraphQL `execute_query()` and `execute_saved_query()` functions may need to be updated to account for changes to the response object returned by these APIs. Specifically, the `response.to_dict()` method is no longer supported, but instead the returned data and any errors encountered may now be accessed directly as `response.data` and `response.errors` respectively.\r\n\r\n### REST API Users\r\n\r\n- Filtering data that supports a `type` filter in the REST API now also supports a corresponding `type` filter in GraphQL. (In Nautobot v2.x and earlier, the filter had to be referenced in GraphQL as `_type` instead.) Filtering by `_type` is still supported where applicable but should be considered deprecated; please update your GraphQL queries accordingly.\r\n- As a part of adding support for associating a [Device to multiple Clusters](#device-to-multiple-clusters-7203), the Device REST API no longer supports a `cluster` field; the field has been renamed to `clusters` and is now a list of related Clusters rather than a single record. See below for more details.\r\n- The REST API now defaults to excluding many-to-many fields (except for `tags`, `content_types`, and `object_types`) by default. Any code that relies on including many-to-many fields in the REST API response must explicitly request them by specifying the `exclude_m2m=False` query parameter. Pynautobot and Nautobot Ansible users should ensure they are on the latest versions to maintain backwards compatibility. See [Many-to-Many Fields in REST API](#many-to-many-fields-in-rest-api-7456) below for more details.\r\n\r\n## Release Overview\r\n\r\n### Breaking Changes\r\n\r\n#### Many-to-Many Fields in REST API ([#7456](https://github.com/nautobot/nautobot/issues/7456))\r\n\r\nIn order to improve performance at scale, the REST API now defaults to excluding many-to-many fields (except for `tags`, `content_types`, and `object_types`) by default. Any code that relies on including many-to-many fields in the REST API response must explicitly request them by specifying the `exclude_m2m=False` query parameter. See [Filtering Included Fields](../user-guide/platform-functionality/rest-api/filtering.md#filtering-included-fields) for more details.\r\n\r\nPynautobot users should ensure they add `exclude_m2m=False` to an individual request (`nb.dcim.devices.all(exclude_m2m=False)`) or (in pynautobot v3.0.0+) set the default for all requests (`import pynautobot; nb = pynautobot.api(url, token, exclude_m2m=False)`) to maintain prior behavior.\r\n\r\nNautobot Ansible users (using v6.0.0+ and pynautobot v3.0.0+) should see no change required when using module or inventory plugins. When using a lookup plugin, however, they will need to use the `api_filters` parameter to include M2M fields. For example: `api_filters='exclude_m2m=False'`.\r\n\r\n#### Removed Python Code\r\n\r\nMany previously deprecated classes have been fully removed now (see full table below). The most notable removal is the original `PluginConfig` class, which was replaced by `NautobotAppConfig` in v1.5.2. If your app still imports and inherits from `PluginConfig`, you should migrate to using `NautobotAppConfig` before upgrading to Nautobot 3.0.\r\n\r\nTo assist with identifying any remaining instances of deprecated code in your codebase, new rules have been added to [`pylint-nautobot`](https://docs.nautobot.com/projects/pylint-nautobot/en/latest/) in version v0.4.3+ that will flag any code that still imports and inherits from any of the deprecated classes.\r\n\r\n\u2139\ufe0f **[Full table of code removals](https://docs.nautobot.com/projects/core/en/stable/release-notes/version-3.0/#removed-python-code)**\r\n\r\n#### Removed HTML Templates\r\n\r\nMany legacy HTML templates have been removed. The majority of the removed templates are model specific such as `circuits/circuit.html` or `dcim/device/base.html` and have been superseded by generic templates such as `generic/object_retrieve.html`.\r\n\r\nIn order to ease the transition from these deprecated templates for app developers, we have included a migration script in Nautobot v2.4.21+ that will recursively parse through a directory's html files and replace any extends directives (`{% extends ... %}`) that reference a deprecated template with the replacement template. This script does not require Nautobot to be running and it can be run with the command `nautobot-migrate-deprecated-templates <path> [--dry-run]`. For more details, including a full table of deprecated templates and their replacements, see [Deprecated Templates](../development/apps/migration/code-updates.md#deprecated-templates).\r\n\r\n#### Removed Branding Options\r\n\r\nRemoved support for branding configuration options of `header_bullet`, `nav_bullet`, `javascript`, and `css`. Bullets are no longer used at all in the 3.0 design.\r\n\r\n### Added\r\n\r\n#### UI Updates\r\n\r\nNautobot 3.0 introduces a refreshed user interface, building on the migration from Bootstrap 3 to Bootstrap 5 with several major enhancements:\r\n\r\n##### Search\r\n\r\nThe search experience has been completely reimagined. A single, always-available search bar is now present throughout the application, accessible via `Ctrl+K` or `Command+K`. Advanced search syntax, such as `in:<model name>`, allows you to target specific models directly. The search results page now provides clearer visibility into active search parameters and makes it easy to distinguish between basic and advanced queries.\r\n\r\n##### Saved Views\r\n\r\nSaved Views have been improved to display their type more prominently, making it easier to identify when a Saved View is active and to understand the filters or configurations being applied. This streamlines workflows and reduces confusion when working with complex data sets.\r\n\r\n##### Navigation Bar\r\n\r\nThe Navigation Bar has been redesigned for greater efficiency and usability. It now features support for marking items as favorites, incorporates intuitive icons, and uses a modern flyout design to maximize space and accessibility. Navigation is more consolidated, helping users quickly find and access key areas of Nautobot.\r\n\r\n#### Load Balancer Models\r\n\r\nNautobot 3.0 introduces a [Load Balancer](../user-guide/core-data-model/load-balancers/index.md) data model, enabling you to model Virtual Servers, Pools, Pool Members, Health Checks, and Certificates. This feature provides compatibility for configuration generation (via Golden Configuration) with popular load balancing vendors such as F5, Citrix NetScaler, A10 Networks, VMware Avi Load Balancer, and Fortinet.\r\n\r\nKey use cases include:\r\n\r\n- Modeling load balancer resources for service, application, and inventory tracking.\r\n- Generating device configurations using Nautobot Golden Configuration templates for supported vendors.\r\n- Mapping Virtual Servers to backend servers and services.\r\n- Managing certificate configuration and associated metadata.\r\n\r\n#### VPN Models\r\n\r\nNautobot 3.0 adds a [`VPN`](../user-guide/core-data-model/vpn/vpn.md) data model to support modeling Virtual Private Networks (VPNs), including reusable profiles, policies, and tunnel endpoints. These models enable you to define IKE (Phase 1) and IPSec (Phase 2) policy parameters, manage tunnel endpoints, and associate VPNs with roles and secrets. Additionally, VPNs may optionally be associated with tenants so that administrators can indicate ownership of related model instances.\r\n\r\nKey Use Cases include:\r\n\r\n- Site-to-site IPSec VPN tunnel (transport mode)\r\n- Site-to-site IPSec VPN tunnel (tunnel mode)\r\n- Single hub-and-spoke VPN\r\n- Multiple hub-and-spoke VPNs\r\n\r\n#### Device Uniqueness Flexibility\r\n\r\nDevice Uniqueness is now less restrictive. Current behavior of `Location + Tenant + Name` is maintained in migration, but now in addition you can configure to `Device name must be globally unique` and `No enforced uniqueness` as well as you can set `Device name required (cannot be blank or null)`.\r\n\r\n#### Approval Workflows\r\n\r\n[Approval Workflows](../user-guide/platform-functionality/approval-workflow.md) allows for a multi-stage review and approval of processes before making changes, running or creating specific objects in the system. They are defined in advance and attached to specific models based on certain constraints. Use cases include:\r\n\r\n- Preventing accidental deletion of critical data by requiring manager approval before deletion jobs run.\r\n- Requiring security team sign-off before enabling network changes in production.\r\n- Ensuring multiple stakeholders approve large-scale bulk edits.\r\n- Mandating peer review for scheduled jobs that affect multiple systems.\r\n\r\n#### Data Validation Engine\r\n\r\nThe [Nautobot Data Validation Engine](../user-guide/platform-functionality/data-validation.md) functionality previously provided as a separate Nautobot App has been migrated into Nautobot as a core feature.\r\n\r\nThe data validation engine offers a set of user definable rules which are used to enforce business constraints on the data in Nautobot. These rules are tied to models and each rule is meant to enforce one aspect of a business use case.\r\n\r\nSupported rule types include:\r\n\r\n- Regular expression\r\n- Min/max value\r\n- Required fields\r\n- Unique values\r\n\r\nAdditionally Data Compliance allows you to create validations on your data without actually enforcing them and easily convert them to enforcements once all of your data is compliant.\r\n\r\n#### ECharts\r\n\r\n[ECharts](https://echarts.apache.org/en/index.html) is now included in the base image, with abstractions provided to easily add [custom charts using ECharts](../user-guide/platform-functionality/echarts.md).\r\n\r\n#### GraphQL\r\n\r\nYou will notice a fresh new look for the GraphiQL interface, which has been upgraded to version 2.4.7. This update brings a modernized UI, improved usability, and better alignment with Nautobot's theming. Most user workflows remain unchanged, but you may find enhanced features such as improved query editing, autocompletion, and response formatting.\r\n\r\n### Changed\r\n\r\n#### Bootstrap upgrade from v3.4 to v5.3\r\n\r\nNautobot now uses Bootstrap v5.3 as its underlying theming and layout engine. The base Nautobot UI has been refreshed accordingly. Apps will generally require corresponding updates for their UI to render properly. The impact of this upgrade will be much reduced if the App has already adopted the [UI Component Framework](../development/apps/migration/ui-component-framework/index.md) introduced previously in Nautobot v2.4. A [migration script](../development/apps/migration/from-v2/upgrading-from-bootstrap-v3-to-v5.md#migration-script) is included in Nautobot 3.x to automate many of the HTML and CSS updates for App developers.\r\n\r\n#### Device to Multiple Clusters ([#7203](https://github.com/nautobot/nautobot/issues/7203))\r\n\r\nThe Device model has replaced its single `cluster` foreign-key field with a many-to-many `clusters` field, allowing multiple Clusters to be associatd with a single Device.\r\n\r\nTo provide a modicum of backwards-compatibility, the Device model and queryset still support a singular `cluster` property which can be retrieved and (in some cases) set for the case of a single associated Cluster, but App authors, Job Authors, and GraphQL users are encouraged to migrate to using `clusters` as soon as possible. The `cluster` property will raise a `MultipleObjectsReturned` exception if the Device in question has more than one associated Cluster.\r\n\r\nNote that due to technical limitations, the Device REST API does *not* support a `cluster` field in Nautobot v3, so users of the REST API *must* migrate to reading the `clusters` field where applicable. Assignment of Devices to Clusters via the REST API is now managed via a dedicated endpoint `/api/dcim/device-cluster-assignments/` similar to other many-to-many fields in Nautobot.\r\n\r\n#### Filter Standardization Improvements ([#1889](https://github.com/nautobot/nautobot/issues/1889))\r\n\r\nTo make Nautobot's UI, REST API, and GraphQL filters more self-consistent and standardized, the default filter type for foreign-key and one-to-one model fields has been changed from a single-value filter (`ModelChoiceFilter`) to a multi-value filter (`ModelMultipleChoiceFilter`). This change affects a small number of filters in Nautobot core, as most such fields were already explicitly covered by a `ModelMultipleChoiceFilter` or one of its derivatives, but the following implicit filters are known to have been affected by this change (in addition to any App model filters on one-to-one and foreign-key fields that also were not explicitly defined otherwise):\r\n\r\n- Front Port Templates `rear_port_template` filter\r\n- Power Outlets `power_port` filter\r\n- Module Bays `parent_module` filter\r\n- Job Log Entries `job_result` filter\r\n- Job Results `user` filter\r\n- IP Address to Interface `ip_address` filter\r\n\r\nFor users of the UI and REST API, this is purely a feature enhancement to the above filters, as specifying single values in the URL query parameters remains supported, but multiple values are also supported now (for example `/api/extras/job-log-entries/?job_result=<uuid1>&job_result=<uuid2>`.)\r\n\r\nFor users of GraphQL, this is also a feature enhancement, as queries using the above filters can now specify either a single value (`job_log_entries (job_result: \"<uuid>\") { message }`) as before, or can now be updated to specify a list of values instead (`job_log_entries (job_result: [\"<uuid1>\", \"<uuid2>\"]) { message }`) if desired.\r\n\r\n\u26a0\ufe0f **Impact to Dynamic Groups**\r\n    For Dynamic Groups using the above filters, the group `filter` will need to be updated to replace the single string value with a list of strings, for example changing:\r\n\r\n```\r\n{\"rear_port_template\": \"74aac78c-fabb-468c-a036-26c46c56f27a\"}\r\n```\r\nto\r\n```\r\n{\"rear_port_template\": [\"74aac78c-fabb-468c-a036-26c46c56f27a\"]}\r\n```\r\nYou can identify impacted Dynamic Groups by running the `nautobot-server validate_models extras.dynamicgroup` management command, or the new `Validate Model Data` system Job; in the above case, the invalid group filter would be reported as below:\r\n```\r\n# nautobot-server validate_models extras.dynamicgroup\r\nValidating 1 models.\r\nextras.DynamicGroup\r\n~~~~~ Model: `extras.DynamicGroup` Instance: `Front Port Template Legacy` Error: `{'rear_port_template': ['Enter a list of values.']}`. ~~~~~\r\n```\r\n\r\n### Removed\r\n\r\n#### Button on Navbar\r\n\r\nButtons were removed from the NavBar as our research indicated they were infrequently used and caused clutter.\r\n\r\n#### Job Approval Process\r\n\r\nThe Job Approval process was removed and replaced by Workflow Approvals.\r\n\r\n### Dependencies\r\n\r\n#### GraphQL and GraphiQL Updates\r\n\r\nThe underlying GraphQL libraries (`graphene`, `graphene-django`, `graphene-django-optimizer`) used by Nautobot have been updated to new major versions, including a new major version of the GraphiQL UI. For the most part this upgrade will be seamless to end users, but the response object returned by Nautobot's `execute_query()` and `execute_saved_query()` Python APIs has changed type -- see [Upgrade Actions](#upgrade-actions) above for specifics.\r\n\r\n#### Added Python 3.13 Support and Removed Python 3.9 Support\r\n\r\nAs Python 3.9 has reached end-of-life, Nautobot 3.0 requires a minimum of Python 3.10. Python 3.13 support was added.\r\n\r\n#### Added Echarts\r\n\r\nAdded the JavaScript Library ECharts version 6.0.0.\r\n\r\n## Contributors\r\n\r\n* @HanlinMiao\r\n* @Kircheneer\r\n* @Sridevi-NTC\r\n* @brandomando\r\n* @bryanculver\r\n* @dsoftait\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @itdependsnetworks\r\n* @joewesch\r\n* @justinbrink\r\n* @lampwins\r\n* @mateusz-lachowski-codilime\r\n* @mzbroch\r\n* @nkallergis\r\n* @norbert-mieczkowski-codilime\r\n* @nrnvgh\r\n* @pszulczewski\r\n* @renovate[bot]\r\n* @sirisha-bode\r\n* @smk4664\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.22...v3.0.0",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8203",
        "mentions_count": 21
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/262544797",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/262544797/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/262544797/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.0-rc.2",
        "id": 262544797,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Pph2d",
        "tag_name": "v3.0.0-rc.2",
        "target_commitish": "main",
        "name": "v3.0.0-rc.2 - 2025-11-14",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2025-11-14T20:02:23Z",
        "updated_at": "2025-11-14T20:12:23Z",
        "published_at": "2025-11-14T20:10:49Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/316521182",
                "id": 316521182,
                "node_id": "RA_kwDOFEucDc4S3bre",
                "name": "nautobot-3.0.0rc2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 11831549,
                "digest": "sha256:cc8fa5c5560e52336dc93b63eca6beed3c0e13acb2aeabae91cf38bba5f99a8b",
                "download_count": 5,
                "created_at": "2025-11-14T20:12:22Z",
                "updated_at": "2025-11-14T20:12:23Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0-rc.2/nautobot-3.0.0rc2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/316521172",
                "id": 316521172,
                "node_id": "RA_kwDOFEucDc4S3brU",
                "name": "nautobot-3.0.0rc2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 65411295,
                "digest": "sha256:78209f55809a77fbb281afa0668ca942aedfebe7544064a9dd64f9ea9e92f637",
                "download_count": 4,
                "created_at": "2025-11-14T20:12:19Z",
                "updated_at": "2025-11-14T20:12:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0-rc.2/nautobot-3.0.0rc2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.0-rc.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.0-rc.2",
        "body": "## What's Changed\r\n\r\n### Added in v3.0.0rc2\r\n\r\n- [#8139](https://github.com/nautobot/nautobot/issues/8139) - Added default data for Approval Workflow.\r\n- [#8167](https://github.com/nautobot/nautobot/issues/8167) - Added ability to comment the approval workflow without having to approve or deny.\r\n- [#8174](https://github.com/nautobot/nautobot/issues/8174) - Added documentation about the enhanced Search functionality in Nautobot 3.0, and a corresponding link in the UI header.\r\n- [#8189](https://github.com/nautobot/nautobot/issues/8189) - Added missing imports into `nautobot.apps.*`.\r\n\r\n### Changed in v3.0.0rc2\r\n\r\n- [#8110](https://github.com/nautobot/nautobot/issues/8110) - Updated breadcrumbs & titles for Modules.\r\n- [#8110](https://github.com/nautobot/nautobot/issues/8110) - Updated breadcrumbs on Data Validation to be consistent with other views.\r\n- [#8147](https://github.com/nautobot/nautobot/issues/8147) - Updated theme screenshots (light, dark, system) to match the 3.0 UI.\r\n- [#8149](https://github.com/nautobot/nautobot/issues/8149) - Disabled smooth scroll in order to display \"Please fill out this field\" tooltip on required fields which are not in the viewport during form submission.\r\n- [#8158](https://github.com/nautobot/nautobot/issues/8158) - Changed behavior of Interface and Interface Template creation forms to no longer prefill automatically with a `type` of `Virtual`.\r\n- [#8158](https://github.com/nautobot/nautobot/issues/8158) - Changed behavior of Front Port, Front Port Template, Rear Port, and Rear Port Template creation forms to no longer prefill automatically with a `type` of `8P8C`.\r\n- [#8168](https://github.com/nautobot/nautobot/issues/8168) - Changed logged in user thumbnail to MDI account icon.\r\n- [#8169](https://github.com/nautobot/nautobot/issues/8169) - Changed run job button to circle in job list and tiles view.\r\n- [#8170](https://github.com/nautobot/nautobot/issues/8170) - Grayed out non-sortable table column headers.\r\n- [#8172](https://github.com/nautobot/nautobot/issues/8172) - Changed `<code>` tags background and text color to gray and enlarged their font size.\r\n- [#8176](https://github.com/nautobot/nautobot/issues/8176) - Hid global page header on the Log In page.\r\n\r\n### Fixed in v3.0.0rc2\r\n\r\n- [#7336](https://github.com/nautobot/nautobot/issues/7336) - Fixed Prefix filter UI to permit `prefix_length=0`.\r\n- [#7848](https://github.com/nautobot/nautobot/issues/7848) - Fixed the Logs Cleanup job to skip records with a protected relationship instead of raising an error.\r\n- [#8025](https://github.com/nautobot/nautobot/issues/8025) - Fixed a `KeyError` when viewing a record with a symmetric one-to-one `Relationship` defined.\r\n- [#8120](https://github.com/nautobot/nautobot/issues/8120) - Fixed Prefix filter UI to permit `prefix_length=128`.\r\n- [#8132](https://github.com/nautobot/nautobot/issues/8132) - Fixed theme flashing if LocalStorage, Cookie, and Browser diagree.\r\n- [#8136](https://github.com/nautobot/nautobot/issues/8136) - Fixed the ability to configure the Tenant panel table on the Tenant Group detail view.\r\n- [#8138](https://github.com/nautobot/nautobot/issues/8138) - Fixed viewset additional permissions potentially being processed multiple times.\r\n- [#8150](https://github.com/nautobot/nautobot/issues/8150) - Added 65535 as maximum value for port attribute in Load Balancer models.\r\n- [#8152](https://github.com/nautobot/nautobot/issues/8152) - Fixed object list checkbox handlers. Refactored object list checkbox event flow logic so it is more consistent and less prone to errors.\r\n- [#8155](https://github.com/nautobot/nautobot/issues/8155) - Fixed a GraphQL query error when executing queries with `limit` or `offset` as a non-superuser.\r\n- [#8158](https://github.com/nautobot/nautobot/issues/8158) - Fixed bulk-edit form for Interface Redundancy Groups to no longer automatically prepopulate with a `protocol` of `HSRP`.\r\n- [#8160](https://github.com/nautobot/nautobot/issues/8160) - Fixed select2 logic to correctly account for the possibility of multi-value `query_params`.\r\n- [#8164](https://github.com/nautobot/nautobot/issues/8164) - Fixed insertion order of middleware for `nautobot.core.settings_funcs.setup_structlog_logging`.\r\n- [#8171](https://github.com/nautobot/nautobot/issues/8171) - Fixed tables overflow on update/create forms on narrow viewports.\r\n- [#8178](https://github.com/nautobot/nautobot/issues/8178) - Fixed \"Create and Add Another\" behavior for UIViewSet-derived views.\r\n- [#8182](https://github.com/nautobot/nautobot/issues/8182) - Fixed the width of the log filter input in the JobResult detail view.\r\n- [#8184](https://github.com/nautobot/nautobot/issues/8184) - Fixed issues with creating/editing a Dynamic Group \"group of groups\" in the UI.\r\n- [#8186](https://github.com/nautobot/nautobot/issues/8186) - Fixed approval workflows not being checked for when bulk-editing or bulk-deleting records through the UI.\r\n- [#8189](https://github.com/nautobot/nautobot/issues/8189) - Fixed multiple locations where actions buttons was not included.\r\n- [#8191](https://github.com/nautobot/nautobot/issues/8191) - Fixed title on Approval Workflow tab and Dynamic Groups view.\r\n- [#8193](https://github.com/nautobot/nautobot/issues/8193) - Fixed rendering of approve and deny button, now they are rendered only when user is superuser or is in approver group.\r\n- [#8193](https://github.com/nautobot/nautobot/issues/8193) - Editing or adding a comment in an approved/denied/canceled stage no longer reverts the approval state.\r\n- [#8196](https://github.com/nautobot/nautobot/issues/8196) - Fixed `badge_count_override` - now works correctly when the value is 0.\r\n\r\n### Dependencies in v3.0.0rc2\r\n\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated dependency `@graphiql/toolkit` to `^0.11.3`.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated dependency `bootstrap` to `^5.3.8`.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated dependency `clipboard` to `2.0.11`.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated dependency `flatpickr` to `4.6.13`.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated dependency `htmx.org` to `^2.0.8`.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated dependency `whatwg-fetch` to `3.6.20`.\r\n- [#8188](https://github.com/nautobot/nautobot/issues/8188) - Updated dependency `django-constance` to `~4.3.4`.\r\n\r\n### Documentation in v3.0.0rc2\r\n\r\n- [#8134](https://github.com/nautobot/nautobot/issues/8134) - Added a documentation fragment for disabling add button on table panels\r\n- [#8145](https://github.com/nautobot/nautobot/issues/8145) - Updated Saved View documentation to include 3.0 screenshots.\r\n- [#8147](https://github.com/nautobot/nautobot/issues/8147) - Documented best practices/standards for documentation media.\r\n- [#8147](https://github.com/nautobot/nautobot/issues/8147) - Consolidated Draw.io diagrams into a single file.\r\n- [#8148](https://github.com/nautobot/nautobot/issues/8148) - Updated documentation for the release management process.\r\n- [#8157](https://github.com/nautobot/nautobot/issues/8157) - Updated graphql documentation to include 3.0 screenshots.\r\n- [#8164](https://github.com/nautobot/nautobot/issues/8164) - Enhanced Load Balancer documentation with a diagram and additional model details.\r\n- [#8164](https://github.com/nautobot/nautobot/issues/8164) - Simplified migration guide by adding an overview and recommending the UI Component framework.\r\n- [#8173](https://github.com/nautobot/nautobot/issues/8173) - Updated CustomField documentation to include 3.0 screenshots.\r\n- [#8183](https://github.com/nautobot/nautobot/issues/8183) - Updated Request Profiling documentation to include 3.0 screenshots.\r\n\r\n### Housekeeping in v3.0.0rc2\r\n\r\n- [#8121](https://github.com/nautobot/nautobot/issues/8121) - Updated Nautobot documentation screenshots to reflect the latest UI.\r\n- [#8127](https://github.com/nautobot/nautobot/issues/8127) - Put the majority of v2 to v3 UI changes in a single list.\r\n- [#8127](https://github.com/nautobot/nautobot/issues/8127) - Added command to check Python files for legacy HTML to Bootstrap v3 to v5 migration script.\r\n- [#8154](https://github.com/nautobot/nautobot/issues/8154) - Updated Contact and Team documentation to include 3.0 screenshots.\r\n- [#8174](https://github.com/nautobot/nautobot/issues/8174) - Fixed `invoke djlint` and `invoke djhtml` tasks to apply to the example apps as well.\r\n- [#8179](https://github.com/nautobot/nautobot/issues/8179) - Updated Wireless documentation to include 3.0 screenshots.\r\n- [#8181](https://github.com/nautobot/nautobot/issues/8181) - Updated `django_tables2` accessors to use preferred dunder methods.\r\n- [#8181](https://github.com/nautobot/nautobot/issues/8181) - Linked badges to tables via `related_field_name` and `related_list_url_name`.\r\n- [#8181](https://github.com/nautobot/nautobot/issues/8181) - Updated multiple filters to support badge linking to tables.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated development dependency `autoprefixer` to `^10.4.22`.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated development dependency `mini-css-extract-plugin` to `^2.9.4`.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated development dependency `postcss` to `^8.5.6`.\r\n- [#8187](https://github.com/nautobot/nautobot/issues/8187) - Updated development dependency `sass-loader` to `^16.0.6`.\r\n- [#8188](https://github.com/nautobot/nautobot/issues/8188) - Updated development dependency `faker` to `^37.12.0`.\r\n- [#8188](https://github.com/nautobot/nautobot/issues/8188) - Updated development dependency `ruff` to `~0.14.5`.\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.0-rc.1...v3.0.0-rc.2"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/261562093",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/261562093/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/261562093/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.0-rc.1",
        "id": 261562093,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Plx7t",
        "tag_name": "v3.0.0-rc.1",
        "target_commitish": "next",
        "name": "v3.0.0-rc.1 - 2025-11-11",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2025-11-11T21:36:09Z",
        "updated_at": "2025-11-11T21:41:09Z",
        "published_at": "2025-11-11T21:39:37Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/315244349",
                "id": 315244349,
                "node_id": "RA_kwDOFEucDc4Syj89",
                "name": "nautobot-3.0.0rc1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 11749968,
                "digest": "sha256:37787bd12d20b1733ce1034f7b25a1085cebf69ff81e9aa9fbf10fe44a317af0",
                "download_count": 4,
                "created_at": "2025-11-11T21:41:08Z",
                "updated_at": "2025-11-11T21:41:09Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0-rc.1/nautobot-3.0.0rc1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/315244343",
                "id": 315244343,
                "node_id": "RA_kwDOFEucDc4Syj83",
                "name": "nautobot-3.0.0rc1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 58620401,
                "digest": "sha256:ccfe69fa5acef7fe24fc802afd9ca0347d32f3e7174fc36fdf9bf9e16aa441f8",
                "download_count": 5,
                "created_at": "2025-11-11T21:41:06Z",
                "updated_at": "2025-11-11T21:41:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0-rc.1/nautobot-3.0.0rc1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.0-rc.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.0-rc.1",
        "body": "## What's Changed\r\n\r\n### Breaking Changes in v3.0.0rc1\r\n\r\n- [#8051](https://github.com/nautobot/nautobot/issues/8051) - Removed deprecated HTML templates that are no longer used.\r\n- [#8056](https://github.com/nautobot/nautobot/issues/8056) - `BaseBreadcrumbItem.as_pair` now returns `iterator` instead of `tuple[str, str]` to support dynamic breadcrumb items.\r\n- [#8081](https://github.com/nautobot/nautobot/issues/8081) - Removed support for branding options of `header_bullet`, `nav_bullet`, `javascript`, and `css`.\r\n\r\n### Added in v3.0.0rc1\r\n\r\n- [#7873](https://github.com/nautobot/nautobot/issues/7873) - Added support for assigning Configuration Contexts to Device Families.\r\n- [#8012](https://github.com/nautobot/nautobot/issues/8012) - Added Version Control and Ansible Automation to marketplace.\r\n- [#8014](https://github.com/nautobot/nautobot/issues/8014) - Added vpn.VPNTunnelEndpoint model constraints\r\n- [#8056](https://github.com/nautobot/nautobot/issues/8056) - Added `BaseModel.page_title` property with preferred object representation for titles.\r\n- [#8064](https://github.com/nautobot/nautobot/issues/8064) - Added `ValidateModelData` system Job.\r\n- [#8091](https://github.com/nautobot/nautobot/issues/8091) - Added dark mode support for `highlight.js`.\r\n- [#8093](https://github.com/nautobot/nautobot/issues/8093) - Added Load Balancer app and data models.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Added the `vrfs` filter to Devices and VirtualMachines.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Added the `secrets_groups` filter to Secrets.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Added the `ancestors` filter to Prefixes.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Added the `services` filter to IPAddresses.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Added the `load_balancer_pool_members` and `virtual_servers` filters to CertificateProfiles.\r\n- [#8125](https://github.com/nautobot/nautobot/issues/8125) - Added `bus-globe`, `bus-shield` and `bus-shield-check` Nautobot icons.\r\n- [#8130](https://github.com/nautobot/nautobot/issues/8130) - Added validation of model constraints when creating/editing an Approval Workflow Definition.\r\n- [#8130](https://github.com/nautobot/nautobot/issues/8130) - Added \"Approval State\" and \"Enabled\" filters to Scheduled Job filterset.\r\n- [#8130](https://github.com/nautobot/nautobot/issues/8130) - Added \"Approval State\" and \"Enabled\" columns to Scheduled Job table.\r\n- [#8143](https://github.com/nautobot/nautobot/issues/8143) - Merged up latest content and fixes from Nautobot v2.4.22.\r\n\r\n### Changed in v3.0.0rc1\r\n\r\n- [#7462](https://github.com/nautobot/nautobot/issues/7462) - Changed `Device.device_redundancy_group_priority` and `InterfaceRedundancyGroupAssociation.priority` from `PositiveSmallIntegerField` to `PositiveIntegerField` to allow a wider range of values.\r\n- [#8056](https://github.com/nautobot/nautobot/issues/8056) - Removed last breadcrumb item from custom breadcrumbs implementations.\r\n- [#8057](https://github.com/nautobot/nautobot/issues/8057) - Echart Theme is derived from the browser and not require the Python developer to assign.\r\n- [#8057](https://github.com/nautobot/nautobot/issues/8057) - Added new `LIGHTER_GREEN_AND_RED_ONLY` EChartsThemeColors choice.\r\n- [#8069](https://github.com/nautobot/nautobot/issues/8069) - Set all Select2 placeholders to hyphens: `---------`.\r\n- [#8071](https://github.com/nautobot/nautobot/issues/8071) - Underlined links in blue colored table rows and alerts.\r\n- [#8074](https://github.com/nautobot/nautobot/issues/8074) - Enforced constant width on the first column of attribute tables.\r\n- [#8075](https://github.com/nautobot/nautobot/issues/8075) - Changed Rack list view to not show space utilization and power utilization columns by default.\r\n- [#8080](https://github.com/nautobot/nautobot/issues/8080) - Removed \"Log in\" item from nav menu. When user is unauthenticated and not on login page the \"Log in\" button now shows up in the header.\r\n- [#8088](https://github.com/nautobot/nautobot/issues/8088) - Changed nav menu logo and icon size to 32px.\r\n- [#8090](https://github.com/nautobot/nautobot/issues/8090) - Updated titles for Modules and Cable trace.\r\n- [#8090](https://github.com/nautobot/nautobot/issues/8090) - Improved breadcrumbs for Rack Elevations and Software Versions.\r\n- [#8090](https://github.com/nautobot/nautobot/issues/8090) - Improved `helpers.pre_tag` rendering for empty values.\r\n- [#8098](https://github.com/nautobot/nautobot/issues/8098) - When applying filters, use selected advanced filter even if not manually applied by user (i.e. even if not added to the selected filters list with \"Add Filter\" button).\r\n- [#8099](https://github.com/nautobot/nautobot/issues/8099) - Changed icon for \"Rename\" buttons from `mdi-pencil` to `mdi-rename`.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Changed the badge color from blue to gray for the ObjectsTablePanel badges without a link.\r\n- [#8125](https://github.com/nautobot/nautobot/issues/8125) - Changed VPN navigation icon from `atom` to `shield-check`.\r\n- [#8130](https://github.com/nautobot/nautobot/issues/8130) - Changed Scheduled Job list view to not hide non-enabled schedules by default.\r\n- [#8131](https://github.com/nautobot/nautobot/issues/8131) - Changed the `nautobot-migrate-bootstrap-v3-to-v5` script to also call the `nautobot-migrate-deprecated-templates` script by default.\r\n\r\n### Fixed in v3.0.0rc1\r\n\r\n- [#8058](https://github.com/nautobot/nautobot/issues/8058) - Fixed some tests skipped in v3.\r\n- [#8060](https://github.com/nautobot/nautobot/issues/8060) - Fixed dark mode for Rack Elevation view to match Rack view.\r\n- [#8062](https://github.com/nautobot/nautobot/issues/8062) - Fixed pagination of Job Result logs table.\r\n- [#8063](https://github.com/nautobot/nautobot/issues/8063) - Fixed a regression that removed many-to-many fields from change logs and webhook payloads.\r\n- [#8064](https://github.com/nautobot/nautobot/issues/8064) - Fixed style of \"Profile job execution\" and \"Ignore singleton lock\" checkboxes in Job forms.\r\n- [#8064](https://github.com/nautobot/nautobot/issues/8064) - Fixed style of checkboxes in user preferences table.\r\n- [#8064](https://github.com/nautobot/nautobot/issues/8064) - Added exception handler for the case where `nautobot-server refresh_dynamic_group_member_caches` encounters an exception with a specific group(s).\r\n- [#8064](https://github.com/nautobot/nautobot/issues/8064) - Fixed rendering of Job `description` in its detail view page.\r\n- [#8065](https://github.com/nautobot/nautobot/issues/8065) - Fixed remaining tests skipped in v3.\r\n- [#8072](https://github.com/nautobot/nautobot/issues/8072) - Fixed job detail view copy buttons.\r\n- [#8086](https://github.com/nautobot/nautobot/issues/8086) - Fixed StatsPanel causing traceback when it includes a filter_extension.\r\n- [#8087](https://github.com/nautobot/nautobot/issues/8087) - Fixed tab and tab panel spacings inside forms.\r\n- [#8088](https://github.com/nautobot/nautobot/issues/8088) - Fixed \"Nautobot Powered\" link in footer and nav menu branding icon.\r\n- [#8089](https://github.com/nautobot/nautobot/issues/8089) - Fixed ECharts text in dark mode.\r\n- [#8089](https://github.com/nautobot/nautobot/issues/8089) - Fixed ECharts with dynamic data. ECharts data is not overwritten by resolved data.\r\n- [#8089](https://github.com/nautobot/nautobot/issues/8089) - Fixed `combine_with` option.\r\n- [#8090](https://github.com/nautobot/nautobot/issues/8090) - Fixed breadcrumbs rendering on generic views like Notes and Changelog.\r\n- [#8090](https://github.com/nautobot/nautobot/issues/8090) - Fixed status labels on Rack Elevations and Cable Trace.\r\n- [#8092](https://github.com/nautobot/nautobot/issues/8092) - Fixed title being hard-coded on list views instead of using view_titles.\r\n- [#8096](https://github.com/nautobot/nautobot/issues/8096) - Fixed filtering on VPN forms for Dynamic Groups and VPNTunnelEndpoint.\r\n- [#8099](https://github.com/nautobot/nautobot/issues/8099) - Fixed bulk-action buttons not rendering in the footer of object tables on non-default tabs.\r\n- [#8100](https://github.com/nautobot/nautobot/issues/8100) - Fixed tables when boolean field should use BooleanColumn.\r\n- [#8101](https://github.com/nautobot/nautobot/issues/8101) - Fixed Virtual Chassis edit member view.\r\n- [#8102](https://github.com/nautobot/nautobot/issues/8102) - Fixed missing/broken \"Data Compliance\" tab on Secret views.\r\n- [#8102](https://github.com/nautobot/nautobot/issues/8102) - Added missing Data Compliance support to GraphQLQuery and Note models.\r\n- [#8102](https://github.com/nautobot/nautobot/issues/8102) - Fixed Data Compliance URL patterns from `data_compliance` to `data-compliance`.\r\n- [#8105](https://github.com/nautobot/nautobot/issues/8105) - Fixed detailed view top buttons alignment.\r\n- [#8106](https://github.com/nautobot/nautobot/issues/8106) - Fixed error in rendering Virtual Machine config context tab.\r\n- [#8106](https://github.com/nautobot/nautobot/issues/8106) - Fixed incorrect application of config contexts scoped by device-type or device-redundancy-group to all virtual machines.\r\n- [#8106](https://github.com/nautobot/nautobot/issues/8106) - Fixed incorrect permissions requirements to view various tabs on VPN Profile detail view.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Fixed various ObjectsTablePanel badge links that were invalid or broken.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Fixed the new path for the insourced DVE jobs.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Fixed the creation of Statuses for the insourced Load Balancer app.\r\n- [#8111](https://github.com/nautobot/nautobot/issues/8111) - Allowed space as valid character in Select2 tags.\r\n- [#8112](https://github.com/nautobot/nautobot/issues/8112) - Fixed missing Admin \"Add\" buttons on list views.\r\n- [#8118](https://github.com/nautobot/nautobot/issues/8118) - Fixed condition in `GetObjectViewTestCase.test_body_content_table_list_url` in which tests failed if it did not have data.\r\n- [#8122](https://github.com/nautobot/nautobot/issues/8122) - Fixed rendering of API version badges in Swagger UI docs.\r\n- [#8124](https://github.com/nautobot/nautobot/issues/8124) - Fixed browseable API dark mode colors on syntax highlighting.\r\n- [#8124](https://github.com/nautobot/nautobot/issues/8124) - Fixed missing icons on browseable API GET button.\r\n- [#8124](https://github.com/nautobot/nautobot/issues/8124) - Fixed redundant header on browseable API pages.\r\n- [#8124](https://github.com/nautobot/nautobot/issues/8124) - Fixed missing theme modal on pages that only import footer.html.\r\n- [#8128](https://github.com/nautobot/nautobot/issues/8128) - Fixed a condition when trying to render a link on a button for an object that doesn't exist.\r\n- [#8130](https://github.com/nautobot/nautobot/issues/8130) - Fixed model constraints on approval workflows not correctly applying to scheduled jobs.\r\n\r\n### Documentation in v3.0.0rc1\r\n\r\n- [#8081](https://github.com/nautobot/nautobot/issues/8081) - Updated v2 to v3 migration guide.\r\n- [#8108](https://github.com/nautobot/nautobot/issues/8108) - Updated load balancer documentation.\r\n\r\n### Housekeeping in v3.0.0rc1\r\n\r\n- [#8078](https://github.com/nautobot/nautobot/issues/8078) - Fixed the rendering of the license badge in the App detail page.\r\n- [#8083](https://github.com/nautobot/nautobot/issues/8083) - Bumped `highlight.js` version.\r\n- [#8103](https://github.com/nautobot/nautobot/issues/8103) - Fixed bootstrap v3 to v5 script silently failing on invalid path arguments.\r\n- [#8107](https://github.com/nautobot/nautobot/issues/8107) - Added a unit test to verify all ObjectsTablePanel badges have a valid link.\r\n- [#8116](https://github.com/nautobot/nautobot/issues/8116) - Update navbar choices for icon and weight attributes to support the Nautobot Device Lifecycle App.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @dsoftait\r\n* @gsnider2195\r\n* @joewesch\r\n* @norbert-mieczkowski-codilime\r\n* @mateusz-lachowski-codilime\r\n* @itdependsnetworks\r\n* @nrnvgh\r\n* @smk4664\r\n* @bryanculver\r\n* @pszulczewski\r\n* @renovate[bot]\r\n* @jvanderaa\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.0-alpha.3...v3.0.0-rc.1",
        "mentions_count": 13
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/261266282",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/261266282/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/261266282/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.22",
        "id": 261266282,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Pkptq",
        "tag_name": "v2.4.22",
        "target_commitish": "main",
        "name": "v2.4.22 - 2025-11-10",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-11-10T22:52:23Z",
        "updated_at": "2025-11-10T22:55:18Z",
        "published_at": "2025-11-10T22:54:00Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/314864872",
                "id": 314864872,
                "node_id": "RA_kwDOFEucDc4SxHTo",
                "name": "nautobot-2.4.22-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 7227876,
                "digest": "sha256:892e09d034b13d7cf5cbb2943b4a1fd172d817e3784513a51c47475b20ce5e9c",
                "download_count": 7,
                "created_at": "2025-11-10T22:55:17Z",
                "updated_at": "2025-11-10T22:55:18Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.22/nautobot-2.4.22-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/314864858",
                "id": 314864858,
                "node_id": "RA_kwDOFEucDc4SxHTa",
                "name": "nautobot-2.4.22.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43312426,
                "digest": "sha256:894afd64a8fc143f43a3da17ec354f973b1634b9677d8bfb23728a57ea942145",
                "download_count": 9,
                "created_at": "2025-11-10T22:55:16Z",
                "updated_at": "2025-11-10T22:55:17Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.22/nautobot-2.4.22.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.22",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.22",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.22\r\n\r\n- [#7981](https://github.com/nautobot/nautobot/issues/7981) - Updated dependency `Django` to `~4.2.26` to mitigate CVE-2025-64459.\r\n\r\n### Added in v2.4.22\r\n\r\n- [#6979](https://github.com/nautobot/nautobot/issues/6979) - Added support for speed and duplex on `Interface` objects.\r\n- [#8048](https://github.com/nautobot/nautobot/issues/8048) - Added Constance configuration setting `RACK_DEFAULT_U_HEIGHT` to configure the default height (in rack units) displayed in the Rack creation form.\r\n- [#8135](https://github.com/nautobot/nautobot/issues/8135) - Added `get_detail_view_components_context_for_model()` helper API for use by apps implementing DistinctViewTabs.\r\n\r\n### Changed in v2.4.22\r\n\r\n- [#6979](https://github.com/nautobot/nautobot/issues/6979) - Changed the `humanize_speed` template filter to now return a decimalized value instead of finding an integer value (e.g. 2.5 Gbps instead of 2500 Mbps).\r\n\r\n### Fixed in v2.4.22\r\n\r\n- [#6852](https://github.com/nautobot/nautobot/issues/6852) - Fixed unintended dependency on `django-debug-toolbar` when enabling the `theme-preview/` view.\r\n- [#8039](https://github.com/nautobot/nautobot/issues/8039) - Fixed issue where device components added via table footer button did not return to the same page.\r\n- [#8042](https://github.com/nautobot/nautobot/issues/8042) - Fixed incorrect `base_template` on Git Repository Synchronization Status page.\r\n- [#8059](https://github.com/nautobot/nautobot/issues/8059) - Fixed the Wireless Networks tab on the Controller detail page.\r\n- [#8073](https://github.com/nautobot/nautobot/issues/8073) - Added missing call to `super().get_extra_context()` in `LocationUIViewSet`, `ModuleTypeUIViewSet`.\r\n- [#8077](https://github.com/nautobot/nautobot/issues/8077) - Fixed the rendering of the min and max version fields in the App detail view when they are not set.\r\n- [#8126](https://github.com/nautobot/nautobot/issues/8126) - Fixed incorrect permissions requirement to view Virtual Machine config context tab.\r\n- [#8126](https://github.com/nautobot/nautobot/issues/8126) - Fixed incorrect field name in Config Context filter form.\r\n- [#8126](https://github.com/nautobot/nautobot/issues/8126) - Fixed leftover use of legacy views in Relationship \"notes\" and \"changelog\" tabs.\r\n\r\n### Dependencies in v2.4.22\r\n\r\n- [#7981](https://github.com/nautobot/nautobot/issues/7981) - Updated dependency `django-constance` to `~4.3.3`.\r\n- [#7981](https://github.com/nautobot/nautobot/issues/7981) - Updated dependency `nh3` to `~0.3.2`.\r\n\r\n### Documentation in v2.4.22\r\n\r\n- [#8068](https://github.com/nautobot/nautobot/issues/8068) - Updated documentation to include information about the latest deprecated HTML templates in v3.0.\r\n\r\n### Housekeeping in v2.4.22\r\n\r\n- [#7981](https://github.com/nautobot/nautobot/issues/7981) - Updated documentation dependency `mkdocs-glightbox` to `~0.5.2`.\r\n- [#7981](https://github.com/nautobot/nautobot/issues/7981) - Updated documentation dependency `mkdocs-macros-plugin` to `~1.4.1`.\r\n- [#7981](https://github.com/nautobot/nautobot/issues/7981) - Updated documentation dependency `mkdocs-material` to `~9.6.23`.\r\n- [#7981](https://github.com/nautobot/nautobot/issues/7981) - Updated development dependency `pymarkdownlnt` to `~0.9.33`.\r\n- [#7981](https://github.com/nautobot/nautobot/issues/7981) - Updated development dependency `ruff` to `~0.14.3`.\r\n- [#8047](https://github.com/nautobot/nautobot/issues/8047) - Fixed incorrect logic in `nautobot.virtualization.tests.test_models.VMInterfaceTestCase` that could lead to test failures.\r\n- [#8068](https://github.com/nautobot/nautobot/issues/8068) - Updated deprecated HTML templates migration script to handle more cases.\r\n- [#8113](https://github.com/nautobot/nautobot/issues/8113) - Fixed live reloading when serving development documentation with mkdocs.\r\n- [#8114](https://github.com/nautobot/nautobot/issues/8114) - Set `INSTALLATION_METRICS_ENABLED=False` explicitly in the testing `nautobot_config.py` to avoid inadvertently sending metrics when running tests.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @joewesch\r\n* @itdependsnetworks\r\n* @nrnvgh\r\n* @renovate[bot]\r\n* @jvanderaa\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.21...v2.4.22",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8137",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/258172625",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/258172625/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/258172625/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.0-alpha.3",
        "id": 258172625,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4PY2bR",
        "tag_name": "v3.0.0-alpha.3",
        "target_commitish": "next",
        "name": "v3.0.0-alpha.3 - 2025-10-29",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2025-10-29T13:48:53Z",
        "updated_at": "2025-10-29T13:58:46Z",
        "published_at": "2025-10-29T13:57:13Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/310131411",
                "id": 310131411,
                "node_id": "RA_kwDOFEucDc4SfDrT",
                "name": "nautobot-3.0.0a3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 11725922,
                "digest": "sha256:e9fc104fcdc23da1fa6a6b810851aaf056e9dc9d0bca26ca67dcaf0d3b2443a7",
                "download_count": 3,
                "created_at": "2025-10-29T13:58:45Z",
                "updated_at": "2025-10-29T13:58:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0-alpha.3/nautobot-3.0.0a3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/310131401",
                "id": 310131401,
                "node_id": "RA_kwDOFEucDc4SfDrJ",
                "name": "nautobot-3.0.0a3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 54372470,
                "digest": "sha256:cfb0d2f78e58f15171617538623fa35f7ac121815be0e68933092ae0dde7b75f",
                "download_count": 4,
                "created_at": "2025-10-29T13:58:42Z",
                "updated_at": "2025-10-29T13:58:44Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0-alpha.3/nautobot-3.0.0a3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.0-alpha.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.0-alpha.3",
        "body": "## What's Changed\r\n\r\n### Added in v3.0.0a3\r\n\r\n- [#4499](https://github.com/nautobot/nautobot/issues/4499) - Added new Constance setting `DEVICE_UNIQUENESS` to configure how Device instances are uniquely identified.\r\n- [#4499](https://github.com/nautobot/nautobot/issues/4499) - Introduced a new Device Constraints management view accessible from the Data Validation Engine submenu. This endpoint allows staff users to configure device uniqueness and naming enforcement without accessing the generic Constance admin UI.\r\n- [#6422](https://github.com/nautobot/nautobot/issues/6422) - Added `tenant` attribute to `Namespace`.\r\n- [#7355](https://github.com/nautobot/nautobot/issues/7355) - Added VPN models.\r\n- [#7722](https://github.com/nautobot/nautobot/issues/7722) - Added `DataComplianceModelMixin` and applied to base models.\r\n- [#7722](https://github.com/nautobot/nautobot/issues/7722) - Added `DataComplianceModelMixin` to `nautobot.apps.models`.\r\n- [#7927](https://github.com/nautobot/nautobot/issues/7927) - Added simplified dark theme to Swagger (`/api/docs/`) and Redoc (`/api/redoc/`) views, without using Nautobot color palette, utilizing mostly CSS `filter` property.\r\n- [#7983](https://github.com/nautobot/nautobot/issues/7983) - Added tooltip with help text to column names in Approval Workflow Stage Definitions panel.\r\n- [#7989](https://github.com/nautobot/nautobot/issues/7989) - Implemented a centralized system for managing icons and weights in the navigation bar.\r\n- [#7989](https://github.com/nautobot/nautobot/issues/7989) - Added tests to ensure the navbar is is properly configured.\r\n- [#7997](https://github.com/nautobot/nautobot/issues/7997) - Added logic to `nautobot-migrate-bootstrap-v3-to-v5` script to add missing `class=\"dropdown-item\"` to menu items.\r\n- [#8034](https://github.com/nautobot/nautobot/issues/8034) - Added tooltip for details page timestamp below tabs to indicate type of timestamp: created or last updated.\r\n\r\n### Changed in v3.0.0a3\r\n\r\n- [#4499](https://github.com/nautobot/nautobot/issues/4499) - Device uniqueness enforcement has been moved from database-level constraints to application-level validation via custom validators.\r\n- [#7459](https://github.com/nautobot/nautobot/issues/7459) - Changed the default behavior of the REST API to exclude many-to-many fields (except for `tags`, `content_types`, and `object_types`) by default.\r\n- [#7722](https://github.com/nautobot/nautobot/issues/7722) - Changed the Data Compliance tab to use a dynamic route pattern.\r\n- [#7856](https://github.com/nautobot/nautobot/issues/7856) - Stored JobLogEntry counts on JobResult for more efficient display of this information in list views.\r\n- [#7903](https://github.com/nautobot/nautobot/issues/7903) - Changed how App documentation is handled - it is now served via a dedicated endpoint whose access is restricted to authenticated users, replacing the previous static public serving.\r\n- [#7926](https://github.com/nautobot/nautobot/issues/7926) - Updated ECharts color palette.\r\n- [#7927](https://github.com/nautobot/nautobot/issues/7927) - Updated GraphiQL dark theme colors.\r\n- [#7944](https://github.com/nautobot/nautobot/issues/7944) - Increased default Bootstrap 5 breakpoints to narrow down view a little bit faster because of sidenav width.\r\n- [#7944](https://github.com/nautobot/nautobot/issues/7944) - Updated login page for better scaling on different screen sizes.\r\n- [#7944](https://github.com/nautobot/nautobot/issues/7944) - Changed forms behavior to wrap input below label on smaller screens.\r\n- [#7974](https://github.com/nautobot/nautobot/issues/7974) - Updated Nautobot icons.\r\n- [#7978](https://github.com/nautobot/nautobot/issues/7978) - Removed `logger.debug()` call from `construct_cache_key()` function as being too noisy.\r\n- [#7982](https://github.com/nautobot/nautobot/issues/7982) - Changed the IPAM and circuit navigation icons.\r\n- [#7983](https://github.com/nautobot/nautobot/issues/7983) - Changed `priority` to `weight` (where highest weight wins) in ApprovalWorkflowDefinition.\r\n- [#7983](https://github.com/nautobot/nautobot/issues/7983) - Changed `weight` to `sequence` (defines the order in which the stages take effect) in ApprovalWorkflowStageDefinition.\r\n- [#7983](https://github.com/nautobot/nautobot/issues/7983) - Changed column name from \"Min approvers\" to \"Minimum approvers\".\r\n- [#7989](https://github.com/nautobot/nautobot/issues/7989) - Updated the recommended method for managing the `icon` and `weight` attributes on `NavMenuTab`.\r\n- [#8002](https://github.com/nautobot/nautobot/issues/8002) - Updated CSS filters and sidenav colors to the latest theme color palette.\r\n- [#8005](https://github.com/nautobot/nautobot/issues/8005) - Improved rendering of User profile page.\r\n- [#8008](https://github.com/nautobot/nautobot/issues/8008) - Changed the `DataCompliance` model to not be change-logged and to not support custom fields (as it's not a user-editable model) and updated migrations accordingly.\r\n- [#8011](https://github.com/nautobot/nautobot/issues/8011) - Changed buttons to be more consistent with placement of positive actions before negative actions.\r\n- [#8020](https://github.com/nautobot/nautobot/issues/8020) - Restored form-field label positions to once again be located below field inputs.\r\n- [#8021](https://github.com/nautobot/nautobot/issues/8021) - Changed various \"radio-button-like\" toggle elements in the UI to be self-consistently styled.\r\n- [#8028](https://github.com/nautobot/nautobot/issues/8028) - Default breadcrumbs are set to display list url on detail view only.\r\n- [#8028](https://github.com/nautobot/nautobot/issues/8028) - Instance detail item is removed from breadcrumbs path.\r\n- [#8029](https://github.com/nautobot/nautobot/issues/8029) - Globally replaced table native checkboxes with their Bootstrap `form-check-input` equivalents.\r\n- [#8040](https://github.com/nautobot/nautobot/issues/8040) - Changed the label of the Collapse/Expand All buttons to specify they are for the groups rather than the panels.\r\n- [#8041](https://github.com/nautobot/nautobot/issues/8041) - Merged in latest content from Nautobot v2.4.21.\r\n- [#8044](https://github.com/nautobot/nautobot/issues/8044) - Moved \"Custom Links\" and \"Job Buttons\" to the left of the \"default\" action buttons on object detail view \"main\" tabs.\r\n- [#8044](https://github.com/nautobot/nautobot/issues/8044) - Changed default rendering of Component Framework `Button` to only render on the \"main\" tab of object detail views.\r\n\r\n### Removed in v3.0.0a3\r\n\r\n- [#2850](https://github.com/nautobot/nautobot/issues/2850) - Removed many previously deprecated class aliases.\r\n- [#4499](https://github.com/nautobot/nautobot/issues/4499) - Removed database-level uniqueness constraints on Device (`location`, `tenant`, `name`).\r\n- [#4499](https://github.com/nautobot/nautobot/issues/4499) - Removed Constance setting `DEVICE_NAME_AS_NATURAL_KEY`.\r\n- [#8044](https://github.com/nautobot/nautobot/issues/8044) - Removed support for `block panel_buttons` in object detail view templates.\r\n\r\n### Fixed in v3.0.0a3\r\n\r\n- [#7924](https://github.com/nautobot/nautobot/issues/7924) - Standardized boolean fields on tables to use the default theme.\r\n- [#7936](https://github.com/nautobot/nautobot/issues/7936) - Fixed a class of circular-import issues by moving various FilterSet mixin classes from `nautobot.*.filters.mixins` to `nautobot.*.filter_mixins` modules.\r\n- [#7936](https://github.com/nautobot/nautobot/issues/7936) - Fixed suppression of circular-import issues when registering homepage and nav-menu items.\r\n- [#7945](https://github.com/nautobot/nautobot/issues/7945) - Fixed text color on badges with bg-secondary background.\r\n- [#7951](https://github.com/nautobot/nautobot/issues/7951) - Fixed various UI related bugs and inconsistencies with bootstrap 5 migration.\r\n- [#7975](https://github.com/nautobot/nautobot/issues/7975) - Fixed collapsing echarts.\r\n- [#7976](https://github.com/nautobot/nautobot/issues/7976) - Fixed wrapping on error pages, login page, bulk edit form.\r\n- [#7976](https://github.com/nautobot/nautobot/issues/7976) - Fixed col/offset not matching breakpoints - for example offset set for md but col set to lg.\r\n- [#7984](https://github.com/nautobot/nautobot/issues/7984) - Fixed DeviceUniquenessValidator by using `get_settings_or_config` instead of `getattr`.\r\n- [#7985](https://github.com/nautobot/nautobot/issues/7985) - Fixed chart and table cards to no longer require two clicks to collapse.\r\n- [#7992](https://github.com/nautobot/nautobot/issues/7992) - Fixed bunch of CSS issues after UI v3 migration.\r\n- [#7993](https://github.com/nautobot/nautobot/issues/7993) - Added background colors to remaining badges.\r\n- [#7994](https://github.com/nautobot/nautobot/issues/7994) - Fixed colorless table rows.\r\n- [#7995](https://github.com/nautobot/nautobot/issues/7995) - Corrected missing/incorrect marking of various links and buttons as `disabled` in appropriate contexts.\r\n- [#7995](https://github.com/nautobot/nautobot/issues/7995) - Added `aria-disabled=\"true\"` attribute to various disabled links for improved accessibility.\r\n- [#7997](https://github.com/nautobot/nautobot/issues/7997) - Added missing `class=\"dropdown-item\"` to various dropdown menu items.\r\n- [#7997](https://github.com/nautobot/nautobot/issues/7997) - Fixed rendering of Custom Links and Job Buttons in Bootstrap 5.\r\n- [#8001](https://github.com/nautobot/nautobot/issues/8001) - Fixed collapsed sidenav icons invisible after selecting text.\r\n- [#8004](https://github.com/nautobot/nautobot/issues/8004) - Fixed display of related software images when editing a Device, Inventory Item, or Virtual Machine.\r\n- [#8006](https://github.com/nautobot/nautobot/issues/8006) - Removed \"Advanced\" tab from Change Log detail view.\r\n- [#8007](https://github.com/nautobot/nautobot/issues/8007) - Removed duplicated title/header text from various templates.\r\n- [#8013](https://github.com/nautobot/nautobot/issues/8013) - Fixed `d-none` being overridden by responsive display utility classes (e.g. `d-md-flex`), causing elements meant to be hidden to remain visible.\r\n- [#8013](https://github.com/nautobot/nautobot/issues/8013) - Added the `required` attribute to input fields(`schedule_name`, `schedule_start_time` and `recurrence_custom_time` when visible and applied the `nb-required` class to their corresponding labels.\r\n- [#8016](https://github.com/nautobot/nautobot/issues/8016) - Fixed Job Edit form layout and migrated its script to vanilla JavaScript.\r\n- [#8018](https://github.com/nautobot/nautobot/issues/8018) - Additional wrapping fixes to more templates.\r\n- [#8019](https://github.com/nautobot/nautobot/issues/8019) - Fixed rack elevation display in dark mode.\r\n- [#8020](https://github.com/nautobot/nautobot/issues/8020) - Fixed wrapping fields on narrow viewports.\r\n- [#8021](https://github.com/nautobot/nautobot/issues/8021) - Fixed incorrect logic in `django_querystring` templatetag.\r\n- [#8021](https://github.com/nautobot/nautobot/issues/8021) - Added missing `request` to the render context for rendering NautobotUIViewSet views.\r\n- [#8021](https://github.com/nautobot/nautobot/issues/8021) - Added missing icons to various \"Add components\" menus for Device, Module, and ModuleType.\r\n- [#8021](https://github.com/nautobot/nautobot/issues/8021) - Added missing chevron when rendering grouped Custom Links or grouped Job Buttons.\r\n- [#8029](https://github.com/nautobot/nautobot/issues/8029) - Fixed job list and bulk edit styles.\r\n- [#8031](https://github.com/nautobot/nautobot/issues/8031) - Fixed missing background in second and subsequent columns in navbar flyouts in Safari.\r\n- [#8033](https://github.com/nautobot/nautobot/issues/8033) - Fixed form field behavior in Job edit form.\r\n- [#8034](https://github.com/nautobot/nautobot/issues/8034) - Fixed tooltips staying open after clicking the footer links or opening the theme modal.\r\n- [#8036](https://github.com/nautobot/nautobot/issues/8036) - Fixed some tests skipped in v3.\r\n- [#8044](https://github.com/nautobot/nautobot/issues/8044) - Fixed vertical misalignment of rendered Job Button and Custom Link grouped buttons.\r\n- [#8046](https://github.com/nautobot/nautobot/issues/8046) - Fixed marking menu item as active when adding to favorite.\r\n- [#8046](https://github.com/nautobot/nautobot/issues/8046) - Fixed redirect after deleting saved view.\r\n- [#8050](https://github.com/nautobot/nautobot/issues/8050) - Fixed some tests skipped in v3.\r\n\r\n### Documentation in v3.0.0a3\r\n\r\n- [#7934](https://github.com/nautobot/nautobot/issues/7934) - Prepare documentation for Version 3.0 release.\r\n- [#8052](https://github.com/nautobot/nautobot/issues/8052) - Added information to release-note about filter field changes from #1889 and their impacts.\r\n\r\n### Housekeeping in v3.0.0a3\r\n\r\n- [#7936](https://github.com/nautobot/nautobot/issues/7936) - Added `example_app` and `example_app_with_view_override` tags to unit and integration tests that depend on these Apps.\r\n- [#7936](https://github.com/nautobot/nautobot/issues/7936) - Added support for `--config-file` option to `invoke tests` and added alternative config `nautobot/core/tests/nautobot_config_without_example_apps.py` to run tests without enabling the example Apps.\r\n- [#7936](https://github.com/nautobot/nautobot/issues/7936) - Enhanced Nautobot test runner to automatically exclude tests tagged with `example_app` and/or `example_app_with_view_override` when those Apps are not enabled.\r\n- [#7948](https://github.com/nautobot/nautobot/issues/7948) - Disabled a flaky integration test that has been holding up merges and releases.\r\n- [#7979](https://github.com/nautobot/nautobot/issues/7979) - Increased timeout in integration test `click_navbar_entry` to hopefully reduce spurious CI failures.\r\n- [#7990](https://github.com/nautobot/nautobot/issues/7990) - Corrected static-docs test cases to correctly use `StaticLiveServerTestCase` base class.\r\n- [#7990](https://github.com/nautobot/nautobot/issues/7990) - Added generated example-app docs to `.gitignore`.\r\n- [#7991](https://github.com/nautobot/nautobot/issues/7991) - Added a title to the login view.\r\n- [#8015](https://github.com/nautobot/nautobot/issues/8015) - Added `ssl-verify-server-cert=FALSE` to MySQL/MariaDB dev environment configuration to avoid an exception when running tests locally.\r\n- [#8044](https://github.com/nautobot/nautobot/issues/8044) - Updated some \"example app\" content to improve its compatibility with the Bootstrap 5 UI.\r\n\r\n## Contributors\r\n\r\n* @dependabot[bot]\r\n* @glennmatthews\r\n* @itdependsnetworks\r\n* @dsoftait\r\n* @norbert-mieczkowski-codilime\r\n* @icovada\r\n* @Pavan-183\r\n* @mateusz-lachowski-codilime\r\n* @joewesch\r\n* @renovate[bot]\r\n* @bryanculver\r\n* @nrnvgh\r\n* @justinbrink\r\n* @garymccann\r\n* @sirisha-bode\r\n* @nopg\r\n* @pszulczewski\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.0-alpha.2...v3.0.0-alpha.3",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/258172625/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 1,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 17
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/257561054",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/257561054/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/257561054/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.21",
        "id": 257561054,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4PWhHe",
        "tag_name": "v2.4.21",
        "target_commitish": "main",
        "name": "v2.4.21 - 2025-10-27",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-10-27T16:22:02Z",
        "updated_at": "2025-10-27T16:25:22Z",
        "published_at": "2025-10-27T16:23:53Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/309316211",
                "id": 309316211,
                "node_id": "RA_kwDOFEucDc4Sb8pz",
                "name": "nautobot-2.4.21-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 7215809,
                "digest": "sha256:0980355d332909d9b1348edfabb392857f833a24decda3ab1a61bea6cb70af1f",
                "download_count": 5,
                "created_at": "2025-10-27T16:25:21Z",
                "updated_at": "2025-10-27T16:25:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.21/nautobot-2.4.21-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/309316188",
                "id": 309316188,
                "node_id": "RA_kwDOFEucDc4Sb8pc",
                "name": "nautobot-2.4.21.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43291449,
                "digest": "sha256:23994572fe809b3626dc69bbc37711a4bf5bb82a5866c77544d8456ec04e0d16",
                "download_count": 3,
                "created_at": "2025-10-27T16:25:19Z",
                "updated_at": "2025-10-27T16:25:21Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.21/nautobot-2.4.21.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.21",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.21",
        "body": "## What's Changed\r\n\r\n### Added in v2.4.21\r\n\r\n- [#7282](https://github.com/nautobot/nautobot/issues/7282) - Added individual and bulk delete methods to the `/extras/scheduled-jobs/` API endpoint.\r\n- [#7834](https://github.com/nautobot/nautobot/issues/7834) - Added `Refresh Dynamic Group Members Cache` system Job Button Receiver; a corresponding Job Button for Dynamic Groups will be automatically created after running `nautobot-server post_upgrade`.\r\n- [#7834](https://github.com/nautobot/nautobot/issues/7834) - Added `update_cached_members` optional parameter to `DynamicGroup.save()` and `DynamicGroupMembership.save()` methods, which can be set to `False` to defer the potentially costly synchronous (re)calculation of the group members at save time. This parameter presently defaults to `True` for backwards compatibility reasons, but may change to a default of `False` in a future major release.\r\n- [#7996](https://github.com/nautobot/nautobot/issues/7996) - Added a script to help app developers migrate deprecated HTML templates to the new ones.\r\n\r\n### Changed in v2.4.21\r\n\r\n- [#7834](https://github.com/nautobot/nautobot/issues/7834) - Changed UI behavior when creating/editing Dynamic Groups to no longer synchronously (re)calculate the members of the group on form submission, as this could cause page timeouts when a large number of members need to be added or removed. This functionality is replaced by a Job Button on the detail view that can be clicked to asynchronously refresh the members cache on demand instead.\r\n- [#7834](https://github.com/nautobot/nautobot/issues/7834) - Changed UI behavior when rendering a Dynamic Group detail view to no longer synchronously (re)calculate the members of the group at render time, as this could cause page timeouts when a large number of members need to be added or removed. This functionality is replaced by a Job Button that can be clicked to asynchronously refresh the members cache on demand instead.\r\n\r\n### Fixed in v2.4.21\r\n\r\n- [#5379](https://github.com/nautobot/nautobot/issues/5379) - Fixed exception when filtering Location Types by associated Content Types.\r\n- [#5638](https://github.com/nautobot/nautobot/issues/5638) - Added missing logic to allow mapping model names to feature names for all FilterSets.\r\n- [#7728](https://github.com/nautobot/nautobot/issues/7728) - Fixed bug in which `m2m_changed` signals were not being sent when adding IPs to interfaces.\r\n- [#7952](https://github.com/nautobot/nautobot/issues/7952) - Fixed changelog list view not working when there was data referencing `ContentTypes` in the database but not installed.\r\n- [#7955](https://github.com/nautobot/nautobot/issues/7955) - Fixed custom `ancestors` method in tree queries to forgo tree fields, yielding performance improvements in checking for loops in the tree structure.\r\n- [#7955](https://github.com/nautobot/nautobot/issues/7955) - Fixed `invalidate_max_depth_cache` signal to forgo cache invalidation when a TreeModel has siblings.\r\n- [#7958](https://github.com/nautobot/nautobot/issues/7958) - Fixed title & breadcrumbs rendering on Git Repositories - Synchronization Status view\r\n- [#7987](https://github.com/nautobot/nautobot/issues/7987) - Fixed filtering of select- and multiselect-type custom fields in Dynamic Groups.\r\n- [#7988](https://github.com/nautobot/nautobot/issues/7988) - Fixed device detail object view failing when a power poert is connected to a power outlet.\r\n\r\n### Dependencies in v2.4.21\r\n\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated dependency `django-cors-headers` to `~4.9.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated dependency `django-tree-queries` to `~0.21.2`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated dependency `emoji` to `~2.15.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated dependency `prometheus-client` to `~0.23.1`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated dependency `social-auth-core` to `~4.8.1`.\r\n- [#8030](https://github.com/nautobot/nautobot/issues/8030) - Updated dependency `cryptography` to `~46.0.3`.\r\n- [#8030](https://github.com/nautobot/nautobot/issues/8030) - Updated dependency `django-structlog` to `~10.0.0`.\r\n- [#8030](https://github.com/nautobot/nautobot/issues/8030) - Updated dependency `Pillow` to `~12.0.0`.\r\n\r\n### Documentation in v2.4.21\r\n\r\n- [#7968](https://github.com/nautobot/nautobot/issues/7968) - Add a note for how to retrieve computed fields in an Export Template.\r\n\r\n### Housekeeping in v2.4.21\r\n\r\n- [#2288](https://github.com/nautobot/nautobot/issues/2288) - Added `docs` step to pull request CI to validate that Nautobot docs build successfully and contain valid hyperlinks.\r\n- [#7530](https://github.com/nautobot/nautobot/issues/7530) - Refactored Location model related UI views to use `UI component framework`.\r\n- [#7661](https://github.com/nautobot/nautobot/issues/7661) - Refactored GraphQLQuery model related UI views to use `UI component framework`.\r\n- [#7972](https://github.com/nautobot/nautobot/issues/7972) - Updated Renovate configuration to open separate PRs for NPM dependency updates versus Python dependency updates.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated development dependency `django-test-migrations` to `~1.5.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated development dependency `faker` to `^37.11.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated development dependency `invoke` to `2.2.1`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated development dependency `rich` to `~14.2.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated development dependency `ruff` to `~0.14.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated development dependency `selenium` to `~4.36.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated development dependency `time-machine` to `~2.19.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated development dependency `towncrier` to `~25.8.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated documentation dependency `mkdocs-glightbox` to `~0.5.1`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated documentation dependency `mkdocs-macros-plugin` to `~1.4.0`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated documentation dependency `mkdocs-material` to `~9.6.22`.\r\n- [#7973](https://github.com/nautobot/nautobot/issues/7973) - Updated documentation dependency `mkdocstrings-python` to `~1.18.2`.\r\n- [#7977](https://github.com/nautobot/nautobot/issues/7977) - Restored tagging of `latest` Docker images inadvertently untagged in 2.4.20.\r\n- [#8022](https://github.com/nautobot/nautobot/issues/8022) - Added support for `.breaking` change fragments and corresponding \"Breaking Changes\" section in release-notes.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @joewesch\r\n* @nrnvgh\r\n* @garymccann\r\n* @itdependsnetworks\r\n* @sirisha-bode\r\n* @nopg\r\n* @mateusz-lachowski-codilime\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.20...v2.4.21",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/8037",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/254456323",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/254456323/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/254456323/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.20",
        "id": 254456323,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4PKrID",
        "tag_name": "v2.4.20",
        "target_commitish": "main",
        "name": "v2.4.20 - 2025-10-14",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-10-14T17:44:56Z",
        "updated_at": "2025-10-14T17:49:23Z",
        "published_at": "2025-10-14T17:48:01Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/304217567",
                "id": 304217567,
                "node_id": "RA_kwDOFEucDc4SIf3f",
                "name": "nautobot-2.4.20-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 7207312,
                "digest": "sha256:9636d54efbf45c4109d916da3d2c67ab8d0cd657c51025fde886d1977cc26170",
                "download_count": 3,
                "created_at": "2025-10-14T17:49:22Z",
                "updated_at": "2025-10-14T17:49:23Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.20/nautobot-2.4.20-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/304217565",
                "id": 304217565,
                "node_id": "RA_kwDOFEucDc4SIf3d",
                "name": "nautobot-2.4.20.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43283094,
                "digest": "sha256:93b72b40419f6bc1c2e0a857c55b0520b60fa908a862acd70ebd95512f96d010",
                "download_count": 4,
                "created_at": "2025-10-14T17:49:20Z",
                "updated_at": "2025-10-14T17:49:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.20/nautobot-2.4.20.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.20",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.20",
        "body": "## What's Changed\r\n\r\n**Note that this release drops support for Python 3.9 as that version of Python is reaching end-of-life.**\r\n\r\n### Security in v2.4.20\r\n\r\n- [#7908](https://github.com/nautobot/nautobot/issues/7908) - Updated dependency `Django` to `~4.2.25` to mitigate CVE-2025-59681 and CVE-2025-59682.\r\n- [#7949](https://github.com/nautobot/nautobot/issues/7949) - Patched logic in `social-auth-app-django` to prevent account takeover vulnerability risk from CVE-2025-61783 until we can upgrade to a version of `social-auth-app-django` that includes the fix (5.6.0 or later).\r\n- [#7950](https://github.com/nautobot/nautobot/issues/7950) - Updated dependency `python-ldap` to `3.4.5` to mitigate CVE-2025-61911 and CVE-2025-61912. As this is not a direct dependency, it will not auto-update when upgrading; please be sure to upgrade your local environment.\r\n\r\n### Added in v2.4.20\r\n\r\n- [#7914](https://github.com/nautobot/nautobot/issues/7914) - Added a link to the module detail view from the module list view.\r\n\r\n### Changed in v2.4.20\r\n\r\n- [#7892](https://github.com/nautobot/nautobot/issues/7892) - Removed unnecessary and error-prone cache logic from the `PathEndpoint.connected_endpoint` property.\r\n\r\n### Fixed in v2.4.20\r\n\r\n- [#7859](https://github.com/nautobot/nautobot/issues/7859) - Fixed timezone management in Scheduled Job detail page.\r\n- [#7907](https://github.com/nautobot/nautobot/issues/7907) - Fixed exclude filtering of text-type custom fields in UI/API Filters and Dynamic Groups.\r\n- [#7907](https://github.com/nautobot/nautobot/issues/7907) - Fixed exact filtering by null values for custom fields.\r\n- [#7914](https://github.com/nautobot/nautobot/issues/7914) - Fixed interface filtering on `VirtualMachine` and `Device` detail views.\r\n- [#7914](https://github.com/nautobot/nautobot/issues/7914) - Fixed `DeviceType` add components views to correctly add the `DeviceType` to form.\r\n- [#7919](https://github.com/nautobot/nautobot/issues/7919) - Fixed bulk action buttons missing from Device/DeviceType tabs.\r\n- [#7920](https://github.com/nautobot/nautobot/issues/7920) - Fixed various bespoke buttons from not showing up on tabs.\r\n\r\n### Dependencies in v2.4.20\r\n\r\n- [#7870](https://github.com/nautobot/nautobot/issues/7870) - Updated dependency `celery` to `~5.5.3` and removed explicit direct dependency on `kombu` as a side effect.\r\n- [#7870](https://github.com/nautobot/nautobot/issues/7870) - Updated dependency `djangorestframework` to `~3.16.1`.\r\n- [#7870](https://github.com/nautobot/nautobot/issues/7870) - Updated dependency `nh3` to `~0.3.1`.\r\n- [#7870](https://github.com/nautobot/nautobot/issues/7870) - Updated dependency `psycopg2-binary` to `~2.9.11`.\r\n- [#7870](https://github.com/nautobot/nautobot/issues/7870) - Updated dependency `PyYAML` to `~6.0.3`.\r\n- [#7915](https://github.com/nautobot/nautobot/issues/7915) - Dropped support for Python 3.9. Python 3.10 is now the minimum version required by Nautobot.\r\n\r\n### Documentation in v2.4.20\r\n\r\n- [#7891](https://github.com/nautobot/nautobot/issues/7891) - Fixed a dead link to the Django documentation.\r\n\r\n### Housekeeping in v2.4.20\r\n\r\n- [#7262](https://github.com/nautobot/nautobot/issues/7262) - Refactored Cable model related UI views to use `NautobotUIViewSet`.\r\n- [#7836](https://github.com/nautobot/nautobot/issues/7836) - Fixed the test `ControllerTestCase.test_controller_bulk_edit` from failing on a race condition.\r\n- [#7870](https://github.com/nautobot/nautobot/issues/7870) - Updated documentation dependency `mkdocs-material` to `~9.6.21`.\r\n- [#7870](https://github.com/nautobot/nautobot/issues/7870) - Updated development dependency `djhtml` to `~3.0.10`.\r\n- [#7870](https://github.com/nautobot/nautobot/issues/7870) - Updated development dependency `pylint` to `~3.3.9`.\r\n- [#7885](https://github.com/nautobot/nautobot/issues/7885) - Removed documentation dependency `mkdocs-include-markdown-plugin` as older versions have a security vulnerability and Nautobot core hasn't actually needed this dependency since v2.0.\r\n- [#7901](https://github.com/nautobot/nautobot/issues/7901) - Fixed `invoke djhtml` task not working correctly in Docker compose.\r\n- [#7929](https://github.com/nautobot/nautobot/issues/7929) - Fixed autogenerated release note entries failing markdownlint due to a whitespace issue.\r\n- [#7930](https://github.com/nautobot/nautobot/issues/7930) - Enhanced the `release` GitHub Actions workflow to include prereleases and removed outdated `prerelease` workflow.\r\n- [#7930](https://github.com/nautobot/nautobot/issues/7930) - Removed requirement of (re)running the `ci_integration` workflow as a part of the `release` workflow.\r\n- [#7932](https://github.com/nautobot/nautobot/issues/7932) - Added better logging when a form raises a `NotImplementedError`.\r\n\r\n## Contributors\r\n\r\n* @itdependsnetworks\r\n* @glennmatthews\r\n* @renovate[bot]\r\n* @dependabot[bot]\r\n* @icovada\r\n* @Pavan-183\r\n* @mateusz-lachowski-codilime\r\n* @bryanculver\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.19...v2.4.20",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7963",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/252795292",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/252795292/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/252795292/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.0-alpha.2",
        "id": 252795292,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4PEVmc",
        "tag_name": "v3.0.0-alpha.2",
        "target_commitish": "develop",
        "name": "v3.0.0-alpha.2 - 2025-10-07",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2025-10-07T17:04:59Z",
        "updated_at": "2025-10-07T18:21:47Z",
        "published_at": "2025-10-07T17:40:11Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/301623290",
                "id": 301623290,
                "node_id": "RA_kwDOFEucDc4R-mf6",
                "name": "nautobot-3.0.0a2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 11641218,
                "digest": "sha256:8f6758edb6d370222398c7a49b1d5d996da1d9f35662e61912b59fe2e90fe99b",
                "download_count": 2,
                "created_at": "2025-10-07T18:21:46Z",
                "updated_at": "2025-10-07T18:21:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0-alpha.2/nautobot-3.0.0a2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/301623283",
                "id": 301623283,
                "node_id": "RA_kwDOFEucDc4R-mfz",
                "name": "nautobot-3.0.0a2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49765633,
                "digest": "sha256:0024a4abc4506501a795b45c672db43255ec06b7e4c390195202057e1e3c5726",
                "download_count": 3,
                "created_at": "2025-10-07T18:21:44Z",
                "updated_at": "2025-10-07T18:21:46Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v3.0.0-alpha.2/nautobot-3.0.0a2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.0-alpha.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.0-alpha.2",
        "body": "> v3.0.0a1 was inadvertently not published to PyPI and Docker image registries. v3.0.0a2 does not contain any changes to Nautobot code compared to v3.0.0a1, but should fix the publishing failure.\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v3.0.0a1...v3.0.0-alpha.2"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/252517065",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/252517065/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/252517065/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v3.0.0a1",
        "id": 252517065,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4PDRrJ",
        "tag_name": "v3.0.0a1",
        "target_commitish": "next",
        "name": "v3.0.0-alpha.1 - 2025-10-06",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2025-10-06T19:17:33Z",
        "updated_at": "2025-10-06T19:31:35Z",
        "published_at": "2025-10-06T19:31:35Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v3.0.0a1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v3.0.0a1",
        "body": "## What's Changed\r\n\r\n### Added in v3.0.0a1\r\n\r\n- [#1889](https://github.com/nautobot/nautobot/issues/1889) - Added `nautobot.apps.filters.ModelMultipleChoiceFilter` filterset filter class, which is a subclass of `django_filters.ModelMultipleChoiceFilter` with a few enhancements. This is now the default filter class for foreign-key, many-to-many, and one-to-one fields when defining a FilterSet with `fields = '__all__'`.\r\n- [#6814](https://github.com/nautobot/nautobot/issues/6814) - Implemented base Nautobot Bootstrap 5 theme.\r\n- [#6866](https://github.com/nautobot/nautobot/issues/6866) - Migrated the Nautobot Data Validation Engine App into Nautobot Core.\r\n- [#6876](https://github.com/nautobot/nautobot/issues/6876) - Added `DataValidationFormMixin` to indicate on the forms that fields are required due to `RequiredValidationRule` set.\r\n- [#6946](https://github.com/nautobot/nautobot/issues/6946) - Implemented v3 UI global footer.\r\n- [#6946](https://github.com/nautobot/nautobot/issues/6946) - Implemented v3 UI global header.\r\n- [#6947](https://github.com/nautobot/nautobot/issues/6947) - Implemented base v3 UI sidenav.\r\n- [#6999](https://github.com/nautobot/nautobot/issues/6999) - Added a data migration to update the `module_name` of jobs provided by Nautobot Data Validation Engine.\r\n- [#7063](https://github.com/nautobot/nautobot/issues/7063) - Added initial Approval Workflow related models, UI, and API.\r\n- [#7068](https://github.com/nautobot/nautobot/issues/7068) - Added a possibility to set/unset navbar items as favorite and display them in separate navbar flyout.\r\n- [#7079](https://github.com/nautobot/nautobot/issues/7079) - Implemented v3 UI sidenav flyouts.\r\n- [#7117](https://github.com/nautobot/nautobot/issues/7117) - Added support for running Jobs under branches when the Nautobot Version Control app is installed.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Added support for job approvals via approval workflows.\r\n- [#7135](https://github.com/nautobot/nautobot/issues/7135) - Added state transition logic for Approval Workflow related models.\r\n- [#7136](https://github.com/nautobot/nautobot/issues/7136) - Added callbacks to called when a workflow has been initiated, approved or rejected.\r\n- [#7136](https://github.com/nautobot/nautobot/issues/7136) - Added `begin_approval_workflow` to `ApprovableModelMixin` to can use it in save method of models which inherit from `ApprovableModelMixin`.\r\n- [#7136](https://github.com/nautobot/nautobot/issues/7136) - Added ObjectManager with `find_for_model` method in `ApprovalWorkflowDefinition`.\r\n- [#7136](https://github.com/nautobot/nautobot/issues/7136) - Added ApprovalWorkflow table to `ScheduledJobView`.\r\n- [#7142](https://github.com/nautobot/nautobot/issues/7142) - Implemented tabs collapsing behavior.\r\n- [#7171](https://github.com/nautobot/nautobot/issues/7171) - Added data migration to copy existing Nautobot Data Validation Engine app data into the new core Data Validation tables.\r\n- [#7177](https://github.com/nautobot/nautobot/issues/7177) - Implemented Approval Workflow related UI.\r\n- [#7180](https://github.com/nautobot/nautobot/issues/7180) - Added Redis cache to `ValidationRule.objects.get_for_model()` to improve performance of repeated lookups.\r\n- [#7180](https://github.com/nautobot/nautobot/issues/7180) - Added `ValidationRule.objects.get_enabled_for_model()` lookup method (with associated Redis cache for performance).\r\n- [#7180](https://github.com/nautobot/nautobot/issues/7180) - Added `GitRepository.objects.get_for_provided_contents()` lookup method (with associated Redis cache for performance).\r\n- [#7186](https://github.com/nautobot/nautobot/issues/7186) - Added ARM64 build target for `nautobot-dev` images under `next` branch CI.\r\n- [#7203](https://github.com/nautobot/nautobot/issues/7203) - Added support for assigning a Device to more than one Cluster.\r\n- [#7203](https://github.com/nautobot/nautobot/issues/7203) - Added support for editing reverse many-to-many relations in bulk edit forms where applicable.\r\n- [#7226](https://github.com/nautobot/nautobot/issues/7226) - Added `configurable` table property to toggle table config button visibility.\r\n- [#7239](https://github.com/nautobot/nautobot/issues/7239) - Added `prettier` as JavaScript on demand source code formatter.\r\n- [#7256](https://github.com/nautobot/nautobot/issues/7256) - Added new API actions under `api/extras/approval-workflow-stages/`: `approve`, `deny`, `comment` and filterset parameter `pending_my_approvals` on the regular list endpoint.\r\n- [#7256](https://github.com/nautobot/nautobot/issues/7256) - Added `users_that_already_denied` property to `ApprovalWorkflowStage` model.\r\n- [#7256](https://github.com/nautobot/nautobot/issues/7256) - Added `associated_approval_workflows` to the `ScheduledJobSerializer` as a read-only list.\r\n- [#7281](https://github.com/nautobot/nautobot/issues/7281) - Added missing flatpickr styles for both light and dark modes.\r\n- [#7301](https://github.com/nautobot/nautobot/issues/7301) - Added support for tables in cards, including collapsible cards.\r\n- [#7364](https://github.com/nautobot/nautobot/issues/7364) - Added pre-check migration (`extras.0125_approval_workflow_pre_check`) to validate data consistency before removing the `approval_required flag` from Job models. The migration aborts with a clear error message if any scheduled jobs still have `approval_required=True`. If any jobs (but not scheduled jobs) still have the flag set, a warning is printed advising to migrate them to the new approval workflow after the upgrade is completed.\r\n- [#7411](https://github.com/nautobot/nautobot/issues/7411) - Implement v3 search UI.\r\n- [#7415](https://github.com/nautobot/nautobot/issues/7415) - Added `hide_in_diff_view` flag to hide `ObjectChange`, `JobLogEntry` and `JobResult` diffs in version control app.\r\n- [#7415](https://github.com/nautobot/nautobot/issues/7415) - Marked users app as not version controlled - `is_version_controlled=False`.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Added the `runnable` property to the ScheduledJob model.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Added the `has_approval_workflow_definition` method to the ScheduledJob model.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Added support for custom approval templates via a new `get_approval_template()` method on models ScheduledJob. This allows objects to override the default approval UI when specific conditions are met (e.g. one-off jobs scheduled in the past).\r\n- [#7538](https://github.com/nautobot/nautobot/issues/7538) - Improved Select2 styling and implemented Multi-badge component.\r\n- [#7642](https://github.com/nautobot/nautobot/issues/7642) - Added Advanced filters tab indicator that it contains some filters visible only in there.\r\n- [#7668](https://github.com/nautobot/nautobot/issues/7668) - Added Approval Workflow documentation.\r\n- [#7668](https://github.com/nautobot/nautobot/issues/7668) - Added User Groups documentation.\r\n- [#7697](https://github.com/nautobot/nautobot/issues/7697) - Created a small internal Nautobot icon library.\r\n- [#7718](https://github.com/nautobot/nautobot/issues/7718) - Added more icons to `nautobot-icons` library: `refresh-cw`, `sliders-vert` and `sliders-vert-2`.\r\n- [#7726](https://github.com/nautobot/nautobot/issues/7726) - Added EChartsBase class. Base definition for an ECharts chart (no rendering logic). This class transforms input data, applies theme colors, and generates a valid ECharts option config.\r\n- [#7726](https://github.com/nautobot/nautobot/issues/7726) - Added `render_echart` as templatetags.\r\n- [#7726](https://github.com/nautobot/nautobot/issues/7726) - Added EChartsPanel class, thank to that ECharts can be used in UI Component.\r\n- [#7736](https://github.com/nautobot/nautobot/issues/7736) - Implemented sidenav branch picker for version control app.\r\n- [#7741](https://github.com/nautobot/nautobot/issues/7741) - Added `nautobot.apps.utils.construct_cache_key()` function for consistent construction of Redis cache keys.\r\n- [#7741](https://github.com/nautobot/nautobot/issues/7741) - Added awareness of Version Control active branch to various Redis caches.\r\n- [#7837](https://github.com/nautobot/nautobot/issues/7837) - Persist sidenav state in cookies and browser local storage.\r\n- [#7839](https://github.com/nautobot/nautobot/issues/7839) - Added block job_form_wrapper to provide additional customization on Custom Job Forms.\r\n- [#7842](https://github.com/nautobot/nautobot/issues/7842) - Added `Canceled` Approval Workflow State.\r\n- [#7842](https://github.com/nautobot/nautobot/issues/7842) - Added `nautobot.apps.choices.ApprovalWorkflowStateChoices`.\r\n- [#7895](https://github.com/nautobot/nautobot/issues/7895) - Added `ObjectApprovalWorkflowView` to `nautobot.apps.views`.\r\n- [#7902](https://github.com/nautobot/nautobot/issues/7902) - Added `nautobot-migrate-bootstrap-v3-to-v5` helper script that can be run by Apps to streamline their migration to Bootstrap v5.x for Nautobot v3.x compatibility.\r\n- [#7902](https://github.com/nautobot/nautobot/issues/7902) - Added additional DjLint rules to flag various cases where HTML templates had not yet been migrated to Bootstrap v5.x compatibility.\r\n\r\n### Changed in v3.0.0a1\r\n\r\n- [#1889](https://github.com/nautobot/nautobot/issues/1889) - Changed default handling in Nautobot filterset classes (`BaseFilterSet` and subclasses) for foreign-key and one-to-one fields such that they now default to generating a multi-value filter instead of a single-value filter. This may impact the definition of filter-based Dynamic Groups and of Object Permissions that were making use of single-value filters.\r\n- [#1889](https://github.com/nautobot/nautobot/issues/1889) - Changed `NaturalKeyOrPKMultipleChoiceFilter` and its subclasses to inherit from Nautobot's new `ModelMultipleChoiceFilter` class. The primary effect of this change is that the autogenerated label for such filters will be more descriptive.\r\n- [#5745](https://github.com/nautobot/nautobot/issues/5745) - Upgraded the GraphiQL UI from version 1.x to version 2.4.7, including application of Nautobot UI colors to GraphiQL.\r\n- [#5745](https://github.com/nautobot/nautobot/issues/5745) - Changed the return type for the `execute_query` and `execute_saved_query` GraphQL-related Python APIs as a consequence of updating the underlying GraphQL libraries.\r\n- [#6815](https://github.com/nautobot/nautobot/issues/6815) - Updated UI component-based detail views to Bootstrap 5.\r\n- [#6874](https://github.com/nautobot/nautobot/issues/6874) - Increased `name` fields' length to 255 for RegularExpressionValidationRule, MinMaxValidationRule, RequiredValidationRule, and UniqueValidationRule.\r\n- [#6874](https://github.com/nautobot/nautobot/issues/6874) - Specified a Generic Relation from BaseModel class to DataCompliance class so that if an object is deleted, its associated data compliance objects will also be deleted.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Changed `post` method in `JobRunView` to support job approvals via approval workflows.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Changed `post` method in `JobViewSetBase` to support job approvals via approval workflows.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Added `approval_workflow` parameter to `on_workflow_approved`, `on_workflow_initiated` and `on_workflow_denied` methods.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Changed `ScheduledJob.on_workflow_initiated` by adding set `approval_required = True` when workflow was initiated.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Changed `ScheduledJob.on_workflow_approved` by adding set `approved_at` and publishing an approval event when workflow was approved.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Changed `ScheduledJob.create_schedule` method to accept an additional `validated_save` argument, allowing the option to skip saving the scheduled job object to the database.\r\n- [#7171](https://github.com/nautobot/nautobot/issues/7171) - Renamed the new `nautobot.nautobot_data_validation_engine` app to `nautobot.data_validation`.\r\n- [#7171](https://github.com/nautobot/nautobot/issues/7171) - Regenerated the database schema migrations for `nautobot.data_validation` models.\r\n- [#7183](https://github.com/nautobot/nautobot/issues/7183) - Migrate generic object list view to Bootstrap 5.\r\n- [#7203](https://github.com/nautobot/nautobot/issues/7203) - Removed bespoke \"Add Devices to Cluster\" and \"Remove Devices from Cluster\" forms/views and added this functionality into the base Cluster edit and bulk-edit forms/views.\r\n- [#7209](https://github.com/nautobot/nautobot/issues/7209) - Move filter form modal to flyout.\r\n- [#7226](https://github.com/nautobot/nautobot/issues/7226) - Moved table config button from top buttons row to table header and table config form from modal to drawer.\r\n- [#7227](https://github.com/nautobot/nautobot/issues/7227) - Migrated Saved Views dropdown menu to drawer.\r\n- [#7239](https://github.com/nautobot/nautobot/issues/7239) - Replaced `yarn` with `npm`.\r\n- [#7256](https://github.com/nautobot/nautobot/issues/7256) - The `approved_at` field from `extras.ScheduleJob` model has been changed to `decision_date`.\r\n- [#7276](https://github.com/nautobot/nautobot/issues/7276) - Moved table action buttons to dropdown menus.\r\n- [#7276](https://github.com/nautobot/nautobot/issues/7276) - Updated all table action button templates to render as dropdown items rather than flat structure buttons.\r\n- [#7316](https://github.com/nautobot/nautobot/issues/7316) - Make Approval Workflow's active stage clearer in the UI.\r\n- [#7333](https://github.com/nautobot/nautobot/issues/7333) - Migrated homepage to Bootstrap 5.\r\n- [#7333](https://github.com/nautobot/nautobot/issues/7333) - Abstracted out draggable API to a generic and reusable form.\r\n- [#7465](https://github.com/nautobot/nautobot/issues/7465) - Move all form buttons to sticky footers.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Simplified `runnable` property logic in the Job model: removed check for `has_sensitive_variable`s and `approval_required`. Now only depends on `enabled` and `installed` flags.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Changed the `post` method in `JobRunView` and the `run` action in `JobViewSetBase` to check for an approval workflow on the scheduled job instead of using `approval_required`.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Changed `extras/job_approval_confirmation.html` to override `extras/approval_workflow/approve.html` for ScheduledJob instances that meet specific conditions, displaying a warning when the job is past its scheduled start time.\r\n- [#7486](https://github.com/nautobot/nautobot/issues/7486) - Changed Prefix table behavior to not show \"utilization\" by default, as it has significant performance impact when displayed.\r\n- [#7521](https://github.com/nautobot/nautobot/issues/7521) - Updated tabs injected via `{% block extra_tab_content %}` and tabs generated from plugin to match Bootstrap 5 design.\r\n- [#7521](https://github.com/nautobot/nautobot/issues/7521) - Updated `switch_tab` function in integration tests to work with tabs hiding mechanism.\r\n- [#7525](https://github.com/nautobot/nautobot/issues/7525) - Genericize and standardize the way \"Collapse/Expand All\" buttons work in the app using data-nb-toggle=\"collapse-all\" data attribute.\r\n- [#7551](https://github.com/nautobot/nautobot/issues/7551) - Implement v3 UI design in table filters drawer Basic tab. Refactor some of the existing Select2 forms code.\r\n- [#7587](https://github.com/nautobot/nautobot/issues/7587) - Implemented v3 table advanced filter form,\r\n- [#7602](https://github.com/nautobot/nautobot/issues/7602) - Prefixed following classes with `nb-*`: `table-headings`, `description`, `style-line` and `sidenav-*`.\r\n- [#7619](https://github.com/nautobot/nautobot/issues/7619) - Implemented saved view form new look and feel.\r\n- [#7635](https://github.com/nautobot/nautobot/issues/7635) - Fix sidenav and drawer height to viewport instead of an entire page.\r\n- [#7673](https://github.com/nautobot/nautobot/issues/7673) - Updated table config drawer.\r\n- [#7679](https://github.com/nautobot/nautobot/issues/7679) - Migrated unauthenticated pages to Bootstrap 5.\r\n- [#7738](https://github.com/nautobot/nautobot/issues/7738) - Use Nautobot standard layout (header, sidenav, footer) in special views (Admin, GraphiQL, DRF API docs, Swagger and Redoc).\r\n- [#7741](https://github.com/nautobot/nautobot/issues/7741) - Changed a number of Redis cache keys to be more standardized.\r\n- [#7800](https://github.com/nautobot/nautobot/issues/7800) - Separate `page_title` block from `breadcrumbs` in base Django templates.\r\n- [#7823](https://github.com/nautobot/nautobot/issues/7823) - Updated titles and breadcrumbs for new views with added header like API Docs, GraphiQL, template renderer and user settings.\r\n- [#7832](https://github.com/nautobot/nautobot/issues/7832) - Improved active nav menu items determination logic and moved it from template to context processor.\r\n- [#7832](https://github.com/nautobot/nautobot/issues/7832) - Changed Scheduled Jobs URL path from `/extras/jobs/scheduled-jobs/` to `/extras/scheduled-jobs/`.\r\n- [#7832](https://github.com/nautobot/nautobot/issues/7832) - Restricted nav menu to highlight only one active item at a time.\r\n- [#7842](https://github.com/nautobot/nautobot/issues/7842) - The `has_approval_workflow_definition` method has been moved to `ApprovableModelMixin` from `ScheduledJob` so that it can be used by any model that will be handled by the approval process.\r\n- [#7842](https://github.com/nautobot/nautobot/issues/7842) - Replaced `APPROVAL_WORKFLOW_MODELS` constant with `FeatureQuery` and `populate_model_features_registry`.\r\n- [#7842](https://github.com/nautobot/nautobot/issues/7842) - Changed rendering Approval Workflow tab in ScheduledJob; now renders only when the scheduled job has any associated approval workflows.\r\n- [#7842](https://github.com/nautobot/nautobot/issues/7842) - Flagged Approval Workflows and their various sub-models as non-versionable.\r\n- [#7872](https://github.com/nautobot/nautobot/issues/7872) - Improved Dropdown and Select2 highlighted items visibility.\r\n- [#7892](https://github.com/nautobot/nautobot/issues/7892) - Removed unnecessary and error-prone cache logic from the `PathEndpoint.connected_endpoint` property.\r\n- [#7898](https://github.com/nautobot/nautobot/issues/7898) - Updated Nautobot theme, most notably dark theme color palette and navbar spacings and colors.\r\n- [#7902](https://github.com/nautobot/nautobot/issues/7902) - Ran `nautobot-migrate-bootstrap-v3-to-v5` against all core HTML templates to auto-migrate many remaining Bootstrap 3 CSS classes and HTML structure to Bootstrap 5 equivalents, as well as identifying various CSS/HTML that needed manual updates.\r\n- [#7902](https://github.com/nautobot/nautobot/issues/7902) - Ran updated DjLint rules against all core HTML templates and manually addressed any identified issues not already covered by the `nautobot-migrate-bootstrap-v3-to-v5` script.\r\n- [#7904](https://github.com/nautobot/nautobot/issues/7904) - Refined page header and tree hierarchy UI.\r\n\r\n### Removed in v3.0.0a1\r\n\r\n- [#6874](https://github.com/nautobot/nautobot/issues/6874) - Removed unused job `DeleteOrphanedDataComplianceData`.\r\n- [#7136](https://github.com/nautobot/nautobot/issues/7136) - Removed `ApprovableModelMixin` inheritance from Job.\r\n- [#7136](https://github.com/nautobot/nautobot/issues/7136) - Removed job from `APPROVAL_WORKFLOW_MODELS`.\r\n- [#7136](https://github.com/nautobot/nautobot/issues/7136) - Removed ApprovalWorkflow table from `JobView`.\r\n- [#7180](https://github.com/nautobot/nautobot/issues/7180) - Removed `wrap_model_clean_methods` and `custom_validator_clean` methods from the `nautobot.apps` namespace as they should only ever be called by Nautobot itself as part of system startup.\r\n- [#7203](https://github.com/nautobot/nautobot/issues/7203) - Removed `cluster` field from Device REST API serializer. `clusters` is available as a read-only field, and assignment of Devices to Clusters via the REST API is now possible via `/api/dcim/device-cluster-assignments/`.\r\n- [#7226](https://github.com/nautobot/nautobot/issues/7226) - Removed `table_config_button_small` Django template tag.\r\n- [#7256](https://github.com/nautobot/nautobot/issues/7256) - Removed actions from `api/extras/scheduled-job/`: approve, deny\r\n- [#7256](https://github.com/nautobot/nautobot/issues/7256) - Removed `approved_by_user` field from `extras.ScheduleJob` model. Now this information is stored in `ApprovalWorkflowStageResponse` model.\r\n- [#7411](https://github.com/nautobot/nautobot/issues/7411) - Remove v2 search.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Removed `approval_required` and `approval_required_override` flags from the Job model and base implementation class.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Removed the `validate` method from `JobSerializer` that checked `approval_required` against `has_sensitive_variables`.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Removed logic from the `clean` method in the Job model that validated `approval_required` against `has_sensitive_variables`.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Removed HTML code related to the `approval_required` field.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Removed `ScheduledJobApprovalQueueListView` and `JobApprovalRequestView` with all relevant files, methods and tests.\r\n- [#7525](https://github.com/nautobot/nautobot/issues/7525) - Removed `accordion-toggle` and `accordion-toggle-all` legacy CSS classes.\r\n- [#7538](https://github.com/nautobot/nautobot/issues/7538) - Removed legacy CSS classes: `filter-container`, `display-inline`, `filter-selection`, `filter-selection-choice`, `filter-selection-choice-remove`, `filter-selection-rendered` and `remove-filter-param`.\r\n- [#7842](https://github.com/nautobot/nautobot/issues/7842) - Removed job specific fields from `ObjectApprovalWorkflowView`.\r\n\r\n### Fixed in v3.0.0a1\r\n\r\n- [#7117](https://github.com/nautobot/nautobot/issues/7117) - Fixed an exception when rendering Nautobot Version Control app diffs that include GitRepository or JobResult records.\r\n- [#7131](https://github.com/nautobot/nautobot/issues/7131) - Fixed Graphene v3 handling of `description` filters.\r\n- [#7131](https://github.com/nautobot/nautobot/issues/7131) - Restored GraphQL `_type` filters (as aliases of `type` filters) to preserve backwards compatibility with Nautobot v2.x.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Resolved an issue where approval workflows were not correctly fetched due to querying the wrong relationship (`approval_workflow_instances` instead of `associated_approval_workflows`).\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Fixed approvalworkflowdefinition_update templates.\r\n- [#7171](https://github.com/nautobot/nautobot/issues/7171) - Added handling for the ContactAssociation, MetadataType, ObjectMetadata, and Role models to `nautobot.core.utils.migration.migrate_content_type_references_to_new_model`.\r\n- [#7171](https://github.com/nautobot/nautobot/issues/7171) - Renamed the data-validation model database tables to fit within identifier length limits in Dolt and MySQL.\r\n- [#7171](https://github.com/nautobot/nautobot/issues/7171) - Fixed missing \"Data Compliance\" tab on relevant models.\r\n- [#7180](https://github.com/nautobot/nautobot/issues/7180) - Fixed an issue in which data-validation-engine checks would incorrectly run repeatedly when calling model `clean()`, causing significant performance degradation.\r\n- [#7180](https://github.com/nautobot/nautobot/issues/7180) - Changed data-validation-engine `BaseValidator.clean()` implementation to use cacheable lookup APIs, improving performance of repeated model `clean()` calls.\r\n- [#7259](https://github.com/nautobot/nautobot/issues/7259) - Fixed not working JavaScript build by converting webpack config from CJS to ESM.\r\n- [#7261](https://github.com/nautobot/nautobot/issues/7261) - Fixed JS imports causing Webpack build failures.\r\n- [#7434](https://github.com/nautobot/nautobot/issues/7434) - Fixed Prefix tabs to properly render without HTTP 500.\r\n- [#7434](https://github.com/nautobot/nautobot/issues/7434) - Fixed module bays details to properly render title and breadcrumbs.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Fixed dryrun functionality in post method of JobRunView.\r\n- [#7480](https://github.com/nautobot/nautobot/issues/7480) - Fixed draggable homepage panels on Firefox.\r\n- [#7524](https://github.com/nautobot/nautobot/issues/7524) - Fixed broken theme preview page.\r\n- [#7525](https://github.com/nautobot/nautobot/issues/7525) - Fixed job list view not rendering jobs.\r\n- [#7563](https://github.com/nautobot/nautobot/issues/7563) - Fixed `data_validation.0002` migration to handle a schema difference between the latest Data Validation Engine App and the version in Nautobot core.\r\n- [#7652](https://github.com/nautobot/nautobot/issues/7652) - Fixed missing \"Created/Updated\" and action buttons on object detail views.\r\n- [#7653](https://github.com/nautobot/nautobot/issues/7653) - Fixed main tab sometimes incorrectly displayed as active in detail view.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Fixed a bug in CSV rendering of VarbinaryIPField values on Dolt.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Fixed a bug in `settings.py` when using `NAUTOBOT_DB_ENGINE=django_prometheus.db.backends.mysql`.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Fixed a bug in Git repository refreshing where a data failure was not correctly detected under Dolt.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Fixed a bug in `get_celery_queues()` caching.\r\n- [#7659](https://github.com/nautobot/nautobot/issues/7659) - Fixed rendering of progress bars under 30%.\r\n- [#7660](https://github.com/nautobot/nautobot/issues/7660) - Fixed a rendering error in `/ipam/prefixes/<uuid>/prefixes/` child-prefixes view.\r\n- [#7707](https://github.com/nautobot/nautobot/issues/7707) - Fixed bug with Job Execution card always fully visible in Run Job form.\r\n- [#7713](https://github.com/nautobot/nautobot/issues/7713) - Fixed broken banner styles.\r\n- [#7719](https://github.com/nautobot/nautobot/issues/7719) - Fixed theme preview example layouts and components.\r\n- [#7721](https://github.com/nautobot/nautobot/issues/7721) - Fixed an issue where the current tab was not highlighted as active.\r\n- [#7740](https://github.com/nautobot/nautobot/issues/7740) - Fixed bug with invalid reference to Nautobot version control branch list URL.\r\n- [#7839](https://github.com/nautobot/nautobot/issues/7839) - Fixed Import Objects form by using `job_form_wrapper` and tabs on the card-header.\r\n- [#7843](https://github.com/nautobot/nautobot/issues/7843) - Fixed white background flash during page load in system dark color mode.\r\n- [#7881](https://github.com/nautobot/nautobot/issues/7881) - Fixed image rendering in echarts and approval workflow md files.\r\n- [#7894](https://github.com/nautobot/nautobot/issues/7894) - Fixed HTML rendering of numbered lists in the approval workflow documentation.\r\n- [#7896](https://github.com/nautobot/nautobot/issues/7896) - Fixed missing action button left border in case when there is only one action button.\r\n- [#7897](https://github.com/nautobot/nautobot/issues/7897) - Fixed non clickable interactive elements in collapsible card headers.\r\n- [#7912](https://github.com/nautobot/nautobot/issues/7912) - Hid sidenav tabs and groups with no items.\r\n\r\n### Dependencies in v3.0.0a1\r\n\r\n- [#4769](https://github.com/nautobot/nautobot/issues/4769) - Updated GraphiQL UI to version 2.4.7 (the version supported by `graphene-django` 3.2.0).\r\n- [#5745](https://github.com/nautobot/nautobot/issues/5745) - Updated dependencies `graphene-django` to `~3.2.3` and `graphene-django-optimizer` to `~0.10.0`.\r\n- [#7186](https://github.com/nautobot/nautobot/issues/7186) - Updated `netutils` minimum version to 1.12.0 as older versions do not support Python 3.13.\r\n- [#7200](https://github.com/nautobot/nautobot/issues/7200) - Dropped support for Python 3.9. Python 3.10 is now the minimum version required by Nautobot.\r\n- [#7200](https://github.com/nautobot/nautobot/issues/7200) - Added support for Python 3.13. Python 3.13 is now the maximum version required by Nautobot.\r\n- [#7208](https://github.com/nautobot/nautobot/issues/7208) - Updated `select2` dependency to v4.0.13.\r\n- [#7208](https://github.com/nautobot/nautobot/issues/7208) - Added `select2-bootstrap-5-theme` dependency to make `select2` work with `Bootstrap5`\r\n- [#7431](https://github.com/nautobot/nautobot/issues/7431) - Updated dependency `celery` to `~5.5.3`.\r\n- [#7431](https://github.com/nautobot/nautobot/issues/7431) - Removed direct dependency on `kombu` as the newer version of `celery` includes an appropriate dependency.\r\n- [#7675](https://github.com/nautobot/nautobot/issues/7675) - Replaced `mime-support` with `media-types` in Dockerfile dependencies. The `mime-support` package is no longer available in newer Debian-based `python:slim` images (starting with Debian 13 \"Trixie\"). For the same reason, the `xmlsec` dependency was upgraded to version `1.3.16` to ensure compatibility with the updated build environment.\r\n- [#7680](https://github.com/nautobot/nautobot/issues/7680) - Added dependency on `htmx` npm package.\r\n- [#7680](https://github.com/nautobot/nautobot/issues/7680) - Removed `django-htmx` from the Python dependencies.\r\n- [#7726](https://github.com/nautobot/nautobot/issues/7726) - Added dependency on `echarts` npm package.\r\n\r\n### Documentation in v3.0.0a1\r\n\r\n- [#7306](https://github.com/nautobot/nautobot/issues/7306) - Create v2.x to v3.0 UI migration guide.\r\n- [#7716](https://github.com/nautobot/nautobot/issues/7716) - Added docs to communicate about configurable columns performance impact.\r\n- [#7726](https://github.com/nautobot/nautobot/issues/7726) - Added documentation about new feature ECharts.\r\n- [#7730](https://github.com/nautobot/nautobot/issues/7730) - Added Involving Scheduled Job Approval example to Approval Workflow documentation.\r\n- [#7741](https://github.com/nautobot/nautobot/issues/7741) - Corrected formatting of autogenerated docs for various items in `nautobot.apps`.\r\n- [#7811](https://github.com/nautobot/nautobot/issues/7811) - Document UI best practices.\r\n- [#7891](https://github.com/nautobot/nautobot/issues/7891) - Fixed a dead link to the Django documentation.\r\n- [#7899](https://github.com/nautobot/nautobot/issues/7899) - Documented additional HTML changes needed in forms when migrating to Nautobot v3 and Bootstrap 5.\r\n\r\n### Housekeeping in v3.0.0a1\r\n\r\n- [#1889](https://github.com/nautobot/nautobot/issues/1889) - Removed explicit `label` declarations from many filterset filters where the enhanced automatic labeling should suffice.\r\n- [#6874](https://github.com/nautobot/nautobot/issues/6874) - Refactored Nautobot Data Validation Engine code.\r\n- [#7180](https://github.com/nautobot/nautobot/issues/7180) - Added `--print-sql` option to `invoke nbshell`.\r\n- [#7449](https://github.com/nautobot/nautobot/issues/7449) - Fixed CI failures after the merge of #7433.\r\n- [#7474](https://github.com/nautobot/nautobot/issues/7474) - Cleaned up legacy logic and tests related to deprecated approval flags.\r\n- [#7497](https://github.com/nautobot/nautobot/issues/7497) - Migrate base.css and dark.css files with existing Nautobot styles into new packaging.\r\n- [#7505](https://github.com/nautobot/nautobot/issues/7505) - Added \"npm\" manager to Renovate configuration.\r\n- [#7523](https://github.com/nautobot/nautobot/issues/7523) - Added `docker-compose.dolt.yml` and supporting files to enable local development and testing against a Dolt database.\r\n- [#7630](https://github.com/nautobot/nautobot/issues/7630) - Added `ui-build-check` step to pull request and integration CI workflows to check UI src and dist files validity and integrity.\r\n- [#7652](https://github.com/nautobot/nautobot/issues/7652) - Added `test_has_timestamps_and_buttons` generic test case to `GetObjectViewTestCase` base test class.\r\n- [#7657](https://github.com/nautobot/nautobot/issues/7657) - Lint JS code.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Refactored Dolt development `Dockerfile-dolt` and `docker-compose.dolt.yml`.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Updated Dolt version in development environment to 1.58.2.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Removed the `doltdb_stuck` tag from test cases previously failing under Dolt.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Updated test and subtest definitions in `nautobot/dcim/tests/test_filters.py` for clarity and efficiency.\r\n- [#7658](https://github.com/nautobot/nautobot/issues/7658) - Fixed an intermittent test failure in `nautobot.extras.tests.test_filters.ObjectMetadataTestCase`.\r\n- [#7659](https://github.com/nautobot/nautobot/issues/7659) - Added UI rebuild and tooling to development Docker Compose for developer convenience.\r\n- [#7726](https://github.com/nautobot/nautobot/issues/7726) - Updated example app to use related manager names.\r\n- [#7726](https://github.com/nautobot/nautobot/issues/7726) - Updated UI_COLORS names to match values in colors.scss.\r\n- [#7739](https://github.com/nautobot/nautobot/issues/7739) - Add `0.3125rem` (`5px`) spacer.\r\n- [#7773](https://github.com/nautobot/nautobot/issues/7773) - Updated development dependency `coverage` to `~7.10.6`.\r\n- [#7785](https://github.com/nautobot/nautobot/issues/7785) - Added `invoke` commands and renamed existing `npm` commands for frontend development.\r\n- [#7799](https://github.com/nautobot/nautobot/issues/7799) - Fix broken `ui-build-check` CI job.\r\n- [#7884](https://github.com/nautobot/nautobot/issues/7884) - Added legacy button templates usage check to action buttons presence unit test on detail view page.\r\n- [#7885](https://github.com/nautobot/nautobot/issues/7885) - Removed documentation dependency `mkdocs-include-markdown-plugin` as older versions have a security vulnerability and Nautobot core hasn't actually needed this dependency since v2.0.\r\n- [#7911](https://github.com/nautobot/nautobot/issues/7911) - Moved UI source files out of `project-static` to its own dedicated `ui` directory.\r\n\r\n## Contributors\r\n\r\n* @HanlinMiao\r\n* @mateusz-lachowski-codilime\r\n* @lampwins\r\n* @norbert-mieczkowski-codilime\r\n* @glennmatthews\r\n* @dsoftait\r\n* @itdependsnetworks\r\n* @renovate[bot]\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.19...v3.0.0a1",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/252517065/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 1,
            "eyes": 0
        },
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/250908858",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/250908858/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/250908858/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.19",
        "id": 250908858,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4O9JC6",
        "tag_name": "v2.4.19",
        "target_commitish": "main",
        "name": "v2.4.19 - 2025-09-29",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-09-29T19:13:10Z",
        "updated_at": "2025-09-29T19:41:37Z",
        "published_at": "2025-09-29T19:15:20Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/298607426",
                "id": 298607426,
                "node_id": "RA_kwDOFEucDc4RzGNC",
                "name": "nautobot-2.4.19-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44569981,
                "digest": "sha256:68b8b035db4d4764b741bb9c3ee44498504bb00abe29eebe45dd347ad198d068",
                "download_count": 6,
                "created_at": "2025-09-29T19:41:36Z",
                "updated_at": "2025-09-29T19:41:37Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.19/nautobot-2.4.19-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/298607417",
                "id": 298607417,
                "node_id": "RA_kwDOFEucDc4RzGM5",
                "name": "nautobot-2.4.19.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43359901,
                "digest": "sha256:666a30370a91e85103e70e81f8b8040f62eae4de748c268b0c3b63097be6903d",
                "download_count": 6,
                "created_at": "2025-09-29T19:41:34Z",
                "updated_at": "2025-09-29T19:41:36Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.19/nautobot-2.4.19.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.19",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.19",
        "body": "## What's Changed\r\n\r\n## Added in v2.4.19\r\n\r\n- [#7471](https://github.com/nautobot/nautobot/issues/7471) - Added support for `distinct` optional parameter when defining an `ObjectsTablePanel` UI component.\r\n- [#7809](https://github.com/nautobot/nautobot/issues/7809) - Added `description` filter for the VRF and IPAddress models.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Added support for disabling a `DistinctViewTab` without hiding it by providing a `disabled_message` in the render context.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Added support for `hide_if_empty` optional parameter on `DistinctViewTab`.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Added support for optional `required_permissions` on all `Component` subclasses to hide components when the user lacks appropriate permissions.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Added special-case support for rendering a related Cluster (including its Cluster Group) and related Rack (including its Rack Group) in `KeyValueTablePanel`.\r\n- [#7862](https://github.com/nautobot/nautobot/issues/7862) - Added support for `Button.render_on_tab_id` parameter to scope UI Component buttons to a specific view tab.\r\n- [#7862](https://github.com/nautobot/nautobot/issues/7862) - Added `should_render_content()` API to `Tab` and `DistinctViewTab` to avoid rendering tab contents unnecessarily when a different tab or set of tabs is displayed.\r\n\r\n### Changed in v2.4.19\r\n\r\n- [#7471](https://github.com/nautobot/nautobot/issues/7471) - Changed UI `ObjectsTablePanel` to only apply `.distinct()` to queries when explicitly requested, instead of unconditionally. Improves performance of rendering these tables in most cases.\r\n- [#7471](https://github.com/nautobot/nautobot/issues/7471) - Changed `DeviceType` detail view to apply proper ordering to the table of related `SoftwareImageFile` records.\r\n- [#7606](https://github.com/nautobot/nautobot/issues/7606) - Changed \"Side A\" and \"Side Z\" column in circuit table to show shorter `location.name` instead of `location.display`.\r\n- [#7809](https://github.com/nautobot/nautobot/issues/7809) - Changed the jobs `BulkDeleteObjects` and `BulkEditObjects` to be hidden by default.\r\n- [#7821](https://github.com/nautobot/nautobot/issues/7821) - Changed the maximum allowed value for rack height from 100 to 500.\r\n- [#7844](https://github.com/nautobot/nautobot/issues/7844) - Implemented UI Component Framework `breadcrumbs` for core views that were previously using `extra_breadcrumbs` template block overrides.\r\n- [#7844](https://github.com/nautobot/nautobot/issues/7844) - Refactored `JobResultUIViewSet` to use UI Component Framework `breadcrumbs`.\r\n- [#7849](https://github.com/nautobot/nautobot/issues/7849) - Changed the form field `software_version` on `SoftwareImageFileForm` form to be a dynamic dropdown.\r\n- [#7849](https://github.com/nautobot/nautobot/issues/7849) - Changed the form field `platform` on `SoftwareVersionForm` form to be a dynamic dropdown.\r\n\r\n### Fixed in v2.4.19\r\n\r\n- [#7651](https://github.com/nautobot/nautobot/issues/7651) - Improved GraphQL query performance when querying many-to-many and many-to-one related objects such as `{ tenant_groups { tenants { name }}}`.\r\n- [#7763](https://github.com/nautobot/nautobot/issues/7763) - Fixed an intermittent test failure for `test_anonymous_user_get_shared_views_only`.\r\n- [#7809](https://github.com/nautobot/nautobot/issues/7809) - Fixed bulk object edit and bulk delete not considering filtering of saved views.\r\n- [#7809](https://github.com/nautobot/nautobot/issues/7809) - Fixed buttons on bulk views not adhering to the \"all\" toggle.\r\n- [#7809](https://github.com/nautobot/nautobot/issues/7809) - Fixed circular import error by lazy importing job based classes into core views.\r\n- [#7810](https://github.com/nautobot/nautobot/issues/7810) - Improved performance for device detail view by avoiding to calculate the location tree more often than needed.\r\n- [#7812](https://github.com/nautobot/nautobot/issues/7812) - Fixed prefix/circuit count for location detail view stats panel.\r\n- [#7818](https://github.com/nautobot/nautobot/issues/7818) - Fixed incorrect closing HTML tag in `body_content_data_table.html`.\r\n- [#7818](https://github.com/nautobot/nautobot/issues/7818) - Added call to `mark_safe()` on rendered HTML captured by `captureas` template-tag.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Fixed rendering of table-panel footers when both `footer_buttons` and a `body_content_table_add_url` are defined.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Fixed incorrect URL paths for actions under `DeviceType`, for example `/dcim/device-types/<pk>/consoleports/` is now corrected to `/dcim/device-types/<pk>/console-ports/`.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Enhanced `NautobotUIViewSetMixin` to correctly set the `active_tab` when rendering a detail action other than the default `\"retrieve\"`.\r\n- [#7833](https://github.com/nautobot/nautobot/issues/7833) - Fixed an exception when rendering an object detail view with no corresponding list view.\r\n- [#7835](https://github.com/nautobot/nautobot/issues/7835) - Fixed an MRO error in generic views by consistently placing `UIComponentsMixin` at the beginning of base classes.\r\n- [#7855](https://github.com/nautobot/nautobot/issues/7855) - Fixed NoteUIViewSet to correctly populate `user` and `user_name` fields on Note creation.\r\n- [#7858](https://github.com/nautobot/nautobot/issues/7858) - Fixed the `InstanceBreadcrumbsItem` and `InstanceParentBreadcrumbsItem` to not format label with title-casing.\r\n- [#7858](https://github.com/nautobot/nautobot/issues/7858) - Fixed the Breadcrumbs Items classes to not format label with title-casing for custom labels.\r\n- [#7863](https://github.com/nautobot/nautobot/issues/7863) - Fixed a circular-import issue seen in some Apps following #7825.\r\n- [#7877](https://github.com/nautobot/nautobot/issues/7877) - Fixed an error in rendering the Device detail view when the device has a controller-managed device group with null `capabilities`.\r\n- [#7877](https://github.com/nautobot/nautobot/issues/7877) - Fixed inability to specify null `capabilities` when editing a Controller or Controller Managed Device Group via the REST API.\r\n\r\n### Documentation in v2.4.19\r\n\r\n- [#7845](https://github.com/nautobot/nautobot/issues/7845) - Documented options for controlling Celery worker prefetching behavior in the \"Task Queues\" guide.\r\n\r\n### Housekeeping in v2.4.19\r\n\r\n- [#7627](https://github.com/nautobot/nautobot/issues/7627) - Refactored ObjectChange model related UI views to use `NautobotUIViewSet`.\r\n- [#7794](https://github.com/nautobot/nautobot/issues/7794) - Refactored Prefix model related UI views to use `UI component framework` and `NautobotUIViewSet`.\r\n- [#7797](https://github.com/nautobot/nautobot/issues/7797) - Updated documentation dependency `mkdocs-material` to `~9.6.20`.\r\n- [#7797](https://github.com/nautobot/nautobot/issues/7797) - Updated documentation dependency `mkdocstrings` to `~0.30.1`.\r\n- [#7797](https://github.com/nautobot/nautobot/issues/7797) - Updated development dependency `djhtml` to `>=3.0.9,<4.0.0`.\r\n- [#7810](https://github.com/nautobot/nautobot/issues/7810) - Added CTE query count tracking to GetObjectViewTestCase test cases to keep track of and minimize the query count.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Refactored Device model related UI views to use `NautobotUIViewSet` and `UI Component Framework`.\r\n- [#7825](https://github.com/nautobot/nautobot/issues/7825) - Refactored VirtualMachine model related UI views to use `NautobotUIViewSet` and `UI Component Framework`.\r\n- [#7854](https://github.com/nautobot/nautobot/issues/7854) - Add DjHTML and djLint to the project and run it against all Django template files. Include this additional check in pre-commit script and pull request CI workflow.\r\n- [#7864](https://github.com/nautobot/nautobot/issues/7864) - Updated the recursive query failure message for the `GetObjectViewTestCase.test_get_object_with_permission` generic test.\r\n- [#7877](https://github.com/nautobot/nautobot/issues/7877) - Updated the `ControllerFactory` and `ControllerManagedDeviceGroupFactory` to potentially create records with a null `capabilities` field.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @seaburger\r\n* @sirisha-bode\r\n* @Kircheneer\r\n* @progala\r\n* @dsoftait \r\n* @mateusz-lachowski-codilime\r\n* @nkallergis\r\n* @norbert-mieczkowski-codilime\r\n* @itdependsnetworks\r\n* @gsnider2195\r\n* @renovate[bot]\r\n\r\n## New Contributors\r\n* @progala made their first contribution in https://github.com/nautobot/nautobot/pull/7822\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.18...v2.4.19",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7889",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/247364349",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/247364349/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/247364349/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.18",
        "id": 247364349,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Ovnr9",
        "tag_name": "v2.4.18",
        "target_commitish": "main",
        "name": "v2.4.18 - 2025-09-15",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-09-15T16:13:05Z",
        "updated_at": "2025-09-15T16:43:19Z",
        "published_at": "2025-09-15T16:16:16Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/293510738",
                "id": 293510738,
                "node_id": "RA_kwDOFEucDc4Rfp5S",
                "name": "nautobot-2.4.18-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44565146,
                "digest": "sha256:92a3cb099501aaec83ede511c2fef389c1917c0c0be0f33dd1c008b5a40ad53c",
                "download_count": 5,
                "created_at": "2025-09-15T16:43:17Z",
                "updated_at": "2025-09-15T16:43:18Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.18/nautobot-2.4.18-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/293510730",
                "id": 293510730,
                "node_id": "RA_kwDOFEucDc4Rfp5K",
                "name": "nautobot-2.4.18.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43341669,
                "digest": "sha256:7b6b8b4e7495242e5a1ca58033222c12740d55303e4c7086fae6dd79506d9174",
                "download_count": 6,
                "created_at": "2025-09-15T16:43:15Z",
                "updated_at": "2025-09-15T16:43:16Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.18/nautobot-2.4.18.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.18",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.18",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.18\r\n\r\n- [#7764](https://github.com/nautobot/nautobot/issues/7764) - Updated dependency `Django` to `~4.2.24` to mitigate `CVE-2025-57833`.\r\n\r\n### Added in v2.4.18\r\n\r\n- [#7614](https://github.com/nautobot/nautobot/issues/7614) - Added Bulk Edit functionality for the DynamicGroup model.\r\n- [#7687](https://github.com/nautobot/nautobot/issues/7687) - Added usage of `{% render_title %}` and `{% render_breadcrumbs %}` in `object_list.html` and `object_retrieve.html` templates.\r\n- [#7727](https://github.com/nautobot/nautobot/issues/7727) - EXPERIMENTAL: Enabled caching of App-generated Prometheus metrics. This is an experimental feature and may be removed or changed in future releases.\r\n- [#7758](https://github.com/nautobot/nautobot/issues/7758) - Added SavedView capability to JobResults model.\r\n- [#7784](https://github.com/nautobot/nautobot/issues/7784) - Added support for `ObjectFieldsPanel(...fields=\"__all__\", additional_fields=[...])` to allow inclusion of properties, reverse relations, nested lookups, and other attributes not normally included in `__all__`.\r\n- [#7784](https://github.com/nautobot/nautobot/issues/7784) - Enhanced `ObjectFieldsPanel` to support nested lookup of object fields, such as `fields=[\"rack__rack_group\"]`.\r\n\r\n### Changed in v2.4.18\r\n\r\n- [#7687](https://github.com/nautobot/nautobot/issues/7687) - Updated Devices, Prefixes, Plugins, Circuits views to use UI Component Framework Breadcrumbs.\r\n- [#7687](https://github.com/nautobot/nautobot/issues/7687) - Updated `ObjectView` to instantiate default `Breadcrumbs` and `Titles` and pass it in context.\r\n- [#7687](https://github.com/nautobot/nautobot/issues/7687) - Updated `ObjectListView` to instantiate default `Breadcrumbs` and `Titles` and pass it in context along with `verbose_name_plural` and `view_action`.\r\n- [#7784](https://github.com/nautobot/nautobot/issues/7784) - Changed `ObjectFieldsPanel.__init__` behavior to raise an error if `exclude_fields` is specified in combination with any value of `fields` other than `\"__all__\"`.\r\n- [#7795](https://github.com/nautobot/nautobot/issues/7795) - Changed CircuitTermination UI `Port Speed` and `Upstream Speed` fields back to single field `Speed` with arrows.\r\n- [#7801](https://github.com/nautobot/nautobot/issues/7801) - Updated Breadcrumbs docs and `UIComponentsMixin` order in some classes.\r\n\r\n### Fixed in v2.4.18\r\n\r\n- [#7330](https://github.com/nautobot/nautobot/issues/7330) - Fixed a `FieldError` exception when sorting tree-model (Location, LocationType, RackGroup, etc.) tables by a custom field column.\r\n- [#7330](https://github.com/nautobot/nautobot/issues/7330) - Fixed removal of list-view filters when reverting the table sorting to default.\r\n- [#7631](https://github.com/nautobot/nautobot/issues/7631) - Fixed duplicate records returned in some cases by `DynamicGroup.update_cached_members()`.\r\n- [#7723](https://github.com/nautobot/nautobot/issues/7723) - Fixed bug in which `Device` objects could be saved when they didn't have to be.\r\n- [#7748](https://github.com/nautobot/nautobot/issues/7748) - Updated `last_run` column in `JobTable` to avoid referencing settings directly inside TemplateColumn. Since `django-tables2` does not include context processors when rendering column templates, using `settings.SHORT_DATETIME_FORMAT` caused lookup errors or pickling issues. Now the required format `settings.SHORT_DATETIME_FORMAT` is passed explicitly via `extra_context`, ensuring correct rendering in both views and table contexts.\r\n- [#7753](https://github.com/nautobot/nautobot/issues/7753) - Fixed a bug in which IPv4 /31 Prefix records might be assigned the wrong `parent` Prefix.\r\n- [#7753](https://github.com/nautobot/nautobot/issues/7753) - Fixed a bug in which IPv6 records such as `::1/128` might be assigned the wrong `parent` Prefix.\r\n- [#7754](https://github.com/nautobot/nautobot/issues/7754) - Fixed issue with `FilterTestCases.test_tenant_group` where the filter query could return the same `TenantGroup` object multiple times.\r\n- [#7765](https://github.com/nautobot/nautobot/issues/7765) - Fixed column ordering issue by disabling `orderable` for `PowerFeedTable.occupied_positions`, `PowerFeedTable.phase_designation`, and `JobResultTable.duration`.\r\n- [#7765](https://github.com/nautobot/nautobot/issues/7765) - Fixed `ObjectMetadataTable.value` column ordering issue by adding missing `order_by` attribute.\r\n- [#7774](https://github.com/nautobot/nautobot/issues/7774) - Fixed incorrect rendering of Nautobot `n` icon in some browsers.\r\n- [#7783](https://github.com/nautobot/nautobot/issues/7783) - Fixed an issue where you could not set the virtual chassis master.\r\n- [#7789](https://github.com/nautobot/nautobot/issues/7789) - Changed certain filter fields to prevent unnecessary SELECT DISTINCT queries.\r\n- [#7803](https://github.com/nautobot/nautobot/issues/7803) - Fixed a regression in the handling of `ObjectFieldsPanel(ignore_nonexistent_fields=True)` introduced by #7784.\r\n- [#7808](https://github.com/nautobot/nautobot/issues/7808) - Fixed double `Notes` or `Change Log` added in title.\r\n\r\n### Dependencies in v2.4.18\r\n\r\n- [#7764](https://github.com/nautobot/nautobot/issues/7764) - Updated dependency `cryptography` to `~45.0.7`.\r\n- [#7793](https://github.com/nautobot/nautobot/issues/7793) - Updated dependency `django-silk` to `~5.4.3`.\r\n\r\n### Documentation in v2.4.18\r\n\r\n- [#7787](https://github.com/nautobot/nautobot/issues/7787) - Updated NautobotAppConfig docs to add `searchable_models` link.\r\n\r\n### Housekeeping in v2.4.18\r\n\r\n- [#7614](https://github.com/nautobot/nautobot/issues/7614) - Refactored DynamicGroup model related UI views to use `NautobotUIViewSet`.\r\n- [#7632](https://github.com/nautobot/nautobot/issues/7632) - Refactored GitRepository model related UI views to use `NautobotUIViewSet`.\r\n- [#7669](https://github.com/nautobot/nautobot/issues/7669) - Refactored Note model related UI views to use `UI component framework`.\r\n- [#7689](https://github.com/nautobot/nautobot/issues/7689) - Refactored CustomField model related UI views to use `UI component framework`.\r\n- [#7700](https://github.com/nautobot/nautobot/issues/7700) - Refactored VirtualChassis model related UI views to use `UI component framework`.\r\n- [#7760](https://github.com/nautobot/nautobot/issues/7760) - Updated Prefix API test to avoid a potential spurious failure.\r\n- [#7764](https://github.com/nautobot/nautobot/issues/7764) - Updated development dependency `ruff` to `~0.12.12`.\r\n- [#7765](https://github.com/nautobot/nautobot/issues/7765) - Added a test to ensure model properties are not orderable.\r\n- [#7767](https://github.com/nautobot/nautobot/issues/7767) - Updated CI workflows and Docker image build to use Poetry 2.1.4.\r\n- [#7778](https://github.com/nautobot/nautobot/issues/7778) - Fixed unintended carry-over of data changes between subsequent subtests in `FilterTestCase.test_q_filter_valid`.\r\n- [#7786](https://github.com/nautobot/nautobot/issues/7786) - Updated ReadTheDocs build to use poetry instead of pip.\r\n- [#7804](https://github.com/nautobot/nautobot/issues/7804) - Changed development docker-compose environment to not start the `selenium` container by default.\r\n- [#7804](https://github.com/nautobot/nautobot/issues/7804) - Changed `invoke tests` to auto-start the `selenium` container as needed when running integration tests.\r\n\r\n## Contributors\r\n\r\n* @Sridevi-NTC \r\n* @Pavan-183\r\n* @sirisha-bode\r\n* @glennmatthews\r\n* @dsoftait \r\n* @nrnvgh \r\n* @itdependsnetworks\r\n* @renovate[bot]\r\n* @nopg\r\n* @mateusz-lachowski-codilime\r\n* @gsnider2195\r\n* @nkallergis\r\n* @Kircheneer\r\n* @seaburger\r\n* @bryanculver\r\n\r\n## New Contributors\r\n* @nopg made their first contribution in https://github.com/nautobot/nautobot/pull/7782\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.17...v2.4.18",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7813",
        "mentions_count": 15
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/244182367",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/244182367/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/244182367/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.17",
        "id": 244182367,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Oje1f",
        "tag_name": "v2.4.17",
        "target_commitish": "main",
        "name": "v2.4.17 - 2025-09-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-09-02T16:03:51Z",
        "updated_at": "2025-09-02T16:33:31Z",
        "published_at": "2025-09-02T16:06:49Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/288868624",
                "id": 288868624,
                "node_id": "RA_kwDOFEucDc4RN8kQ",
                "name": "nautobot-2.4.17-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44546134,
                "digest": "sha256:eb3f4edf2212baa60ea334479619c760786feafd8e367bd4556f8c9cfb7e4340",
                "download_count": 7,
                "created_at": "2025-09-02T16:33:30Z",
                "updated_at": "2025-09-02T16:33:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.17/nautobot-2.4.17-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/288868615",
                "id": 288868615,
                "node_id": "RA_kwDOFEucDc4RN8kH",
                "name": "nautobot-2.4.17.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43329243,
                "digest": "sha256:6eddd3ae559b272b83025251315e4d10ea268a6dbd4d3fc225901398c113a7e7",
                "download_count": 8,
                "created_at": "2025-09-02T16:33:28Z",
                "updated_at": "2025-09-02T16:33:29Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.17/nautobot-2.4.17.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.17",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.17",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.17\r\n\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Removed obsolete package `future` from the `poetry.lock` and hence from the Docker images, eliminating Nautobot's exposure to vulnerability CVE-2025-50817 in that package.\r\n\r\n### Added in v2.4.17\r\n\r\n- [#3547](https://github.com/nautobot/nautobot/issues/3547) - Added support for using shift+click to select one or more ranges of objects from list views.\r\n- [#6151](https://github.com/nautobot/nautobot/issues/6151) - Added `Check/Fix IPAM Parents` system Job that can be run if IP Address and/or Prefix `parent` values are incorrectly set.\r\n- [#6151](https://github.com/nautobot/nautobot/issues/6151) - Added logic in IPAddress and Prefix detail views to detect an incorrect `parent` value on the record being viewed and display a banner recommending to run the aforementioned system Job if so.\r\n- [#7685](https://github.com/nautobot/nautobot/issues/7685) - Added Jinja2 validation to `ComputedField` model to catch template syntax errors at save time.\r\n- [#8000](https://github.com/nautobot/nautobot/issues/8000) - Added `django_querystring`, copied from `querystring` templatetag in Django 5.1 and above.\r\n- [#8000](https://github.com/nautobot/nautobot/issues/8000) - Added `legacy_querystring`, copied from `querystring` templatetag in Nautobot 2.4 and below.\r\n\r\n### Changed in v2.4.17\r\n\r\n- [#6151](https://github.com/nautobot/nautobot/issues/6151) - Changed Prefix update logic so that moving a Prefix to a different Namespace now carries along its descendant Prefixes and their associated IP Addresses as well, instead of only carrying along its direct child IP Addresses and leaving behind the other descendants in the original Namespace.\r\n- [#7670](https://github.com/nautobot/nautobot/issues/7670) - Disable default pagination in ObjectsTablePanel.\r\n\r\n### Deprecated in v2.4.17\r\n\r\n- [#8000](https://github.com/nautobot/nautobot/issues/8000) - Deprecate the `querystring` templatetag as it overlaps with Django 5.1.\r\n\r\n### Removed in v2.4.17\r\n\r\n- [#6151](https://github.com/nautobot/nautobot/issues/6151) - Removed UI warnings about various combinations of Prefix types (container versus network versus pool) and IP addresses, as time has shown that there are valid use cases for many of these combinations.\r\n\r\n### Fixed in v2.4.17\r\n\r\n- [#6151](https://github.com/nautobot/nautobot/issues/6151) - Fixed incorrect data after editing a Prefix's `prefix`/`network`/`prefix_length` fields by adding a `clean()` check to detect and block cases where it could result in orphaned IPAddress records.\r\n- [#6151](https://github.com/nautobot/nautobot/issues/6151) - Fixed incorrect data after editing a Prefix's `prefix`/`network`/`prefix_length` fields by adding logic in `save()` to correctly reparent existing child Prefix and IPAddress records.\r\n- [#6151](https://github.com/nautobot/nautobot/issues/6151) - Fixed potential for incorrect data when moving a VRF-associated Prefix between Namespaces by adding a `clean()` check to detect and block this scenario.\r\n- [#7496](https://github.com/nautobot/nautobot/issues/7496) - Fixed issue with removed Prefix column in VLANs table.\r\n- [#7708](https://github.com/nautobot/nautobot/issues/7708) - Hide the 'select all matching query' UI element when the 'select all' checkbox in an object list view is unchecked.\r\n- [#7720](https://github.com/nautobot/nautobot/issues/7720) - Fixed a Django REST Framework warning related to the `power_factor` attribute on a `DecimalField`.\r\n\r\n### Dependencies in v2.4.17\r\n\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated dependency `django-constance` to `~4.3.2`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated dependency `prometheus-client` to `~0.22.1`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated dependency `python-slugify` to `~8.0.4`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated dependency `svgwrite` to `~1.4.3`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Regenerated `poetry.lock` to bring latest version of indirect dependencies into the Docker images and development environment.\r\n- [#7715](https://github.com/nautobot/nautobot/issues/7715) - Updated dependency `django-silk` to `~5.4.2`.\r\n\r\n### Documentation in v2.4.17\r\n\r\n- [#6671](https://github.com/nautobot/nautobot/issues/6671) - Documented different approaches for initial population of data.\r\n\r\n### Housekeeping in v2.4.17\r\n\r\n- [#7124](https://github.com/nautobot/nautobot/issues/7124) - Fixed developer docker flow when override files drop ancillary containers.\r\n- [#7496](https://github.com/nautobot/nautobot/issues/7496) - Refactored VLAN model related UI views to use `UI component framework`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated development dependency `pylint` to `~3.3.8`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated development dependency `pymarkdownlnt` to `~0.9.32`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated development dependency `ruff` to `~0.12.9`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated documentation dependency `mkdocs-macros-plugin` to `~1.3.9`.\r\n- [#7682](https://github.com/nautobot/nautobot/issues/7682) - Updated documentation dependency `mkdocs-material` to `~9.6.17`.\r\n- [#7703](https://github.com/nautobot/nautobot/issues/7703) - Made sure line endings were consistently Unix-style (`\\n` rather than `\\r\\n`) in project source files.\r\n- [#7715](https://github.com/nautobot/nautobot/issues/7715) - Updated documentation dependency `mkdocs-material` to `9.6.18`.\r\n- [#7715](https://github.com/nautobot/nautobot/issues/7715) - Updated development dependency `faker` to `^37.6.0`.\r\n- [#7715](https://github.com/nautobot/nautobot/issues/7715) - Updated development dependency `ruff` to `~0.12.11`.\r\n- [#7715](https://github.com/nautobot/nautobot/issues/7715) - Updated test dependency `requests` to `~2.32.5`.\r\n- [#7732](https://github.com/nautobot/nautobot/issues/7732) - Added code coverage reporting to pull request CI workflow.\r\n- [#7734](https://github.com/nautobot/nautobot/issues/7734) - Added `--diff` option to `invoke ruff` command.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @renovate[bot]\r\n* @Kircheneer\r\n* @Sridevi-NTC\r\n* @nrnvgh\r\n* @itdependsnetworks\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.16...v2.4.17",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7749",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/241037604",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/241037604/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/241037604/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.16",
        "id": 241037604,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4OXfEk",
        "tag_name": "v2.4.16",
        "target_commitish": "main",
        "name": "v2.4.16 - 2025-08-19",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-08-19T22:54:38Z",
        "updated_at": "2025-08-19T23:22:31Z",
        "published_at": "2025-08-19T22:55:57Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/284209035",
                "id": 284209035,
                "node_id": "RA_kwDOFEucDc4Q8K-L",
                "name": "nautobot-2.4.16-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44523247,
                "digest": "sha256:e93ee2a8f58a317cd826ea5ddc3b173266518e46db867d5969719cca510578b3",
                "download_count": 8,
                "created_at": "2025-08-19T23:22:29Z",
                "updated_at": "2025-08-19T23:22:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.16/nautobot-2.4.16-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/284209027",
                "id": 284209027,
                "node_id": "RA_kwDOFEucDc4Q8K-D",
                "name": "nautobot-2.4.16.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43305323,
                "digest": "sha256:3e7f765650c40cad19c861809fc69bc35122356d34e7a10a62838bf0123cd07a",
                "download_count": 7,
                "created_at": "2025-08-19T23:22:26Z",
                "updated_at": "2025-08-19T23:22:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.16/nautobot-2.4.16.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.16",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.16",
        "body": "## What's Changed\r\n\r\n### Fixed in v2.4.16\r\n\r\n- [#7699](https://github.com/nautobot/nautobot/issues/7699) - Fixed breakage of the \"Apps Marketplace\" view in Nautobot v2.4.15.\r\n\r\n### Housekeeping in v2.4.16\r\n\r\n- [#7643](https://github.com/nautobot/nautobot/issues/7643) - Refactored SecretsGroup model related UI views to use `UI component framework`.\r\n\r\n## Contributors\r\n\r\n* @sirisha-bode\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.15...v2.4.16",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7705",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/241037604/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 1,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/240881326",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/240881326/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/240881326/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.15",
        "id": 240881326,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4OW46u",
        "tag_name": "v2.4.15",
        "target_commitish": "main",
        "name": "v2.4.15 - 2025-08-19",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-08-19T12:49:37Z",
        "updated_at": "2025-08-19T13:45:46Z",
        "published_at": "2025-08-19T12:52:04Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/284052400",
                "id": 284052400,
                "node_id": "RA_kwDOFEucDc4Q7kuw",
                "name": "nautobot-2.4.15-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44523161,
                "digest": "sha256:7fc1a9e77a400eb54ab5cca336483e4f75e2579a52f909713049171e1e7c0005",
                "download_count": 5,
                "created_at": "2025-08-19T13:45:44Z",
                "updated_at": "2025-08-19T13:45:46Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.15/nautobot-2.4.15-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/284052392",
                "id": 284052392,
                "node_id": "RA_kwDOFEucDc4Q7kuo",
                "name": "nautobot-2.4.15.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43305259,
                "digest": "sha256:17590360882a359bfd5df26512405fd76a69d293c067879cbbfb315a2046fe8b",
                "download_count": 4,
                "created_at": "2025-08-19T13:45:41Z",
                "updated_at": "2025-08-19T13:45:44Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.15/nautobot-2.4.15.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.15",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.15",
        "body": "## What's Changed\r\n\r\n### Added in v2.4.15\r\n\r\n- [#7315](https://github.com/nautobot/nautobot/issues/7315) - Added Bulk Update functionality for the CustomField model.\r\n- [#7364](https://github.com/nautobot/nautobot/issues/7364) - Added new management command `check_job_approval_status` to detect scheduled jobs and jobs that still require approval. This command helps during upgrade to Nautobot 3.x.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Added `power_factor` field to PowerPort and PowerPortTemplate models to track the power factor ratio for electrical devices.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Added `panel_type` and `breaker_position_count` fields to PowerPanel model to specify panel type and total number of breaker positions.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Added `power_path` field to PowerPanel model to track physical power distribution redundancy path.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Added `destination_panel` field to PowerFeed model to specify destination panel that receives power from the feed.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Added `power_path` field to PowerFeed model to track physical power distribution redundancy path.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Added `breaker_position` and `breaker_pole_count` fields to PowerFeed model to specify circuit breaker position and pole count.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Added `occupied_positions` and `phase_designation` properties to PowerFeed model to display breaker positions and calculate phase designation.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Added `paginate` and `show_table_config_button` bools to ObjectsTablePanel to provide an option to hide the paginator and configure button UI.\r\n- [#7573](https://github.com/nautobot/nautobot/issues/7573) - Added support for page heading, document title and breadcrumbs in Nautobot UI Framework.\r\n- [#7609](https://github.com/nautobot/nautobot/issues/7609) - Added `context_object_key` optional parameter to the `Button` class.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Added `JobResult.date_started` field, corresponding to the feature enhancement in `django-celery-results` 2.6.0.\r\n\r\n### Changed in v2.4.15\r\n\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Changed PowerFeed model validation to enforce mutual exclusivity between cable connections and destination panel connections.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Changed PowerFeed model to validate breaker position conflicts and panel capacity constraints.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Changed PowerFeed rack location validation to use location hierarchy instead of exact location match.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Changed PowerFeed `clone_fields` to include `destination_panel`, `breaker_position`, and `breaker_pole_count` fields.\r\n- [#7613](https://github.com/nautobot/nautobot/issues/7613) - Improved object change list view performance.\r\n- [#7645](https://github.com/nautobot/nautobot/issues/7645) - Implemented custom TreeQuerySet.count method. Note that this impacts all tree models calling count everywhere, but should be transparent.\r\n\r\n### Fixed in v2.4.15\r\n\r\n- [#6145](https://github.com/nautobot/nautobot/issues/6145) - Fixed a regression in which the `contacts__n`, `dynamic_groups__n`, `role__n`, `status__n`, and `teams__n` filterset filters would not accept multiple values or names, instead only accepting a single UUID.\r\n- [#6748](https://github.com/nautobot/nautobot/issues/6748) - Fixed `PowerPort.get_power_draw()` and `Rack.get_power_utilization()` calculations to use power factor for Watts (W) to volt-amps (VA) conversion.\r\n- [#7084](https://github.com/nautobot/nautobot/issues/7084) - Fixed incorrect labels for negated custom-field filters in object list views.\r\n- [#7321](https://github.com/nautobot/nautobot/issues/7321) - Fixed missing support for \"exclude\" filters in `ContentTypeFilter`, `ContentTypeChoiceFilter`, and `ContentTypeMultipleChoiceFilter`. This allows filters like `/extras/roles/?content_types__n=ipam.ipaddress` to work properly.\r\n- [#7321](https://github.com/nautobot/nautobot/issues/7321) - Fixed incorrect extended filter types presented for `ContentTypeFilter`, `ContentTypeChoiceFilter`, and `ContentTypeMultipleChoiceFilter`. These filters only support the `__n` filter extension at present, not various character-based extensions like `__ic`, `__nic`, etc.\r\n- [#7511](https://github.com/nautobot/nautobot/issues/7511) - Fixed bug in device detail template where `object.powerports` and `object.poweroutlets` were incorrectly referenced instead of `object.power_ports` and `object.power_outlets`, preventing the Power Utilization panel from being displayed on the device detail page.\r\n- [#7519](https://github.com/nautobot/nautobot/issues/7519) - Hide the actions column in BulkDelete/BulkEdit views supported by NautobotUIViewSet.\r\n- [#7594](https://github.com/nautobot/nautobot/issues/7594) - Fixed a bug in `NoteFilterSet` where the `assigned_object_id` filter did not properly convert values to UUIDs, causing failed lookups when filtering by this field. Now applies a `UUID` preprocessor to ensure correct filtering.\r\n- [#7662](https://github.com/nautobot/nautobot/issues/7662) - Fixed the Children section in `location_retrieve.html` to properly display child locations of the same Location Type (e.g., sites within sites, rooms within rooms).\r\n- [#7663](https://github.com/nautobot/nautobot/issues/7663) - Fixed namespace issues when using bulk edit form was auto setting a bulk edit field based on a filter param that was carried over.\r\n\r\n### Dependencies in v2.4.15\r\n\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `cryptography` to `~45.0.6`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated optional dependency `django-auth-ldap` to `~5.2.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-celery-beat` to `~2.7.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-celery-results` to `~2.6.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-cors-headers` to `~4.7.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-extensions` to `~4.1`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-health-check` to `~3.20.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-prometheus` to `~2.4.1`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-redis` to `~6.0.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-silk` to `~5.4.1`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-storages` to `~1.14.6`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-structlog` to `~9.1.1`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-timezone-field` to `~7.1`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `django-tree-queries` to `~0.20.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Widened range of permitted versions for dependency `djangorestframework` to also permit `3.16.x` versions. Note that depending on your environment this may result in either version 3.15.2 or 3.16.1 being installed after upgrading Nautobot.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `drf-spectacular` to `~0.28.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `emoji` to `~2.14.1`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `kubernetes` to `~33.1.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `Markdown` to `~3.8.2`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `nh3` to `~0.3.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Widened range of permitted versions for dependency `Pillow` to permit any `11.x.y` versions.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `prometheus-client` to `~0.22.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated dependency `social-auth-core` to `~4.7.0`.\r\n- [#7672](https://github.com/nautobot/nautobot/issues/7672) - Pinned the Docker image to Debian 12 `bookworm` LTS to prevent unintended upgrades to Debian 13 `trixie`.\r\n\r\n### Housekeeping in v2.4.15\r\n\r\n- [#7315](https://github.com/nautobot/nautobot/issues/7315) - Refactored CustomField model related UI views to use `NautobotUIViewSet`.\r\n- [#7324](https://github.com/nautobot/nautobot/issues/7324) - Refactored DeviceType model related UI views to use `UI component framework`.\r\n- [#7513](https://github.com/nautobot/nautobot/issues/7513) - Refactored VirtualMachine model related UI views to use `NautobotUIViewSet`.\r\n- [#7519](https://github.com/nautobot/nautobot/issues/7519) - Refactored JobResult model related UI views to use `NautobotUIViewSet`.\r\n- [#7594](https://github.com/nautobot/nautobot/issues/7594) - Refactored Note model related UI views to use `NautobotUIViewSet`.\r\n- [#7648](https://github.com/nautobot/nautobot/issues/7648) - Adjusted Renovate configuration for `develop` and `next`.\r\n- [#7648](https://github.com/nautobot/nautobot/issues/7648) - Added management of `npm` dependencies via Renovate.\r\n- [#7648](https://github.com/nautobot/nautobot/issues/7648) - Added automatic refresh of `poetry.lock` and `package-lock.json` to Renovate configuration.\r\n- [#7654](https://github.com/nautobot/nautobot/issues/7654) - Updated `renovate.json` to newer standards and removed some obsolete configuration thereof.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated development dependency `django-debug-toolbar` to `~5.2.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated development dependency `faker` to `^37.5.3`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated development dependency `rich` to `~14.1.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated development dependency `ruff` to `~0.12.8` and applied its recommendations.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated development dependency `selenium` to `~4.34.2`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated development dependency `tblib` to `~3.1.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated development dependency `time-machine` to `~2.17.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated development dependency `yamllint` to `~1.37.1`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated documentation dependency `mkdocstrings` to `~0.30.0`.\r\n- [#7655](https://github.com/nautobot/nautobot/issues/7655) - Updated documentation dependency `mkdocstrings-python` to `~1.16.12`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @Pavan-183\r\n* @Kircheneer\r\n* @mzbroch\r\n* @sirisha-bode\r\n* @dsoftait\r\n* @jmpettit\r\n* @mateusz-lachowski-codilime\r\n* @renovate[bot]\r\n* @itdependsnetworks\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.14...v2.4.15",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7695",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/237485123",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/237485123/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/237485123/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.14",
        "id": 237485123,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4OJ7xD",
        "tag_name": "v2.4.14",
        "target_commitish": "main",
        "name": "v2.4.14 - 2025-08-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-08-04T20:43:10Z",
        "updated_at": "2025-08-04T21:11:48Z",
        "published_at": "2025-08-04T20:45:19Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/279344017",
                "id": 279344017,
                "node_id": "RA_kwDOFEucDc4QpnOR",
                "name": "nautobot-2.4.14-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44217131,
                "digest": "sha256:bfd55c7fce294d70c847d738e71fd0b40a45c442c43e40130ef2da469b1c9616",
                "download_count": 5,
                "created_at": "2025-08-04T21:11:47Z",
                "updated_at": "2025-08-04T21:11:48Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.14/nautobot-2.4.14-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/279344014",
                "id": 279344014,
                "node_id": "RA_kwDOFEucDc4QpnOO",
                "name": "nautobot-2.4.14.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43010607,
                "digest": "sha256:d2945c159badb4fc522d69d99a3f5b4365a42f64d9965bbe192ad4a0b4300c38",
                "download_count": 6,
                "created_at": "2025-08-04T21:11:45Z",
                "updated_at": "2025-08-04T21:11:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.14/nautobot-2.4.14.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.14",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.14",
        "body": "## What's Changed\r\n\r\n### Added in v2.4.14\r\n\r\n- [#7278](https://github.com/nautobot/nautobot/issues/7278) - Added `range_start` and `range_end` parameters for `/api/ipam/prefixes/<id>/available-ips/`. This replaces the use of the `offset` parameter in this particular case.\r\n- [#7479](https://github.com/nautobot/nautobot/issues/7479) - Added Bulk Edit functionality for the SecretsGroup model.\r\n- [#7566](https://github.com/nautobot/nautobot/issues/7566) - Added Eaton and Raritan C39 power outlet type.\r\n- [#7574](https://github.com/nautobot/nautobot/issues/7574) - Added 4 new choices in the Secret Type category of Secret Groups: \"Authentication Key\", \"Authentication Protocol\", \"Private Key\" and \"Private Algorithm\".\r\n- [#7625](https://github.com/nautobot/nautobot/issues/7625) - Added an index to JobLogEntry to improve performance of Job Result logs.\r\n- [#7633](https://github.com/nautobot/nautobot/issues/7633) - Added support for optional `get_queryset` boolean parameter to `CustomField.objects.get_for_model()`, `ComputedField.objects.get_for_model()`, and `Relationship.objects.get_for_model()` APIs. If set to `False` these APIs will return a (potentially cached) list of records instead of a QuerySet.\r\n- [#7633](https://github.com/nautobot/nautobot/issues/7633) - Added `populate_list_caches()` method to `CustomField.objects`, `ComputedField.objects`, and `Relationship.objects`, which can be called to efficiently populate the caches used by the `get_for_model()` methods when `get_queryset=False` for all content-types.\r\n- [#7633](https://github.com/nautobot/nautobot/issues/7633) - Added `feature_models` dict to the Nautobot registry for more efficient GraphQL schema generation.\r\n- [#7633](https://github.com/nautobot/nautobot/issues/7633) - Added caching of generated search parameters for more efficient GraphQL schema generation.\r\n\r\n### Changed in v2.4.14\r\n\r\n- [#7601](https://github.com/nautobot/nautobot/issues/7601) - Made network driver mappings dynamically find network driver keys.\r\n- [#7611](https://github.com/nautobot/nautobot/issues/7611) - Added more verbose default output to `nautobot-server migrate` command.\r\n\r\n### Fixed in v2.4.14\r\n\r\n- [#3609](https://github.com/nautobot/nautobot/issues/3609) - Fixed `cluster_count` not showing up on the API of `/tenancy/tenants/`.\r\n- [#7577](https://github.com/nautobot/nautobot/issues/7577) - Fixed incorrect reference to Inventory Items under the Module documentation.\r\n- [#7616](https://github.com/nautobot/nautobot/issues/7616) - Fixed a data-loss bug in the v1.x-to-v2.0 migration `extras.0062_collect_roles_from_related_apps_roles` in which custom-field data on `dcim.DeviceRole`, `dcim.RackRole`, and `ipam.Role` records was not correctly copied to the corresponding created `extras.Role` records.\r\n- [#7633](https://github.com/nautobot/nautobot/issues/7633) - Greatly reduced the number of database queries made when generating the GraphQL schema.\r\n\r\n### Dependencies in v2.4.14\r\n\r\n- [#7584](https://github.com/nautobot/nautobot/issues/7584) - Updated `GitPython` dependency to `~3.1.45`.\r\n- [#7584](https://github.com/nautobot/nautobot/issues/7584) - Updated `nh3` dependency to `~0.2.22`.\r\n- [#7584](https://github.com/nautobot/nautobot/issues/7584) - Updated `pyuwsgi` dependency to `2.0.30`.\r\n- [#7601](https://github.com/nautobot/nautobot/issues/7601) - Updated dependency `netutils` minimum version to support ability for dynamic network driver mappings.\r\n\r\n### Housekeeping in v2.4.14\r\n\r\n- [#7419](https://github.com/nautobot/nautobot/issues/7419) - Refactored GraphQLQuery model related UI views to use `NautobotUIViewSet`.\r\n- [#7479](https://github.com/nautobot/nautobot/issues/7479) - Refactored SecretsGroup model related UI views to use `NautobotUIViewSet`.\r\n- [#7500](https://github.com/nautobot/nautobot/issues/7500) - Refactored Rack model related UI views to use `NautobotUIViewSet`.\r\n- [#7584](https://github.com/nautobot/nautobot/issues/7584) - Updated development dependency `pymarkdownlnt` to `~0.9.31`.\r\n- [#7584](https://github.com/nautobot/nautobot/issues/7584) - Updated documentation dependency `mkdocs-material` to `~9.6.16`.\r\n\r\n## Contributors\r\n\r\n* @itdependsnetworks\r\n* @Pavan-183\r\n* @glennmatthews\r\n* @gabrieldslacerda\r\n* @qduk\r\n* @jak3kaj\r\n* @renovate[bot]\r\n* @gsnider2195\r\n* @loulecrivain \r\n\r\n## New Contributors\r\n* @gabrieldslacerda made their first contribution in https://github.com/nautobot/nautobot/pull/7575\r\n* @jak3kaj made their first contribution in https://github.com/nautobot/nautobot/pull/7568\r\n* @loulecrivain made their first contribution in https://github.com/nautobot/nautobot/pull/7348\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.13...v2.4.14",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7639",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/237485123/reactions",
            "total_count": 3,
            "+1": 3,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/233947700",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/233947700/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/233947700/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.13",
        "id": 233947700,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4N8cI0",
        "tag_name": "v2.4.13",
        "target_commitish": "main",
        "name": "v2.4.13 - 2025-07-21",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-07-21T14:49:17Z",
        "updated_at": "2025-07-21T15:18:43Z",
        "published_at": "2025-07-21T14:51:11Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/274951154",
                "id": 274951154,
                "node_id": "RA_kwDOFEucDc4QY2vy",
                "name": "nautobot-2.4.13-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44261488,
                "digest": "sha256:3483d32e7456d0a2ac887efb2e93a62a6b0fb6c922c9b65177734bbe003699ef",
                "download_count": 4,
                "created_at": "2025-07-21T15:18:41Z",
                "updated_at": "2025-07-21T15:18:43Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.13/nautobot-2.4.13-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/274951147",
                "id": 274951147,
                "node_id": "RA_kwDOFEucDc4QY2vr",
                "name": "nautobot-2.4.13.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43059600,
                "digest": "sha256:98033da86e888ab950f14cb83cd4962efdb88bcd36fa854284919edfe8f5d18f",
                "download_count": 7,
                "created_at": "2025-07-21T15:18:40Z",
                "updated_at": "2025-07-21T15:18:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.13/nautobot-2.4.13.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.13",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.13",
        "body": "## What's Changed\r\n\r\n### Added in v2.4.13\r\n\r\n- [#6594](https://github.com/nautobot/nautobot/issues/6594) - Added additional database indices to `IPAddress`, `Prefix`, and `VRF` models to improve the default list view performance for these models.\r\n\r\n### Changed in v2.4.13\r\n\r\n- [#6608](https://github.com/nautobot/nautobot/issues/6608) - Updated branding hyperlinks on bottom of UI to open in new tab.\r\n- [#7484](https://github.com/nautobot/nautobot/issues/7484) - Add the Show Device Full Name button to the `Elevations` list view.\r\n\r\n### Fixed in v2.4.13\r\n\r\n- [#6594](https://github.com/nautobot/nautobot/issues/6594) - Changed the default `ordering` of `Interface` (and similar device components) to a less expensive query to improve performance of default list views of these components.\r\n- [#6594](https://github.com/nautobot/nautobot/issues/6594) - Improved the performance of `Device.all_interfaces`, `.all_console_ports`, etc. in the case where the Device has no module bays.\r\n- [#7590](https://github.com/nautobot/nautobot/issues/7590) - Improved performance of Device detail view when many devices belong to many dynamic-groups.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @itdependsnetworks \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.12...v2.4.13",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7593",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/233947700/reactions",
            "total_count": 2,
            "+1": 2,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/233288783",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/233288783/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/233288783/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.12",
        "id": 233288783,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4N57RP",
        "tag_name": "v2.4.12",
        "target_commitish": "main",
        "name": "v2.4.12 - 2025-07-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-07-17T18:53:52Z",
        "updated_at": "2025-07-17T19:24:26Z",
        "published_at": "2025-07-17T18:58:14Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/273847565",
                "id": 273847565,
                "node_id": "RA_kwDOFEucDc4QUpUN",
                "name": "nautobot-2.4.12-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44258218,
                "digest": "sha256:44f0c2470ffef1200e10b569e8ad218030c074e8a2323661f8e9ade0d91528ad",
                "download_count": 4,
                "created_at": "2025-07-17T19:24:25Z",
                "updated_at": "2025-07-17T19:24:26Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.12/nautobot-2.4.12-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/273847553",
                "id": 273847553,
                "node_id": "RA_kwDOFEucDc4QUpUB",
                "name": "nautobot-2.4.12.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43057158,
                "digest": "sha256:bbb920bffb8de8f920294154e8ef910451dd3e2653dc483a0cf177cae5f67deb",
                "download_count": 4,
                "created_at": "2025-07-17T19:24:23Z",
                "updated_at": "2025-07-17T19:24:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.12/nautobot-2.4.12.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.12",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.12",
        "body": "## What's Changed\r\n\r\n### Changed in v2.4.12\r\n\r\n- [#7194](https://github.com/nautobot/nautobot/issues/7194) - Moved `job_results` field from Job Panel to a separate `JobResults` table panel using ObjectsTablePanel from UI framework.\r\n\r\n### Fixed in v2.4.12\r\n\r\n- [#5056](https://github.com/nautobot/nautobot/issues/5056) - Fixed broken link pointing to Nautobot Golden Config Git Settings.\r\n- [#7143](https://github.com/nautobot/nautobot/issues/7143) - Fixed filtering on custom relationships for component models.\r\n- [#7547](https://github.com/nautobot/nautobot/issues/7547) - Fixed worker-status page failing with a KeyError.\r\n- [#7552](https://github.com/nautobot/nautobot/issues/7552) - Fixed formatting issue in rendering Config Context data.\r\n- [#7556](https://github.com/nautobot/nautobot/issues/7556) - Fixed Cloud, Devices, and Wireless NavMenuTabs all had the same weight of 200. Updated the Cloud weight to 150 and the Wireless weight to 250.\r\n- [#7558](https://github.com/nautobot/nautobot/issues/7558) - Improved logic in `LogsCleanup` system Job to avoid an infinite recursion possibility.\r\n- [#7559](https://github.com/nautobot/nautobot/issues/7559) - Reverted some of the changes introduced in v2.4.11 to Job loading from `JOBS_ROOT` and Git repositories, due to reports of regressions in behavior.\r\n\r\n### Housekeeping in v2.4.12\r\n\r\n- [#7194](https://github.com/nautobot/nautobot/issues/7194) - Refactored Jobs detail view to use `UI component framework`.\r\n- [#7194](https://github.com/nautobot/nautobot/issues/7194) - Added `jobs_ui.py` to `nautobot.extras.views` with classes: `JobRunScheduleButton`, `JobKeyValueOverrideValueTablePanel` and `JobObjectFieldsPanel`.\r\n- [#7217](https://github.com/nautobot/nautobot/issues/7217) - Refactored Controller model related UI views to use `UI component framework`.\r\n- [#7291](https://github.com/nautobot/nautobot/issues/7291) - Refactored VirtualChassis model related UI views to use `NautobotUIViewSet`.\r\n- [#7323](https://github.com/nautobot/nautobot/issues/7323) - Refactored CircuitTermination model related UI views to use `UI component framework`.\r\n- [#7490](https://github.com/nautobot/nautobot/issues/7490) - Refactored Tag model related UI views to use `UI component framework`.\r\n- [#7537](https://github.com/nautobot/nautobot/issues/7537) - Updated documentation dependency `mkdocs-material` to `~9.6.15`.\r\n\r\n## Contributors\r\n\r\n* @sirisha-bode\r\n* @Sridevi-NTC\r\n* @teunvink\r\n* @glennmatthews\r\n* @renovate[bot]\r\n* @dsoftait\r\n* @Pavan-183\r\n* @michalis1\r\n* @itdependsnetworks\r\n\r\n## New Contributors\r\n* @michalis1 made their first contribution in https://github.com/nautobot/nautobot/pull/7557\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.11...v2.4.12",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7579",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/230495996",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/230495996/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/230495996/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.11",
        "id": 230495996,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4NvRb8",
        "tag_name": "v2.4.11",
        "target_commitish": "main",
        "name": "v2.4.11 - 2025-07-07",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-07-07T14:21:21Z",
        "updated_at": "2025-07-07T14:59:07Z",
        "published_at": "2025-07-07T14:25:31Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/270729289",
                "id": 270729289,
                "node_id": "RA_kwDOFEucDc4QIwBJ",
                "name": "nautobot-2.4.11-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44256788,
                "digest": "sha256:df17a6768a99b4b16aa11b3778aeefe142be92bbec1d86c7fe19f859c2e76b9d",
                "download_count": 5,
                "created_at": "2025-07-07T14:59:05Z",
                "updated_at": "2025-07-07T14:59:07Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.11/nautobot-2.4.11-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/270729285",
                "id": 270729285,
                "node_id": "RA_kwDOFEucDc4QIwBF",
                "name": "nautobot-2.4.11.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43056905,
                "digest": "sha256:d0feb718bc2afbab197bfa46e0c4e1c655679fcee4211b361836a925335b8af5",
                "download_count": 3,
                "created_at": "2025-07-07T14:59:03Z",
                "updated_at": "2025-07-07T14:59:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.11/nautobot-2.4.11.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.11",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.11",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.11\r\n\r\n- [#7440](https://github.com/nautobot/nautobot/issues/7440) - Updated `requests` to `2.32.4` to address `CVE-2024-47081`. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#7461](https://github.com/nautobot/nautobot/issues/7461) - Updated `Django` to 4.2.23 to further address `CVE-2025-48432`.\r\n- [#7487](https://github.com/nautobot/nautobot/issues/7487) - Updated `urllib3` to 2.5.0 due to `CVE-2025-50181` and `CVE-2025-50182`. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Added in v2.4.11\r\n\r\n- [#6941](https://github.com/nautobot/nautobot/issues/6941) - `ModuleTypes` can now be classified into a new `ModuleFamily` model. `ModuleBay` and `ModuleBayTemplates` can define a `ModuleFamily` they will accept.\r\n- [#7007](https://github.com/nautobot/nautobot/issues/7007) - Added support for bulk-editing Webhook `additional_headers` and `body_template` fields.\r\n- [#7298](https://github.com/nautobot/nautobot/issues/7298) - Added a `provides_dynamic_jobs` setting to NautobotAppConfig and associated logic to reload app-provided jobs similar to Git repo jobs.\r\n\r\n### Changed in v2.4.11\r\n\r\n- [#7178](https://github.com/nautobot/nautobot/issues/7178) - Changed JobResult list view default configuration to not calculate and show \"summary\" of log entries by default, as it is not performant at scale.\r\n\r\n### Fixed in v2.4.11\r\n\r\n- [#6933](https://github.com/nautobot/nautobot/issues/6933) - Fixed Cable deleting via API.\r\n- [#7007](https://github.com/nautobot/nautobot/issues/7007) - Fixed an exception when bulk-editing Location `time_zone` values.\r\n- [#7038](https://github.com/nautobot/nautobot/issues/7038) - Fixed issue where approved scheduled jobs set to run \"immediately\" were not executed, by changing the `create_schedule` method in `ScheduledJob`.\r\n- [#7149](https://github.com/nautobot/nautobot/issues/7149) - Fixed `EXEMPT_VIEW_PERMISSIONS` causing an exception.\r\n- [#7307](https://github.com/nautobot/nautobot/issues/7307) - Fixed incorrect bulk-edit job and view logic around nulling out fields.\r\n- [#7307](https://github.com/nautobot/nautobot/issues/7307) - Fixed a number of incorrect `nullable_fields` entries on various bulk-edit forms.\r\n- [#7361](https://github.com/nautobot/nautobot/issues/7361) - Added a check in `refresh_job_code_from_repository()` to cause it to abort early if given a `repository_slug` that is invalid or conflicts with an installed Python package or Python built-in.\r\n- [#7361](https://github.com/nautobot/nautobot/issues/7361) - Fixed the code for loading Jobs from a GitRepository to only auto-import the `<repository_slug>` and `<repository_slug>.jobs` modules from `GIT_ROOT`, rather than loading all Python packages present in `GIT_ROOT`.\r\n- [#7361](https://github.com/nautobot/nautobot/issues/7361) - Fixed the code for loading Jobs from `JOBS_ROOT` and Git repositories to not import discovered packages/modules whose names are invalid as Python module names or whose names conflict with installed Python packages or Python built-ins. **This fix prevents some improper-but-previously-permitted names (e.g. `pass.py`, `nautobot.py`) from being imported.**\r\n- [#7361](https://github.com/nautobot/nautobot/issues/7361) - Added additional validation constraints on GitRepository `slug` to disallow values that would conflict with Python built-ins and keywords. **This fix will disallow some improper-but-previously-permitted slugs (e.g. `sys`, `pass`); you can run `nautobot-server validate_models extras.GitRepository` after upgrading to identify entries that should be deleted and recreated with a different slug.**\r\n- [#7427](https://github.com/nautobot/nautobot/issues/7427) - Fixed return URL for single \"Remove cable\" operations.\r\n- [#7460](https://github.com/nautobot/nautobot/issues/7460) - Added missing permission enforcement for custom actions in NautobotUIViewSet supported models.\r\n- [#7464](https://github.com/nautobot/nautobot/issues/7464) - Fixed issue where network driver help text and choices modal were missing in `Platform`.\r\n- [#7489](https://github.com/nautobot/nautobot/issues/7489) - Fixed broken Relationship \"Move to advanced tab\" functionality.\r\n- [#7503](https://github.com/nautobot/nautobot/issues/7503) - Fixed issue where retrieving the username of the latest change log entry loaded large unrelated fields.\r\n- [#7518](https://github.com/nautobot/nautobot/issues/7518) - Improved performance for the \"utilization\" column of the Prefix list view.\r\n- [#7528](https://github.com/nautobot/nautobot/issues/7528) - Fixed a typo in the RadioProfile model.\r\n\r\n### Dependencies in v2.4.11\r\n\r\n- [#7444](https://github.com/nautobot/nautobot/issues/7444) - Updated dependency `celery` to permit versions up to 5.5.x and `kombu` to permit versions up to 5.5.x as well. Due to concern about potential impacts of the upgrade, we have *not* yet updated the minimum Celery and Kombu versions required by Nautobot. This minimum version will likely be raised in a future release; in the interim, please upgrade Celery and Kombu and verify their operation in your local environment as befits your risk tolerance.\r\n\r\n### Documentation in v2.4.11\r\n\r\n- [#7469](https://github.com/nautobot/nautobot/issues/7469) - Updated sample Device Redundancy Group GraphQL queries with correct v2 field names.\r\n- [#7514](https://github.com/nautobot/nautobot/issues/7514) - Updated BootstrapMixin import location in secrets provider example docs.\r\n- [#7527](https://github.com/nautobot/nautobot/issues/7527) - Added Analytics GTM template override only to the public ReadTheDocs build.\r\n\r\n### Housekeeping in v2.4.11\r\n\r\n- [#7007](https://github.com/nautobot/nautobot/issues/7007) - Enhanced `test_bulk_edit_objects_with_permission` generic view test case to include validation that the provided `bulk_edit_data` was processed correctly and correctly passed through to the BulkEditObjects job.\r\n- [#7007](https://github.com/nautobot/nautobot/issues/7007) - Added `test_bulk_edit_objects_nullable_fields` generic view test case to verify correct definition and operation of `nullable_fields` on bulk edit forms.\r\n- [#7238](https://github.com/nautobot/nautobot/issues/7238) - Refactored InterfaceRedundancyGroup model related UI views to use `UI component framework`.\r\n- [#7258](https://github.com/nautobot/nautobot/issues/7258) - Refactored ControllerManagedDeviceGroup model related UI views to use `UI component framework`.\r\n- [#7303](https://github.com/nautobot/nautobot/issues/7303) - Refactored PowerFeed model related UI views to use `UI component framework`.\r\n- [#7346](https://github.com/nautobot/nautobot/issues/7346) - Refactored Location model related UI views to use `NautobotUIViewSet`.\r\n- [#7347](https://github.com/nautobot/nautobot/issues/7347) - Refactored RelationshipAssociation model related UI views to use `NautobotUIViewSet`.\r\n- [#7357](https://github.com/nautobot/nautobot/issues/7357) - Refactored Tag model related UI views to use `NautobotUIViewSet`.\r\n- [#7361](https://github.com/nautobot/nautobot/issues/7361) - Added unit tests for `import_modules_privately` utility method.\r\n- [#7409](https://github.com/nautobot/nautobot/issues/7409) - Refactored ConfigContext model related UI views to use `NautobotUIViewSet`.\r\n- [#7413](https://github.com/nautobot/nautobot/issues/7413) - Refactored VLAN model related UI views to use `NautobotUIViewSet`.\r\n- [#7421](https://github.com/nautobot/nautobot/issues/7421) - Refactored ConfigContextSchema model related UI views to use `NautobotUIViewSet`.\r\n- [#7450](https://github.com/nautobot/nautobot/issues/7450) - Removed deprecated sandbox deployment workflow.\r\n- [#7461](https://github.com/nautobot/nautobot/issues/7461) - Updated testing dependency `openapi-spec-validator` to `~0.7.2`.\r\n- [#7483](https://github.com/nautobot/nautobot/issues/7483) - Refactored ConfigContext model related UI views to use `UI component framework`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @dsoftait\r\n* @sirisha-bode\r\n* @Sridevi-NTC\r\n* @mateusz-lachowski-codilime\r\n* @icovada\r\n* @nrnvgh\r\n* @renovate\r\n* @jfach\r\n* @HanlinMiao\r\n* @dependabot \r\n* @Pavan-183\r\n* @cmsirbu \r\n* @austind\r\n* @housepbass\r\n* @Kircheneer\r\n* @joewesch\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.10...v2.4.11",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7540",
        "mentions_count": 18
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/224330286",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/224330286/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/224330286/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.10",
        "id": 224330286,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4NXwIu",
        "tag_name": "v2.4.10",
        "target_commitish": "main",
        "name": "v2.4.10 - 2025-06-09",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-06-10T13:38:55Z",
        "updated_at": "2025-06-10T14:07:06Z",
        "published_at": "2025-06-10T13:40:46Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/262646175",
                "id": 262646175,
                "node_id": "RA_kwDOFEucDc4Pp6mf",
                "name": "nautobot-2.4.10-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44210569,
                "digest": "sha256:45c6f500bfee017821741a129cad3187a191caecdaa60a146c18ded31c280cae",
                "download_count": 16,
                "created_at": "2025-06-10T14:07:05Z",
                "updated_at": "2025-06-10T14:07:06Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.10/nautobot-2.4.10-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/262646170",
                "id": 262646170,
                "node_id": "RA_kwDOFEucDc4Pp6ma",
                "name": "nautobot-2.4.10.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43017059,
                "digest": "sha256:628a7cb7a0d6e470d213bfa5409196e95133b9bb8d15b2262a514296ecefa0ce",
                "download_count": 14,
                "created_at": "2025-06-10T14:07:03Z",
                "updated_at": "2025-06-10T14:07:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.10/nautobot-2.4.10.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.10",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.10",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.10\r\n\r\n- [#6672](https://github.com/nautobot/nautobot/issues/6672) - Added enforcement of user authentication when serving uploaded media files ([GHSA-rh67-4c8j-hjjh](https://github.com/nautobot/nautobot/security/advisories/GHSA-rh67-4c8j-hjjh)).\r\n- [#7417](https://github.com/nautobot/nautobot/issues/7417) - Added protections against access of various security-related and/or data-altering methods of various Nautobot models from within a Jinja2 sandboxed environment or the Django template renderer ([GHSA-wjw6-95h5-4jpx](https://github.com/nautobot/nautobot/security/advisories/GHSA-wjw6-95h5-4jpx)).\r\n- [#7425](https://github.com/nautobot/nautobot/issues/7425) - Updated `Django` to 4.2.22 to address `CVE-2025-48432`.\r\n\r\n### Fixed in v2.4.10\r\n\r\n- [#7358](https://github.com/nautobot/nautobot/issues/7358) - Fixed `web_request_context` faulty logic in its `try/finally` block.\r\n- [#7362](https://github.com/nautobot/nautobot/issues/7362) - Fixed NautobotCSVParser incorrect parsing of many-to-many fields.\r\n\r\n### Documentation in v2.4.10\r\n\r\n- [#7430](https://github.com/nautobot/nautobot/issues/7430) - Added latest security disclosures to the documentation.\r\n- [#7430](https://github.com/nautobot/nautobot/issues/7430) - Removed John Anderson as a point of contact for Nautobot security issues.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @timizuoebideri1\r\n* @romanukes\r\n* @renovate\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.9...v2.4.10",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7447",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/224308935",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/224308935/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/224308935/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.32",
        "id": 224308935,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4NXq7H",
        "tag_name": "v1.6.32",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.32 - 2025-06-09",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-06-10T12:27:54Z",
        "updated_at": "2025-06-10T14:13:07Z",
        "published_at": "2025-06-10T12:33:25Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/262647473",
                "id": 262647473,
                "node_id": "RA_kwDOFEucDc4Pp66x",
                "name": "nautobot-1.6.32-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31057907,
                "digest": "sha256:e2153d475c03ab1765be1618ce24569d357792e53fb45510273dcddaa00e7b38",
                "download_count": 6,
                "created_at": "2025-06-10T14:13:05Z",
                "updated_at": "2025-06-10T14:13:07Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.32/nautobot-1.6.32-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/262647465",
                "id": 262647465,
                "node_id": "RA_kwDOFEucDc4Pp66p",
                "name": "nautobot-1.6.32.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30362543,
                "digest": "sha256:422fcbcd6a8a3406e5ac65f3650641437e923e05003aca75f54dd8f8f84f4b9e",
                "download_count": 5,
                "created_at": "2025-06-10T14:13:03Z",
                "updated_at": "2025-06-10T14:13:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.32/nautobot-1.6.32.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.32",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.32",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#6672](https://github.com/nautobot/nautobot/issues/6672) - Added enforcement of user authentication when serving uploaded media files ([GHSA-rh67-4c8j-hjjh](https://github.com/nautobot/nautobot/security/advisories/GHSA-rh67-4c8j-hjjh)).\r\n- [#7429](https://github.com/nautobot/nautobot/issues/7429) - Added protections against access of various security-related and/or data-altering methods of various Nautobot models from within a Jinja2 sandboxed environment or the Django template renderer ([GHSA-wjw6-95h5-4jpx](https://github.com/nautobot/nautobot/security/advisories/GHSA-wjw6-95h5-4jpx)).\r\n\r\n### Added\r\n\r\n- [#7305](https://github.com/nautobot/nautobot/issues/7305) - Added RackRoleFilterForm, ManufacturerFilterForm, DeviceRoleFilterForm, PlatformFilterForm, RoleFilterForm, TenantGroupFilterForm, ClusterTypeFilterForm, ClusterGroupFilterForm, CustomFieldFilterForm, CircuitTypeFilterForm and set them to proper `filterset_form` or `filterset_form_class` in views.\r\n- [#7305](https://github.com/nautobot/nautobot/issues/7305) - Added a generic test case that asserts that all list views provide an appropriate FilterForm class.\r\n\r\n### Fixed\r\n\r\n- [#7250](https://github.com/nautobot/nautobot/issues/7250) - Fixed JSON and MULTISELECT custom field being returned as a `repr()` string when using GraphQL.\r\n\r\n### Documentation\r\n\r\n- [#7432](https://github.com/nautobot/nautobot/issues/7432) - Added \"Security Notices\" document to the documentation under **Administration**.\r\n- [#7432](https://github.com/nautobot/nautobot/issues/7432) - Fixed a number of broken links in the documentation.\r\n- [#7432](https://github.com/nautobot/nautobot/issues/7432) - Added latest security disclosures to the documentation.\r\n- [#7432](https://github.com/nautobot/nautobot/issues/7432) - Removed John Anderson as a point of contact for Nautobot security issues.\r\n\r\n## Contributors\r\n\r\n* @dsoftait\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.31...v1.6.32",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7445",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/224308935/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 1,
            "eyes": 0
        },
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/221356374",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/221356374/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/221356374/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.9",
        "id": 221356374,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4NMaFW",
        "tag_name": "v2.4.9",
        "target_commitish": "main",
        "name": "v2.4.9 - 2025-05-27",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-05-27T19:04:57Z",
        "updated_at": "2025-05-27T19:35:01Z",
        "published_at": "2025-05-27T19:08:17Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/258622577",
                "id": 258622577,
                "node_id": "RA_kwDOFEucDc4PakRx",
                "name": "nautobot-2.4.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44202533,
                "digest": null,
                "download_count": 5,
                "created_at": "2025-05-27T19:35:00Z",
                "updated_at": "2025-05-27T19:35:01Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.9/nautobot-2.4.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/258622575",
                "id": 258622575,
                "node_id": "RA_kwDOFEucDc4PakRv",
                "name": "nautobot-2.4.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43005400,
                "digest": null,
                "download_count": 8,
                "created_at": "2025-05-27T19:34:58Z",
                "updated_at": "2025-05-27T19:34:59Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.9/nautobot-2.4.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.9",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.9\r\n\r\n- [#7317](https://github.com/nautobot/nautobot/issues/7317) - Updated `setuptools` to `78.1.1` to address `CVE-2025-47273`. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Added in v2.4.9\r\n\r\n- [#7043](https://github.com/nautobot/nautobot/issues/7043) - Added support for `job_queue` parameter to `JobResult.execute_job()`, `JobResult.enqueue_job()`, and `ScheduledJob.create_schedule()`.\r\n\r\n### Changed in v2.4.9\r\n\r\n- [#7043](https://github.com/nautobot/nautobot/issues/7043) - Changed \"Run Job\" form to display a warning when submitting a Job against a Celery queue that has no active workers, but allow the job to be submitted, instead of blocking the Job altogether.\r\n\r\n### Fixed in v2.4.9\r\n\r\n- [#7043](https://github.com/nautobot/nautobot/issues/7043) - Fixed regression introduced in 2.4.0 involving inability to specify a non-default job queue when scheduling a Job.\r\n- [#7172](https://github.com/nautobot/nautobot/issues/7172) - Restored missing `rd` column in `VRFTable`.\r\n- [#7245](https://github.com/nautobot/nautobot/issues/7245) - Fixed `ExportObjectList` job now initializes `filter_params` from the selected SavedView's config when `?saved_view` is present and filters haven't been cleared. If additional query parameters are included, they override matching filters from the saved view.\r\n- [#7250](https://github.com/nautobot/nautobot/issues/7250) - Fixed MULTISELECT custom field representation in GraphQL to be a JSON array instead of a string.\r\n- [#7308](https://github.com/nautobot/nautobot/issues/7308) - Fixed incorrect form buttons rendered in create/update views provided by NautobotUIViewSet.\r\n- [#7309](https://github.com/nautobot/nautobot/issues/7309) - Fixed Content-Type filtering on ObjectMetaData.\r\n- [#7311](https://github.com/nautobot/nautobot/issues/7311) - Added f-strings to 2 places where they were missing (`nautobot/core/utils/filtering.py` in `generate_query` method and in migration file `nautobot/extras/migrations/0024_job_data_migration.py`).\r\n- [#7318](https://github.com/nautobot/nautobot/issues/7318) - Fixed an AttributeError exception when rendering a table column describing a Relationship association to an unknown content-type.\r\n- [#7328](https://github.com/nautobot/nautobot/issues/7328) - Fixed an issue in the Golden Config App where clicking a Configuration Compliance Feature Navigation link or loading a page with a hash would not scroll to the correct section due to conflicting legacy scroll offset logic.\r\n- [#7340](https://github.com/nautobot/nautobot/issues/7340) - Fixed incorrect rendering of \"Last run\" column in Job list view.\r\n\r\n### Dependencies in v2.4.9\r\n\r\n- [#7277](https://github.com/nautobot/nautobot/issues/7277) - Updated `cryptography` dependency to `~44.0.3`.\r\n- [#7277](https://github.com/nautobot/nautobot/issues/7277) - Updated `pyuwsgi` dependency to `~2.0.29`.\r\n\r\n### Housekeeping in v2.4.9\r\n\r\n- [#7104](https://github.com/nautobot/nautobot/issues/7104) - Resolved bug in VS Code devcontainer workflow.\r\n- [#7163](https://github.com/nautobot/nautobot/issues/7163) - Refactored CloudResourceType model related UI views to use `UI component framework`.\r\n- [#7231](https://github.com/nautobot/nautobot/issues/7231) - Refactored DeviceFamily model related UI views to use `UI component framework`.\r\n- [#7237](https://github.com/nautobot/nautobot/issues/7237) - Refactored DeviceRedundancyGroup model related UI views to use `UI component framework`.\r\n- [#7243](https://github.com/nautobot/nautobot/issues/7243) - Refactored DeviceType model related UI views to use `NautobotUIViewSet`.\r\n- [#7246](https://github.com/nautobot/nautobot/issues/7246) - Refactored WirelessNetwork model related UI views to use `UI component framework`.\r\n- [#7248](https://github.com/nautobot/nautobot/issues/7248) - Refactored ModuleBayUIViewSet model related UI views to use `UI component framework`.\r\n- [#7265](https://github.com/nautobot/nautobot/issues/7265) - Refactored MetadataType model related UI views to use `UI component framework`.\r\n- [#7271](https://github.com/nautobot/nautobot/issues/7271) - Refactored ComputedField model related UI views to use `UI component framework`.\r\n- [#7277](https://github.com/nautobot/nautobot/issues/7277) - Updated documentation dependency `mkdocs-material` to `~9.6.14`.\r\n- [#7277](https://github.com/nautobot/nautobot/issues/7277) - Updated development dependency `pylint` to `~3.3.7`.\r\n- [#7277](https://github.com/nautobot/nautobot/issues/7277) - Updated development dependency `pymarkdownlnt` to `~0.9.30`.\r\n- [#7287](https://github.com/nautobot/nautobot/issues/7287) - Refactored CircuitTypeUIViewSet model related UI views to use `UI component framework`.\r\n- [#7300](https://github.com/nautobot/nautobot/issues/7300) - Refactored RackReservation model related UI views to use `UI component framework`.\r\n\r\n## Contributors\r\n\r\n* @dsoftait \r\n* @sirisha-bode\r\n* @Pavan-183\r\n* @HanlinMiao\r\n* @glennmatthews\r\n* @robertoduarte-codilime\r\n* @Sridevi-NTC\r\n* @msheiny\r\n* @RepoBirdBot\r\n* @dependabot\r\n* @renovate-bot \r\n\r\n## New Contributors\r\n* @robertoduarte-codilime made their first contribution in https://github.com/nautobot/nautobot/pull/7329\r\n* @RepoBirdBot made their first contribution in https://github.com/nautobot/nautobot/pull/7251\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.8...v2.4.9",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7352",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/221356374/reactions",
            "total_count": 1,
            "+1": 1,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 11
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/218109942",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/218109942/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/218109942/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.8",
        "id": 218109942,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4NABf2",
        "tag_name": "v2.4.8",
        "target_commitish": "main",
        "name": "v2.4.8 - 2025-05-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-05-12T21:41:32Z",
        "updated_at": "2025-05-12T22:32:30Z",
        "published_at": "2025-05-12T21:46:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/254061815",
                "id": 254061815,
                "node_id": "RA_kwDOFEucDc4PJKz3",
                "name": "nautobot-2.4.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 44201355,
                "digest": null,
                "download_count": 4,
                "created_at": "2025-05-12T22:32:28Z",
                "updated_at": "2025-05-12T22:32:30Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.8/nautobot-2.4.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/254061811",
                "id": 254061811,
                "node_id": "RA_kwDOFEucDc4PJKzz",
                "name": "nautobot-2.4.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43004456,
                "digest": null,
                "download_count": 5,
                "created_at": "2025-05-12T22:32:26Z",
                "updated_at": "2025-05-12T22:32:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.8/nautobot-2.4.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.8",
        "body": "## What's Changed\r\n### Security in v2.4.8\r\n\r\n- [#7223](https://github.com/nautobot/nautobot/issues/7223) - Updated dependency `h11` to `0.16.0` to address `CVE-2025-43859`. This is a development dependency and will not auto-update when upgrading Nautobot. Please be sure to update your local environment.\r\n- [#7273](https://github.com/nautobot/nautobot/issues/7273) - Updated `Django` to 4.2.21 to address `CVE-2025-32873`.\r\n\r\n### Added in v2.4.8\r\n\r\n- [#6053](https://github.com/nautobot/nautobot/issues/6053) - Added `primary_ip` property to GraphQL `DeviceType` to simplify lookup of primary IPs when a mixture of IPv4 and IPv6 are involved.\r\n- [#6053](https://github.com/nautobot/nautobot/issues/6053) - Added `device` property to GraphQL `ModuleType` to simplify lookup of the Device containing a given Module.\r\n- [#7048](https://github.com/nautobot/nautobot/issues/7048) - Added Bulk Edit functionality for the Platform model.\r\n- [#7075](https://github.com/nautobot/nautobot/issues/7075) - Added Bulk Edit functionality for the Webhook model.\r\n- [#7107](https://github.com/nautobot/nautobot/issues/7107) - Added Bulk Edit functionality for the JobHook model.\r\n- [#7126](https://github.com/nautobot/nautobot/issues/7126) - Added Bulk Edit functionality for the CustomLink model.\r\n- [#7148](https://github.com/nautobot/nautobot/issues/7148) - Added Bulk Edit functionality for the RackGroup model.\r\n- [#7154](https://github.com/nautobot/nautobot/issues/7154) - Added index to `created` field in `JobLogEntry`.\r\n- [#7159](https://github.com/nautobot/nautobot/issues/7159) - Added Bulk Edit functionality for the ComputedField model.\r\n- [#7232](https://github.com/nautobot/nautobot/issues/7232) - Added Bulk Edit functionality for the CircuitType model.\r\n- [#7234](https://github.com/nautobot/nautobot/issues/7234) - Added Bulk Edit functionality for the CircuitTermination model.\r\n\r\n### Changed in v2.4.8\r\n\r\n- [#7219](https://github.com/nautobot/nautobot/issues/7219) - Enhanced Contact and Team search to include matching by email and phone number.\r\n- [#7224](https://github.com/nautobot/nautobot/issues/7224) - Changed `ObjectsTablePanel.__init__()` to enforce that a `related_field_name` is required when specifying a `table_attribute`.\r\n- [#7267](https://github.com/nautobot/nautobot/issues/7267) - Changed the `contacts` tab in object detail views to not render if users do not have permission to view contact-associations.\r\n\r\n### Fixed in v2.4.8\r\n\r\n- [#6053](https://github.com/nautobot/nautobot/issues/6053) - Added `all_interfaces`, `all_modules`, etc. properties to GraphQL `DeviceType` to facilitate lookup of components belonging to descendant modules.\r\n- [#6053](https://github.com/nautobot/nautobot/issues/6053) - Added `common_vc_interfaces`, `vc_interfaces` properties to GraphQL `DeviceType` to facilitate lookup of components when VirtualChassis are involved.\r\n- [#6157](https://github.com/nautobot/nautobot/issues/6157) - Fixed invalid specs for ChoiceFields and EmailFields in the swagger schema.\r\n- [#6985](https://github.com/nautobot/nautobot/issues/6985) - Added `filterset_form` to `RackElevationListView`.\r\n- [#7026](https://github.com/nautobot/nautobot/issues/7026) - Fixed collapsing/expanding on the jobs page.\r\n- [#7102](https://github.com/nautobot/nautobot/issues/7102) - Fixed that event payload's `prechange` field is empty when relevant object's previous changelog entries do not exist.\r\n- [#7154](https://github.com/nautobot/nautobot/issues/7154) - Fixed memory issue in cleanup Job Results by changing `delete` to `_raw_delete` in `recursive_delete_with_cascade` method.\r\n- [#7184](https://github.com/nautobot/nautobot/issues/7184) - Fixed missing support for `value_transforms` with certain model field types in `ObjectFieldsPanel`.\r\n- [#7188](https://github.com/nautobot/nautobot/issues/7188) - Fixed broken advanced filters in Nautobot v2.4.7\r\n- [#7224](https://github.com/nautobot/nautobot/issues/7224) - Fixed table filter issues in CloudNetwork model related UI component.\r\n\r\n### Documentation in v2.4.8\r\n\r\n- [#7140](https://github.com/nautobot/nautobot/issues/7140) - Fixed a typo in front port documentation.\r\n- [#7240](https://github.com/nautobot/nautobot/issues/7240) - This change reorganizes and expands the Nautobot Jobs documentation across both the User Guide and the Development Guide.\r\n- [#7240](https://github.com/nautobot/nautobot/issues/7240) - The goals of this update are to improve navigation, reduce page length for easier readability, standardize examples, and align the documentation with Nautobot 2.4.x behavior.\r\n\r\n### Housekeeping in v2.4.8\r\n\r\n- [#6157](https://github.com/nautobot/nautobot/issues/6157) - Added a unit test to validate the generated OpenAPI spec.\r\n- [#7047](https://github.com/nautobot/nautobot/issues/7047) - Refactored VLANGroup model related UI views to use `NautobotUIViewSet` and `UI Component Framework`.\r\n- [#7048](https://github.com/nautobot/nautobot/issues/7048) - Refactored Platform model related UI views to use `NautobotUIViewSet` and `UI Component Framework`.\r\n- [#7056](https://github.com/nautobot/nautobot/issues/7056) - Refactored Cluster model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7075](https://github.com/nautobot/nautobot/issues/7075) - Refactored webhook model related UI views to use `NautobotUIViewSet` and `UI Component Framework`.\r\n- [#7107](https://github.com/nautobot/nautobot/issues/7107) - Refactored JobHook model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7126](https://github.com/nautobot/nautobot/issues/7126) - Refactored CustomLink model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7141](https://github.com/nautobot/nautobot/issues/7141) - Refactored PowerPanel model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7148](https://github.com/nautobot/nautobot/issues/7148) - Refactored RackGroup model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7153](https://github.com/nautobot/nautobot/issues/7153) - Refactored SupportedDataRate model related UI views to use `UI component framework`.\r\n- [#7155](https://github.com/nautobot/nautobot/issues/7155) - Refactored RackReservation model related UI views to use `NautobotUIViewSet`.\r\n- [#7158](https://github.com/nautobot/nautobot/issues/7158) - Refactored CloudNetwork model related UI views to use `UI component framework`.\r\n- [#7159](https://github.com/nautobot/nautobot/issues/7159) - Refactored ComputedField model related UI views to use `NautobotUIViewSet`.\r\n- [#7162](https://github.com/nautobot/nautobot/issues/7162) - Refactored CloudService model related UI views to use `UI component framework`.\r\n- [#7172](https://github.com/nautobot/nautobot/issues/7172) - Refactored PowerFeed model related UI views to use `NautobotUIViewSet`.\r\n- [#7173](https://github.com/nautobot/nautobot/issues/7173) - Refactored JobQueue model related UI views to use `UI component framework`.\r\n- [#7175](https://github.com/nautobot/nautobot/issues/7175) - Refactored JobButton model related UI views to use `UI component framework`.\r\n- [#7184](https://github.com/nautobot/nautobot/issues/7184) - Refactored RadioProfile model related UI views to use `UI component framework`.\r\n- [#7187](https://github.com/nautobot/nautobot/issues/7187) - Added upstream testing for next/next-3.0 in Apps.\r\n- [#7187](https://github.com/nautobot/nautobot/issues/7187) - Removed upstream testing for ltm-1.6.\r\n- [#7189](https://github.com/nautobot/nautobot/issues/7189) - Updated `mkdocs-material` documentation dependency to `~9.6.12`.\r\n- [#7189](https://github.com/nautobot/nautobot/issues/7189) - Updated `mkdocs-section-index` documentation dependency to `~0.3.10`.\r\n- [#7204](https://github.com/nautobot/nautobot/issues/7204) - Refactored SoftwareVersion model related UI views to use `UI component framework`.\r\n- [#7212](https://github.com/nautobot/nautobot/issues/7212) - Refactored SoftwareImageFile model related UI views to use `UI component framework`.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @sirisha-bode \r\n* @Sridevi-NTC\r\n* @Pavan-183 \r\n* @gioccher\r\n* @smk4664\r\n* @gsnider2195\r\n* @dsoftait\r\n* @icovada\r\n* @glennmatthews\r\n* @jabelk\r\n\r\n## New Contributors\r\n* @gioccher made their first contribution in https://github.com/nautobot/nautobot/pull/7140\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.7...v2.4.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7294",
        "mentions_count": 11
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/218109399",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/218109399/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/218109399/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.31",
        "id": 218109399,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4NABXX",
        "tag_name": "v1.6.31",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.31 - 2025-05-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-05-12T21:39:34Z",
        "updated_at": "2025-05-13T02:09:52Z",
        "published_at": "2025-05-12T21:41:23Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/254112255",
                "id": 254112255,
                "node_id": "RA_kwDOFEucDc4PJXH_",
                "name": "nautobot-1.6.31-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31006831,
                "digest": null,
                "download_count": 3,
                "created_at": "2025-05-13T02:09:51Z",
                "updated_at": "2025-05-13T02:09:52Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.31/nautobot-1.6.31-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/254112254",
                "id": 254112254,
                "node_id": "RA_kwDOFEucDc4PJXH-",
                "name": "nautobot-1.6.31.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30314484,
                "digest": null,
                "download_count": 3,
                "created_at": "2025-05-13T02:09:49Z",
                "updated_at": "2025-05-13T02:09:50Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.31/nautobot-1.6.31.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.31",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.31",
        "body": "## What's Changed\r\n### Security\r\n- [#6983](https://github.com/nautobot/nautobot/issues/6983) - Updated dependency `Jinja2` to `~3.1.6` to address `CVE-2025-27516`.\r\n### Fixed\r\n- [#6985](https://github.com/nautobot/nautobot/issues/6985) - Fixed Rack Elevation filtering by adding `filterset_form` to the `RackElevationListView`.\r\n### Housekeeping\r\n- [#6618](https://github.com/nautobot/nautobot/issues/6618) - Update GitHub actions *.yml file to use minimum ubuntu-24.04 since ubuntu-20.04 is deprecated.\r\n- [#6988](https://github.com/nautobot/nautobot/issues/6988) - Updated GitHub Actions to use `networktocode/gh-action-setup-poetry-environment@v6`.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @glennmatthews \r\n* @dsoftait\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.30...v1.6.31",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7293",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/212311655",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/212311655/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/212311655/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.7",
        "id": 212311655,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Mp55n",
        "tag_name": "v2.4.7",
        "target_commitish": "main",
        "name": "v2.4.7 - 2025-04-14",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-04-14T20:21:49Z",
        "updated_at": "2025-04-14T20:53:34Z",
        "published_at": "2025-04-14T20:26:30Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/246378941",
                "id": 246378941,
                "node_id": "RA_kwDOFEucDc4Or3G9",
                "name": "nautobot-2.4.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43236465,
                "digest": null,
                "download_count": 5,
                "created_at": "2025-04-14T20:53:32Z",
                "updated_at": "2025-04-14T20:53:34Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.7/nautobot-2.4.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/246378938",
                "id": 246378938,
                "node_id": "RA_kwDOFEucDc4Or3G6",
                "name": "nautobot-2.4.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 42051872,
                "digest": null,
                "download_count": 8,
                "created_at": "2025-04-14T20:53:31Z",
                "updated_at": "2025-04-14T20:53:32Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.7/nautobot-2.4.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.7",
        "body": "## What's Changed\r\n### Added in v2.4.7\r\n\r\n- [#4171](https://github.com/nautobot/nautobot/issues/4171) - Added `TYPE_NOTES` and `TYPE_URL` to SecretsGroupSecretTypeChoices.\r\n- [#6923](https://github.com/nautobot/nautobot/issues/6923) - Added `AutoPopulateWidget` to support form fields with auto-population logic.\r\n- [#6998](https://github.com/nautobot/nautobot/issues/6998) - Added browser and backend caching for `/api/swagger` openapi endpoint to speed up Swagger and Redoc loading time.\r\n- [#7115](https://github.com/nautobot/nautobot/issues/7115) - Added bulk-edit support for the Relationship model.\r\n- [#7127](https://github.com/nautobot/nautobot/issues/7127) - Added Bulk Edit functionality for the ExportTemplate model.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Added bulk-edit support for the Manufacturer model.\r\n\r\n### Changed in v2.4.7\r\n\r\n- [#6753](https://github.com/nautobot/nautobot/issues/6753) - Removed indentation of child locations on location details page.\r\n- [#7114](https://github.com/nautobot/nautobot/issues/7114) - Changed \"Locations\" column in VLAN table to show `location.name` instead of `location.display` to avoid verbose location hierarchy.\r\n\r\n### Fixed in v2.4.7\r\n\r\n- [#5287](https://github.com/nautobot/nautobot/issues/5287) - Fixed text to be selectable on homepage panels.\r\n- [#6923](https://github.com/nautobot/nautobot/issues/6923) - Fixed auto populating position field when creating Module Bay from Device Type details and bulk creating from Devices or Modules list.\r\n- [#7101](https://github.com/nautobot/nautobot/issues/7101) - Fixed saving a new rack elevation view.\r\n- [#7108](https://github.com/nautobot/nautobot/issues/7108) - Fixed various cases where CustomField-related `provision_field` and `delete_custom_field_data` background tasks were unnecessarily triggered.\r\n- [#7108](https://github.com/nautobot/nautobot/issues/7108) - Added missing signal handler to remove custom field data from affected objects when `CustomField.content_types.clear()` is called.\r\n- [#7152](https://github.com/nautobot/nautobot/issues/7152) - Location.display now honors LOCATION_NAME_AS_NATURAL_KEY - meaning the display of location names will not render the full hierarchy, in places where only the name is relevant.\r\n\r\n### Housekeeping in v2.4.7\r\n\r\n- [#6923](https://github.com/nautobot/nautobot/issues/6923) - `forms.js` refactor of `initializeSlugField` to use common logic with auto populate field like Module Bay position.\r\n- [#7099](https://github.com/nautobot/nautobot/issues/7099) - Removed jQuery from documentation builds as it's not needed anymore for the ReadTheDocs version selection flyout menu.\r\n- [#7103](https://github.com/nautobot/nautobot/issues/7103) - Refactored ProviderNetwork model related UI views to use `UI component framework`.\r\n- [#7111](https://github.com/nautobot/nautobot/issues/7111) - Refactored Team model related UI views to use `UI component framework`.\r\n- [#7115](https://github.com/nautobot/nautobot/issues/7115) - Refactored Relationship model related UI views to use `NautobotUIViewSet`.\r\n- [#7127](https://github.com/nautobot/nautobot/issues/7127) - Refactored ExportTemplate model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7130](https://github.com/nautobot/nautobot/issues/7130) - Refactored Contact model related UI views to use `UI component framework`.\r\n- [#7134](https://github.com/nautobot/nautobot/issues/7134) - Refactored Manufacturer model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7144](https://github.com/nautobot/nautobot/issues/7144) - Refactored CloudAccount model related UI views to use `UI component framework`.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @mateusz-lachowski-codilime \r\n* @cmsirbu \r\n* @jifox \r\n* @Sridevi-NTC \r\n* @seaburger \r\n* @glennmatthews \r\n* @ehendrickson2 \r\n* @sirisha-bode \r\n* @Pavan-183 \r\n* @lampwins \r\n* @dsoftait \r\n\r\n## New Contributors\r\n* @seaburger made their first contribution in https://github.com/nautobot/nautobot/pull/7120\r\n* @ehendrickson2 made their first contribution in https://github.com/nautobot/nautobot/pull/7105\r\n* @sirisha-bode made their first contribution in https://github.com/nautobot/nautobot/pull/7137\r\n* @Pavan-183 made their first contribution in https://github.com/nautobot/nautobot/pull/7128\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.6...v2.4.7",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7166",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/209447627",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/209447627/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/209447627/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.6",
        "id": 209447627,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Me-rL",
        "tag_name": "v2.4.6",
        "target_commitish": "main",
        "name": "v2.4.6 - 2025-03-31",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-03-31T20:40:55Z",
        "updated_at": "2025-03-31T21:12:40Z",
        "published_at": "2025-03-31T20:47:18Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/242401689",
                "id": 242401689,
                "node_id": "RA_kwDOFEucDc4OcsGZ",
                "name": "nautobot-2.4.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43239162,
                "digest": null,
                "download_count": 4,
                "created_at": "2025-03-31T21:12:38Z",
                "updated_at": "2025-03-31T21:12:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.6/nautobot-2.4.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/242401683",
                "id": 242401683,
                "node_id": "RA_kwDOFEucDc4OcsGT",
                "name": "nautobot-2.4.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 42053465,
                "digest": null,
                "download_count": 4,
                "created_at": "2025-03-31T21:12:36Z",
                "updated_at": "2025-03-31T21:12:38Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.6/nautobot-2.4.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.6",
        "body": "## What's Changed\r\n### Security in v2.4.6\r\n\r\n- [#7039](https://github.com/nautobot/nautobot/issues/7039) - Updated `cryptography` to `44.0.2` to address `CVE-2024-12797`.\r\n\r\n### Added in v2.4.6\r\n\r\n- [#4181](https://github.com/nautobot/nautobot/issues/4181) - Added `last_updated` column to Note table.\r\n- [#4181](https://github.com/nautobot/nautobot/issues/4181) - Added display for number of notes attached to each object on the Notes tab header in Object Detail View.\r\n- [#5780](https://github.com/nautobot/nautobot/issues/5780) - Added object permission enforcement to related objects when modifying records through the REST API.\r\n- [#6957](https://github.com/nautobot/nautobot/issues/6957) - Added optional `display_field` parameter to `LinkedCountColumn`.\r\n- [#7003](https://github.com/nautobot/nautobot/issues/7003) - Added `external_integration` foreign key field to `SoftwareImageFile` model, which allows the enrichment of file data to include download options, secrets, etc.\r\n- [#7041](https://github.com/nautobot/nautobot/issues/7041) - Added bulk-edit support for the ClusterType model.\r\n- [#7044](https://github.com/nautobot/nautobot/issues/7044) - Added bulk-edit support for the ClusterGroup model.\r\n- [#7088](https://github.com/nautobot/nautobot/issues/7088) - Added support for removing content types in Status bulk-edit and Role bulk-edit.\r\n- [#7091](https://github.com/nautobot/nautobot/issues/7091) - Added Nautobot DNS Models app to the Apps Marketplace.\r\n\r\n### Changed in v2.4.6\r\n\r\n- [#4181](https://github.com/nautobot/nautobot/issues/4181) - Changed the default column ordering of Note table.\r\n- [#6379](https://github.com/nautobot/nautobot/issues/6379) - Changed `SoftwareImageFile.download_url` to allow additional URI Schemas, such as `sftp://`, `tftp://`.\r\n- [#6957](https://github.com/nautobot/nautobot/issues/6957) - Changed \"Locations\" column in Prefix table to show `location.name` instead of `location.display` to avoid verbose location hierarchy in tables.\r\n\r\n### Fixed in v2.4.6\r\n\r\n- [#6902](https://github.com/nautobot/nautobot/issues/6902) - Fixed bug with formatting date in templates.\r\n- [#6962](https://github.com/nautobot/nautobot/issues/6962) - Fixed a Validation error with empty ports field in Service Bulk Edit Form.\r\n- [#6987](https://github.com/nautobot/nautobot/issues/6987) - Improved speed of IPAM 1.x-to-2.x data migration `0031_ipam___data_migrations` by about 20% when working with large data sets.\r\n- [#7088](https://github.com/nautobot/nautobot/issues/7088) - Fixed bulk assignment and bulk removal of content types.\r\n- [#7092](https://github.com/nautobot/nautobot/issues/7092) - Added graceful handling for route-lookup errors when constructing a DynamicModelChoiceField or a DynamicModelMultipleChoiceField.\r\n\r\n### Dependencies in v2.4.6\r\n\r\n- [#6993](https://github.com/nautobot/nautobot/issues/6993) - Update dependency `kubernetes` to `^32.0.1`.\r\n- [#6993](https://github.com/nautobot/nautobot/issues/6993) - Update dependency `nh3` to `~0.2.21`.\r\n- [#7019](https://github.com/nautobot/nautobot/issues/7019) - Added `cryptography` as a directly specified dependency of Nautobot to make it easier to protect against various security issues in older versions of `cryptography`.\r\n- [#7019](https://github.com/nautobot/nautobot/issues/7019) - Removed support for Python 3.9.0 and 3.9.1 due to dependencies such as `cryptography` requiring newer Python versions.\r\n\r\n### Documentation in v2.4.6\r\n\r\n- [#6944](https://github.com/nautobot/nautobot/issues/6944) - Updated the \"Installation\" section of the documentation to more clearly describe the various deployment approaches recommended for Nautobot and their respective pros and cons.\r\n- [#6995](https://github.com/nautobot/nautobot/issues/6995) - Added content to User Guide `index.md` to give overview of options in the documentation of the guide.\r\n- [#7014](https://github.com/nautobot/nautobot/issues/7014) - Added \"Recipe\" section to permissions documentation with an \"Export\" example.\r\n- [#7020](https://github.com/nautobot/nautobot/issues/7020) - Improving issues found in various User Guide Getting Started typos and unclear references.\r\n- [#7030](https://github.com/nautobot/nautobot/issues/7030) - Improved Nautobot Webhooks documentation with additional context and examples.\r\n- [#7051](https://github.com/nautobot/nautobot/issues/7051) - Clarified developer \"best practices\" documentation regarding base classes for forms in Nautobot.\r\n\r\n### Housekeeping in v2.4.6\r\n\r\n- [#6962](https://github.com/nautobot/nautobot/issues/6962) - Refactored Service model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#6970](https://github.com/nautobot/nautobot/issues/6970) - Added selenium helper. Fixed selenium VNC port bug.\r\n- [#6987](https://github.com/nautobot/nautobot/issues/6987) - Added `django-test-migrations` as a testing dependency.\r\n- [#6987](https://github.com/nautobot/nautobot/issues/6987) - Added `nautobot.ipam.tests.test_migrations.IPAMDataMigration0031TestCase` that can be run to reproducibly test IPAM data migration `0031_ipam___data_migrations` for correctness and performance.\r\n- [#6987](https://github.com/nautobot/nautobot/issues/6987) - Renamed `invoke tests` task to `invoke lint` and renamed `invoke unittest` task to `invoke tests`.\r\n- [#6987](https://github.com/nautobot/nautobot/issues/6987) - Changed `invoke tests` task to default to _not_ measuring and reporting code coverage by default, since doing so slows test performance.\r\n- [#6987](https://github.com/nautobot/nautobot/issues/6987) - Removed `django-slowtests` as a development dependency and removed associated test-performance-measuring functionality.\r\n- [#6987](https://github.com/nautobot/nautobot/issues/6987) - Removed distinct `invoke integration-test`, `invoke performance-test`, and `invoke unittest-coverage` tasks; integration tests should now be run with `invoke tests --tag integration` and test coverage is reported when running `invoke tests --coverage`.\r\n- [#6987](https://github.com/nautobot/nautobot/issues/6987) - Refactored `nautobot.ipam.tests.test_migrations.AggregateToPrefixMigrationTestCase` to use `django-test-migrations` and be runnable.\r\n- [#7013](https://github.com/nautobot/nautobot/issues/7013) - Refactored Namespace model related UI views to use `UI component framework`.\r\n- [#7017](https://github.com/nautobot/nautobot/issues/7017) - Fixed conflicts between factory data and bespoke test data involving VRF assignments to Virtual Device Contexts.\r\n- [#7017](https://github.com/nautobot/nautobot/issues/7017) - Fixed state leakage from custom-validation test cases potentially causing failures of other test cases.\r\n- [#7037](https://github.com/nautobot/nautobot/issues/7037) - Adds github action linter to CI.\r\n- [#7041](https://github.com/nautobot/nautobot/issues/7041) - Refactored ClusterType model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7044](https://github.com/nautobot/nautobot/issues/7044) - Refactored ClusterGroup model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n- [#7055](https://github.com/nautobot/nautobot/issues/7055) - Updated development dependencies `pylint` to `~3.3.6` and `pymarkdownlnt` to `~0.9.29`.\r\n- [#7064](https://github.com/nautobot/nautobot/issues/7064) - Updated CI to use Poetry 1.8.5.\r\n- [#7064](https://github.com/nautobot/nautobot/issues/7064) - Updated \"upstream testing\" CI to use Python 3.11.\r\n- [#7071](https://github.com/nautobot/nautobot/issues/7071) - Refactored Status model related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n\r\n## Contributors\r\n* @garymccann \r\n* @dsoftait \r\n* @glennmatthews \r\n* @HanlinMiao \r\n* @jabelk \r\n* @cdwchriburg \r\n* @Sridevi-NTC \r\n* @msheiny \r\n* @matt852 \r\n* @jamesharr \r\n* @ssganesh035\r\n\r\n## New Contributors\r\n* @garymccann made their first contribution in https://github.com/nautobot/nautobot/pull/6991\r\n* @dsoftait made their first contribution in https://github.com/nautobot/nautobot/pull/7005\r\n* @cdwchriburg made their first contribution in https://github.com/nautobot/nautobot/pull/6958\r\n* @ssganesh035 made their first contribution in https://github.com/nautobot/nautobot/pull/7030\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.5...v2.4.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7096",
        "mentions_count": 11
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/205269997",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/205269997/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/205269997/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.5",
        "id": 205269997,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4MPCvt",
        "tag_name": "v2.4.5",
        "target_commitish": "main",
        "name": "v2.4.5 - 2025-03-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-03-12T11:57:38Z",
        "updated_at": "2025-03-17T16:35:15Z",
        "published_at": "2025-03-12T12:00:50Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/238263511",
                "id": 238263511,
                "node_id": "RA_kwDOFEucDc4OM5zX",
                "name": "nautobot-2.4.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43189742,
                "digest": null,
                "download_count": 4,
                "created_at": "2025-03-17T16:35:13Z",
                "updated_at": "2025-03-17T16:35:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.5/nautobot-2.4.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/238263503",
                "id": 238263503,
                "node_id": "RA_kwDOFEucDc4OM5zP",
                "name": "nautobot-2.4.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 42000358,
                "digest": null,
                "download_count": 3,
                "created_at": "2025-03-17T16:35:12Z",
                "updated_at": "2025-03-17T16:35:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.5/nautobot-2.4.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.5",
        "body": "## What's Changed\r\n### Security in v2.4.5\r\n\r\n- [#6983](https://github.com/nautobot/nautobot/issues/6983) - Updated dependency `Jinja2` to `~3.1.6` to address `CVE-2025-27516`.\r\n- [#7000](https://github.com/nautobot/nautobot/issues/7000) - Updated dependency `Django` to `~4.2.20` to address `CVE-2025-26699`.\r\n\r\n### Added in v2.4.5\r\n\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Added `Job.logger.failure()` API for Job logging, using custom `FAILURE` log level (between `WARNING` and `ERROR`).\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Added `Job.fail()` API, which can be used to fail a Job more gracefully than by raising an uncaught exception.\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Added `NautobotTestCaseMixin.assertJobResultStatus()` testing helper API.\r\n- [#7001](https://github.com/nautobot/nautobot/issues/7001) - Added bulk-edit support for the RIR model.\r\n\r\n### Changed in v2.4.5\r\n\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Changed output of `nautobot-server runjob` command to include the traceback (if any) and count of `success`/`failure` log messages.\r\n\r\n### Removed in v2.4.5\r\n\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Removed the (undocumented) requirement for Jobs that implement a custom `before_start()` or `after_return()` method to call `super()` for the Job to execute successfully.\r\n\r\n### Fixed in v2.4.5\r\n\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Fixed rendering of \"actions\" column in the JobResult table view.\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Fixed incorrect `stacklevel` default value in Job `logger.success()` API.\r\n- [#6906](https://github.com/nautobot/nautobot/issues/6906) - `GitRepository.clone_to_directory` now uses configured Secrets for Repository to prepare correct `from_url`.\r\n- [#6972](https://github.com/nautobot/nautobot/issues/6972) - Fixed IPAddress get_or_create not working with the address argument.\r\n\r\n### Housekeeping in v2.4.5\r\n\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Added `init: true` to development `docker-compose.yml` to avoid failed health-checks from remaining as zombie processes.\r\n- [#6384](https://github.com/nautobot/nautobot/issues/6384) - Added `ExampleFailingJob` to example app to demonstrate the two different ways to fail a Job.\r\n- [#6971](https://github.com/nautobot/nautobot/issues/6971) - Fixed invoke commands requiring pyyaml.\r\n- [#7001](https://github.com/nautobot/nautobot/issues/7001) - Refactored RIR model-related UI views to use `NautobotUIViewSet` and `UI component framework`.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @gsnider2195 \r\n* @mateusz-lachowski-codilime \r\n* @glennmatthews \r\n* @Sridevi-NTC\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.4...v2.4.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/7015",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/203486987",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/203486987/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/203486987/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.4",
        "id": 203486987,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4MIPcL",
        "tag_name": "v2.4.4",
        "target_commitish": "main",
        "name": "v2.4.4 - 2025-03-01",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-03-04T04:25:00Z",
        "updated_at": "2025-03-04T15:41:35Z",
        "published_at": "2025-03-04T04:29:57Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/234543086",
                "id": 234543086,
                "node_id": "RA_kwDOFEucDc4N-tfu",
                "name": "nautobot-2.4.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 43183553,
                "digest": null,
                "download_count": 7,
                "created_at": "2025-03-04T15:41:33Z",
                "updated_at": "2025-03-04T15:41:34Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.4/nautobot-2.4.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/234543076",
                "id": 234543076,
                "node_id": "RA_kwDOFEucDc4N-tfk",
                "name": "nautobot-2.4.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 41989247,
                "digest": null,
                "download_count": 6,
                "created_at": "2025-03-04T15:41:29Z",
                "updated_at": "2025-03-04T15:41:32Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.4/nautobot-2.4.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.4",
        "body": "## What's Changed\r\n### Added in v2.4.4\r\n\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Added `PrefixFilter` helper class to `nautobot.apps.filters`.\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Enhanced `prefixes` filter on `CloudNetwork` and `Tenant` filtersets to support filtering by literal prefix string (`10.0.0.0/8`) as an alternative to filtering by primary key.\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Enhanced `prefix` filter on `CloudNetworkPrefixAssignment`, `VRF`, and `VRFPrefixAssignment` filtersets to support filtering by literal prefix string (`10.0.0.0/8`) as an alternative to filtering by primary key.\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Enhanced `parent` filter on `Prefix` filtersets to support filtering by literal prefix string (`10.0.0.0/8`) as an alternative to filtering by primary key.\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Enhanced `prefix` filter on `PrefixLocationAssignment` filtersets to support filtering by primary key as an alternative to filtering by literal prefix string.\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Added `q` search filter to `VRFPrefixAssignment` filterset.\r\n- [#6635](https://github.com/nautobot/nautobot/issues/6635) - Added Monaco Editor integration to object change view for improved visualization of structured data differences including JSON, YAML, XML, tags, custom fields, and config contexts.\r\n- [#6924](https://github.com/nautobot/nautobot/issues/6924) - Added optional VRF relationship to Virtual Device Context.\r\n- [#6925](https://github.com/nautobot/nautobot/issues/6925) - Added colors next to Devices to indicate Device status in Rack Elevation view.\r\n- [#6966](https://github.com/nautobot/nautobot/issues/6966) - Added support for accessing the current user within Custom Validators via `self.context[\"user\"]`.\r\n\r\n### Changed in v2.4.4\r\n\r\n- [#6829](https://github.com/nautobot/nautobot/issues/6829) - Enabled assignment of a Device to a Rack that belongs to a child Location of the device's location; for example, a Device located in a \"Building\" can now be assigned to a Rack located in a \"Room\" within that building.\r\n\r\n### Fixed in v2.4.4\r\n\r\n- [#3041](https://github.com/nautobot/nautobot/issues/3041) - Fixed inability to assign a parent bay when creating a Device via the REST API.\r\n- [#5006](https://github.com/nautobot/nautobot/issues/5006) - Added a validation check to prevent removing an in-use content type from a LocationType.\r\n- [#5193](https://github.com/nautobot/nautobot/issues/5193) - Fixed an erroneous `ValidationError` when attempting to apply Tags to an object via the REST API.\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Fixed `VRFPrefixAssignment` REST API endpoint incorrectly advertising support for Notes.\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Fixed incorrect `Meta.model` value on `ControllerManagedDeviceGroupWirelessNetworkAssignmentTable` and `ControllerManagedDeviceGroupRadioProfileAssignmentTable`.\r\n- [#6848](https://github.com/nautobot/nautobot/issues/6848) - Fixed a `DoesNotExist` error in the GUI at `/extras/git-repositories/X/result/` when a Git repository was created via API and not yet synced.\r\n- [#6861](https://github.com/nautobot/nautobot/issues/6861) - Fixed the data population of the Rack Group dropdown to include Rack Groups from the Rack's parent locations in Rack Edit View.\r\n- [#6910](https://github.com/nautobot/nautobot/issues/6910) - Fixed CSV export job to add a UTF-8 BOM (byte order mark) to the created file to ensure Excel will correctly handle any Unicode data.\r\n- [#6920](https://github.com/nautobot/nautobot/issues/6920) - Added log messages to help troubleshoot failures when rendering UI Component Framework `extra_buttons`.\r\n- [#6920](https://github.com/nautobot/nautobot/issues/6920) - Fixed logic in UI Component Framework `StatsPanel` that incorrectly disallowed use of FilterSet filters implicitly defined through `fields = \"__all__\"`.\r\n- [#6920](https://github.com/nautobot/nautobot/issues/6920) - Fixed logic in generic `FormTestCase` class that would incorrectly fail if form fields used FilterSet filters implicitly defined through `fields = \"__all__\"`.\r\n- [#6939](https://github.com/nautobot/nautobot/issues/6939) - Fixed an error in testing Jobs in `JOBS_ROOT` by forcing registration of `taggit` and `social_django` models before unregistering them from the admin site.\r\n- [#6950](https://github.com/nautobot/nautobot/issues/6950) - Added missing `job_queues` filter field to `JobFilterSet`.\r\n- [#6952](https://github.com/nautobot/nautobot/issues/6952) - Fixed an `AttributeError` exception when upgrading from v1.x to v2.x with certain existing data in the database.\r\n\r\n### Dependencies in v2.4.4\r\n\r\n- [#6927](https://github.com/nautobot/nautobot/issues/6927) - Updated dependency `django-filter` to `~25.1`.\r\n\r\n### Documentation in v2.4.4\r\n\r\n- [#6903](https://github.com/nautobot/nautobot/issues/6903) - Removed documentation references to Nautobot 1.x behavior and feature changes within the 1.x release series.\r\n- [#6951](https://github.com/nautobot/nautobot/issues/6951) - Fixed typo in v2 migration documentation.\r\n\r\n### Housekeeping in v2.4.4\r\n\r\n- [#5851](https://github.com/nautobot/nautobot/issues/5851) - Enhanced `PrefixFactory` and `VRFFactory` test helpers to automatically create appropriate `VRFPrefixAssignment` records.\r\n- [#6857](https://github.com/nautobot/nautobot/issues/6857) - Added `.yarn` directory to `.gitignore`.\r\n- [#6857](https://github.com/nautobot/nautobot/issues/6857) - Changed CI for integration tests to use `--no-keepdb`.\r\n- [#6858](https://github.com/nautobot/nautobot/issues/6858) - Fixed generation of performance test endpoints for Nautobot apps.\r\n- [#6893](https://github.com/nautobot/nautobot/issues/6893) - Added an option for ephemeral ports, and streamlined debug settings for VSCode developers.\r\n- [#6943](https://github.com/nautobot/nautobot/issues/6943) - Updated `debug` invoke task to restore previous behavior.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @glennmatthews \r\n* @jabelk \r\n* @cdtomkins\r\n* @mateusz-lachowski-codilime \r\n* @icovada \r\n* @Sridevi-NTC \r\n* @msheiny \r\n* @jmpettit \r\n* @adilbenameur\r\n* @jpvrenen\r\n* @lampwins \r\n\r\n## New Contributors\r\n* @jabelk made their first contribution in https://github.com/nautobot/nautobot/pull/6903\r\n* @jmpettit made their first contribution in https://github.com/nautobot/nautobot/pull/6859\r\n* @jpvrenen made their first contribution in https://github.com/nautobot/nautobot/pull/6934\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.3...v2.4.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6974",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/200997987",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/200997987/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/200997987/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.3",
        "id": 200997987,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4L-vxj",
        "tag_name": "v2.4.3",
        "target_commitish": "main",
        "name": "v2.4.3 - 2025-02-18",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-02-18T18:45:46Z",
        "updated_at": "2025-02-18T19:21:24Z",
        "published_at": "2025-02-18T18:49:16Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/230360421",
                "id": 230360421,
                "node_id": "RA_kwDOFEucDc4NuwVl",
                "name": "nautobot-2.4.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 41978099,
                "digest": null,
                "download_count": 7,
                "created_at": "2025-02-18T19:21:23Z",
                "updated_at": "2025-02-18T19:21:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.3/nautobot-2.4.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/230360415",
                "id": 230360415,
                "node_id": "RA_kwDOFEucDc4NuwVf",
                "name": "nautobot-2.4.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 40799140,
                "digest": null,
                "download_count": 5,
                "created_at": "2025-02-18T19:21:21Z",
                "updated_at": "2025-02-18T19:21:23Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.3/nautobot-2.4.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.3",
        "body": "## What's Changed\r\n\r\n### Added in v2.4.3\r\n\r\n- [#6836](https://github.com/nautobot/nautobot/issues/6836) - Added management command `generate_performance_test_endpoints` to generate performance test endpoints.\r\n- [#6865](https://github.com/nautobot/nautobot/issues/6865) - Added Bulk Edit functionality for the Tenant Group model.\r\n\r\n### Changed in v2.4.3\r\n\r\n- [#5568](https://github.com/nautobot/nautobot/issues/5568) - Added hyperlink to the total device count number under device family.\r\n\r\n### Fixed in v2.4.3\r\n\r\n- [#5539](https://github.com/nautobot/nautobot/issues/5539) - Fixed incorrect error message in Controller `clean()` method.\r\n- [#6113](https://github.com/nautobot/nautobot/issues/6113) - Menus inside responsive tables are fixed to be visible by dynamically mounting them to the body and positioning them absolutely.\r\n- [#6667](https://github.com/nautobot/nautobot/issues/6667) - Adds custom clearable file input form widget.\r\n- [#6764](https://github.com/nautobot/nautobot/issues/6764) - Fixed global and user default saved views incorrectly overriding filtered views.\r\n- [#6785](https://github.com/nautobot/nautobot/issues/6785) - Fixed Saved Views throwing an unexpected error when they contain boolean filter parameters.\r\n- [#6805](https://github.com/nautobot/nautobot/issues/6805) - Fixed an exception when saving a Dynamic Group of IP Addresses.\r\n- [#6806](https://github.com/nautobot/nautobot/issues/6806) - Fixed a bug that prevented users from accessing the detail views of Location related Dynamic Groups.\r\n- [#6836](https://github.com/nautobot/nautobot/issues/6836) - Fixed various Component Template models incorrectly assume `Notes` support in the API.\r\n- [#6836](https://github.com/nautobot/nautobot/issues/6836) - Fixed CloudNetworkPrefixAssignment, CloudServiceNetworkAssignment, InterfaceVDCAssignment, JobQueueAssignment, ObjectMetadata, PrefixLocationAssignment, VLANLocationAssignment, ControllerManagedDeviceGroupWirelessNetworkAssignment, and ControllerManagedDeviceGroupRadioProfileAssignment models incorrectly assume `Notes` support in the API.\r\n- [#6841](https://github.com/nautobot/nautobot/issues/6841) - Fixed missing termination side when creating from Circuit detail page.\r\n- [#6860](https://github.com/nautobot/nautobot/issues/6860) - Fixed incorrect marking of `channel_width` and `allowed_channel_list` as required fields in the Wireless Radio Profile REST API.\r\n- [#6901](https://github.com/nautobot/nautobot/issues/6901) - Fixed incorrect rendering of cable traces in the case where Modules are part of the hardware definition.\r\n- [#6901](https://github.com/nautobot/nautobot/issues/6901) - Fixed incorrect rendering of device-component (Interface, Front Port, etc.) detail views when Modules are involved.\r\n\r\n### Dependencies in v2.4.3\r\n\r\n- [#6658](https://github.com/nautobot/nautobot/issues/6658) - Updated dependency `django-constance` to `~4.3.0`.\r\n- [#6658](https://github.com/nautobot/nautobot/issues/6658) - Updated dependency `kubernetes` to `^32.0.0`.\r\n- [#6869](https://github.com/nautobot/nautobot/issues/6869) - Updated dependency `Django` to `~4.2.19`.\r\n- [#6869](https://github.com/nautobot/nautobot/issues/6869) - Updated dependency `django-structlog` to `^9.0.1`.\r\n- [#6894](https://github.com/nautobot/nautobot/issues/6894) - Updated dependency `social-auth-app-django` to `~5.4.3`.\r\n- [#6894](https://github.com/nautobot/nautobot/issues/6894) - Updated dependency `social-auth-core` to `~4.5.6`.\r\n\r\n### Documentation in v2.4.3\r\n\r\n- [#6894](https://github.com/nautobot/nautobot/issues/6894) - Enabled PyMarkdown `proper-names` checking for some relevant proper nouns and corrected documentation accordingly.\r\n\r\n### Housekeeping in v2.4.3\r\n\r\n- [#6618](https://github.com/nautobot/nautobot/issues/6618) - Updated GitHub Actions to use ubuntu-24.04 since ubuntu-20.04 is deprecated.\r\n- [#6658](https://github.com/nautobot/nautobot/issues/6658) - Updated development dependency `faker` to `~36.1.0`.\r\n- [#6658](https://github.com/nautobot/nautobot/issues/6658) - Updated development dependency `django-debug-toolbar` to `~5.0.1`.\r\n- [#6846](https://github.com/nautobot/nautobot/issues/6846) - Fixed integration test task to allow passing in pattern match.\r\n- [#6865](https://github.com/nautobot/nautobot/issues/6865) - Refactored `tenancy` app to use `NautobotUIViewSet` and UI component framework.\r\n- [#6869](https://github.com/nautobot/nautobot/issues/6869) - Updated development dependency `factory-boy` to `~3.3.3`.\r\n- [#6894](https://github.com/nautobot/nautobot/issues/6894) - Updated development dependency `faker` to `~36.1.1`.\r\n- [#6894](https://github.com/nautobot/nautobot/issues/6894) - Updated linting dependency `pymarkdownlnt` to `~0.9.28`.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @mateusz-lachowski-codilime \r\n* @glennmatthews \r\n* @msheiny\r\n* @ericchou1 \r\n* @Sridevi-NTC\r\n\r\n## New Contributors\r\n* @Sridevi-NTC made their first contribution in https://github.com/nautobot/nautobot/pull/6899\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.2...v2.4.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6907",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/198205500",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/198205500/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/198205500/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.2",
        "id": 198205500,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4L0GA8",
        "tag_name": "v2.4.2",
        "target_commitish": "main",
        "name": "v2.4.2 - 2025-02-03",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-02-03T22:04:27Z",
        "updated_at": "2025-02-03T22:51:57Z",
        "published_at": "2025-02-03T22:16:11Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/225996793",
                "id": 225996793,
                "node_id": "RA_kwDOFEucDc4NeG_5",
                "name": "nautobot-2.4.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 41960530,
                "digest": null,
                "download_count": 6,
                "created_at": "2025-02-03T22:51:56Z",
                "updated_at": "2025-02-03T22:51:57Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.2/nautobot-2.4.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/225996781",
                "id": 225996781,
                "node_id": "RA_kwDOFEucDc4NeG_t",
                "name": "nautobot-2.4.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 40790199,
                "digest": null,
                "download_count": 7,
                "created_at": "2025-02-03T22:51:55Z",
                "updated_at": "2025-02-03T22:51:56Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.2/nautobot-2.4.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.2",
        "body": "## What's Changed\r\n\r\n### Added in v2.4.2\r\n\r\n- [#3319](https://github.com/nautobot/nautobot/issues/3319) - Added the appropriate Namespace to the link for adding a new IP address from an existing Prefix's detail view.\r\n- [#4702](https://github.com/nautobot/nautobot/issues/4702) - Added support for loading GraphQL queries from a Git repository.\r\n- [#5622](https://github.com/nautobot/nautobot/issues/5622) - Added `tags` field on `DeviceFamilyForm`.\r\n- [#6347](https://github.com/nautobot/nautobot/issues/6347) - Added Bulk Edit functionality for LocationType model.\r\n- [#6487](https://github.com/nautobot/nautobot/issues/6487) - Added the ability to perform a shallow copy of a GitRepository instance and to optionally checkout a different branch and/or a specific commit hash.\r\n- [#6767](https://github.com/nautobot/nautobot/issues/6767) - Added cacheable `CustomField.choices` property for retrieving the list of permissible values for a select/multiselect Custom Field.\r\n\r\n### Changed in v2.4.2\r\n\r\n- [#5781](https://github.com/nautobot/nautobot/issues/5781) - Removed unnecessary `import_jobs()` call during system startup.\r\n- [#6650](https://github.com/nautobot/nautobot/issues/6650) - Changed the `nautobot.apps.utils.get_base_template()` function's fallback behavior to return `\"generic/object_retrieve.html\"` instead of `\"base.html\"` in order to more correctly align with its usage throughout Nautobot core.\r\n- [#6650](https://github.com/nautobot/nautobot/issues/6650) - Replaced references to `generic/object_detail.html` with `generic/object_retrieve.html` throughout the code and docs, as `generic/object_detail.html` has been a deprecated alias since v1.4.0.\r\n- [#6808](https://github.com/nautobot/nautobot/issues/6808) - Improved returned data when syncing a Git repository via the REST API.\r\n\r\n### Fixed in v2.4.2\r\n\r\n- [#3319](https://github.com/nautobot/nautobot/issues/3319) - Fixed an exception when retrieving available IP addresses within a Prefix for certain IPv6 networks.\r\n- [#3319](https://github.com/nautobot/nautobot/issues/3319) - Fixed incorrect potential inclusion of IPv4 IP addresses from the same Namespace when calling `.get_all_ips()` or `.get_utilization()` on an IPv6 Prefix.\r\n- [#6650](https://github.com/nautobot/nautobot/issues/6650) - Fixed rendering of \"notes\" and \"changelog\" tabs for object detail views that do not provide a custom HTML template.\r\n- [#6767](https://github.com/nautobot/nautobot/issues/6767) - Improved performance of object detail views when a large number of select/multiselect Custom Fields and also filtered Relationships are defined on the model class.\r\n- [#6767](https://github.com/nautobot/nautobot/issues/6767) - Improved performance of Device detail view by adding appropriate `select_related`/`prefetch_related` calls.\r\n- [#6767](https://github.com/nautobot/nautobot/issues/6767) - Fixed display of Cluster Group in Device detail view.\r\n- [#6810](https://github.com/nautobot/nautobot/issues/6810) - Fixed Bulk Edit Objects job failure when passing a single value to `add_*`/`remove_*` fields.\r\n- [#6812](https://github.com/nautobot/nautobot/issues/6812) - Fixed the incorrect rendering of the Relationship panel in Object Detail View.\r\n- [#6821](https://github.com/nautobot/nautobot/issues/6821) - Fixed the rendering of `Location` in the `RackReservation` detail page.\r\n- [#6825](https://github.com/nautobot/nautobot/issues/6825) - Added links to the `manufacturer` column of the Platform table.\r\n- [#6838](https://github.com/nautobot/nautobot/issues/6838) - Added missing `key` and `label` fields to Relationship Detail View.\r\n\r\n### Dependencies in v2.4.2\r\n\r\n- [#6717](https://github.com/nautobot/nautobot/issues/6717) - Updated `GitPython` dependency to `~3.1.44`.\r\n- [#6717](https://github.com/nautobot/nautobot/issues/6717) - Updated `django-silk` dependency to `~5.3.2`.\r\n- [#6717](https://github.com/nautobot/nautobot/issues/6717) - Updated `django-tables2` dependency to `~2.7.5`.\r\n- [#6717](https://github.com/nautobot/nautobot/issues/6717) - Updated `mysqlclient` optional dependency to `~2.2.7`.\r\n\r\n### Documentation in v2.4.2\r\n\r\n- [#346](https://github.com/nautobot/nautobot/issues/346) - Added documentation about Git repository REST API.\r\n- [#6621](https://github.com/nautobot/nautobot/issues/6621) - Added \"Security Notices\" document to the documentation under **User Guide --> Administration**.\r\n\r\n### Housekeeping in v2.4.2\r\n\r\n- [#6717](https://github.com/nautobot/nautobot/issues/6717) - Updated `mkdocs-material` documentation dependency to `9.5.50`.\r\n- [#6717](https://github.com/nautobot/nautobot/issues/6717) - Updated `faker` development dependency to `~33.3.1`.\r\n- [#6717](https://github.com/nautobot/nautobot/issues/6717) - Updated `pylint` development dependency to `~3.3.4`.\r\n- [#6779](https://github.com/nautobot/nautobot/issues/6779) - Added integration tests for bulk edit/delete operations for Devices and Locations.\r\n- [#6779](https://github.com/nautobot/nautobot/issues/6779) - Added `BulkOperationsTestCases` class with built-in standard test cases for testing bulk operations.\r\n- [#6842](https://github.com/nautobot/nautobot/issues/6842) - Fix `invoke integration-test` to run standalone, without running the `invoke start` first.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @cdtomkins \r\n* @djhoward12 \r\n* @timizuoebideri1 \r\n* @itdependsnetworks\r\n* @pl0xym0r\r\n* @mateusz-lachowski-codilime\r\n* @glennmatthews\r\n\r\n## New Contributors\r\n* @djhoward12 made their first contribution in https://github.com/nautobot/nautobot/pull/6752\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.1...v2.4.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6853",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/195900375",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/195900375/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/195900375/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.1",
        "id": 195900375,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LrTPX",
        "tag_name": "v2.4.1",
        "target_commitish": "main",
        "name": "v2.4.1 - 2025-01-21",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-01-21T17:18:09Z",
        "updated_at": "2025-02-04T19:03:21Z",
        "published_at": "2025-01-21T17:21:55Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/222156722",
                "id": 222156722,
                "node_id": "RA_kwDOFEucDc4NPdey",
                "name": "nautobot-2.4.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 41877415,
                "digest": null,
                "download_count": 6,
                "created_at": "2025-01-21T17:56:40Z",
                "updated_at": "2025-01-21T17:56:42Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.1/nautobot-2.4.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/222156711",
                "id": 222156711,
                "node_id": "RA_kwDOFEucDc4NPden",
                "name": "nautobot-2.4.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 40709815,
                "digest": null,
                "download_count": 6,
                "created_at": "2025-01-21T17:56:37Z",
                "updated_at": "2025-01-21T17:56:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.1/nautobot-2.4.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.1",
        "body": "## What's Changed\r\n\r\n### Security in v2.4.1\r\n\r\n- [#6780](https://github.com/nautobot/nautobot/issues/6780) - Updated `Django` to `4.2.18` to address `CVE-2024-56374`.\r\n\r\n### Fixed in v2.4.1\r\n\r\n- [#6427](https://github.com/nautobot/nautobot/issues/6427) - Fixed a bug which allowed several wireless interface types to accept cables.\r\n- [#6489](https://github.com/nautobot/nautobot/issues/6489) - Fixed partial-match filters (such as `__ic` and `__isw`) on fields that have restricted choices (`Prefix.type`, `Interface.type`, etc.) so that partial values are no longer rejected.\r\n- [#6763](https://github.com/nautobot/nautobot/issues/6763) - Fixed the issue where the Wireless Network detail view fails to render when any record in the Controller Managed Device Groups table is missing a VLAN.\r\n- [#6770](https://github.com/nautobot/nautobot/issues/6770) - Fixed breakage of JobButton functionality.\r\n- [#6771](https://github.com/nautobot/nautobot/issues/6771) - Reverted breaking changes to various generic View base class attributes.\r\n- [#6773](https://github.com/nautobot/nautobot/issues/6773) - Fixed an exception when trying to render a Job class to a form when no corresponding Job database record exists.\r\n- [#6776](https://github.com/nautobot/nautobot/issues/6776) - Fixed `FilterTestCase.generic_filter_tests` to again be optional as intended.\r\n- [#6779](https://github.com/nautobot/nautobot/issues/6779) - Fixed Object Bulk Delete and Object Bulk Edit functionalities.\r\n- [#6783](https://github.com/nautobot/nautobot/issues/6783) - Fixed `NautobotDataBaseScheduler` unable to run Scheduled Jobs without job queues assigned.\r\n- [#6786](https://github.com/nautobot/nautobot/issues/6786) - Fixed incorrect marking of `capabilities` field as required on Controller and ControllerManagedDeviceGroup REST APIs.\r\n- [#6792](https://github.com/nautobot/nautobot/issues/6792) - Fixed `natural_key_field_lookups` for proxy models.\r\n\r\n### Housekeeping in v2.4.1\r\n\r\n- [#6768](https://github.com/nautobot/nautobot/issues/6768) - Fixed link to changelog fragment documentation.\r\n- [#6794](https://github.com/nautobot/nautobot/issues/6794) - Fixed Device factory to ensure that it only selects SoftwareImageFiles that are permitted for a given Device.\r\n\r\n## Contributor\r\n* @HanlinMiao \r\n* @nrnvgh\r\n* @mateusz-lachowski-codilime \r\n* @icovada \r\n* @jdrew82 \r\n* @timizuoebideri1 \r\n* @bryanculver \r\n* @glennmatthews \r\n* @LochieP \r\n\r\n## New Contributors\r\n* @icovada made their first contribution in https://github.com/nautobot/nautobot/pull/6769\r\n* @LochieP made their first contribution in https://github.com/nautobot/nautobot/pull/6791\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.4.0...v2.4.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6802",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/194143277",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/194143277/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/194143277/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.0",
        "id": 194143277,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LkmQt",
        "tag_name": "v2.4.0",
        "target_commitish": "main",
        "name": "v2.4.0 - 2025-01-10",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-01-10T15:36:42Z",
        "updated_at": "2025-01-10T16:24:16Z",
        "published_at": "2025-01-10T15:48:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/219451971",
                "id": 219451971,
                "node_id": "RA_kwDOFEucDc4NFJJD",
                "name": "nautobot-2.4.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 41870284,
                "digest": null,
                "download_count": 7,
                "created_at": "2025-01-10T16:24:15Z",
                "updated_at": "2025-01-10T16:24:16Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.0/nautobot-2.4.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/219451968",
                "id": 219451968,
                "node_id": "RA_kwDOFEucDc4NFJJA",
                "name": "nautobot-2.4.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 40704701,
                "digest": null,
                "download_count": 6,
                "created_at": "2025-01-10T16:24:13Z",
                "updated_at": "2025-01-10T16:24:14Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.0/nautobot-2.4.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.0",
        "body": "This document describes all new features and changes in Nautobot 2.4.\r\n\r\n## Upgrade Actions\r\n\r\n### Administrators\r\n\r\n- Nautobot 2.4 [drops support for Python 3.8](#removed-python-38-support), so any existing Nautobot deployment using Python 3.8 will need upgrade to a newer Python version **before** upgrading to Nautobot v2.4 or later.\r\n- Administrators should familiarize themselves with the new [Event Publication Framework](#event-publication-framework) and the possibilities it enables for improved monitoring of Nautobot operations and integration with distributed automation platforms.\r\n- Administrators of Kubernetes-based Nautobot deployments should familiarize themselves with the new [capabilities](#kubernetes-job-execution-and-job-queue-data-model-experimental) that Nautobot v2.4 provides for Job execution in such environments and may wish to update their Nautobot configuration to take advantage of these capabilities. Please note that this feature set is considered Experimental in v2.4.0 and is subject to change in future releases.\r\n- Nautobot 2.4 includes an About page which is capable of displaying the status of Network to Code support contracts, dictated by the [`NTC_SUPPORT_CONTRACT_EXPIRATION_DATE`](../user-guide/administration/configuration/settings.md#ntc_support_contract_expiration_date) configuration setting.\r\n\r\n### Job Authors & App Developers\r\n\r\n- App developers should begin to adopt the [UI Component Framework](#ui-component-framework) introduced in Nautobot v2.4, as this will reduce the amount of boilerplate HTML/CSS content that they need to develop and maintain, and will help insulate Apps from future CSS and layout design changes planned for Nautobot v3.\r\n- Additionally, App developers should familiarize themselves with the new [Event Publication Framework](#event-publication-framework) and the possibilities it enables for Apps to publish their own relevant events to configured message brokers.\r\n- As a side benefit of adding [REST API `exclude_m2m` support](#rest-api-exclude_m2m-support), the Nautobot REST API `ViewSet` classes now attempt to intelligently apply `select_related()` and/or `prefetch_related()` optimizations to the `queryset` associated to a given REST API viewset. Apps defining their own REST API viewsets (and requiring Nautobot v2.4.0 or later) can typically remove most explicit calls to `select_related()` and `prefetch_related()`; furthermore, in order to benefit most from the `exclude_m2m=true` query parameter, apps in Nautobot v2.4.0 and later **should not** explicitly `prefetch_related()` many-to-many related fields any longer. (Explicit calls to `select_related()` and `prefetch_related()` may still be necessary and appropriate if your API serializer needs to perform nested lookups, as the automatic optimization here currently only understands directly related object lookups.)\r\n- Job authors should be aware of the ability to log [`success`](#job-success-log-level) messages in Nautobot v2.4.0 and later and should adopt this log level as appropriate.\r\n- Job authors should be aware of the introduction of [Job Queues](#kubernetes-job-execution-and-job-queue-data-model-experimental) as a general-purpose replacement for the Celery-specific `Job.task_queues` attribute, and if a Job specifies its preferred `task_queues`, should verify that the queue selected as its `default_job_queue` after the Nautobot upgrade is correct.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Virtual Device Context Data Models\r\n\r\nNautobot 2.4 adds a [`VirtualDeviceContext`](../user-guide/core-data-model/dcim/virtualdevicecontext.md) data model to support modeling of logical partitions of physical network devices, such as Cisco Nexus Virtual Device Contexts, Juniper Logical Systems, Arista Multi-instance EOS, and so forth. Device Interfaces can be associated to Virtual Device Contexts via the new `InterfaceVDCAssignment` model as well.\r\n\r\n#### Wireless Data Models\r\n\r\nNautobot 2.4 adds the data models [`WirelessNetwork`](../user-guide/core-data-model/wireless/wirelessnetwork.md), [`RadioProfile`](../user-guide/core-data-model/wireless/radioprofile.md), and [`SupportedDataRate`](../user-guide/core-data-model/wireless/supporteddatarate.md), enabling Nautobot to model campus wireless networks. In support of this functionality, the [`Controller`](../user-guide/core-data-model/dcim/controller.md) and [`ControllerManagedDeviceGroup`](../user-guide/core-data-model/dcim/controllermanageddevicegroup.md) models have been enhanced with additional capabilities as well.\r\n\r\nRefer to the [Wireless](../user-guide/core-data-model/wireless/index.md) documentation for more details.\r\n\r\n#### Apps Marketplace Page and Installed Apps Page Tile View\r\n\r\nNautobot v2.4 introduces the Apps Marketplace, containing information about available Nautobot Apps. In addition to that, the Installed Apps page has added a tile-view option, similar to the Apps Marketplace.\r\n\r\n#### Event Publication Framework\r\n\r\nNautobot now includes a general-purpose, extensible [event publication framework](../user-guide/platform-functionality/events.md) for publication of event notifications to other systems such as Redis publish/subscribe, Kafka, syslog, and others. An abstract `EventBroker` API can be implemented and extended with system-specific functionality to enable publication of Nautobot events to any desired message broker.\r\n\r\nAs of v2.4.0, Nautobot publishes events with the following topics:\r\n\r\nData model manipulation:\r\n- `nautobot.create.<app>.<model>`\r\n- `nautobot.update.<app>.<model>`\r\n- `nautobot.delete.<app>.<model>`\r\n\r\nUser interaction:\r\n- `nautobot.users.user.login`\r\n- `nautobot.users.user.logout`\r\n- `nautobot.users.user.change_password`\r\n- `nautobot.admin.user.change_password`\r\n\r\nJobs:\r\n- `nautobot.jobs.job.started`\r\n- `nautobot.jobs.job.completed`\r\n- `nautobot.jobs.approval.approved`\r\n- `nautobot.jobs.approval.denied`\r\n\r\nThe payload of each topic is a data representaton of the corresponding event, such as the object created, or the Job that started execution. Events are published to configured event brokers, and may be filtered.\r\n\r\nNautobot Apps can also make use of this framework to publish additional event topics, specific to the App's functionality as desired.\r\n\r\n#### Jinja2 Template Rendering Tool\r\n\r\nNautobot v2.4 adds a new tool to render Jinja2 templates directly from the UI. Users may supply their own template body and context data to be rendered, with access to to Nautobot's built-in Jinja2 tags and filters. Additionally, a new REST API endpoint `/api/core/render-jinja-template/` has been added to achieve the same functionaly. This can be used by users and Apps such as [Nautobot Golden Config](https://docs.nautobot.com/projects/golden-config/en/latest/) to assist with the development and validation of Jinja2 template content. This functionality will be extended in the future to more easily access context aware data in Nautobot such as Devices and Config Contexts.\r\n\r\n#### Job `success` Log Level\r\n\r\nJobs can now log `success` messages as a new logging level which will be appropriately labeled and colorized in Job Result views.\r\n\r\n```python\r\nself.logger.success(\"All data is valid.\")\r\n```\r\n\r\n#### Kubernetes Job Execution and Job Queue Data Model (Experimental)\r\n\r\n*Please note that this functionality is considered Experimental in the v2.4.0 release and is subject to change in the future.*\r\n\r\nWhen running in a Kubernetes (k8s) deployment, such as with Nautobot's [Helm chart](https://docs.nautobot.com/projects/helm-charts/en/stable/), Nautobot now supports an alternative method of running Nautobot Jobs - instead of (or in addition to) running one or more Celery Workers as long-lived persistent pods, Nautobot can dispatch Nautobot Jobs to be executed as short-lived [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) pods.\r\n\r\nIn support of this functionality, Nautobot now supports the definition of [`JobQueue` records](../user-guide/platform-functionality/jobs/jobqueue.md), which represent either a Celery task queue **or** a Kubernetes Job queue. Nautobot Jobs can be associated to queues of either or both types, and the Job Queue selected when submitting a Job will dictate whether it is executed via Celery or via Kubernetes.\r\n\r\nNautobot Jobs support the same feature sets, regardless if they are executed on Celery Job queues or Kubernetes Job queues.\r\n\r\nRefer to the [Jobs documentation](../user-guide/platform-functionality/jobs/index.md) for more details.\r\n\r\n#### Singleton Jobs\r\n\r\nJob authors can now set their jobs to only allow a single concurrent execution across all workers, preventing mistakes where, e.g., data synchronization jobs accidentally run twice and create multiple instances of the same data. This functionality and the corresponding setting are documented in [the section on developing Jobs](../development/jobs/index.md).\r\n\r\n#### Per-user Time Zone Support\r\n\r\nUsers can now configure their preferred display time zone via the User Preferences UI under their user profile and Nautobot will display dates and times in the configured time zone for each user.\r\n\r\n#### REST API `exclude_m2m` Support\r\n\r\nAdded REST API support for an `?exclude_m2m=true` query parameter. Specifying this parameter prevents the API from retrieving and serializing many-to-many relations on the requested object(s) (for example, the list of all Prefixes associated with a given VRF), which can in some cases greatly improve the performance of the API and reduce memory and network overhead substantially.\r\n\r\nA future Nautobot major release may change the REST API behavior to make `exclude_m2m=true` the default behavior.\r\n\r\nAdditionally, the `DynamicModelChoiceField` and related form fields have been enhanced to use `exclude_m2m=true` when querying the REST API to populate their options, which can in some cases significantly improve the responsiveness of these fields.\r\n\r\n#### UI Component Framework\r\n\r\nNautobot's new [UI Component Framework](../development/core/ui-component-framework.md) provides a set of Python APIs for defining parts of the Nautobot UI without needing, in many cases, to write custom HTML templates. In v2.4.0, the focus is primarily on the definition of object \"detail\" views as those were the most common cases where custom templates have been required in the past.\r\n\r\n[Adoption of this framework](../development/apps/migration/ui-component-framework/index.md) significantly reduces the amount of boilerplate needed to define an object detail view, drives increased self-consistency across views, and encourages code reuse. It also insulates Apps from the details of Nautobot's CSS and layout (Bootstrap 3 framework), smoothing the way for Nautobot to adopt UI changes in the future with minimal impact to compliant apps.\r\n\r\nApp [template extensions](../development/apps/api/ui-extensions/object-views.md)--which are used to inject App content into Nautobot Core views--offer new implementation patterns using the UI Component Framework and it is highly recomended that App developers take this opportunity to adopt, as old methods have been deprecated in some cases (see below).\r\n\r\nAs of Nautobot 2.4.0, the following detail views have been migrated to use the UI Component Framework, and any app template extensions targeting these models should adopt:\r\n\r\n- Circuit\r\n- Cluster Type\r\n- Device (\"Add Components\" buttons only)\r\n- External Integration\r\n- Location Type\r\n- Provider\r\n- Route Target\r\n- Secret\r\n- Tenant\r\n- VRF\r\n\r\n### Deprecated\r\n\r\n#### `FilterTestCases.NameOnlyFilterTestCase` and `FilterTestCases.NameSlugFilterTestCase`\r\n\r\nThese two generic base test classes are deprecated. Apps should migrate to using `FilterTestCases.FilterTestCase` with an appropriately defined list of `generic_filter_tests` instead.\r\n\r\n#### Job `task_queues` and `ScheduledJob.queue`\r\n\r\nThe `Job.task_queues` field (a list of queue name strings) is deprecated in favor of the new `Job.job_queues` relationship to the [`JobQueue` model](../user-guide/platform-functionality/jobs/jobqueue.md). `task_queues` is still readable and settable for backward compatibility purposes but code using this attribute should migrate to using `job_queues` instead.\r\n\r\nSimilarly, `ScheduledJob.queue` is deprecated in favor of `ScheduledJob.job_queue`.\r\n\r\n#### `TemplateExtension.detail_tabs()`, `TemplateExtension.left_page()` and others\r\n\r\nWith the introduction of the UI Component Framework (described [above](#ui-component-framework)), new APIs are available for Apps to extend core Nautobot views with additional content using this framework. A number of new APIs have been added to the `TemplateExtension` base class in support of this functionality, and several existing `TemplateExtension` APIs have been deprecated in favor of these new APIs. Refer to the [App development documentation](../development/apps/api/ui-extensions/object-views.md) for details.\r\n\r\n### Dependencies\r\n\r\n#### Removed Python 3.8 Support\r\n\r\nAs Python 3.8 has reached end-of-life, Nautobot 2.4 requires a minimum of Python 3.9. Note that existing installs using Python 3.8 will need to upgrade their Python version prior to initiating the Nautobot v2.4 upgrade.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @HanlinMiao \r\n* @timizuoebideri1 \r\n* @mzbroch\r\n* @snaselj \r\n* @mateusz-lachowski-codilime\r\n* @pszulczewsk\r\n* @smk4664\r\n* @gsnider2195\r\n* @norbert-mieczkowski-codilime\r\n* @Kircheneer\r\n* @lampwins\r\n* @nrnvgh\r\n* @cdtomkins\r\n\r\n## New Contributors\r\n* @cdtomkins made their first contribution in https://github.com/nautobot/nautobot/pull/6733\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.16...v2.4.0",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6755",
        "mentions_count": 13
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/193389410",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/193389410/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/193389410/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.16",
        "id": 193389410,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LhuNi",
        "tag_name": "v2.3.16",
        "target_commitish": "main",
        "name": "v2.3.16 - 2025-01-06",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-01-06T21:59:56Z",
        "updated_at": "2025-01-06T22:32:57Z",
        "published_at": "2025-01-06T22:03:07Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/218471692",
                "id": 218471692,
                "node_id": "RA_kwDOFEucDc4NBZ0M",
                "name": "nautobot-2.3.16-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35734785,
                "digest": null,
                "download_count": 3,
                "created_at": "2025-01-06T22:32:56Z",
                "updated_at": "2025-01-06T22:32:57Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.16/nautobot-2.3.16-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/218471690",
                "id": 218471690,
                "node_id": "RA_kwDOFEucDc4NBZ0K",
                "name": "nautobot-2.3.16.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34647978,
                "digest": null,
                "download_count": 6,
                "created_at": "2025-01-06T22:32:54Z",
                "updated_at": "2025-01-06T22:32:55Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.16/nautobot-2.3.16.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.16",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.16",
        "body": "## What's Changed\r\n### Fixed\r\n\r\n- [#5805](https://github.com/nautobot/nautobot/issues/5805) - Enabled extended filter lookup expressions of the `serial` filter for Device, Rack, and InventoryItem.\r\n- [#5831](https://github.com/nautobot/nautobot/issues/5831) - Fixed an issue where the error message for missing custom job templates incorrectly reported \"extras/job.html\" instead of the actual missing template name.\r\n- [#5882](https://github.com/nautobot/nautobot/issues/5882) - Fixed `PowerOutletTemplateTable` to use `power_port_template` instead of the incorrect field `power_port`.\r\n- [#5882](https://github.com/nautobot/nautobot/issues/5882) - Fixed `FrontPortTemplateTable` to use `rear_port_template` instead of the incorrect field `rear_port`.\r\n- [#6527](https://github.com/nautobot/nautobot/issues/6527) - Disabled (unsupported) sorting by the `Device` column in Console Connections, Power Connections, and Interface Connections list views.\r\n- [#6669](https://github.com/nautobot/nautobot/issues/6669) - Removed the need for `available-prefixes`, `available-ips`, and `available-vlans` API endpoints to run validation multiple times.\r\n- [#6676](https://github.com/nautobot/nautobot/issues/6676) - Resolved issue with IPAddressQuerySet get_or_create method signature not matching the base method signature.\r\n\r\n### Housekeeping\r\n\r\n- [#6714](https://github.com/nautobot/nautobot/issues/6714) - Enabled and addressed pylint checkers `arguments-differ`, `arguments-renamed`, `exec-used`, `hard-coded-auth-user`, `super-init-not-called`.\r\n- [#6722](https://github.com/nautobot/nautobot/issues/6722) - Enabled pylint `not-callable` and `no-member` checkers and addressed issues reported thereby.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @pszulczewski\r\n* @glennmatthews \r\n* @timizuoebideri1 \r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.15...v2.3.16",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6730",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/193389009",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/193389009/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/193389009/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.30",
        "id": 193389009,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LhuHR",
        "tag_name": "v1.6.30",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.30 - 2025-01-06",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-01-06T21:57:02Z",
        "updated_at": "2025-01-06T22:56:26Z",
        "published_at": "2025-01-06T21:59:30Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/218476396",
                "id": 218476396,
                "node_id": "RA_kwDOFEucDc4NBa9s",
                "name": "nautobot-1.6.30-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31006322,
                "digest": null,
                "download_count": 2,
                "created_at": "2025-01-06T22:56:25Z",
                "updated_at": "2025-01-06T22:56:26Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.30/nautobot-1.6.30-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/218476382",
                "id": 218476382,
                "node_id": "RA_kwDOFEucDc4NBa9e",
                "name": "nautobot-1.6.30.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30313003,
                "digest": null,
                "download_count": 2,
                "created_at": "2025-01-06T22:56:23Z",
                "updated_at": "2025-01-06T22:56:25Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.30/nautobot-1.6.30.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.30",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.30",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#6695](https://github.com/nautobot/nautobot/issues/6695) - Updated dependency `Jinja2` to `~3.1.5` to address `CVE-2024-56201` and `CVE-2024-56326`.\r\n\r\n### Housekeeping\r\n\r\n- [#6659](https://github.com/nautobot/nautobot/issues/6659) - Enhanced development environment and associated `invoke` tasks to be Nautobot major/minor version aware, such that a different Docker compose `project-name` (and different local Docker image label) will be used for containers in a `develop`-based branch versus a `next`-based branch versus an `ltm`-based branch.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @HanlinMiao \r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.29...v1.6.30",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6729",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/192943133",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/192943133/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/192943133/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.15",
        "id": 192943133,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LgBQd",
        "tag_name": "v2.3.15",
        "target_commitish": "main",
        "name": "v2.3.15 - 2025-01-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2025-01-02T14:52:18Z",
        "updated_at": "2025-01-02T15:29:05Z",
        "published_at": "2025-01-02T14:59:04Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/217419627",
                "id": 217419627,
                "node_id": "RA_kwDOFEucDc4M9Y9r",
                "name": "nautobot-2.3.15-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35730846,
                "digest": null,
                "download_count": 4,
                "created_at": "2025-01-02T15:29:03Z",
                "updated_at": "2025-01-02T15:29:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.15/nautobot-2.3.15-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/217419619",
                "id": 217419619,
                "node_id": "RA_kwDOFEucDc4M9Y9j",
                "name": "nautobot-2.3.15.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34643685,
                "digest": null,
                "download_count": 4,
                "created_at": "2025-01-02T15:29:02Z",
                "updated_at": "2025-01-02T15:29:03Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.15/nautobot-2.3.15.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.15",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.15",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#6695](https://github.com/nautobot/nautobot/issues/6695) - Updated dependency `Jinja2` to `~3.1.5` to address `CVE-2024-56201` and `CVE-2024-56326`.\r\n\r\n### Added\r\n\r\n- [#6410](https://github.com/nautobot/nautobot/issues/6410) - Added `settings.PUBLISH_ROBOTS_TXT` configuration option, defaulting to `True`.\r\n\r\n### Changed\r\n\r\n- [#6583](https://github.com/nautobot/nautobot/issues/6583) - Changed `available-vlans` API endpoint to additionally require `ipam.view_vlan` permission to view available VLANs under VLAN Group.\r\n\r\n### Fixed\r\n\r\n- [#5545](https://github.com/nautobot/nautobot/issues/5545) - Fixed an issue in Dynamic Group Edit View where saving a valid choice in a Select-type CustomField triggered an error.\r\n- [#6583](https://github.com/nautobot/nautobot/issues/6583) - Fixed `available-vlans`, `available-ips`, `available-prefixes` API endpoints to check object-level constrained permissions.\r\n- [#6702](https://github.com/nautobot/nautobot/issues/6702) - Resolved issue with TagsBulkEditFormMixin missing self.model.\r\n\r\n### Dependencies\r\n\r\n- [#6689](https://github.com/nautobot/nautobot/issues/6689) - Updated `nh3` dependency to `~0.2.20`.\r\n- [#6689](https://github.com/nautobot/nautobot/issues/6689) - Updated `django-tables2` dependency to `~2.7.4` in Python 3.9 and later, and pinned it to `==2.7.0` under Python 3.8.\r\n\r\n### Housekeeping\r\n\r\n- [#6688](https://github.com/nautobot/nautobot/issues/6688) - Cleaned-up documentation, misc fixes for VSCode DevContainer workflow.\r\n- [#6689](https://github.com/nautobot/nautobot/issues/6689) - Updated documentation dependency `mkdocs-material` to `~9.5.49`.\r\n- [#6693](https://github.com/nautobot/nautobot/issues/6693) - Changed `poetry install` in prerelease and release workflows from parallel mode to serial mode.\r\n- [#6706](https://github.com/nautobot/nautobot/issues/6706) - Removed unnecessary `user-data.json` integration-test fixture file.\r\n\r\n## Contributors\r\n* @msheiny\r\n* @bryanculver\r\n* @timizuoebideri1\r\n* @glennmatthews\r\n* @smk4664 \r\n* @HanlinMiao \r\n* @mateusz-lachowski-codilime \r\n\r\n## New Contributors\r\n* @msheiny made their first contribution in https://github.com/nautobot/nautobot/pull/6688\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.15-beta.1...v2.3.15",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6710",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/191923407",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/191923407/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/191923407/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.15-beta.1",
        "id": 191923407,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LcITP",
        "tag_name": "v2.3.15-beta.1",
        "target_commitish": "develop",
        "name": "v2.3.15-beta.1 - 2024-12-20",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2024-12-20T20:18:41Z",
        "updated_at": "2024-12-20T21:25:32Z",
        "published_at": "2024-12-20T20:30:08Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/214803791",
                "id": 214803791,
                "node_id": "RA_kwDOFEucDc4MzaVP",
                "name": "nautobot-2.3.15b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35728972,
                "digest": null,
                "download_count": 2,
                "created_at": "2024-12-20T21:25:31Z",
                "updated_at": "2024-12-20T21:25:32Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.15-beta.1/nautobot-2.3.15b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/214803788",
                "id": 214803788,
                "node_id": "RA_kwDOFEucDc4MzaVM",
                "name": "nautobot-2.3.15b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34642589,
                "digest": null,
                "download_count": 2,
                "created_at": "2024-12-20T21:25:29Z",
                "updated_at": "2024-12-20T21:25:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.15-beta.1/nautobot-2.3.15b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.15-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.15-beta.1",
        "body": "## What's Changed\r\n### Changed\r\n\r\n- [#6583](https://github.com/nautobot/nautobot/issues/6583) - `available-vlans` API endpoint now require `ipam.view_vlan` permission to view available VLANs under VLAN Group.\r\n\r\n### Fixed\r\n\r\n- [#6583](https://github.com/nautobot/nautobot/issues/6583) - Fixed `available-vlans`, `available-ips`, `available-prefixes` API endpoints to check object-level constrained permissions.\r\n\r\n### Housekeeping\r\n\r\n- [#6583](https://github.com/nautobot/nautobot/issues/6583) - Added `NautobotTestCaseMixin.add_permission` method for easier creating a constraint permissions.\r\n- [#6693](https://github.com/nautobot/nautobot/issues/6693) - Changed `poetry install` in prerelease and release workflows from parallel mode to serial mode.\r\n## Contributors\r\n* @HanlinMiao \r\n* @mateusz-lachowski-codilime \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.14...v2.3.15-beta.1",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/191755087",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/191755087/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/191755087/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.14",
        "id": 191755087,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LbfNP",
        "tag_name": "v2.3.14",
        "target_commitish": "main",
        "name": "v2.3.14 - 2024-12-19",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-12-19T21:48:28Z",
        "updated_at": "2024-12-20T16:24:26Z",
        "published_at": "2024-12-19T21:51:24Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/214745117",
                "id": 214745117,
                "node_id": "RA_kwDOFEucDc4MzMAd",
                "name": "nautobot-2.3.14-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35727458,
                "digest": null,
                "download_count": 2,
                "created_at": "2024-12-20T16:24:25Z",
                "updated_at": "2024-12-20T16:24:26Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.14/nautobot-2.3.14-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/214745107",
                "id": 214745107,
                "node_id": "RA_kwDOFEucDc4MzMAT",
                "name": "nautobot-2.3.14.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34640365,
                "digest": null,
                "download_count": 6,
                "created_at": "2024-12-20T16:24:23Z",
                "updated_at": "2024-12-20T16:24:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.14/nautobot-2.3.14.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.14",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.14",
        "body": "## What's Changed\r\n### Added\r\n\r\n- [#6548](https://github.com/nautobot/nautobot/issues/6548) - Added logic to set the `parent` in the `clean()` method of the Prefix model, ensuring correct assignment during validation.\r\n\r\n### Changed\r\n\r\n- [#6518](https://github.com/nautobot/nautobot/issues/6518) - Added VRFs column to Prefixes and Child Prefixes tables.\r\n- [#6531](https://github.com/nautobot/nautobot/issues/6531) - Restrict the `id` filter field to use to only the `__n` (negation) lookup filter.\r\n- [#6548](https://github.com/nautobot/nautobot/issues/6548) - Changed the save method of the `Prefix` model to reparent subnets and IPs only when the `network`, `namespace`, or `prefix_length` fields are updated.\r\n\r\n### Fixed\r\n\r\n- [#4056](https://github.com/nautobot/nautobot/issues/4056) - Fixed filter of add_tags and remove_tags of bulkedit based on content type\r\n- [#6204](https://github.com/nautobot/nautobot/issues/6204) - Fixed out-of-memory errors when `LogsCleanup` system job resulted in cascade deletion of many related objects (such as `JobLogEntry` or `nautobot_ssot.SyncLogEntry` records).\r\n- [#6470](https://github.com/nautobot/nautobot/issues/6470) - Fixed untagged VLAN dropdown options mismatch in InterfaceEditForm and in InterfaceBulkEditForm.\r\n- [#6496](https://github.com/nautobot/nautobot/issues/6496) - Fixed `/ipam/prefixes/<UUID>/available-ips/` to correctly consider IPs under child Prefixes.\r\n- [#6496](https://github.com/nautobot/nautobot/issues/6496) - Fixed `Prefix.get_first_available_ip()` method to not return IP taken by child Prefixes.\r\n- [#6664](https://github.com/nautobot/nautobot/issues/6664) - Fixed `circuit_type` column not included correctly in CircuitTable default columns.\r\n- [#6678](https://github.com/nautobot/nautobot/issues/6678) - Fixed incorrect copy button behavior on global search page.\r\n\r\n### Documentation\r\n\r\n- [#6590](https://github.com/nautobot/nautobot/issues/6590) - Added an `ExampleEverythingJob` to the Example App and updated Job developer documentation to reference it as an example.\r\n\r\n### Housekeeping\r\n\r\n- [#6657](https://github.com/nautobot/nautobot/issues/6657) - Updated documentation dependency `mkdocs-material` to `~9.5.48`.\r\n- [#6659](https://github.com/nautobot/nautobot/issues/6659) - Enhanced development environment and associated `invoke` tasks to be Nautobot major/minor version aware, such that a different Docker compose `project-name` (and different local Docker image label) will be used for containers in a `develop`-based branch versus a `next`-based branch.\r\n- [#6679](https://github.com/nautobot/nautobot/issues/6679) - Added `logs` task to `tasks.py` to view the logs of a docker compose service.\r\n\r\n## Contributors\r\n* @mateusz-lachowski-codilime \r\n* @HanlinMiao \r\n* @timizuoebideri1 \r\n* @glennmatthews \r\n* @pl0xym0r \r\n* @joewesch \r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.13...v2.3.14",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6686",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/190028788",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/190028788/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/190028788/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.13",
        "id": 190028788,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LU5v0",
        "tag_name": "v2.3.13",
        "target_commitish": "main",
        "name": "v2.3.13 - 2024-12-10",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-12-10T18:16:24Z",
        "updated_at": "2024-12-10T18:49:05Z",
        "published_at": "2024-12-10T18:19:46Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/212438826",
                "id": 212438826,
                "node_id": "RA_kwDOFEucDc4MqY8q",
                "name": "nautobot-2.3.13-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35721454,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-12-10T18:49:04Z",
                "updated_at": "2024-12-10T18:49:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.13/nautobot-2.3.13-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/212438823",
                "id": 212438823,
                "node_id": "RA_kwDOFEucDc4MqY8n",
                "name": "nautobot-2.3.13.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34637836,
                "digest": null,
                "download_count": 5,
                "created_at": "2024-12-10T18:49:03Z",
                "updated_at": "2024-12-10T18:49:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.13/nautobot-2.3.13.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.13",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.13",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#6615](https://github.com/nautobot/nautobot/issues/6615) - Updated `Django` to `~4.2.17` due to `CVE-2024-53907` and `CVE-2024-53908`.\r\n\r\n### Added\r\n\r\n- [#4817](https://github.com/nautobot/nautobot/issues/4817) - Added `Cluster` field on DeviceBulkEditForm.\r\n- [#5333](https://github.com/nautobot/nautobot/issues/5333) - Added `Comments` field on DeviceBulkEditForm.\r\n- [#6498](https://github.com/nautobot/nautobot/issues/6498) - Added support for an additional `suffix` when utilizing TableExtension to support tables like IPAddressDetailTable.\r\n- [#6586](https://github.com/nautobot/nautobot/issues/6586) - Added description and weight on RoleBulkEditForm.\r\n- [#6605](https://github.com/nautobot/nautobot/issues/6605) - Added `BaseTable` support for a `data_transform_callback` function that can be used to modify the table data after performing automatic QuerySet optimizations. (Several IPAM tables now use this functionality).\r\n- [#6605](https://github.com/nautobot/nautobot/issues/6605) - Enhanced `LinkedCountColumn` to support a `distinct` parameter to handle cases where counts may otherwise be incorrect.\r\n- [#6605](https://github.com/nautobot/nautobot/issues/6605) - Added `ip_addresses` and `has_ip_addresses` filter support to Device, Interface, and VirtualMachine FilterSets.\r\n- [#6613](https://github.com/nautobot/nautobot/issues/6613) - Enhanced Prefix detail view \"Child Prefixes\" table to render associated Locations more intelligently.\r\n- [#6614](https://github.com/nautobot/nautobot/issues/6614) - Enhanced IP Address tables to show the name of the associated Interface or VM Interface if only a single such association is present for a given IP Address.\r\n\r\n### Changed\r\n\r\n- [#6166](https://github.com/nautobot/nautobot/issues/6166) - Enhanced the REST API to generally make it possible to create objects with known ids on request.\r\n\r\n### Fixed\r\n\r\n- [#3124](https://github.com/nautobot/nautobot/issues/3124) - Fixed inability of ImageAttachment and DeviceType API endpoints to accept `multipart/form-data` file uploads.\r\n- [#5166](https://github.com/nautobot/nautobot/issues/5166) - Fixed a `ProgrammingError` when applying permissions containing network-address-based constraints.\r\n- [#6466](https://github.com/nautobot/nautobot/issues/6466) - Fixed `table_config` field not showing up correctly in the Saved View modal.\r\n- [#6498](https://github.com/nautobot/nautobot/issues/6498) - Fixed error when using TableExtension when the table is missing Meta.default_columns.\r\n- [#6605](https://github.com/nautobot/nautobot/issues/6605) - Improved rendering performance of the IPAddress list view in cases where the `Interfaces`, `Devices`, `VM Interfaces`, `Virtual Machines`, and/or `Assigned` columns are not shown.\r\n- [#6605](https://github.com/nautobot/nautobot/issues/6605) - Improved performance of `TreeModel.display` calculation by making better use of the cache.\r\n- [#6609](https://github.com/nautobot/nautobot/issues/6609) - Fixed unnecessary call to the database when logging from a Job with the parameter `extra={\"skip_db_logging\": True}`.\r\n- [#6624](https://github.com/nautobot/nautobot/issues/6624) - Fixed issue with `group_sync.py` where it was accessing the settings using environment variable name vs the actual settings name.\r\n- [#6624](https://github.com/nautobot/nautobot/issues/6624) - Fixed the `SOCIAL_AUTH_PIPELINE` settings to include the entire path of the `group_sync` function.\r\n\r\n### Dependencies\r\n\r\n- [#6615](https://github.com/nautobot/nautobot/issues/6615) - Updated `nh3` to `~0.2.19`.\r\n\r\n### Documentation\r\n\r\n- [#6622](https://github.com/nautobot/nautobot/issues/6622) - Fixed AzureAD documentation for custom_module logging example.\r\n- [#6636](https://github.com/nautobot/nautobot/issues/6636) - Fixed group_sync path in the SSO documentation.\r\n\r\n### Housekeeping\r\n\r\n- [#6615](https://github.com/nautobot/nautobot/issues/6615) - Updated documentation dependency `mkdocs-material` to `~9.5.47`.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @smk4664 \r\n* @austind \r\n* @HanlinMiao \r\n* @adilbenameur \r\n* @pl0xym0r \r\n* @jdrew82 \r\n* @sabinayakc \r\n* @cardoe \r\n\r\n## New Contributors\r\n* @adilbenameur made their first contribution in https://github.com/nautobot/nautobot/pull/6610\r\n* @pl0xym0r made their first contribution in https://github.com/nautobot/nautobot/pull/6606\r\n* @sabinayakc made their first contribution in https://github.com/nautobot/nautobot/pull/6624\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.12...v2.3.13",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6642",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/190028788/reactions",
            "total_count": 2,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 1,
            "confused": 0,
            "heart": 0,
            "rocket": 1,
            "eyes": 0
        },
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/190013396",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/190013396/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/190013396/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.29",
        "id": 190013396,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LU1_U",
        "tag_name": "v1.6.29",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.29 - 2024-12-10",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-12-10T17:01:41Z",
        "updated_at": "2024-12-10T17:54:41Z",
        "published_at": "2024-12-10T17:04:30Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/212429132",
                "id": 212429132,
                "node_id": "RA_kwDOFEucDc4MqWlM",
                "name": "nautobot-1.6.29-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31004782,
                "digest": null,
                "download_count": 5,
                "created_at": "2024-12-10T17:54:41Z",
                "updated_at": "2024-12-10T17:54:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.29/nautobot-1.6.29-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/212429128",
                "id": 212429128,
                "node_id": "RA_kwDOFEucDc4MqWlI",
                "name": "nautobot-1.6.29.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30311780,
                "digest": null,
                "download_count": 5,
                "created_at": "2024-12-10T17:54:39Z",
                "updated_at": "2024-12-10T17:54:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.29/nautobot-1.6.29.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.29",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.29",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5911](https://github.com/nautobot/nautobot/issues/5911) - Updated `zipp` to `3.19.2` to address `CVE-2024-5569`. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#6625](https://github.com/nautobot/nautobot/issues/6625) - Patched `set_values()` method of Query class from django.db.models.sql.query to address `CVE-2024-42005`.\r\n\r\n### Fixed\r\n\r\n- [#5924](https://github.com/nautobot/nautobot/issues/5924) - Fixed the redirect URL for the Device Bay Populate/Depopulate view to take the user back to the Device Bays tab on the Device page.\r\n- [#6502](https://github.com/nautobot/nautobot/issues/6502) - Fixed a bug in the Dockerfile that prevented `docker build` from working on some platforms.\r\n- [#6502](https://github.com/nautobot/nautobot/issues/6502) - Fixed Docker builds failing in Gitlab CI.\r\n\r\n## Contributors\r\n* @joewesch \r\n* @gsnider2195 \r\n* @HanlinMiao \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.28...v1.6.29",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6640",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/187413348",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/187413348/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/187413348/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.4.0-beta.1",
        "id": 187413348,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LK7Nk",
        "tag_name": "v2.4.0-beta.1",
        "target_commitish": "next",
        "name": "v2.4.0-beta.1 - 2024-11-25",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2024-11-25T21:34:37Z",
        "updated_at": "2024-11-25T22:17:29Z",
        "published_at": "2024-11-25T21:41:55Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/209028305",
                "id": 209028305,
                "node_id": "RA_kwDOFEucDc4MdYTR",
                "name": "nautobot-2.4.0b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 36749975,
                "digest": null,
                "download_count": 6,
                "created_at": "2024-11-25T22:17:28Z",
                "updated_at": "2024-11-25T22:17:29Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.0-beta.1/nautobot-2.4.0b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/209028300",
                "id": 209028300,
                "node_id": "RA_kwDOFEucDc4MdYTM",
                "name": "nautobot-2.4.0b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35604288,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-11-25T22:17:27Z",
                "updated_at": "2024-11-25T22:17:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.4.0-beta.1/nautobot-2.4.0b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.4.0-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.4.0-beta.1",
        "body": "## What's New\r\n\r\n- Apps Marketplace Page and Installed Apps Page Tile View\r\n- Event Publication Framework\r\n- Jinja2 Template Rendering REST API\r\n- Job `success` Log Level\r\n- Kubernetes Job Execution and Job Queue Data Model\r\n- Per-User Time Zone Support\r\n- UI Component Framework\r\n- Virtual Device Context Data Models\r\n- Wireless Data Models\r\n\r\n[Full release notes](https://docs.nautobot.com/projects/core/en/next/release-notes/version-2.4/)\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @timizuoebideri1\r\n* @mzbroch\r\n* @snaselj\r\n* @renovate\r\n* @mateusz-lachowski-codilime\r\n* @pszulczewski\r\n* @smk4664\r\n* @gsnider2195\r\n\r\n## New Contributors\r\n* @mateusz-lachowski-codilime made their first contribution in https://github.com/nautobot/nautobot/pull/6357\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.12...v2.4.0-beta.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6576",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/187353543",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/187353543/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/187353543/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.12",
        "id": 187353543,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LKsnH",
        "tag_name": "v2.3.12",
        "target_commitish": "main",
        "name": "v2.3.12 - 2024-11-25",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-11-25T17:25:33Z",
        "updated_at": "2024-11-25T17:56:46Z",
        "published_at": "2024-11-25T17:27:30Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/208986304",
                "id": 208986304,
                "node_id": "RA_kwDOFEucDc4MdODA",
                "name": "nautobot-2.3.12-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35711789,
                "digest": null,
                "download_count": 6,
                "created_at": "2024-11-25T17:56:45Z",
                "updated_at": "2024-11-25T17:56:46Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.12/nautobot-2.3.12-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/208986299",
                "id": 208986299,
                "node_id": "RA_kwDOFEucDc4MdOC7",
                "name": "nautobot-2.3.12.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34633957,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-11-25T17:56:43Z",
                "updated_at": "2024-11-25T17:56:44Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.12/nautobot-2.3.12.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.12",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.12",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#6532](https://github.com/nautobot/nautobot/issues/6532) - Added a keyboard shortcut (\u2318+enter or ctrl+enter) to submit forms when typing in a textarea.\r\n- [#6543](https://github.com/nautobot/nautobot/issues/6543) - Defined a generic SSO group authentication module that can be shared by any OAuth2/OIDC backend.\r\n- [#6550](https://github.com/nautobot/nautobot/issues/6550) - Added OSFP-XD (800GE and 1600GE) and OSFP1600 interface types.\r\n\r\n### Fixed\r\n\r\n- [#6242](https://github.com/nautobot/nautobot/issues/6242) - Fixed \"copy\" button on Device tabbed views to now only copy the device name.\r\n- [#6478](https://github.com/nautobot/nautobot/issues/6478) - Fixed inconsistent rendering of the Role field.\r\n- [#6509](https://github.com/nautobot/nautobot/issues/6509) - Disallowed association of `ObjectMetadata` as metadata to other `ObjectMetadata` records.\r\n- [#6509](https://github.com/nautobot/nautobot/issues/6509) - Removed unused object-detail view for `ObjectMetadata` records.\r\n- [#6519](https://github.com/nautobot/nautobot/issues/6519) - Fixed `vrf` field options not loading in VMInterfaceBulkEditForm, VMInterfaceForm, and VMInterfaceCreateForm.\r\n- [#6519](https://github.com/nautobot/nautobot/issues/6519) - Added missing `VRF` entry in VMInterface detail view.\r\n- [#6533](https://github.com/nautobot/nautobot/issues/6533) - Fixed an issue where the string representation of the Note model would throw an error if accessed before saving it to the database.\r\n- [#6547](https://github.com/nautobot/nautobot/issues/6547) - Fixed incorrect VRF filter specified on VRF column on Prefix Table.\r\n- [#6564](https://github.com/nautobot/nautobot/issues/6564) - Fixed an `AttributeError` raised when an App overrides a NautobotUIViewSet view.\r\n\r\n### Dependencies\r\n\r\n- [#6459](https://github.com/nautobot/nautobot/issues/6459) - Updated `mysqlclient` dependency to `~2.2.6`.\r\n\r\n### Documentation\r\n\r\n- [#6516](https://github.com/nautobot/nautobot/issues/6516) - Updated release notes to make it clearer which are model changes.\r\n- [#6524](https://github.com/nautobot/nautobot/issues/6524) - Updated AzureAD authentication documentation.\r\n- [#6567](https://github.com/nautobot/nautobot/issues/6567) - Fixed incorrect example in documentation on using test factories.\r\n\r\n### Housekeeping\r\n\r\n- [#6459](https://github.com/nautobot/nautobot/issues/6459) - Updated documentation dependencies `mkdocs-redirects` to `1.2.2` and `mkdocs-material` to `9.5.46`.\r\n- [#6500](https://github.com/nautobot/nautobot/issues/6500) - Added support for `invoke showmigrations` command.\r\n\r\n## Contributors\r\n\r\n* @HanlinMiao\r\n* @glennmatthews\r\n* @itdependsnetworks\r\n* @igpaec\r\n* @jmcgill298\r\n* @smk4664\r\n* @josh-silvas\r\n* @austind\r\n* @cardoe\r\n* @renovate\r\n\r\n## New Contributors\r\n* @igpaec made their first contribution in https://github.com/nautobot/nautobot/pull/6501\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.11...v2.3.12",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6572",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/184932480",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/184932480/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/184932480/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.11",
        "id": 184932480,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4LBdiA",
        "tag_name": "v2.3.11",
        "target_commitish": "main",
        "name": "v2.3.11 - 2024-11-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-11-12T16:42:49Z",
        "updated_at": "2024-11-12T17:16:09Z",
        "published_at": "2024-11-12T16:46:36Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/205986749",
                "id": 205986749,
                "node_id": "RA_kwDOFEucDc4MRxu9",
                "name": "nautobot-2.3.11-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35703678,
                "digest": null,
                "download_count": 7,
                "created_at": "2024-11-12T17:16:08Z",
                "updated_at": "2024-11-12T17:16:09Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.11/nautobot-2.3.11-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/205986747",
                "id": 205986747,
                "node_id": "RA_kwDOFEucDc4MRxu7",
                "name": "nautobot-2.3.11.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34623088,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-11-12T17:16:07Z",
                "updated_at": "2024-11-12T17:16:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.11/nautobot-2.3.11.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.11",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.11",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#6231](https://github.com/nautobot/nautobot/issues/6231) - Added `nautobot.apps.utils.get_related_field_for_models()` helper function.\r\n- [#6231](https://github.com/nautobot/nautobot/issues/6231) - Added optional `lookup` parameter to `LinkedCountColumn`.\r\n\r\n### Changed\r\n\r\n- [#5321](https://github.com/nautobot/nautobot/issues/5321) - For bulk delete all objects view, only show the confirmation dialog without the table that shows the objects that would be deleted.\r\n- [#6231](https://github.com/nautobot/nautobot/issues/6231) - Changed most related-object-count table columns (e.g. the \"Locations\" column in a Prefix table) to, if only a single related record is present (e.g. a single Location is associated with a given Prefix), display that related record directly instead of just displaying `1`.\r\n- [#6465](https://github.com/nautobot/nautobot/issues/6465) - For bulk edit all objects view, skip rendering the table of related objects in the confirmation page.\r\n\r\n### Fixed\r\n\r\n- [#6414](https://github.com/nautobot/nautobot/issues/6414) - Fixed layout bug in browsable REST API.\r\n- [#6442](https://github.com/nautobot/nautobot/issues/6442) - Fixed an issue where GitLab CI pipelines fail using all versions of official Docker images.\r\n- [#6453](https://github.com/nautobot/nautobot/issues/6453) - Fixed issue where interfaces cannot be removed/deleted from an Interface for Modules.\r\n- [#6472](https://github.com/nautobot/nautobot/issues/6472) - Fixed incorrect placement of buttons in create and edit views.\r\n- [#6472](https://github.com/nautobot/nautobot/issues/6472) - Fixed the panel width in multiple create and edit views.\r\n- [#6490](https://github.com/nautobot/nautobot/issues/6490) - Added missing `vrf_count` column to Prefix table in PrefixListView.\r\n- [#6491](https://github.com/nautobot/nautobot/issues/6491) - Added missing `vrf` field to `VMInterfaceForm` and `VMInterfaceCreateForm`.\r\n- [#6492](https://github.com/nautobot/nautobot/issues/6492) - Fixed `vlan_group` field is not filtered by `locations` field input on VLANForm.\r\n\r\n### Documentation\r\n\r\n- [#6485](https://github.com/nautobot/nautobot/issues/6485) - Added additional clarification for enabling request profiling via user profile.\r\n\r\n### Housekeeping\r\n\r\n- [#6449](https://github.com/nautobot/nautobot/issues/6449) - Added an integration test to create a Manufacturer, DeviceType, LocationType, Location, Role and Device to test the create forms and select2 api form fields are working correctly.\r\n- [#6449](https://github.com/nautobot/nautobot/issues/6449) - Fixed incorrect assertion in core navbar integration tests.\r\n- [#6449](https://github.com/nautobot/nautobot/issues/6449) - Added helper functions to SeleniumTestCase to perform some common UI actions.\r\n- [#6455](https://github.com/nautobot/nautobot/issues/6455) - Fixed two tests which always passed due to errors in their implementation. Ensured they provide value by checking against the correct results.\r\n- [#6497](https://github.com/nautobot/nautobot/issues/6497) - Added support for `--no-reusedb` option to `invoke integration-test` task.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @austind \r\n* @cardoe \r\n* @gsnider2195 \r\n* @glennmatthews \r\n* @timizuoebideri1 \r\n* @kvncampos\r\n* @gskjelstad\r\n* @HanlinMiao\r\n\r\n## New Contributors\r\n* @austind made their first contribution in https://github.com/nautobot/nautobot/pull/6443\r\n* @gskjelstad made their first contribution in https://github.com/nautobot/nautobot/pull/6485\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.10...v2.3.11",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6505",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/182554112",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/182554112/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/182554112/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.10",
        "id": 182554112,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4K4Y4A",
        "tag_name": "v2.3.10",
        "target_commitish": "main",
        "name": "v2.3.10 - 2024-10-29",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-10-29T20:07:34Z",
        "updated_at": "2024-10-29T20:39:02Z",
        "published_at": "2024-10-29T20:09:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/202671961",
                "id": 202671961,
                "node_id": "RA_kwDOFEucDc4MFIdZ",
                "name": "nautobot-2.3.10-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35691976,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-10-29T20:39:01Z",
                "updated_at": "2024-10-29T20:39:02Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.10/nautobot-2.3.10-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/202671960",
                "id": 202671960,
                "node_id": "RA_kwDOFEucDc4MFIdY",
                "name": "nautobot-2.3.10.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34611083,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-10-29T20:39:00Z",
                "updated_at": "2024-10-29T20:39:01Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.10/nautobot-2.3.10.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.10",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.10",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#6421](https://github.com/nautobot/nautobot/issues/6421) - Added cacheable `CustomField.objects.keys_for_model(model)` API.\r\n- [#6421](https://github.com/nautobot/nautobot/issues/6421) - Added queryset caching in `web_request_context` for more efficient JobHook and Webhook dispatching on bulk requests.\r\n- [#6421](https://github.com/nautobot/nautobot/issues/6421) - Added logging to JobResults for CustomField provisioning background tasks.\r\n- [#6421](https://github.com/nautobot/nautobot/issues/6421) - Added more efficient database calls for most cases of bulk-provisioning CustomField data on model objects.\r\n\r\n### Changed\r\n\r\n- [#6421](https://github.com/nautobot/nautobot/issues/6421) - Increased soft/hard time limits on CustomField provisioning background tasks to 1800 and 2000 seconds respectively.\r\n\r\n### Fixed\r\n\r\n- [#6421](https://github.com/nautobot/nautobot/issues/6421) - Fixed long-running-at-scale transaction lock on records while adding/removing a CustomField definition.\r\n- [#6441](https://github.com/nautobot/nautobot/issues/6441) - Fixed a regression in 2.3.9 that broke the rendering of the Device create/edit form.\r\n\r\n### Dependencies\r\n\r\n- [#6423](https://github.com/nautobot/nautobot/issues/6423) - Updated `mysqlclient` to `~2.2.5`.\r\n\r\n### Housekeeping\r\n\r\n- [#6423](https://github.com/nautobot/nautobot/issues/6423) - Updated documentation dependency `mkdocs-material` to `~9.5.42`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @renovate\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.9...v2.3.10",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6447",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/182289876",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/182289876/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/182289876/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.9",
        "id": 182289876,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4K3YXU",
        "tag_name": "v2.3.9",
        "target_commitish": "main",
        "name": "v2.3.9 - 2024-10-28",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-10-28T15:53:45Z",
        "updated_at": "2024-10-28T16:27:25Z",
        "published_at": "2024-10-28T15:56:28Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/202371614",
                "id": 202371614,
                "node_id": "RA_kwDOFEucDc4MD_Ie",
                "name": "nautobot-2.3.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35686127,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-10-28T16:27:24Z",
                "updated_at": "2024-10-28T16:27:25Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.9/nautobot-2.3.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/202371613",
                "id": 202371613,
                "node_id": "RA_kwDOFEucDc4MD_Id",
                "name": "nautobot-2.3.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34605557,
                "digest": null,
                "download_count": 7,
                "created_at": "2024-10-28T16:27:23Z",
                "updated_at": "2024-10-28T16:27:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.9/nautobot-2.3.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.9",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#4899](https://github.com/nautobot/nautobot/issues/4899) - Added TableExtension class to allow app developers to add columns to core tables.\r\n- [#6336](https://github.com/nautobot/nautobot/issues/6336) - Added logic to ModuleBay model to ensure that if the `position` field is empty, its value will be automatically populated from the `name` of the Module Bay instance.\r\n- [#6372](https://github.com/nautobot/nautobot/issues/6372) - Added environment variable support for setting `CSRF_TRUSTED_ORIGINS`.\r\n\r\n### Changed\r\n\r\n- [#6336](https://github.com/nautobot/nautobot/issues/6336) - Enhanced `position` fields on ModuleBayCreate/UpdateForms to auto-populate their values from `name` fields.\r\n- [#6386](https://github.com/nautobot/nautobot/issues/6386) - Changed `GitRepositorySync` system Job to run atomically (all-or-nothing), such that any failure in the resync will cause all associated database updates to be reverted.\r\n- [#6386](https://github.com/nautobot/nautobot/issues/6386) - Changed behavior of change logging `web_request_context()` to only reload Job code when a relevant JobHook is found to apply to the change in question.\r\n\r\n### Fixed\r\n\r\n- [#6297](https://github.com/nautobot/nautobot/issues/6297) - Fixed overly broad scope of the TreeModel `invalidate_max_depth_cache` signal so that it now correctly only fires for TreeModel instances rather than all models.\r\n- [#6297](https://github.com/nautobot/nautobot/issues/6297) - Improved performance of DynamicGroup membership updates/recalculations when dealing with large numbers of member objects.\r\n- [#6386](https://github.com/nautobot/nautobot/issues/6386) - Fixed reversed chronological ordering of JobHooks and Webhooks sent from a single `web_request_context` session.\r\n- [#6400](https://github.com/nautobot/nautobot/issues/6400) - Removed misleading help text from ModularComponentForm, as the `{module}` auto-substitution in names only applies through component _templates_ at present.\r\n- [#6415](https://github.com/nautobot/nautobot/issues/6415) - Added missing column `software_version` to the Device Table in Device List View.\r\n- [#6425](https://github.com/nautobot/nautobot/issues/6425) - Fixed bug in which ColoredLabelColumn() wasn't being applied to the `role' column on Device/VM interfaces.\r\n\r\n### Dependencies\r\n\r\n- [#6362](https://github.com/nautobot/nautobot/issues/6362) - Updated `psycopg2-binary` dependency to `~2.9.10`.\r\n\r\n### Housekeeping\r\n\r\n- [#6362](https://github.com/nautobot/nautobot/issues/6362) - Updated documentation dependency `mkdocs-material` to `~9.5.41`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @AxFrancois\r\n* @renovate\r\n* @HanlinMiao\r\n* @nrnvgh\r\n* @grelleum\r\n\r\n## New Contributors\r\n* @AxFrancois made their first contribution in https://github.com/nautobot/nautobot/pull/6374\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.8...v2.3.9",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6433",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/180683470",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/180683470/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/180683470/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.8",
        "id": 180683470,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KxQLO",
        "tag_name": "v2.3.8",
        "target_commitish": "main",
        "name": "v2.3.8 - 2024-10-18",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-10-18T14:11:47Z",
        "updated_at": "2024-10-18T14:47:04Z",
        "published_at": "2024-10-18T14:14:23Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/200024729",
                "id": 200024729,
                "node_id": "RA_kwDOFEucDc4L7CKZ",
                "name": "nautobot-2.3.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35655834,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-10-18T14:47:03Z",
                "updated_at": "2024-10-18T14:47:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.8/nautobot-2.3.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/200024713",
                "id": 200024713,
                "node_id": "RA_kwDOFEucDc4L7CKJ",
                "name": "nautobot-2.3.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34577786,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-10-18T14:47:02Z",
                "updated_at": "2024-10-18T14:47:03Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.8/nautobot-2.3.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.8",
        "body": "## What's Changed\r\n\r\n### Fixed\r\n\r\n- [#5050](https://github.com/nautobot/nautobot/issues/5050) - Changed logic to permit VLANs assigned to a device's location's parent locations (including parents of parents, etc.) to be assigned to that device's interfaces.\r\n- [#6297](https://github.com/nautobot/nautobot/issues/6297) - Fixed paginator widget to display the current selected `per_page` value even if it's not one of the `PER_PAGE_DEFAULTS` options.\r\n- [#6297](https://github.com/nautobot/nautobot/issues/6297) - Added pagination of related-object tables to many IPAM views to avoid errors when very large quantities of related records are present.\r\n- [#6380](https://github.com/nautobot/nautobot/issues/6380) - Fixed issue with Installed Apps page trying to render invalid links.\r\n- [#6385](https://github.com/nautobot/nautobot/issues/6385) - Restored `Prefix.get_child_ips()` API mistakenly removed from v2.3.5 through v2.3.7.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @timizuoebideri1\r\n* @HanlinMiao \r\n* @smk4664\r\n* @alextremblay\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.7...v2.3.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6396",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/180163381",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/180163381/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/180163381/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.7",
        "id": 180163381,
        "author": {
            "login": "timizuoebideri1",
            "id": 94907097,
            "node_id": "U_kgDOBagq2Q",
            "avatar_url": "https://avatars.githubusercontent.com/u/94907097?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/timizuoebideri1",
            "html_url": "https://github.com/timizuoebideri1",
            "followers_url": "https://api.github.com/users/timizuoebideri1/followers",
            "following_url": "https://api.github.com/users/timizuoebideri1/following{/other_user}",
            "gists_url": "https://api.github.com/users/timizuoebideri1/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/timizuoebideri1/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/timizuoebideri1/subscriptions",
            "organizations_url": "https://api.github.com/users/timizuoebideri1/orgs",
            "repos_url": "https://api.github.com/users/timizuoebideri1/repos",
            "events_url": "https://api.github.com/users/timizuoebideri1/events{/privacy}",
            "received_events_url": "https://api.github.com/users/timizuoebideri1/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KvRM1",
        "tag_name": "v2.3.7",
        "target_commitish": "develop",
        "name": "v2.3.7",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-10-15T15:47:05Z",
        "updated_at": "2024-10-16T11:26:49Z",
        "published_at": "2024-10-16T10:53:41Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/199492701",
                "id": 199492701,
                "node_id": "RA_kwDOFEucDc4L5ARd",
                "name": "nautobot-2.3.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35653654,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-10-16T11:26:48Z",
                "updated_at": "2024-10-16T11:26:49Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.7/nautobot-2.3.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/199492697",
                "id": 199492697,
                "node_id": "RA_kwDOFEucDc4L5ARZ",
                "name": "nautobot-2.3.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34575264,
                "digest": null,
                "download_count": 7,
                "created_at": "2024-10-16T11:26:47Z",
                "updated_at": "2024-10-16T11:26:48Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.7/nautobot-2.3.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.7",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#2784](https://github.com/nautobot/nautobot/issues/2784) - Added `assertBodyContains()` test helper API to `NautobotTestCaseMixin`.\r\n\r\n### Changed\r\n\r\n- [#6205](https://github.com/nautobot/nautobot/issues/6205) - Changed initial `Nautobot initialized!` message logged on startup to include the Nautobot version number.\r\n- [#6350](https://github.com/nautobot/nautobot/issues/6350) - Changed the way that `ensure_git_repository` logs hashes to include the name of the repository.\r\n\r\n### Fixed\r\n\r\n- [#6158](https://github.com/nautobot/nautobot/issues/6158) - Fixed a UI overflow issue with the Tenant Stats panel.\r\n- [#6299](https://github.com/nautobot/nautobot/issues/6299) - Added retry logic and error handling for several cases where an intermittent Redis connection error could cause Celery to throw an exception.\r\n- [#6318](https://github.com/nautobot/nautobot/issues/6318) - Fixed duplicate loading of `nautobot_config.py` during Nautobot startup.\r\n- [#6329](https://github.com/nautobot/nautobot/issues/6329) - Added a data migration to fix DynamicGroup `group_type` values set incorrectly in upgrading to Nautobot 2.3.x.\r\n\r\n### Dependencies\r\n\r\n- [#6299](https://github.com/nautobot/nautobot/issues/6299) - Added a direct dependency on `kombu` to guarantee the presence of some essential fixes for this Celery dependency.\r\n\r\n### Housekeeping\r\n\r\n- [#2784](https://github.com/nautobot/nautobot/issues/2784) - Added usage of `extract_page_body()` to many view-related test cases in order to make their failure output more readable.\r\n- [#2784](https://github.com/nautobot/nautobot/issues/2784) - Modified many view-related test cases to use new `assertBodyContains()` test helper method for brevity.\r\n- [#6283](https://github.com/nautobot/nautobot/issues/6283) - Updated documentation dependency `mkdocs-material` to `~9.5.39`.\r\n- [#6318](https://github.com/nautobot/nautobot/issues/6318) - Fixed an error when rerunning parallel tests with a cached database and test factories enabled.\r\n- [#6318](https://github.com/nautobot/nautobot/issues/6318) - Fixed a permission-denied error on the `MEDIA_ROOT` volume when running the local development environment with `docker-compose.final.yml`.\r\n- [#6318](https://github.com/nautobot/nautobot/issues/6318) - Increased the healthcheck `start_period` in the local development environment to 10 minutes.\r\n- [#6318](https://github.com/nautobot/nautobot/issues/6318) - Added `--remove-orphans` to the docker compose commands for `invoke stop` and `invoke destroy`.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @glennmatthews \r\n* @smk4664\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.6...v2.3.7",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/178133042",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/178133042/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/178133042/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.6",
        "id": 178133042,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Knhgy",
        "tag_name": "v2.3.6",
        "target_commitish": "main",
        "name": "v2.3.6 - 2024-10-03",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-10-03T05:04:07Z",
        "updated_at": "2024-10-03T05:40:17Z",
        "published_at": "2024-10-03T05:08:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/196575835",
                "id": 196575835,
                "node_id": "RA_kwDOFEucDc4Lt4Jb",
                "name": "nautobot-2.3.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35646202,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-10-03T05:40:15Z",
                "updated_at": "2024-10-03T05:40:16Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.6/nautobot-2.3.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/196575834",
                "id": 196575834,
                "node_id": "RA_kwDOFEucDc4Lt4Ja",
                "name": "nautobot-2.3.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34569225,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-10-03T05:40:13Z",
                "updated_at": "2024-10-03T05:40:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.6/nautobot-2.3.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.6",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#5903](https://github.com/nautobot/nautobot/issues/5903) - Added range field on `VLANGroup` model.\r\n- [#5903](https://github.com/nautobot/nautobot/issues/5903) - Added tags on `VLANGroup` model.\r\n\r\n### Fixed\r\n\r\n- [#6304](https://github.com/nautobot/nautobot/issues/6304) - Fixed an error during startup when an App included a REST API serializer inheriting from an unexpected base class.\r\n- [#6304](https://github.com/nautobot/nautobot/issues/6304) - Fixed a warning during startup about the `extras.FileAttachment` model.\r\n\r\n### Documentation\r\n\r\n- [#6304](https://github.com/nautobot/nautobot/issues/6304) - Added a note to the release overview section for app developers regarding opt-in/opt-out of model features.\r\n- [#6304](https://github.com/nautobot/nautobot/issues/6304) - Updated app model developer documentation with more details about feature opt-out.\r\n\r\n### Housekeeping\r\n\r\n- [#6308](https://github.com/nautobot/nautobot/issues/6308) - Increase the minimum number of content-types to three and capped the maximum to five for MetadataType instances created by MetadataTypeFactory.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @glennmatthews \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.5...v2.3.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6314",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/177680774",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/177680774/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/177680774/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.5",
        "id": 177680774,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KlzGG",
        "tag_name": "v2.3.5",
        "target_commitish": "main",
        "name": "v2.3.5 - 2024-09-30",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-09-30T20:37:40Z",
        "updated_at": "2024-09-30T21:14:09Z",
        "published_at": "2024-09-30T20:41:32Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/195969652",
                "id": 195969652,
                "node_id": "RA_kwDOFEucDc4LrkJ0",
                "name": "nautobot-2.3.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35632672,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-09-30T21:14:08Z",
                "updated_at": "2024-09-30T21:14:09Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.5/nautobot-2.3.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/195969648",
                "id": 195969648,
                "node_id": "RA_kwDOFEucDc4LrkJw",
                "name": "nautobot-2.3.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34552450,
                "digest": null,
                "download_count": 7,
                "created_at": "2024-09-30T21:14:06Z",
                "updated_at": "2024-09-30T21:14:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.5/nautobot-2.3.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.5",
        "body": "## What's Changed\r\n\r\n## v2.3.5 (2024-09-30)\r\n\r\n### Added\r\n\r\n- [#6257](https://github.com/nautobot/nautobot/issues/6257) - Added `is_occupied` boolean filter to the Rack elevation API endpoint to allow filtering by occupied or unoccupied units.\r\n- [#6289](https://github.com/nautobot/nautobot/issues/6289) - Added the add button to IPAM Services.\r\n\r\n### Changed\r\n\r\n- [#6057](https://github.com/nautobot/nautobot/issues/6057) - Enhanced job delete functions to prevent users from deleting system jobs from the UI and the API.\r\n\r\n### Fixed\r\n\r\n- [#5802](https://github.com/nautobot/nautobot/issues/5802) - Override `get_required_permission()` in SavedViewUIViewSet to achieve the intended behavior.\r\n- [#5924](https://github.com/nautobot/nautobot/issues/5924) - Fixed the redirect URL for the Device Bay Populate/Depopulate view to take the user back to the Device Bays tab on the Device page.\r\n- [#6170](https://github.com/nautobot/nautobot/issues/6170) - Fix Prefix IPAddresses not accounting for Child Prefix IPAddresses in the UI.\r\n- [#6217](https://github.com/nautobot/nautobot/issues/6217) - Fixed SavedView functionality not working in Rack Elevation List View.\r\n- [#6233](https://github.com/nautobot/nautobot/issues/6233) - Corrected presentation of rendered Markdown content in Notes table.\r\n- [#6248](https://github.com/nautobot/nautobot/issues/6248) - Fixed Device Type link and count from Device Family Detail View.\r\n- [#6257](https://github.com/nautobot/nautobot/issues/6257) - Fixed the selection options for `position` on the device add/edit form to disable RUs that are currently occupied.\r\n- [#6289](https://github.com/nautobot/nautobot/issues/6289) - Fixed lookup of IP Addresses in the Service form.\r\n\r\n### Dependencies\r\n\r\n- [#6247](https://github.com/nautobot/nautobot/issues/6247) - Updated documentation dependency `mkdocs-material` to `~9.5.35`.\r\n- [#6287](https://github.com/nautobot/nautobot/issues/6287) - Replaced incorrect `django-structlog[all]` dependency with `django-structlog[celery]`.\r\n\r\n### Documentation\r\n\r\n- [#6264](https://github.com/nautobot/nautobot/issues/6264) - Added to the core developer documentation a warning against the use of data factories within test case code.\r\n\r\n### Housekeeping\r\n\r\n- [#5802](https://github.com/nautobot/nautobot/issues/5802) - Override `get_required_permission()` in SavedViewUIViewSet to achieve the intended behavior.\r\n- [#6264](https://github.com/nautobot/nautobot/issues/6264) - Changed `invoke unittest` to default to `--parallel` even when a `--label` value is specified.\r\n- [#6264](https://github.com/nautobot/nautobot/issues/6264) - Added support for `invoke unittest --no-parallel`.\r\n- [#6285](https://github.com/nautobot/nautobot/issues/6285) - Added support for `invoke unittest --no-reusedb` and `nautobot-server test --no-reusedb` to streamline testing when switching frequently between branches.\r\n- [#6292](https://github.com/nautobot/nautobot/issues/6292) - Corrected logic of several VLAN test cases.\r\n\r\n## Contributor\r\n* @HanlinMiao \r\n* @bintangf \r\n* @itdependsnetworks \r\n* @joewesch \r\n* @timizuoebideri1\r\n* @smk4664\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.4...v2.3.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6295",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/176679486",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/176679486/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/176679486/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.28",
        "id": 176679486,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Kh-o-",
        "tag_name": "v1.6.28",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.28 - 2024-09-24",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-09-24T17:31:44Z",
        "updated_at": "2024-09-25T03:06:42Z",
        "published_at": "2024-09-24T17:34:35Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/194743219",
                "id": 194743219,
                "node_id": "RA_kwDOFEucDc4Lm4uz",
                "name": "nautobot-1.6.28-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31003473,
                "digest": null,
                "download_count": 7,
                "created_at": "2024-09-25T03:06:40Z",
                "updated_at": "2024-09-25T03:06:42Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.28/nautobot-1.6.28-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/194743217",
                "id": 194743217,
                "node_id": "RA_kwDOFEucDc4Lm4ux",
                "name": "nautobot-1.6.28.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30311683,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-09-25T03:06:39Z",
                "updated_at": "2024-09-25T03:06:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.28/nautobot-1.6.28.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.28",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.28",
        "body": "## What's Changed\r\n\r\n### Fixed\r\n\r\n- [#6152](https://github.com/nautobot/nautobot/issues/6152) - Fixed table column ordering.\r\n- [#6237](https://github.com/nautobot/nautobot/issues/6237) - Corrected presentation of rendered Markdown content in Notes table.\r\n- [#6262](https://github.com/nautobot/nautobot/issues/6262) - Fixed invalid installation of `xmlsec` library in the Nautobot Docker images.\r\n\r\n### Housekeeping\r\n\r\n- [#5637](https://github.com/nautobot/nautobot/issues/5637) - Removed \"version\" from development `docker-compose.yml` files as newer versions of Docker complain about it being obsolete.\r\n- [#5637](https://github.com/nautobot/nautobot/issues/5637) - Fixed behavior of `invoke stop` so that it also stops the optional `mkdocs` container if present.\r\n- [#6262](https://github.com/nautobot/nautobot/issues/6262) - Brought `.gitignore` up to date with latest to aid in branch switching.\r\n\r\n### Contributors\r\n* @bintangf \r\n* @HanlinMiao\r\n* @glennmatthews \r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.27...v1.6.28",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6271",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/175724409",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/175724409/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/175724409/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.4",
        "id": 175724409,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KeVd5",
        "tag_name": "v2.3.4",
        "target_commitish": "main",
        "name": "v2.3.4 - 2024-09-18",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-09-18T16:59:52Z",
        "updated_at": "2024-09-18T17:34:27Z",
        "published_at": "2024-09-18T17:02:00Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/193424715",
                "id": 193424715,
                "node_id": "RA_kwDOFEucDc4Lh21L",
                "name": "nautobot-2.3.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35627928,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-09-18T17:34:26Z",
                "updated_at": "2024-09-18T17:34:27Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.4/nautobot-2.3.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/193424712",
                "id": 193424712,
                "node_id": "RA_kwDOFEucDc4Lh21I",
                "name": "nautobot-2.3.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34550888,
                "digest": null,
                "download_count": 7,
                "created_at": "2024-09-18T17:34:25Z",
                "updated_at": "2024-09-18T17:34:26Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.4/nautobot-2.3.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.4",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#5795](https://github.com/nautobot/nautobot/issues/5795) - Added support for `NAUTOBOT_CACHES_TIMEOUT` environment variable.\r\n- [#6207](https://github.com/nautobot/nautobot/issues/6207) - Added the ability to filter virtual machines by their `cluster` names or IDs.\r\n\r\n### Changed\r\n\r\n- [#5795](https://github.com/nautobot/nautobot/issues/5795) - Changed default cache timeout for Constance configuration from 1 day to 300 seconds to match other caches.\r\n\r\n### Fixed\r\n\r\n- [#6207](https://github.com/nautobot/nautobot/issues/6207) - Fixed incorrect link in ClusterTable for device count column.\r\n- [#6207](https://github.com/nautobot/nautobot/issues/6207) - Fixed incorrect link in PowerPanelTable for power feed count column.\r\n- [#6230](https://github.com/nautobot/nautobot/issues/6230) - Fixed an issue with Celery Scheduler around datetime imports.\r\n\r\n### Documentation\r\n\r\n- [#5795](https://github.com/nautobot/nautobot/issues/5795) - Consolidated \"Required Settings\" and \"Optional Settings\" docs into a single unified \"Settings\" document.\r\n- [#5795](https://github.com/nautobot/nautobot/issues/5795) - Consolidated \"Administration: Installation Extras\" docs section into the \"Administration: Guides\" section.\r\n- [#5795](https://github.com/nautobot/nautobot/issues/5795) - Moved \"Caching\" content from the \"Administration: Guides\" section into the \"Administration: Configuration\" section as a new \"Redis\" document.\r\n- [#5795](https://github.com/nautobot/nautobot/issues/5795) - Added `environment_variables` keys to `settings.yaml` to more accurately document settings that are influenced by multiple environment variables together.\r\n- [#5795](https://github.com/nautobot/nautobot/issues/5795) - Removed `is_required_setting` keys from `settings.yaml` as no longer relevant.\r\n\r\n### Housekeeping\r\n\r\n- [#5859](https://github.com/nautobot/nautobot/issues/5859) - Changed `--cache-test-fixtures` and `--keepdb` flags from opt-in to opt-out for `invoke unittest` and `invoke integration-test` commands.\r\n- [#5859](https://github.com/nautobot/nautobot/issues/5859) - Changed `invoke unittest` to automatically include `--parallel` flag when running the entire unit test suite.\r\n- [#6222](https://github.com/nautobot/nautobot/issues/6222) - Fixed `plugin_upstream_testing_base.yml` to work with app cookiecutter v2.3 Dockerfile.\r\n- [#6227](https://github.com/nautobot/nautobot/issues/6227) - Fixed typo in app upstream testing workflow.\r\n\r\n## Contributors\r\n* @gsnider2195 \r\n* @glennmatthews \r\n* @HanlinMiao \r\n* @mattmiller87 \r\n\r\n## New Contributors\r\n* @mattmiller87 made their first contribution in https://github.com/nautobot/nautobot/pull/6230\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.3...v2.3.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6238",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/175480899",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/175480899/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/175480899/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.3",
        "id": 175480899,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KdaBD",
        "tag_name": "v2.3.3",
        "target_commitish": "main",
        "name": "v2.3.3 - 2024-09-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-09-17T14:46:12Z",
        "updated_at": "2024-09-17T15:30:01Z",
        "published_at": "2024-09-17T14:56:02Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/193176912",
                "id": 193176912,
                "node_id": "RA_kwDOFEucDc4Lg6VQ",
                "name": "nautobot-2.3.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35678004,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-09-17T15:29:59Z",
                "updated_at": "2024-09-17T15:30:01Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.3/nautobot-2.3.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/193176911",
                "id": 193176911,
                "node_id": "RA_kwDOFEucDc4Lg6VP",
                "name": "nautobot-2.3.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34602193,
                "digest": null,
                "download_count": 7,
                "created_at": "2024-09-17T15:29:58Z",
                "updated_at": "2024-09-17T15:29:59Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.3/nautobot-2.3.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.3",
        "body": "## What's Changed\r\n### Security\r\n\r\n- [#6212](https://github.com/nautobot/nautobot/issues/6212) - Updated `Django` to `~4.2.16` to address `CVE-2024-45230` and `CVE-2024-45231`.\r\n\r\n### Fixed\r\n\r\n- [#6184](https://github.com/nautobot/nautobot/issues/6184) - Fixed an exception in `extras.models.groups._map_filter_fields` method when certain App `filter_extensions` were present.\r\n- [#6190](https://github.com/nautobot/nautobot/issues/6190) - Added `display` property to Prefix to display its namespace along with the prefix to allow differentiation between prefixes in the UI.\r\n- [#6197](https://github.com/nautobot/nautobot/issues/6197) - Fixed an exception in `core.utils.lookup.get_model_for_view_name` function when rendering certain App object list views.\r\n- [#6203](https://github.com/nautobot/nautobot/issues/6203) - Fixed a performance regression observed when change logging resulted in a large number of ObjectChange records (such as in an SSOT Job).\r\n\r\n### Dependencies\r\n\r\n- [#6084](https://github.com/nautobot/nautobot/issues/6084) - Updated `pyuwsgi` to `~2.0.26` and `PyYAML` to `~6.0.2`.\r\n\r\n### Housekeeping\r\n\r\n- [#5376](https://github.com/nautobot/nautobot/issues/5376) - Disabled `coverage` during initial test database setup to improve test performance.\r\n- [#6084](https://github.com/nautobot/nautobot/issues/6084) - Updated development dependencies `factory-boy` to `~3.3.1`, `ruff` to `~0.5.7`, and `watchdog` to `~4.0.2`.\r\n- [#6084](https://github.com/nautobot/nautobot/issues/6084) - Updated documentation dependency `mkdocs-material` to `~9.5.33`.\r\n- [#6155](https://github.com/nautobot/nautobot/issues/6155) - Updated the invoke.yml.example dev file to use latest values.\r\n- [#6212](https://github.com/nautobot/nautobot/issues/6212) - Updated documentation dependencies `mkdocs` to `~1.6.1`, `mkdocs-material` to `~9.5.34`, and `mkdocstrings-python` to `~1.10.9`.\r\n- [#6212](https://github.com/nautobot/nautobot/issues/6212) - Updated development dependency `pylint` to `~3.2.7`.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @pszulczewski\r\n* @brandomando\r\n* @joewesch \r\n* @glennmatthews \r\n\r\n## New Contributors\r\n* @brandomando made their first contribution in https://github.com/nautobot/nautobot/pull/6190\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.2...v2.3.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6225",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/175480899/reactions",
            "total_count": 1,
            "+1": 1,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/173486092",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/173486092/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/173486092/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.2",
        "id": 173486092,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KVzAM",
        "tag_name": "v2.3.2",
        "target_commitish": "main",
        "name": "v2.3.2 - 2024-09-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-09-04T18:15:00Z",
        "updated_at": "2024-09-04T18:55:47Z",
        "published_at": "2024-09-04T18:18:54Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/190431733",
                "id": 190431733,
                "node_id": "RA_kwDOFEucDc4LWcH1",
                "name": "nautobot-2.3.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35691143,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-09-04T18:55:46Z",
                "updated_at": "2024-09-04T18:55:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.2/nautobot-2.3.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/190431725",
                "id": 190431725,
                "node_id": "RA_kwDOFEucDc4LWcHt",
                "name": "nautobot-2.3.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34618050,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-09-04T18:55:44Z",
                "updated_at": "2024-09-04T18:55:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.2/nautobot-2.3.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.2",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#6182](https://github.com/nautobot/nautobot/issues/6182) - Updated `cryptography` to `43.0.1` to address `GHSA-h4gh-qq45-vh27`. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Added\r\n\r\n- [#5180](https://github.com/nautobot/nautobot/issues/5180) - Add filtering Job Results by Scheduled Job.\r\n- [#5591](https://github.com/nautobot/nautobot/issues/5591) - Added `time_zone` field to `ScheduledJob` model.\r\n- [#6120](https://github.com/nautobot/nautobot/issues/6120) - Added Status Field to VRF model.\r\n- [#6129](https://github.com/nautobot/nautobot/issues/6129) - Added collapsible icon rotation to homepage panels.\r\n\r\n### Fixed\r\n\r\n- [#5591](https://github.com/nautobot/nautobot/issues/5591) - Corrected several bugs around handling of `ScheduledJob` execution when `settings.TIME_ZONE` is other than \"UTC\".\r\n- [#5591](https://github.com/nautobot/nautobot/issues/5591) - Added missing `Meta.ordering` definition to `ScheduledJob` model.\r\n- [#6123](https://github.com/nautobot/nautobot/issues/6123) - Fixed cable status coloring for `DeviceModule*Table` rows in dark mode.\r\n- [#6131](https://github.com/nautobot/nautobot/issues/6131) - Fixed a regression in which IP addresses and prefixes created through the `/api/ipam/prefixes/<uuid>/available-ips/` and `/api/ipam/prefixes/<uuid>/available-prefixes/` REST API endpoints could not be assigned custom field data during their creation.\r\n- [#6146](https://github.com/nautobot/nautobot/issues/6146) - Added missing DynamicGroup content to Device Detail View and Software Image File Detail View.\r\n- [#6175](https://github.com/nautobot/nautobot/issues/6175) - Prevented some `AttributeError` exceptions from being raised when an App contains a model that doesn't inherit from `BaseModel`.\r\n\r\n### Housekeeping\r\n\r\n- [#5591](https://github.com/nautobot/nautobot/issues/5591) - Added `watchmedo` to `celery_beat` development container.\r\n- [#5591](https://github.com/nautobot/nautobot/issues/5591) - Added `time-machine` as a development environment (test execution) dependency.\r\n- [#6147](https://github.com/nautobot/nautobot/issues/6147) - Fixed some points of non-determinism in the data generated by `nautobot-server generate_test_data`.\r\n- [#6147](https://github.com/nautobot/nautobot/issues/6147) - Added `development/cleanup_factory_dump.py` helper script to aid in identifying other issues with test data.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @HanlinMiao \r\n* @jnmms\r\n* @matt852\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.1...v2.3.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6187",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/173471003",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/173471003/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/173471003/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.27",
        "id": 173471003,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KVvUb",
        "tag_name": "v1.6.27",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.27 - 2024-09-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-09-04T16:40:14Z",
        "updated_at": "2024-09-04T17:39:35Z",
        "published_at": "2024-09-04T16:44:16Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/190414269",
                "id": 190414269,
                "node_id": "RA_kwDOFEucDc4LWX29",
                "name": "nautobot-1.6.27-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31002679,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-09-04T17:39:34Z",
                "updated_at": "2024-09-04T17:39:35Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.27/nautobot-1.6.27-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/190414267",
                "id": 190414267,
                "node_id": "RA_kwDOFEucDc4LWX27",
                "name": "nautobot-1.6.27.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30311202,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-09-04T17:39:33Z",
                "updated_at": "2024-09-04T17:39:34Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.27/nautobot-1.6.27.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.27",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.27",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#6182](https://github.com/nautobot/nautobot/issues/6182) - Updated `cryptography` to `43.0.1` to address `GHSA-h4gh-qq45-vh27`. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Fixed\r\n\r\n- [#6081](https://github.com/nautobot/nautobot/issues/6081) - Fixed AttributeError during pre_migrate when permission constraints are applied to custom fields.\r\n\r\n## Contributor\r\n* @timizuoebideri1\r\n* @HanlinMiao\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.26...v1.6.27",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6185",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/170936973",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/170936973/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/170936973/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.1",
        "id": 170936973,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KMEqN",
        "tag_name": "v2.3.1",
        "target_commitish": "main",
        "name": "v2.3.1 - 2024-08-19",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-08-19T19:50:52Z",
        "updated_at": "2024-08-19T20:30:07Z",
        "published_at": "2024-08-19T19:52:51Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/186963837",
                "id": 186963837,
                "node_id": "RA_kwDOFEucDc4LJNd9",
                "name": "nautobot-2.3.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35683698,
                "digest": null,
                "download_count": 14,
                "created_at": "2024-08-19T20:30:06Z",
                "updated_at": "2024-08-19T20:30:07Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.1/nautobot-2.3.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/186963833",
                "id": 186963833,
                "node_id": "RA_kwDOFEucDc4LJNd5",
                "name": "nautobot-2.3.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34612161,
                "digest": null,
                "download_count": 13,
                "created_at": "2024-08-19T20:30:04Z",
                "updated_at": "2024-08-19T20:30:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.1/nautobot-2.3.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.1",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#5232](https://github.com/nautobot/nautobot/issues/5232) - Added support for groupings to computed fields.\r\n- [#5494](https://github.com/nautobot/nautobot/issues/5494) - Added validation logic to `DeviceForm` `clean()` method to raise a validation error if there is any invalid software image file specified.\r\n- [#5915](https://github.com/nautobot/nautobot/issues/5915) - Enhanced `IPAddress.objects.get_or_create` method to permit specifying a namespace as an alternative to a parent prefix.\r\n\r\n### Changed\r\n\r\n- [#5970](https://github.com/nautobot/nautobot/issues/5970) - Removed indentations for PrefixTable in various locations in the UI.\r\n\r\n### Fixed\r\n\r\n- [#5494](https://github.com/nautobot/nautobot/issues/5494) - Fixed `Device` model `clean()` validation logic to allow user to specify a software version on a device without specifying any software image files.\r\n- [#6096](https://github.com/nautobot/nautobot/issues/6096) - Updated CloudAccount UI: Set the `secrets_group` form field to be optional.\r\n- [#6097](https://github.com/nautobot/nautobot/issues/6097) - Updated ContactAssociation API: Set the role field to be required.\r\n- [#6116](https://github.com/nautobot/nautobot/issues/6116) - Added handling for an `OperationalError` that might be raised when running `pylint-nautobot` or similar linters that depend on successfully running `nautobot.setup()`.\r\n\r\n### Housekeeping\r\n\r\n- [#6107](https://github.com/nautobot/nautobot/issues/6107) - Updated documentation dependency `mkdocstrings-python` to `~1.10.8`.\r\n\r\n## Contributors\r\n\r\n* @HanlinMiao\r\n* @Renrut5\r\n* @glennmatthews\r\n* @timizuoebideri1\r\n\r\n## New Contributors\r\n\r\n* @Renrut5 made their first contribution in https://github.com/nautobot/nautobot/pull/6059\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.3.0...v2.3.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6118",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/169400194",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/169400194/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/169400194/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.0",
        "id": 169400194,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KGNeC",
        "tag_name": "v2.3.0",
        "target_commitish": "main",
        "name": "v2.3.0 - 2024-08-08",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-08-08T19:42:15Z",
        "updated_at": "2024-08-08T20:25:13Z",
        "published_at": "2024-08-08T19:48:05Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/184793947",
                "id": 184793947,
                "node_id": "RA_kwDOFEucDc4LA7tb",
                "name": "nautobot-2.3.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35679786,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-08-08T20:25:12Z",
                "updated_at": "2024-08-08T20:25:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.0/nautobot-2.3.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/184793945",
                "id": 184793945,
                "node_id": "RA_kwDOFEucDc4LA7tZ",
                "name": "nautobot-2.3.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34607886,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-08-08T20:25:11Z",
                "updated_at": "2024-08-08T20:25:11Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.0/nautobot-2.3.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.0",
        "body": "This document describes all new features and changes in Nautobot 2.3.\r\n\r\n## Upgrade Actions\r\n\r\n### Administrators\r\n\r\nAdministrators should plan to take these actions during or immediately after upgrade from a previous version. New installations should also take note of these actions where appropriate.\r\n\r\n- Python 3.12 is now the default recommended version of Python.\r\n\r\n!!! warning \"Python 3.12\"\r\n    Because Nautobot prior to 2.3.0 did not declare support for Python 3.12, most Apps similarly needed to previously declare an upper bound of Python 3.11 for their own compatibility. Therefore, older versions of most Apps **will not be installable** under Python 3.12. Before migrating your Nautobot environment to Python 3.12, it is your responsibility to confirm that all relevant Apps in your environment are also compatible and installable. There is a minor \"chicken-and-egg\" problem here in that Apps generally cannot declare support for a new Python version before Nautobot itself publishes a release that does so; therefore, as of the 2.3.0 Nautobot release day, most Apps have not yet been updated to declare support for Python 3.12. We'll be working in the following days to promptly update our supported Apps as needed, so stay tuned.\r\n\r\n!!! warning \"Docker images\"\r\n    As has been Nautobot's policy since version 1.6.1, our published Docker images _that are not tagged with a specific Python version_ implicitly always include the _latest_ supported version of Python. This means that as of the release of Nautobot 2.3.0, the tags `latest`, `stable`, `2.3`, and `2.3.0` will all indicate Docker images that include Python 3.12, whereas previously these indicated Python 3.11 images. As noted above and below, updating to Python 3.12 may not be immediately desirable (or even possible, depending on the status of your Apps) as a \"day one\" action. If you need to stay with a given Python version for the time being, you must make sure that you're relying on an appropriately specific image tag, such as `2.3-py3.11`, `stable-py3.10`, etc.\r\n\r\n- As noted [below](#dynamic-group-cache-changes-5473), a new system job is provided for automated Dynamic Group cache updates. Administrators should schedule this system job to run on a recurring basis within the Jobs UI, after the upgrade, or on new install. Configuration referencing the `DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUT` setting can be safely removed, as it is no longer used. If this setting was being used previously, it is recommended to set the new scheduled job's interval to the same value.\r\n- As noted [below](#log-cleanup-as-system-job-3749), change logging retention cleanup is now handled via a system job. Administrators should schedule this job to run on a recurring basis to meet their needs. The `CHANGELOG_RETENTION` setting is still used to define the retention period, but the scheduled system job will perform the actual cleanup, if any needed.\r\n\r\n### Job Authors & App Developers\r\n\r\nJob Authors and App Developers should take these actions to ensure compatibility with their Jobs and Apps.\r\n\r\n- Job Authors and App Developers should carefully consider the [updates to the DynamicGroup API](#dynamic-group-cache-changes-5473) and decide if their use cases dictate changing their group membership access patterns to use `DynamicGroup.update_cached_members()` to find the correct balance between Dynamic Group performance and membership updates.\r\n- Job Authors and App Developers should carefully consider the [updates to the TreeManager default behavior](#changed-treemanager-default-behavior-5786) and make necessary changes to their access of Tree based models.\r\n- Django 4.2 is now required by Nautobot, replacing the previous Django 3.2 dependency. Job Authors and App Developers should carefully consider the updates and changes in the Django release-notes ([4.0](https://docs.djangoproject.com/en/4.2/releases/4.0/), [4.1](https://docs.djangoproject.com/en/4.2/releases/4.1/), [4.2](https://docs.djangoproject.com/en/4.2/releases/4.2/)), especially the relevant \"Backwards incompatible changes\" sections, to proactively identify any impact to their Apps.\r\n\r\n!!! warning \"Django 4\"\r\n    Django 4 includes a small number of breaking changes compared to Django 3. In our experience, most Apps have required few (or zero) updates to be Django 4 compatible, but your mileage may vary.\r\n\r\n- Python 3.12 is now supported by Nautobot and is now the default recommended version of Python. Apps will likely need to update their packaging in order to explicitly declare support for Python 3.12.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Cloud Models ([#5716](https://github.com/nautobot/nautobot/issues/5716), [#5719](https://github.com/nautobot/nautobot/issues/5719), [#5721](https://github.com/nautobot/nautobot/issues/5721), [#5872](https://github.com/nautobot/nautobot/issues/5872))\r\n\r\nAdded the new models `CloudAccount`, `CloudResourceType`, `CloudNetwork`, and `CloudService` to support recording of cloud provider accounts (AWS, Azure, GCP, DigitalOcean, etc.), cloud resource types (AWS EC2, Azure Virtual Machine Service, Google App Engine, etc.), cloud services (specific instances of services described by cloud resource types) and cloud network objects (such as VPCs) in Nautobot.\r\n\r\n#### Device Modules ([#2101](https://github.com/nautobot/nautobot/issues/2101))\r\n\r\nAdded new models for `ModuleBay`, `Module`, `ModuleType`, and `ModuleBayTemplate` to support modeling line cards and other modular components of a device. These models allow you to define a hierarchy of module bays and modules within a device, and to assign components (such as interfaces, power ports, etc.) to specific modules.\r\n\r\n#### Dynamic Group Enhancements ([#5472](https://github.com/nautobot/nautobot/issues/5472), [#5786](https://github.com/nautobot/nautobot/issues/5786))\r\n\r\nDynamic Groups now have a `group_type` field, which specifies whether this group is defined by an object filter, defined by aggregating other groups via set operations, or defined via static assignment of objects as group members (this third type is new in Nautobot 2.3). Additionally, you can now assign a tenant and/or tags to each Dynamic Group, and many more models now can be included in Dynamic Groups.\r\n\r\nA new model, `StaticGroupAssociation`, and associated REST API, have been added in support of the new \"static\" group type. See also \"[Dynamic Group Cache Changes](#dynamic-group-cache-changes-5473)\" below.\r\n\r\nFor more details, refer to the [Dynamic Group](../user-guide/platform-functionality/dynamicgroup.md) documentation.\r\n\r\n#### Interface and VMInterface Roles ([#4406](https://github.com/nautobot/nautobot/issues/4406))\r\n\r\nAdded an optional `role` field to Interface and VMInterface models to track common interface configurations. Now the users can create [Role](../user-guide/platform-functionality/role.md) instances that can be assigned to [interfaces](../user-guide/core-data-model/dcim/interface.md) and [vminterfaces](../user-guide/core-data-model/virtualization/vminterface.md).\r\n\r\n#### Object Metadata Models ([#5663](https://github.com/nautobot/nautobot/issues/5663))\r\n\r\nAdded [a set of functionality](../user-guide/platform-functionality/objectmetadata.md) for defining and managing object metadata, that is to say, data _about_ the network data managed in Nautobot, such as data provenance, data ownership, and data classification. For more details, refer to the linked documentation.\r\n\r\n#### Python 3.12 Support ([#5429](https://github.com/nautobot/nautobot/issues/5429))\r\n\r\nNautobot now supports Python 3.12, and Python 3.12 is now the default Python version included in the `nautobot` Docker images.\r\n\r\n#### Saved Views ([#1758](https://github.com/nautobot/nautobot/issues/1758))\r\n\r\nAdded the ability for users to save multiple configurations of list views (table columns, filtering, pagination and sorting) for ease of later use and reuse. Refer to the [Saved View](../user-guide/platform-functionality/savedview.md) documentation for more details and on how to use saved views.\r\n\r\n#### Worker Status Page ([#5873](https://github.com/nautobot/nautobot/issues/5873))\r\n\r\nUser accounts with the `is_staff` flag set can access a new worker status page at `/worker-status/` to view the status of the Celery worker(s) and the configured queues. The link to this page appears in the \"User\" dropdown at the bottom of the navigation menu, under the link to the \"Profile\" page. Use this page with caution as it runs a live query against the Celery worker(s) and may impact performance of your web service.\r\n\r\n### Changed\r\n\r\n#### Changed TreeManager Default Behavior ([#5786](https://github.com/nautobot/nautobot/issues/5786))\r\n\r\nThe `TreeManager` class (used for tree-models such as Location, RackGroup, and TenantGroup) default behavior has changed from `with_tree_fields` to `without_tree_fields`. This should improve performance in many cases but may impact Apps or Jobs that were relying on the old default; such code should be updated to explicitly call `.with_tree_fields()` where appropriate.\r\n\r\n#### Dynamic Group Cache Changes ([#5473](https://github.com/nautobot/nautobot/issues/5473))\r\n\r\nTo improve performance of the Dynamic Groups feature, a number of changes have been made:\r\n\r\n- Dynamic Groups now always use `StaticGroupAssociation` records as a database cache of their member objects, rather than optionally caching their members in Redis for a limited time period. For Dynamic Groups of types other than the new \"static\" group type, these `StaticGroupAssociation` records are hidden by default from the UI and REST API.\r\n- The `DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUT` setting variable is deprecated, as it no longer influences Dynamic Group cache behavior.\r\n- The APIs `DynamicGroup.members`, `DynamicGroup.count`, `DynamicGroup.has_member()`, and `object.dynamic_groups` now always use the database cache rather than being recalculated on the fly.\r\n- The APIs `DynamicGroup.members_cached`, `DynamicGroup.members_cache_key`, `object.dynamic_groups_cached`, `object.dynamic_groups_list`, and `object.dynamic_groups_list_cached` are now deprecated.\r\n- Editing a Dynamic Group definition refreshes its cached members and those of any \"parent\" groups that use it.\r\n- Viewing a Dynamic Group detail view in the UI refreshes its cached members (only).\r\n- A new System Job, `Refresh Dynamic Group Caches`, can be run or scheduled as appropriate to refresh Dynamic Group member caches on demand.\r\n- The existing API `DynamicGroup.update_cached_members()` can be called by Apps or Jobs needing to ensure that the cache is up-to-date for any given Dynamic Group.\r\n\r\n#### Log Cleanup as System Job ([#3749](https://github.com/nautobot/nautobot/issues/3749))\r\n\r\nCleanup of the change log (deletion of `ObjectChange` records older than a given cutoff) is now handled by the new `LogsCleanup` system Job, rather than occurring at random as a side effect of new change log records being created. Admins desiring automatic cleanup are encouraged to schedule this job to run at an appropriate interval suitable to your deployment's needs.\r\n\r\n!!! info\r\n    Setting [`CHANGELOG_RETENTION`](../user-guide/administration/configuration/optional-settings.md#changelog_retention) in your Nautobot configuration by itself no longer directly results in periodic cleanup of `ObjectChange` records. You must run (or schedule to periodically run) the `LogsCleanup` Job for this to occur.\r\n\r\nAs an additional enhancement, the `LogsCleanup` Job can also be used to cleanup `JobResult` records if desired as well.\r\n\r\n#### UI Button Consolidation ([#5869](https://github.com/nautobot/nautobot/issues/5869), [#5870](https://github.com/nautobot/nautobot/issues/5870), [#5871](https://github.com/nautobot/nautobot/issues/5871))\r\n\r\nVarious button groups in the \"object list\" and \"object detail\" views have been consolidated following a common UI pattern of a single button for the most common action plus a popup menu for less common actions.\r\n\r\n### Dependencies\r\n\r\n#### Updated to Django 4.2 ([#3581](https://github.com/nautobot/nautobot/issues/3581))\r\n\r\nAs Django 3.2 has reached end-of-life, Nautobot 2.3 requires Django 4.2, the next long-term-support (LTS) version of Django. There are a number of changes in Django itself as a result of this upgrade; Nautobot App maintainers are urged to review the Django release-notes ([4.0](https://docs.djangoproject.com/en/4.2/releases/4.0/), [4.1](https://docs.djangoproject.com/en/4.2/releases/4.1/), [4.2](https://docs.djangoproject.com/en/4.2/releases/4.2/)), especially the relevant \"Backwards incompatible changes\" sections, to proactively identify any impact to their Apps.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @gertzakis\r\n* @snaselj\r\n* @timizuoebideri1\r\n* @gsnider2195 \r\n* @smk4664\r\n* @renovate\r\n* @kvncampos\r\n* @lampwins\r\n* @jeffkala\r\n* @dependabot\r\n\r\n## New Contributors\r\n* @kvncampos made their first contribution in https://github.com/nautobot/nautobot/pull/5946\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.9...v2.3.0",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6083",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/169400194/reactions",
            "total_count": 4,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 4,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/168717024",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/168717024/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/168717024/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.9",
        "id": 168717024,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4KDmrg",
        "tag_name": "v2.2.9",
        "target_commitish": "main",
        "name": "v2.2.9 - 2024-08-05",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-08-05T13:32:57Z",
        "updated_at": "2024-08-05T14:04:06Z",
        "published_at": "2024-08-05T13:36:05Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/184008192",
                "id": 184008192,
                "node_id": "RA_kwDOFEucDc4K974A",
                "name": "nautobot-2.2.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32434364,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-08-05T14:04:05Z",
                "updated_at": "2024-08-05T14:04:06Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.9/nautobot-2.2.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/184008189",
                "id": 184008189,
                "node_id": "RA_kwDOFEucDc4K9739",
                "name": "nautobot-2.2.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31437406,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-08-05T14:04:04Z",
                "updated_at": "2024-08-05T14:04:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.9/nautobot-2.2.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.9",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#5965](https://github.com/nautobot/nautobot/issues/5965) - Added missing controller references for DeviceRedundancyGroup in the UI.\r\n- [#5980](https://github.com/nautobot/nautobot/issues/5980) - Added caching to `FeatureQuery().get_choices()` and `FeatureQuery().list_subclasses()`.\r\n- [#6029](https://github.com/nautobot/nautobot/issues/6029) - Added environment variable support for setting `CELERY_WORKER_PREFETCH_MULTIPLIER`.\r\n- [#6030](https://github.com/nautobot/nautobot/issues/6030) - Added links from the Job list and detail views to quickly filter the list of Job Results to the corresponding Job.\r\n\r\n### Fixed\r\n\r\n- [#5775](https://github.com/nautobot/nautobot/issues/5775) - Reintroduced `Add IP Address` button to VirtualMachine Interface table.\r\n- [#5785](https://github.com/nautobot/nautobot/issues/5785) - Fixed Scheduled Jobs not respecting Job Soft / Hard Time Limit.\r\n- [#5796](https://github.com/nautobot/nautobot/issues/5796) - Added missing validation to ensure that a DeviceBay can only contain Devices with a `subdevice_role` of `child`.\r\n- [#5811](https://github.com/nautobot/nautobot/issues/5811) - Fixed broken UI and added error message when submitting IPAddressAssignForm without selecting any IPAddress.\r\n- [#5812](https://github.com/nautobot/nautobot/issues/5812) - Fixed CSV file upload handling of \"UTF-8 with BOM\" encoding.\r\n- [#5904](https://github.com/nautobot/nautobot/issues/5904) - Fixed performance of JobResults UI when thousands of JobLogEntries are present.\r\n- [#5904](https://github.com/nautobot/nautobot/issues/5904) - Fixed performance when Bulk Importing large csv files.\r\n- [#5912](https://github.com/nautobot/nautobot/issues/5912) - Fixed incorrect `clean()` behavior on `IPAddress` that caused certain uniqueness violations to not be caught until `save()`.\r\n- [#5948](https://github.com/nautobot/nautobot/issues/5948) - Fixed table overflow.\r\n- [#5980](https://github.com/nautobot/nautobot/issues/5980) - Improved performance of GraphQL queries by no longer unnecessarily creating `FilterSet` instances when no filter is present.\r\n- [#5992](https://github.com/nautobot/nautobot/issues/5992) - Added signal to clear relevant content-type caches after running migrations.\r\n- [#6022](https://github.com/nautobot/nautobot/issues/6022) - Fixed incorrect labels for derived filters (`tenant__n`, `tenant__isw`, etc.) when the base filter (`tenant`, etc.) has a custom label.\r\n\r\n### Dependencies\r\n\r\n- [#6010](https://github.com/nautobot/nautobot/issues/6010) - Pinned `django-storages` temporarily to 1.14.3 due to an [incompatibility](https://github.com/revsys/django-health-check/issues/434) between `django-health-check` and version 1.14.4 of `django-storages`.\r\n\r\n### Documentation\r\n\r\n- [#5949](https://github.com/nautobot/nautobot/issues/5949) - Fixed NewBranch job code in documentation.\r\n- [#5958](https://github.com/nautobot/nautobot/issues/5958) - Added an example job that uses a custom template to render the job form.\r\n- [#5959](https://github.com/nautobot/nautobot/issues/5959) - Fixed documentation structure and added documentation on contributing documentation updates.\r\n- [#5971](https://github.com/nautobot/nautobot/issues/5971) - Added documentation for registering jobs from Git Repositories.\r\n- [#6024](https://github.com/nautobot/nautobot/issues/6024) - Added documentation for the `nautobot-server validate_models` command.\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @timizuoebideri1 \r\n* @MCDELTAT\r\n* @HanlinMiao\r\n* @glennmatthews\r\n* @itdependsnetworks\r\n* @jnmms\r\n* @jvanderaa\r\n* @abates\r\n* @tsm1th\r\n* @joewesch\r\n\r\n## New Contributors\r\n* @MCDELTAT made their first contribution in https://github.com/nautobot/nautobot/pull/5950\r\n* @jnmms made their first contribution in https://github.com/nautobot/nautobot/pull/6022\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.8...v2.2.9",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/6043",
        "mentions_count": 11
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/167225691",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/167225691/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/167225691/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.3.0-beta.1",
        "id": 167225691,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4J96lb",
        "tag_name": "v2.3.0-beta.1",
        "target_commitish": "next",
        "name": "v2.3.0-beta.1",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2024-07-26T00:10:30Z",
        "updated_at": "2024-07-26T00:53:52Z",
        "published_at": "2024-07-26T00:15:50Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/181905279",
                "id": 181905279,
                "node_id": "RA_kwDOFEucDc4K16d_",
                "name": "nautobot-2.3.0b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 35651511,
                "digest": null,
                "download_count": 6,
                "created_at": "2024-07-26T00:53:51Z",
                "updated_at": "2024-07-26T00:53:52Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.0-beta.1/nautobot-2.3.0b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/181905277",
                "id": 181905277,
                "node_id": "RA_kwDOFEucDc4K16d9",
                "name": "nautobot-2.3.0b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 34579177,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-07-26T00:53:50Z",
                "updated_at": "2024-07-26T00:53:51Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.3.0-beta.1/nautobot-2.3.0b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.3.0-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.3.0-beta.1",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n#### Added an Optional `role` field to Interface and VMInterface models ([#4406](https://github.com/nautobot/nautobot/issues/4406))\r\n\r\nAdded an optional `role` field to Interface and VMInterface models to track common interface configurations. Now the users can create [Role](../user-guide/platform-functionality/role.md) instances that can be assigned to [interfaces](../user-guide/core-data-model/dcim/interface.md) and [vminterfaces](../user-guide/core-data-model/virtualization/vminterface.md).\r\n\r\n#### Cloud Models ([#5716](https://github.com/nautobot/nautobot/issues/5716), [#5719](https://github.com/nautobot/nautobot/issues/5719), [#5721](https://github.com/nautobot/nautobot/issues/5721), [#5872](https://github.com/nautobot/nautobot/issues/5872))\r\n\r\nAdded the new models `CloudAccount`, `CloudResourceType`, `CloudNetwork`, and `CloudService` to support recording of cloud provider accounts (AWS, Azure, GCP, DigitalOcean, etc.), cloud resource types (AWS EC2, Azure Virtual Machine Service, Google App Engine, etc.), cloud services (specific instances of services described by cloud resource types) and cloud network objects (such as VPCs) in Nautobot.\r\n\r\n#### Dynamic Group Enhancements\r\n\r\nDynamic Groups now have a `group_type` field, which specifies whether this group is defined by an object filter, defined by aggregating other groups via set operations, or defined via static assignment of objects as group members (this third type is new in Nautobot 2.3). Additionally, you can now assign a tenant and/or tags to each Dynamic Group.\r\n\r\nA new model, `StaticGroupAssociation`, and associated REST API, have been added in support of the new \"static\" group type. See also \"[Dynamic Group Cache Changes](#dynamic-group-cache-changes)\" below.\r\n\r\nFor more details, refer to the [Dynamic Group](../user-guide/platform-functionality/dynamicgroup.md) documentation.\r\n\r\n#### Object Metadata Models ([#5663](https://github.com/nautobot/nautobot/issues/5663))\r\n\r\nAdded [a set of functionality](../user-guide/platform-functionality/metadata.md) for defining and managing object metadata, that is to say, data _about_ the network data managed in Nautobot, such as data provenance, data ownership, and data classification. For more details, refer to the linked documentation.\r\n\r\n#### Saved Views\r\n\r\nAdded the ability for users to save multiple configurations of list views (table columns, filtering, pagination and sorting) for ease of later use and reuse. Refer to the [Saved View](../user-guide/platform-functionality/savedview.md) documentation for more details and on how to use saved views.\r\n\r\n#### Device Modules ([#2101](https://github.com/nautobot/nautobot/issues/2101))\r\n\r\nAdded new models for `ModuleBay`, `Module`, `ModuleType`, and `ModuleBayTemplate` to support modeling line cards and other modular components of a device. These models allow you to define a hierarchy of module bays and modules within a device, and to assign components (such as interfaces, power ports, etc.) to specific modules.\r\n\r\n### Changed\r\n\r\n#### Dynamic Group Cache Changes\r\n\r\nTo improve performance of the Dynamic Groups feature, a number of changes have been made:\r\n\r\n- Dynamic Groups now always use `StaticGroupAssociation` records as a database cache of their member objects, rather than optionally caching their members in Redis for a limited time period. For Dynamic Groups of types other than the new \"static\" group type, these `StaticGroupAssociation` records are hidden by default from the UI and REST API.\r\n- The `DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUT` setting variable is deprecated, as it no longer influences Dynamic Group cache behavior.\r\n- The APIs `DynamicGroup.members`, `DynamicGroup.count`, `DynamicGroup.has_member()`, and `object.dynamic_groups` now always use the database cache rather than being recalculated on the fly.\r\n- The APIs `DynamicGroup.members_cached`, `DynamicGroup.members_cache_key`, `object.dynamic_groups_cached`, `object.dynamic_groups_list`, and `object.dynamic_groups_list_cached` are now deprecated.\r\n- Editing a Dynamic Group definition refreshes its cached members and those of any \"parent\" groups that use it.\r\n- Viewing a Dynamic Group detail view in the UI refreshes its cached members (only).\r\n- A new System Job, `Refresh Dynamic Group Caches`, can be run or scheduled as apprropriate to refresh Dynamic Group member caches on demand.\r\n- The existing API `DynamicGroup.update_cached_members()` can be called by Apps or Jobs needing to ensure that the cache is up-to-date for any given Dynamic Group.\r\n\r\n#### Updated to Django 4.2\r\n\r\nAs Django 3.2 has reached end-of-life, Nautobot 2.3 requires Django 4.2, the next long-term-support (LTS) version of Django. There are a number of changes in Django itself as a result of this upgrade; Nautobot App maintainers are urged to review the Django release-notes ([4.0](https://docs.djangoproject.com/en/4.2/releases/4.0/), [4.1](https://docs.djangoproject.com/en/4.2/releases/4.1/), [4.2](https://docs.djangoproject.com/en/4.2/releases/4.2/)), especially the relevant \"Backwards incompatible changes\" sections, to proactively identify any impact to their Apps.\r\n\r\n#### Log Cleanup as System Job ([#3749](https://github.com/nautobot/nautobot/issues/3749))\r\n\r\nCleanup of the change log (deletion of `ObjectChange` records older than a given cutoff) is now handled by the new `LogsCleanup` system Job, rather than occurring at random as a side effect of new change log records being created. Admins desiring automatic cleanup are encouraged to schedule this job to run at an appropriate interval suitable to your deployment's needs.\r\n\r\n!!! info\r\n    Setting [`CHANGELOG_RETENTION`](../user-guide/administration/configuration/optional-settings.md#changelog_retention) in your Nautobot configuration by itself no longer directly results in periodic cleanup of `ObjectChange` records. You must run (or schedule to periodically run) the `LogsCleanup` Job for this to occur.\r\n\r\nAs an additional enhancement, the `LogsCleanup` Job can also be used to cleanup `JobResult` records if desired as well.\r\n\r\n## Contributors\r\n\r\n* @gertzakis\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @HanlinMiao\r\n* @kvncampos\r\n* @smk4664\r\n* @snaselj\r\n* @timizuoebideri1\r\n\r\n## New Contributors\r\n\r\n* @kvncampos made their first contribution in https://github.com/nautobot/nautobot/pull/5946\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.8...v2.3.0-beta.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5995",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/166586013",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/166586013/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/166586013/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.8",
        "id": 166586013,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4J7ead",
        "tag_name": "v2.2.8",
        "target_commitish": "main",
        "name": "v2.2.8 - 2024-07-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-07-22T19:39:57Z",
        "updated_at": "2024-07-22T20:52:52Z",
        "published_at": "2024-07-22T20:25:54Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/181169047",
                "id": 181169047,
                "node_id": "RA_kwDOFEucDc4KzGuX",
                "name": "nautobot-2.2.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32426989,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-07-22T20:52:51Z",
                "updated_at": "2024-07-22T20:52:52Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.8/nautobot-2.2.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/181169046",
                "id": 181169046,
                "node_id": "RA_kwDOFEucDc4KzGuW",
                "name": "nautobot-2.2.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31432890,
                "digest": null,
                "download_count": 13,
                "created_at": "2024-07-22T20:52:50Z",
                "updated_at": "2024-07-22T20:52:51Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.8/nautobot-2.2.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.8",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5911](https://github.com/nautobot/nautobot/issues/5911) - Updated `zipp` to `3.19.1` to address `CVE-2024-5569`. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Fixed\r\n\r\n- [#5569](https://github.com/nautobot/nautobot/issues/5569) - Fixed relationship required to ignore objects that do not match the related filter.\r\n- [#5613](https://github.com/nautobot/nautobot/issues/5613) - Fixed intermittent failure in integration test for dynamic groups.\r\n- [#5906](https://github.com/nautobot/nautobot/issues/5906) - Added support for filtering in GraphQL of objects identified by a many-to-many relation (`Location.prefixes`, `Prefix.locations`, etc.)\r\n- [#5935](https://github.com/nautobot/nautobot/issues/5935) - Fixed issue in which a save() could be called unnecessarily on child devices.\r\n\r\n### Dependencies\r\n\r\n- [#5833](https://github.com/nautobot/nautobot/issues/5833) - Updated dependency `social-auth-app-django` to `~5.4.2`.\r\n- [#5833](https://github.com/nautobot/nautobot/issues/5833) - Updated optional dependency `django-storages` to `~1.14.4`.\r\n\r\n### Documentation\r\n\r\n- [#5833](https://github.com/nautobot/nautobot/issues/5833) - Updated documentation dependency `mkdocs-material` to `~9.5.29`.\r\n- [#5874](https://github.com/nautobot/nautobot/issues/5874) - Updated documentation regarding Nautobot on Ubuntu 24.04.\r\n\r\n### Housekeeping\r\n\r\n- [#5610](https://github.com/nautobot/nautobot/issues/5610) - Added integration test to do basic checking for static media failures caused by typos in template files.\r\n\r\n## Contributors\r\n\r\n* @gsnider2195\r\n* @jvanderaa\r\n* @glennmatthews\r\n* @nrnvgh\r\n\r\n## New Contributors\r\n* @sdoiron0330 made their first contribution in https://github.com/nautobot/nautobot/pull/5570\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.7...v2.2.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5972",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/166598655",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/166598655/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/166598655/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.26",
        "id": 166598655,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4J7hf_",
        "tag_name": "v1.6.26",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.26 - 2024-07-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-07-22T19:53:50Z",
        "updated_at": "2024-07-22T22:51:23Z",
        "published_at": "2024-07-22T22:06:24Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/181192773",
                "id": 181192773,
                "node_id": "RA_kwDOFEucDc4KzMhF",
                "name": "nautobot-1.6.26-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31001533,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-07-22T22:51:23Z",
                "updated_at": "2024-07-22T22:51:23Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.26/nautobot-1.6.26-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/181192772",
                "id": 181192772,
                "node_id": "RA_kwDOFEucDc4KzMhE",
                "name": "nautobot-1.6.26.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30310551,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-07-22T22:51:22Z",
                "updated_at": "2024-07-22T22:51:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.26/nautobot-1.6.26.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.26",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.26",
        "body": "## What's Changed\r\n\r\n### Fixed\r\n\r\n- [#5935](https://github.com/nautobot/nautobot/issues/5935) - Fixed issue in which a save() could be called unnecessarily on child devices.\r\n\r\n## Contributors\r\n* @nrnvgh\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.25...v1.6.26",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5975",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/164660095",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/164660095/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/164660095/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.25",
        "id": 164660095,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4J0IN_",
        "tag_name": "v1.6.25",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.25 - 2024-07-09",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-07-09T17:46:18Z",
        "updated_at": "2024-07-09T18:34:27Z",
        "published_at": "2024-07-09T17:49:34Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/178610864",
                "id": 178610864,
                "node_id": "RA_kwDOFEucDc4KpWKw",
                "name": "nautobot-1.6.25-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31000894,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-07-09T18:34:26Z",
                "updated_at": "2024-07-09T18:34:27Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.25/nautobot-1.6.25-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/178610860",
                "id": 178610860,
                "node_id": "RA_kwDOFEucDc4KpWKs",
                "name": "nautobot-1.6.25.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30309596,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-07-09T18:34:25Z",
                "updated_at": "2024-07-09T18:34:26Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.25/nautobot-1.6.25.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.25",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.25",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5891](https://github.com/nautobot/nautobot/issues/5891) - Updated `certifi` to `2024.7.4` to address `CVE-2024-39689`. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Dependencies\r\n\r\n- [#5897](https://github.com/nautobot/nautobot/pull/5897) - Pinned dev dependency `faker` to `>=0.7.0,<26.0.0` to work around breaking change in v26.0.0 ([faker/#2070](https://github.com/joke2k/faker/issues/2070)).\r\n\r\n## Contributors\r\n- @glennmatthews \r\n- @gsnider2195 \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.24...v1.6.25",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5908",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/164492039",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/164492039/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/164492039/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.7",
        "id": 164492039,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JzfMH",
        "tag_name": "v2.2.7",
        "target_commitish": "main",
        "name": "v2.2.7 - 2024-07-08",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-07-08T21:28:28Z",
        "updated_at": "2024-07-08T21:58:45Z",
        "published_at": "2024-07-08T21:31:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/178426351",
                "id": 178426351,
                "node_id": "RA_kwDOFEucDc4KopHv",
                "name": "nautobot-2.2.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32422380,
                "digest": null,
                "download_count": 17,
                "created_at": "2024-07-08T21:58:44Z",
                "updated_at": "2024-07-08T21:58:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.7/nautobot-2.2.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/178426350",
                "id": 178426350,
                "node_id": "RA_kwDOFEucDc4KopHu",
                "name": "nautobot-2.2.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31430236,
                "digest": null,
                "download_count": 21,
                "created_at": "2024-07-08T21:58:42Z",
                "updated_at": "2024-07-08T21:58:43Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.7/nautobot-2.2.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.7",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5891](https://github.com/nautobot/nautobot/issues/5891) - Updated `certifi` to `2024.7.4` to address `CVE-2024-39689`. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Fixed\r\n\r\n- [#4237](https://github.com/nautobot/nautobot/issues/4237) - Fixed display issue with multiple tags filter on dynamic groups. Multiple Tags are now correctly displayed with an AND.\r\n- [#5093](https://github.com/nautobot/nautobot/issues/5093) - Fixed blank page redirect when syncing or running a dry run on a GIT Repo with no workers available; now redirects to the GIT Repo Detail page with an error message.\r\n- [#5804](https://github.com/nautobot/nautobot/issues/5804) - Fixed operation of \"Mark planned\"/\"Mark installed\" button in Device component table views.\r\n- [#5832](https://github.com/nautobot/nautobot/issues/5832) - Fixed lack of API versioning of responses to a POST to `/api/ipam/prefixes/<id>/available-prefixes/` to allocate child prefixes of a prefix.\r\n- [#5832](https://github.com/nautobot/nautobot/issues/5832) - Fixed incorrect OpenAPI schema for `/api/ipam/prefixes/<id>/available-prefixes/` and `/api/ipam/prefixes/<id>/available-ips/`.\r\n\r\n### Dependencies\r\n\r\n- [#5518](https://github.com/nautobot/nautobot/issues/5518) - Updated `drf-spectacular` to version `0.27.2`.\r\n- [#5896](https://github.com/nautobot/nautobot/pull/5896) - Pinned dev dependency `faker` to `>=0.7.0,<26.0.0` to work around breaking change in v26.0.0 ([faker/#2070](https://github.com/joke2k/faker/issues/2070)).\r\n\r\n### Housekeeping\r\n\r\n- [#5847](https://github.com/nautobot/nautobot/issues/5847) - Updated the term plugin to app within the GitHub templates.\r\n- [#5858](https://github.com/nautobot/nautobot/issues/5858) - Enhanced the test runner to include a hash of applied database migrations as part of the factory dump filename, reducing the likelihood of using the wrong cached data for a given branch.\r\n\r\n## Contributors\r\n- @glennmatthews \r\n- @timizuoebideri1 \r\n- @jvanderaa \r\n- @smk4664 \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.6...v2.2.7",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5899",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/162153907",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/162153907/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/162153907/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.6",
        "id": 162153907,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JqkWz",
        "tag_name": "v2.2.6",
        "target_commitish": "main",
        "name": "v2.2.6 - 2024-06-24",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-06-24T20:46:42Z",
        "updated_at": "2024-06-24T21:17:06Z",
        "published_at": "2024-06-24T20:48:37Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/175701500",
                "id": 175701500,
                "node_id": "RA_kwDOFEucDc4KeP38",
                "name": "nautobot-2.2.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32419280,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-06-24T21:17:05Z",
                "updated_at": "2024-06-24T21:17:06Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.6/nautobot-2.2.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/175701499",
                "id": 175701499,
                "node_id": "RA_kwDOFEucDc4KeP37",
                "name": "nautobot-2.2.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31426095,
                "digest": null,
                "download_count": 13,
                "created_at": "2024-06-24T21:17:03Z",
                "updated_at": "2024-06-24T21:17:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.6/nautobot-2.2.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.6",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5821](https://github.com/nautobot/nautobot/issues/5821) - Updated `urllib3` to 2.2.2 due to CVE-2024-37891. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Added\r\n\r\n- [#5550](https://github.com/nautobot/nautobot/issues/5550) - Added support for specifying a tag or a commit hash as the GitRepository `branch` value.\r\n- [#5550](https://github.com/nautobot/nautobot/issues/5550) - Added an `enabled` flag to the JobButton class; disabled JobButtons will not appear in the UI.\r\n- [#5793](https://github.com/nautobot/nautobot/issues/5793) - Added `--print-hashes` option to `nautobot-server generate_test_data` command.\r\n- [#5807](https://github.com/nautobot/nautobot/issues/5807) - Added the ability to sort and filter the `IPAddress` list view by the `nat_inside` field.\r\n\r\n### Changed\r\n\r\n- [#5550](https://github.com/nautobot/nautobot/issues/5550) - Changed the behavior on removal of a previously-installed Job class to additionally auto-disable any JobButtons, JobHooks, and ScheduledJobs referencing this class.\r\n\r\n### Fixed\r\n\r\n- [#5550](https://github.com/nautobot/nautobot/issues/5550) - Fixed an issue where config-contexts and export-templates sourced from a Git repository might not be automatically deleted from Nautobot after removing them from the repository and resyncing it.\r\n- [#5550](https://github.com/nautobot/nautobot/issues/5550) - Fixed an exception that might be raised when performing a Git repository \"dry-run\" sync if certain types of diffs are present.\r\n- [#5782](https://github.com/nautobot/nautobot/issues/5782) - Fixed an issue with Job code not being fully reloaded after syncing a Git repository.\r\n- [#5809](https://github.com/nautobot/nautobot/issues/5809) - Fixed missing support for the GitRepository model in GraphQL.\r\n- [#5819](https://github.com/nautobot/nautobot/issues/5819) - Fixed inability to use bare (local-DNS) hostnames when specifying a GitRepository remote URL.\r\n\r\n### Documentation\r\n\r\n- [#5726](https://github.com/nautobot/nautobot/issues/5726) - Updated, cleaned up, and separated out the main landing page for Nautobot docs.\r\n- [#5752](https://github.com/nautobot/nautobot/issues/5752) - Corrected incorrect entry for `nautobot.utilities.ordering` in `v2-code-location-changes` table.\r\n- [#5754](https://github.com/nautobot/nautobot/issues/5754) - Updated `mkdocs-material` to 9.5.25.\r\n\r\n### Housekeeping\r\n\r\n- [#5754](https://github.com/nautobot/nautobot/issues/5754) - Updated development dependencies `requests` to `~2.32.2` and `watchdog` to `~4.0.1`.\r\n- [#5793](https://github.com/nautobot/nautobot/issues/5793) - Refactored `generate_test_data` implementation for improved debuggability.\r\n- [#5793](https://github.com/nautobot/nautobot/issues/5793) - Fixed a bug in `ControllerManagedDeviceGroupFactory` that could result in nondeterministic test data.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @qduk\r\n* @jvanderaa\r\n* @abates\r\n* @renovate\r\n* @dependabot\r\n* @timizuoebideri1\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.5...v2.2.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5843",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/162154139",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/162154139/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/162154139/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.24",
        "id": 162154139,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Jqkab",
        "tag_name": "v1.6.24",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.24 - 2024-06-24",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-06-24T20:45:25Z",
        "updated_at": "2024-06-24T21:37:09Z",
        "published_at": "2024-06-24T20:50:41Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/175703694",
                "id": 175703694,
                "node_id": "RA_kwDOFEucDc4KeQaO",
                "name": "nautobot-1.6.24-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31000570,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-06-24T21:37:08Z",
                "updated_at": "2024-06-24T21:37:09Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.24/nautobot-1.6.24-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/175703690",
                "id": 175703690,
                "node_id": "RA_kwDOFEucDc4KeQaK",
                "name": "nautobot-1.6.24.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30308888,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-06-24T21:37:07Z",
                "updated_at": "2024-06-24T21:37:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.24/nautobot-1.6.24.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.24",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.24",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5821](https://github.com/nautobot/nautobot/issues/5821) - Updated `urllib3` to 2.2.2 due to CVE-2024-37891. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Housekeeping\r\n\r\n- [#5754](https://github.com/nautobot/nautobot/issues/5754) - Updated development dependency `requests` to `~2.32.2`.\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.23...v1.6.24"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/157876647",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/157876647/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/157876647/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.5",
        "id": 157876647,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JaQGn",
        "tag_name": "v2.2.5",
        "target_commitish": "main",
        "name": "v2.2.5 - 2024-05-28",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-05-28T21:12:55Z",
        "updated_at": "2024-05-28T21:53:09Z",
        "published_at": "2024-05-28T21:14:43Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/170607759",
                "id": 170607759,
                "node_id": "RA_kwDOFEucDc4KK0SP",
                "name": "nautobot-2.2.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32228788,
                "digest": null,
                "download_count": 14,
                "created_at": "2024-05-28T21:53:08Z",
                "updated_at": "2024-05-28T21:53:09Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.5/nautobot-2.2.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/170607757",
                "id": 170607757,
                "node_id": "RA_kwDOFEucDc4KK0SN",
                "name": "nautobot-2.2.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31250589,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-05-28T21:53:07Z",
                "updated_at": "2024-05-28T21:53:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.5/nautobot-2.2.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.5",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5740](https://github.com/nautobot/nautobot/issues/5740) - Updated `requests` to `2.32.1` to address [GHSA-9wx4-h78v-vm56](https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56). This is not a direct dependency so it will not auto-update when upgrading Nautobot. Please be sure to update your local environment.\r\n- [#5757](https://github.com/nautobot/nautobot/issues/5757) - Fixed missing member object permission enforcement (e.g., enforce Device permissions for a Dynamic Group containing Devices) when viewing Dynamic Group member objects in the UI or REST API ([GHSA-qmjf-wc2h-6x3q](https://github.com/nautobot/nautobot/security/advisories/GHSA-qmjf-wc2h-6x3q)).\r\n\r\n### Added\r\n\r\n- [#5588](https://github.com/nautobot/nautobot/issues/5588) - Added \"Add VRFs\" and \"Remove VRFs\" fields to `PrefixBulkEditForm`.\r\n- [#5588](https://github.com/nautobot/nautobot/issues/5588) - Added \"Add Prefixes\" and \"Remove Prefixes\" fields to `VRFBulkEditForm`.\r\n- [#5655](https://github.com/nautobot/nautobot/issues/5655) - Added \"Device Family\" as a configurable column in the Device Types table view.\r\n- [#5690](https://github.com/nautobot/nautobot/issues/5690) - Added a generic test case that asserts that all list views provide an appropriate FilterForm class.\r\n- [#5747](https://github.com/nautobot/nautobot/issues/5747) - Added \"Circuit Terminations\" navigation menu item.\r\n\r\n### Removed\r\n\r\n- [#5690](https://github.com/nautobot/nautobot/issues/5690) - Removed deprecated `CustomFieldFilterForm` alias of `CustomFieldModelFilterFormMixin` as this would have caused confusion with the newly added `CustomFieldFilterForm` class providing filtering support for the Custom Fields list view.\r\n\r\n### Fixed\r\n\r\n- [#5564](https://github.com/nautobot/nautobot/issues/5564) - Fixed `ContactAssociationFilterSet.associated_object_type` not using the right filter field.\r\n- [#5669](https://github.com/nautobot/nautobot/issues/5669) - Fixed `AttributeError` thrown when deleting software versions or images from list views.\r\n- [#5690](https://github.com/nautobot/nautobot/issues/5690) - Fixed a Javascript error when attempting to filter certain list views.\r\n- [#5690](https://github.com/nautobot/nautobot/issues/5690) - Added missing \"default\" filter forms for a number of list views.\r\n- [#5703](https://github.com/nautobot/nautobot/issues/5703) - Fixed unintended creation of `_custom_field_data` filter on various FilterSets.\r\n- [#5703](https://github.com/nautobot/nautobot/issues/5703) - Fixed `Filter \"_custom_field_data\" on ... is not GraphQL safe, and will be omitted` warning logs when generating the GraphQL schema.\r\n- [#5707](https://github.com/nautobot/nautobot/issues/5707) - Fixed incorrect installation of `xmlsec` library in the Nautobot Docker images.\r\n- [#5708](https://github.com/nautobot/nautobot/issues/5708) - Fixed integrity error when doing bulk edits that resulted from a delete operation on a related model.\r\n- [#5738](https://github.com/nautobot/nautobot/issues/5738) - Fixed incorrect API query parameters when selecting VLANs to apply to a VM Interface.\r\n- [#5738](https://github.com/nautobot/nautobot/issues/5738) - Fixed incorrect query parameters when accessing or creating Clusters from a Cluster Type detail view.\r\n\r\n### Documentation\r\n\r\n- [#5699](https://github.com/nautobot/nautobot/issues/5699) - Updated to `mkdocs~1.6.0` and `mkdocs-material~9.5.23`.\r\n- [#5699](https://github.com/nautobot/nautobot/issues/5699) - Fixed a number of broken links within the documentation.\r\n\r\n### Housekeeping\r\n\r\n- [#5699](https://github.com/nautobot/nautobot/issues/5699) - Updated `pylint` to `~3.1.1`.\r\n- [#5740](https://github.com/nautobot/nautobot/issues/5740) - Updated test dependency `requests` to `~2.32.1`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @tsm1th\r\n* @timizuoebideri1\r\n* @renovate \r\n* @dependabot\r\n* @HanlinMiao\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.4...v2.2.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5770",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/157871380",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/157871380/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/157871380/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.23",
        "id": 157871380,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JaO0U",
        "tag_name": "v1.6.23",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.23 - 2024-05-28",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-05-28T20:30:23Z",
        "updated_at": "2024-05-28T21:31:20Z",
        "published_at": "2024-05-28T20:32:40Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/170604641",
                "id": 170604641,
                "node_id": "RA_kwDOFEucDc4KKzhh",
                "name": "nautobot-1.6.23-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31000351,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-05-28T21:31:19Z",
                "updated_at": "2024-05-28T21:31:20Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.23/nautobot-1.6.23-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/170604637",
                "id": 170604637,
                "node_id": "RA_kwDOFEucDc4KKzhd",
                "name": "nautobot-1.6.23.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30309463,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-05-28T21:31:18Z",
                "updated_at": "2024-05-28T21:31:19Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.23/nautobot-1.6.23.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.23",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.23",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5740](https://github.com/nautobot/nautobot/issues/5740) - Updated `requests` to `2.32.1` to address [GHSA-9wx4-h78v-vm56](https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56). This is not a direct dependency so it will not auto-update when upgrading Nautobot. Please be sure to update your local environment.\r\n- [#5762](https://github.com/nautobot/nautobot/issues/5762) - Fixed missing member object permission enforcement (e.g., enforce Device permissions for a Dynamic Group containing Devices) when viewing Dynamic Group member objects in the UI or REST API ([GHSA-qmjf-wc2h-6x3q](https://github.com/nautobot/nautobot/security/advisories/GHSA-qmjf-wc2h-6x3q)).\r\n\r\n### Housekeeping\r\n\r\n- [#5740](https://github.com/nautobot/nautobot/issues/5740) - Updated test dependency `requests` to `~2.32.1`.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.22...v1.6.23",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5769",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/155551340",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/155551340/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/155551340/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.4",
        "id": 155551340,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JRYZs",
        "tag_name": "v2.2.4",
        "target_commitish": "main",
        "name": "v2.2.4 - 2024-05-13",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-05-13T17:28:14Z",
        "updated_at": "2024-05-13T17:54:58Z",
        "published_at": "2024-05-13T17:31:33Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/167677725",
                "id": 167677725,
                "node_id": "RA_kwDOFEucDc4J_o8d",
                "name": "nautobot-2.2.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32221428,
                "digest": null,
                "download_count": 14,
                "created_at": "2024-05-13T17:54:57Z",
                "updated_at": "2024-05-13T17:54:58Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.4/nautobot-2.2.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/167677723",
                "id": 167677723,
                "node_id": "RA_kwDOFEucDc4J_o8b",
                "name": "nautobot-2.2.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31243588,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-05-13T17:54:56Z",
                "updated_at": "2024-05-13T17:54:57Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.4/nautobot-2.2.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.4",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#1858](https://github.com/nautobot/nautobot/issues/1858) - Added sanitization of HTML tags in the content of `BANNER_TOP`, `BANNER_BOTTOM`, and `BANNER_LOGIN` configuration to prevent against potential injection of malicious scripts (stored XSS) via these features ([GHSA-r2hr-4v48-fjv3](https://github.com/nautobot/nautobot/security/advisories/GHSA-r2hr-4v48-fjv3)).\r\n- [#5672](https://github.com/nautobot/nautobot/issues/5672) - Updated `Jinja2` dependency to `3.1.4` to address `CVE-2024-34064`.\r\n\r\n### Added\r\n\r\n- [#1858](https://github.com/nautobot/nautobot/issues/1858) - Added support in `BRANDING_FILEPATHS` configuration to specify a custom `css` and/or `javascript` file to be added to Nautobot page content.\r\n- [#1858](https://github.com/nautobot/nautobot/issues/1858) - Added Markdown support to the `BANNER_TOP`, `BANNER_BOTTOM`, and `BANNER_LOGIN` configuration settings.\r\n\r\n### Fixed\r\n\r\n- [#4986](https://github.com/nautobot/nautobot/issues/4986) - Fixed inconsistent use of super causing `active_tab` context to be missing from several views.\r\n- [#5644](https://github.com/nautobot/nautobot/issues/5644) - Made the uniqueness constraints between the ContactAssociation model and the related API serializer consistent.\r\n- [#5684](https://github.com/nautobot/nautobot/issues/5684) - Fixed standard CSV export when using export templates.\r\n- [#5689](https://github.com/nautobot/nautobot/issues/5689) - Fixed change logging for bulk delete operations so that user is included in the log.\r\n\r\n### Documentation\r\n\r\n- [#5661](https://github.com/nautobot/nautobot/issues/5661) - Updated documentation to organize installation instructions and provide easier to use functions from mkdocs.\r\n\r\n### Housekeeping\r\n\r\n- [#5263](https://github.com/nautobot/nautobot/issues/5263) - Updated `nh3` to `0.2.17` in `poetry.lock`.\r\n- [#5637](https://github.com/nautobot/nautobot/issues/5637) - Removed \"version\" from development `docker-compose.yml` files as newer versions of Docker complain about it being obsolete.\r\n- [#5637](https://github.com/nautobot/nautobot/issues/5637) - Fixed behavior of `invoke stop` so that it also stops the optional `mkdocs` container if present.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @jdueitt\r\n* @renovate\r\n* @joewesch\r\n* @whitej6\r\n* @jvanderaa\r\n* @tsm1th\r\n* @HanlinMiao\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.3...v2.2.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5704",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/155551648",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/155551648/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/155551648/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.22",
        "id": 155551648,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JRYeg",
        "tag_name": "v1.6.22",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.22 - 2024-05-13",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-05-13T17:32:21Z",
        "updated_at": "2024-05-13T19:34:23Z",
        "published_at": "2024-05-13T17:33:52Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/167690017",
                "id": 167690017,
                "node_id": "RA_kwDOFEucDc4J_r8h",
                "name": "nautobot-1.6.22-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30999158,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-05-13T19:34:22Z",
                "updated_at": "2024-05-13T19:34:23Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.22/nautobot-1.6.22-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/167690016",
                "id": 167690016,
                "node_id": "RA_kwDOFEucDc4J_r8g",
                "name": "nautobot-1.6.22.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30307931,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-05-13T19:34:21Z",
                "updated_at": "2024-05-13T19:34:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.22/nautobot-1.6.22.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.22",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.22",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#1858](https://github.com/nautobot/nautobot/issues/1858) - Added sanitization of HTML tags in the content of `BANNER_TOP`, `BANNER_BOTTOM`, and `BANNER_LOGIN` configuration to prevent against potential injection of malicious scripts (stored XSS) via these features ([GHSA-r2hr-4v48-fjv3](https://github.com/nautobot/nautobot/security/advisories/GHSA-r2hr-4v48-fjv3)).\r\n\r\n### Added\r\n\r\n- [#1858](https://github.com/nautobot/nautobot/issues/1858) - Added support in `BRANDING_FILEPATHS` configuration to specify a custom `css` and/or `javascript` file to be added to Nautobot page content.\r\n- [#1858](https://github.com/nautobot/nautobot/issues/1858) - Added Markdown support to the `BANNER_TOP`, `BANNER_BOTTOM`, and `BANNER_LOGIN` configuration settings.\r\n\r\n### Fixed\r\n\r\n- [#2974](https://github.com/nautobot/nautobot/issues/2974) - Fixed an error when deleting and then recreating a GitRepository that provides Jobs.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.21...v1.6.22",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5705",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/154597281",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/154597281/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/154597281/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.21",
        "id": 154597281,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JNveh",
        "tag_name": "v1.6.21",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.21 - 2024-05-07",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-05-07T14:29:29Z",
        "updated_at": "2024-05-07T15:15:01Z",
        "published_at": "2024-05-07T14:32:12Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/166532778",
                "id": 166532778,
                "node_id": "RA_kwDOFEucDc4J7Raq",
                "name": "nautobot-1.6.21-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30996851,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-05-07T15:14:59Z",
                "updated_at": "2024-05-07T15:15:01Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.21/nautobot-1.6.21-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/166532769",
                "id": 166532769,
                "node_id": "RA_kwDOFEucDc4J7Rah",
                "name": "nautobot-1.6.21.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30305615,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-05-07T15:14:57Z",
                "updated_at": "2024-05-07T15:14:58Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.21/nautobot-1.6.21.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.21",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.21",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5521](https://github.com/nautobot/nautobot/issues/5521) - Updated `Pillow` dependency to `~10.3.0` to address `CVE-2024-28219`.\r\n- [#5561](https://github.com/nautobot/nautobot/issues/5561) - Updated `idna` to `3.7` due to `CVE-2024-3651`. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#5624](https://github.com/nautobot/nautobot/issues/5624) - Updated `social-auth-app-django` dependency to `~5.4.1` to address `CVE-2024-32879`.\r\n- [#5675](https://github.com/nautobot/nautobot/issues/5675) - Updated `Jinja2` dependency to `3.1.4` to address `CVE-2024-34064`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.20...v1.6.21",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5681",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/153547083",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/153547083/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/153547083/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.3",
        "id": 153547083,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JJvFL",
        "tag_name": "v2.2.3",
        "target_commitish": "main",
        "name": "v2.2.3 - 2024-04-30",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-04-30T16:43:05Z",
        "updated_at": "2024-04-30T17:15:04Z",
        "published_at": "2024-04-30T16:47:05Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/165178201",
                "id": 165178201,
                "node_id": "RA_kwDOFEucDc4J2GtZ",
                "name": "nautobot-2.2.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32072238,
                "digest": null,
                "download_count": 14,
                "created_at": "2024-04-30T17:15:03Z",
                "updated_at": "2024-04-30T17:15:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.3/nautobot-2.2.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/165178197",
                "id": 165178197,
                "node_id": "RA_kwDOFEucDc4J2GtV",
                "name": "nautobot-2.2.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31095298,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-04-30T17:15:01Z",
                "updated_at": "2024-04-30T17:15:02Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.3/nautobot-2.2.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.3",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5624](https://github.com/nautobot/nautobot/issues/5624) - Updated `social-auth-app-django` dependency to `~5.4.1` to address `CVE-2024-32879`.\r\n- [#5646](https://github.com/nautobot/nautobot/issues/5646) - Fixed a reflected-XSS vulnerability ([GHSA-jxgr-gcj5-cqqg](https://github.com/nautobot/nautobot/security/advisories/GHSA-jxgr-gcj5-cqqg)) in object-list view rendering of user-provided query parameters.\r\n\r\n### Added\r\n\r\n- [#2946](https://github.com/nautobot/nautobot/issues/2946) - Added custom link support for interfaces, console ports, console server ports, power ports, power outlets, front ports, rear ports, device bays, and inventory items.\r\n- [#5034](https://github.com/nautobot/nautobot/issues/5034) - Added a view to convert location contact information to contacts or teams.\r\n- [#5537](https://github.com/nautobot/nautobot/issues/5537) - Re-added `run_job` generic Celery task as a wrapper for execution of all Nautobot Jobs.\r\n- [#5560](https://github.com/nautobot/nautobot/issues/5560) - Added a template tag which creates a hyperlink that opens in a new tab.\r\n- [#5586](https://github.com/nautobot/nautobot/issues/5586) - Added `nautobot.apps.jobs.get_jobs()` API.\r\n\r\n### Changed\r\n\r\n- [#5498](https://github.com/nautobot/nautobot/issues/5498) - Changed the `nautobot.extras.jobs.Job` class to no longer be a subclass of `celery.tasks.Task`.\r\n\r\n### Fixed\r\n\r\n- [#5513](https://github.com/nautobot/nautobot/issues/5513) - Fixed missing `location` field in `Prefix` and `VLAN` GraphQL schema.\r\n- [#5513](https://github.com/nautobot/nautobot/issues/5513) - Restored ability to filter Prefix and VLAN objects at the ORM level by `location`.\r\n- [#5565](https://github.com/nautobot/nautobot/issues/5565) - Fixed optional dependency on `social-auth-core` by removing an extras related to `openidconnect` that no longer exists.\r\n- [#5586](https://github.com/nautobot/nautobot/issues/5586) - Fixed incorrect rendering of Job variables in the ScheduledJob detail view.\r\n- [#5594](https://github.com/nautobot/nautobot/issues/5594) - Fixed Job tiles view not understanding the `per_page` and `page` query parameters.\r\n- [#5595](https://github.com/nautobot/nautobot/issues/5595) - Fixed bug where API Extra Actions weren't displaying the proper name.\r\n- [#5603](https://github.com/nautobot/nautobot/issues/5603) - Fixed config contexts loaded from Git repositories not populating Device Redundancy Group information.\r\n- [#5640](https://github.com/nautobot/nautobot/issues/5640) - Fixed bug in generating the URL parameters for cloning objects.\r\n- [#5642](https://github.com/nautobot/nautobot/issues/5642) - Fixed some cases where stale Job code might be present when Jobs are sourced from `JOBS_ROOT` or a Git repository.\r\n- [#5642](https://github.com/nautobot/nautobot/issues/5642) - Fixed incorrect handling of Job `kwargs` when dry-running a job approval request via the REST API.\r\n\r\n### Documentation\r\n\r\n- [#5094](https://github.com/nautobot/nautobot/issues/5094) - Added \"Reserved Attribute Names\" section to the Jobs developer documentation.\r\n- [#5608](https://github.com/nautobot/nautobot/issues/5608) - Updated VLAN documentation with a recommendation for modeling of VLANs with respect to Locations.\r\n- [#5626](https://github.com/nautobot/nautobot/issues/5626) - Added extras features docs to core developer new model checklist.\r\n- [#5635](https://github.com/nautobot/nautobot/issues/5635) - Added borders to tabbed sections of mkdocs.\r\n\r\n### Housekeeping\r\n\r\n- [#4498](https://github.com/nautobot/nautobot/issues/4498) - Removed redundant `nautobot.extras.plugins.register_jobs` function.\r\n- [#5586](https://github.com/nautobot/nautobot/issues/5586) - Fixed an intermittent ImportError when running tests with certain options.\r\n- [#5605](https://github.com/nautobot/nautobot/issues/5605) - Added prerelease and release workflow to deploy sandbox environments automatically.\r\n\r\n## Contributors\r\n\r\n* @HanlinMiao\r\n* @jdrew82\r\n* @timizuoebideri1\r\n* @gsnider2195\r\n* @glennmatthews\r\n* @teunvink\r\n* @nlgotz\r\n* @cardoe\r\n* @dependabot\r\n* @jvanderaa\r\n* @tsm1th\r\n* @jdueitt\r\n\r\n## New Contributors\r\n* @teunvink made their first contribution in https://github.com/nautobot/nautobot/pull/5625\r\n* @jdueitt made their first contribution in https://github.com/nautobot/nautobot/pull/5641\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.2...v2.2.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5649",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/153557753",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/153557753/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/153557753/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.20",
        "id": 153557753,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JJxr5",
        "tag_name": "v1.6.20",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.20 - 2024-04-30",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-04-30T17:59:28Z",
        "updated_at": "2024-04-30T18:51:12Z",
        "published_at": "2024-04-30T18:01:10Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/165192528",
                "id": 165192528,
                "node_id": "RA_kwDOFEucDc4J2KNQ",
                "name": "nautobot-1.6.20-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30996553,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-04-30T18:51:11Z",
                "updated_at": "2024-04-30T18:51:12Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.20/nautobot-1.6.20-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/165192526",
                "id": 165192526,
                "node_id": "RA_kwDOFEucDc4J2KNO",
                "name": "nautobot-1.6.20.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30305445,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-04-30T18:51:10Z",
                "updated_at": "2024-04-30T18:51:11Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.20/nautobot-1.6.20.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.20",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.20",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5647](https://github.com/nautobot/nautobot/issues/5647) - Fixed a reflected-XSS vulnerability ([GHSA-jxgr-gcj5-cqqg](https://github.com/nautobot/nautobot/security/advisories/GHSA-jxgr-gcj5-cqqg)) in object-list view rendering of user-provided query parameters.\r\n\r\n### Fixed\r\n\r\n- [#5626](https://github.com/nautobot/nautobot/issues/5626) - Increased performance of `brief=true` in API endpoints by eliminating unnecessary database joins.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @Kircheneer\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.19...v1.6.20",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5652",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/153557753/reactions",
            "total_count": 1,
            "+1": 1,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/152427491",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/152427491/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/152427491/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.19",
        "id": 152427491,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JFdvj",
        "tag_name": "v1.6.19",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.19 - 2024-04-23",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-04-23T15:15:40Z",
        "updated_at": "2024-04-23T16:01:08Z",
        "published_at": "2024-04-23T15:18:40Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/163786265",
                "id": 163786265,
                "node_id": "RA_kwDOFEucDc4Jwy4Z",
                "name": "nautobot-1.6.19-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30995767,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-04-23T16:01:06Z",
                "updated_at": "2024-04-23T16:01:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.19/nautobot-1.6.19-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/163786262",
                "id": 163786262,
                "node_id": "RA_kwDOFEucDc4Jwy4W",
                "name": "nautobot-1.6.19.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30304668,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-04-23T16:01:05Z",
                "updated_at": "2024-04-23T16:01:06Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.19/nautobot-1.6.19.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.19",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.19",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5579](https://github.com/nautobot/nautobot/issues/5579) - Updated `sqlparse` to `0.5.0` to fix [GHSA-2m57-hf25-phgg](https://github.com/advisories/GHSA-2m57-hf25-phgg). This is not a direct dependency so it will not auto-update when upgrading Nautobot. Please be sure to update your local environment.\r\n\r\n### Fixed\r\n\r\n- [#5610](https://github.com/nautobot/nautobot/issues/5610) - Fixed static media failure on `/graphql/` and `/admin/` pages.\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.18...v1.6.19\r\n\r\n## Contributors\r\n\r\n* @HanlinMiao \r\n* @gsnider2195 ",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5615",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/151832477",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/151832477/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/151832477/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.2",
        "id": 151832477,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JDMed",
        "tag_name": "v2.2.2",
        "target_commitish": "main",
        "name": "v2.2.2 - 2024-04-18",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-04-18T22:03:58Z",
        "updated_at": "2024-04-18T22:31:15Z",
        "published_at": "2024-04-18T22:08:34Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/162949199",
                "id": 162949199,
                "node_id": "RA_kwDOFEucDc4JtmhP",
                "name": "nautobot-2.2.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32049284,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-04-18T22:31:14Z",
                "updated_at": "2024-04-18T22:31:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.2/nautobot-2.2.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/162949197",
                "id": 162949197,
                "node_id": "RA_kwDOFEucDc4JtmhN",
                "name": "nautobot-2.2.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31074480,
                "digest": null,
                "download_count": 13,
                "created_at": "2024-04-18T22:31:13Z",
                "updated_at": "2024-04-18T22:31:14Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.2/nautobot-2.2.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.2",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5579](https://github.com/nautobot/nautobot/issues/5579) - Updated `sqlparse` to `0.5.0` to fix [GHSA-2m57-hf25-phgg](https://github.com/advisories/GHSA-2m57-hf25-phgg). This is not a direct dependency so it will not auto-update when upgrading Nautobot. Please be sure to update your local environment.\r\n\r\n### Added\r\n\r\n- [#2459](https://github.com/nautobot/nautobot/issues/2459) - Added `nautobot.extras.utils.bulk_delete_with_bulk_change_logging` helper function for improving performance on bulk delete.\r\n- [#2459](https://github.com/nautobot/nautobot/issues/2459) - Added `nautobot.extras.context_managers.deferred_change_logging_for_bulk_operation` context manager for improving performance on bulk update.\r\n\r\n### Changed\r\n\r\n- [#2459](https://github.com/nautobot/nautobot/issues/2459) - Improved performance of bulk-edit and bulk-delete UI operations by refactoring change logging logic.\r\n- [#5568](https://github.com/nautobot/nautobot/issues/5568) - Added hyperlink to the total device count number under device family.\r\n- [#5589](https://github.com/nautobot/nautobot/issues/5589) - Fixed an invalid Javascript operator in the LLDP neighbor view.\r\n\r\n### Fixed\r\n\r\n- [#5580](https://github.com/nautobot/nautobot/issues/5580) - Fixed bugs when assigning a VLAN to an Interface related to the recently introduced many-to-many relationship between VLANs and Locations.\r\n- [#5592](https://github.com/nautobot/nautobot/issues/5592) - Fixed plugins not loading when using Gunicorn.\r\n\r\n### Documentation\r\n\r\n- [#5583](https://github.com/nautobot/nautobot/issues/5583) - Re-added release note content for v1.6.16 through v1.6.18.\r\n\r\n### Housekeeping\r\n\r\n- [#5590](https://github.com/nautobot/nautobot/issues/5590) - Fixed upstream testing workflows showing successful when one of the steps fail.\r\n\r\n## Contributors\r\n* @HanlinMiao \r\n* @gsnider2195 \r\n* @abates \r\n* @ericchou1 \r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.1...v2.2.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5598",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/151245808",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/151245808/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/151245808/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.1",
        "id": 151245808,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JA9Pw",
        "tag_name": "v2.2.1",
        "target_commitish": "main",
        "name": "v2.2.1 - 2024-04-15",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-04-15T20:13:13Z",
        "updated_at": "2024-04-15T20:46:05Z",
        "published_at": "2024-04-15T20:18:12Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/162264371",
                "id": 162264371,
                "node_id": "RA_kwDOFEucDc4Jq_Uz",
                "name": "nautobot-2.2.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32042846,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-04-15T20:46:04Z",
                "updated_at": "2024-04-15T20:46:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.1/nautobot-2.2.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/162264370",
                "id": 162264370,
                "node_id": "RA_kwDOFEucDc4Jq_Uy",
                "name": "nautobot-2.2.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31067729,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-04-15T20:46:03Z",
                "updated_at": "2024-04-15T20:46:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.1/nautobot-2.2.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.1",
        "body": "## What's Changed\r\n### Security\r\n\r\n- [#5521](https://github.com/nautobot/nautobot/issues/5521) - Updated `Pillow` dependency to `~10.3.0` to address `CVE-2024-28219`.\r\n- [#5543](https://github.com/nautobot/nautobot/issues/5543) - Updated `jquery-ui` to version `1.13.2` due to `CVE-2022-31160`.\r\n- [#5561](https://github.com/nautobot/nautobot/issues/5561) - Updated `idna` to 3.7 due to CVE-2024-3651. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Added\r\n\r\n- [#1631](https://github.com/nautobot/nautobot/issues/1631) - Added change logging for custom field background tasks.\r\n- [#5009](https://github.com/nautobot/nautobot/issues/5009) - Added the option to filter objects with select/multi-select custom fields based on the UUID of the defined custom field choice(s), for example `/api/dcim/locations/?cf_multiselect=1ea9237c-3ba7-4985-ba7e-6fd9e9bff813` as an alternative to `/api/dcim/locations/?cf_multiselect=some-choice-value`.\r\n- [#5493](https://github.com/nautobot/nautobot/issues/5493) - Added a configuration setting `METRICS_DISABLED_APPS` to disable app metrics for specific apps.\r\n- [#5540](https://github.com/nautobot/nautobot/issues/5540) - Added total devices count to device family detail page.\r\n\r\n### Changed\r\n\r\n- [#5274](https://github.com/nautobot/nautobot/issues/5274) - Added a setting that changes all rack unit numbers to display a minimum of two digits in rack elevations.\r\n\r\n### Fixed\r\n\r\n- [#5469](https://github.com/nautobot/nautobot/issues/5469) - Fixed contacts and teams not being included in the global search.\r\n- [#5489](https://github.com/nautobot/nautobot/issues/5489) - Fixed REST API for Contact and Team incorrectly marking the `phone` and `email` fields as mandatory.\r\n- [#5502](https://github.com/nautobot/nautobot/issues/5502) - Fixed off-by-one error in generic filter testing helper `BaseFilterTestCase.get_filterset_test_values`.\r\n- [#5511](https://github.com/nautobot/nautobot/issues/5511) - Fixed contact tab disappearing when accessing dynamic groups tab.\r\n- [#5515](https://github.com/nautobot/nautobot/issues/5515) - Fixed javascript exception thrown in the Device LLDP neighbors view for neighbors without configured devices/interfaces.\r\n- [#5527](https://github.com/nautobot/nautobot/issues/5527) - Fixed incorrect \"members\" links in Virtual Chassis list view.\r\n- [#5531](https://github.com/nautobot/nautobot/issues/5531) - Re-added `nautobot.setup()` function mistakenly removed in 2.2.0.\r\n\r\n### Dependencies\r\n\r\n- [#5495](https://github.com/nautobot/nautobot/issues/5495) - Changed jsonschema version constraint from `>=4.7.0,<4.19.0` to `^4.7.0`.\r\n- [#5517](https://github.com/nautobot/nautobot/issues/5517) - Updated `djangorestframework` to `~3.15.1`.\r\n- [#5521](https://github.com/nautobot/nautobot/issues/5521) - Updated most dependencies to the latest versions available as of 2024-04-01.\r\n- [#5543](https://github.com/nautobot/nautobot/issues/5543) - Updated `jquery` to version `3.7.1`.\r\n\r\n### Documentation\r\n\r\n- [#5189](https://github.com/nautobot/nautobot/issues/5189) - Added \"Model Development Checklist\" to the core developer documentation.\r\n- [#5189](https://github.com/nautobot/nautobot/issues/5189) - Merged \"Extending Models\" documentation into the \"Model Development Checklist\" documentation.\r\n- [#5526](https://github.com/nautobot/nautobot/issues/5526) - Fixed doc reference to job cprofile file location.\r\n\r\n### Housekeeping\r\n\r\n- [#5531](https://github.com/nautobot/nautobot/issues/5531) - Removed `nautobot-server pylint` management command from the `example_app`, as pylint can be invoked directly with an appropriate `--init-hook` instead.\r\n- [#5547](https://github.com/nautobot/nautobot/issues/5547) - Fixed TransactionTestCase inheritance order so that `test.client` works in test cases using this class.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @gsnider2195 \r\n* @jvanderaa \r\n* @abates \r\n* @tsm1th \r\n* @itdependsnetworks \r\n* @Kircheneer \r\n* @HanlinMiao \r\n* @ericchou1 \r\n\r\n## New Contributors\r\n* @tsm1th made their first contribution in https://github.com/nautobot/nautobot/pull/5508\r\n* @ericchou1 made their first contribution in https://github.com/nautobot/nautobot/pull/5541\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.2.0...v2.2.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5576",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/151245808/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 1,
            "eyes": 0
        },
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/151246447",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/151246447/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/151246447/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.18",
        "id": 151246447,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4JA9Zv",
        "tag_name": "v1.6.18",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.18 - 2024-04-15",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-04-15T20:18:26Z",
        "updated_at": "2024-04-15T21:08:34Z",
        "published_at": "2024-04-15T20:22:23Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/162267327",
                "id": 162267327,
                "node_id": "RA_kwDOFEucDc4JrAC_",
                "name": "nautobot-1.6.18-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30994693,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-04-15T21:08:32Z",
                "updated_at": "2024-04-15T21:08:34Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.18/nautobot-1.6.18-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/162267322",
                "id": 162267322,
                "node_id": "RA_kwDOFEucDc4JrAC6",
                "name": "nautobot-1.6.18.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30303935,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-04-15T21:08:30Z",
                "updated_at": "2024-04-15T21:08:32Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.18/nautobot-1.6.18.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.18",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.18",
        "body": "## What's Changed\r\n### Security\r\n\r\n- [#5543](https://github.com/nautobot/nautobot/issues/5543) - Updated `jquery-ui` to version `1.13.2` due to `CVE-2022-31160`.\r\n\r\n### Dependencies\r\n\r\n- [#5543](https://github.com/nautobot/nautobot/issues/5543) - Updated `jquery` to version `3.7.1`.\r\n\r\n## Contributors\r\n@gertzakis\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.17...v1.6.18",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5577",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/149276935",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/149276935/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/149276935/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.17",
        "id": 149276935,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4I5ckH",
        "tag_name": "v1.6.17",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.17 - 2024-04-01",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-04-01T19:09:14Z",
        "updated_at": "2024-04-01T19:58:17Z",
        "published_at": "2024-04-01T19:14:12Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/159746186",
                "id": 159746186,
                "node_id": "RA_kwDOFEucDc4JhYiK",
                "name": "nautobot-1.6.17-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30994731,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-04-01T19:58:15Z",
                "updated_at": "2024-04-01T19:58:17Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.17/nautobot-1.6.17-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/159746180",
                "id": 159746180,
                "node_id": "RA_kwDOFEucDc4JhYiE",
                "name": "nautobot-1.6.17.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30303965,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-04-01T19:58:14Z",
                "updated_at": "2024-04-01T19:58:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.17/nautobot-1.6.17.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.17",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.17",
        "body": "## What's Changed\r\n\r\n### Dependencies\r\n\r\n- [#4583](https://github.com/nautobot/nautobot/issues/4583) - Updated pinned version of `social-auth-core` to remove dependency on `python-jose` & its dependency on `ecdsa`.\r\n- [#5495](https://github.com/nautobot/nautobot/issues/5495) - Changed `jsonschema` version constraint from `>=4.7.0,<4.18.0` to `^4.7.0`.\r\n\r\n## Contributors\r\n\r\n* @whitej6\r\n* @jvanderaa\r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.16...v1.6.17",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5520",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/149058872",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/149058872/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/149058872/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.0",
        "id": 149058872,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4I4nU4",
        "tag_name": "v2.2.0",
        "target_commitish": "main",
        "name": "v2.2.0 - 2024-03-29",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-29T20:27:30Z",
        "updated_at": "2024-03-30T00:23:51Z",
        "published_at": "2024-03-29T20:43:09Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/159333696",
                "id": 159333696,
                "node_id": "RA_kwDOFEucDc4Jfz1A",
                "name": "nautobot-2.2.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32037119,
                "digest": null,
                "download_count": 15,
                "created_at": "2024-03-29T21:06:05Z",
                "updated_at": "2024-03-29T21:06:06Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.0/nautobot-2.2.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/159333692",
                "id": 159333692,
                "node_id": "RA_kwDOFEucDc4Jfz08",
                "name": "nautobot-2.2.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31065611,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-03-29T21:06:03Z",
                "updated_at": "2024-03-29T21:06:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.0/nautobot-2.2.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.0",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n#### Contact and Team Models ([#230](https://github.com/nautobot/nautobot/issues/230))\r\n\r\nContact and Team are models that represent an individual and a group of individuals who can be linked to an object. Contacts and teams store the necessary information (name, phone number, email, and address) to uniquely identify and contact them. They are added to track ownerships of organizational entities and to manage resources more efficiently in Nautobot. Check out the documentation for [Contact](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/core-data-model/extras/contact/) and [Team](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/core-data-model/extras/team/). There is also a [user guide](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/feature-guides/contacts-and-teams/) available on how to utilize these models.\r\n\r\nA new management command has been introduced to assist with migrating the Location fields `contact_name`, `contact_phone` and `contact_email` to the new Contact and Team models. This command can be invoked with `nautobot-server migrate_location_contacts` and will present a series of prompts to guide you through migrating Locations that have data in the `contact_name`, `contact_phone`, or `contact_email` fields which are not already associated to a Contact or Team. This command will give you the option to create new Contacts or Teams or, if a similar Contact or Team already exists, to link the Location to the existing Contact or Team. Note that when assigning a Location to an existing Contact or Team that has a blank `phone` or `email` field, the value from the Location will be copied to the Contact/Team. After a Location has been associated to a Contact or Team, the `contact_name`, `contact_phone`, and `contact_email` fields will be cleared from the Location.\r\n\r\n#### Controller Model ([#3111](https://github.com/nautobot/nautobot/issues/3111))\r\n\r\nController models have been added to the `dcim` app. A Controller in Nautobot is an abstraction meant to represent network or SDN (Software-Defined Networking) controllers. These may include, but are not limited to, wireless controllers, cloud-based network management systems, and other forms of central network control mechanisms.\r\n\r\nFor more details, refer to the user guide for a [`Controller` model](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/core-data-model/dcim/controller/), a [`ControllerManagedDeviceGroup` model](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/core-data-model/dcim/controllermanageddevicegroup/), or developer documentation for [Controllers](https://docs.nautobot.com/projects/core/en/v2.2.0/development/core/controllers/).\r\n\r\n#### DeviceFamily Model ([#3559](https://github.com/nautobot/nautobot/issues/3559))\r\n\r\nA [Device Family](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/core-data-model/dcim/devicefamily/) represents a group of related [Device Types](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/core-data-model/dcim/devicetype/). A Device Type can be optionally assigned to a Device Family. Each Device Family must have a unique name and may have a description assigned to it.\r\n\r\n#### Jobs Tile View ([#5129](https://github.com/nautobot/nautobot/issues/5129))\r\n\r\nJob list is now available in two display variants: list and tiles. List is a standard table view with no major changes introduced. Tiles is a new type of view displaying jobs in a two-dimensional grid.\r\n\r\n#### Prefix and VLAN Many Locations ([#4334](https://github.com/nautobot/nautobot/issues/4334), [#4412](https://github.com/nautobot/nautobot/issues/4412))\r\n\r\nThe Prefix and VLAN models have replaced their single `location` foreign-key field with a many-to-many `locations` field, allowing multiple Locations to be attached to a single Prefix or VLAN. To ensure backwards compatibility with pre-2.2 code, these models now have a `location` property which can be retrieved or set for the case of a single associated Location, but will raise a `MultipleObjectsReturned` exception if the Prefix or VLAN in question has more than one associated Location. REST API versions 2.0 and 2.1 similarly still have a `location` field, while REST API version 2.2 and later replace this with `locations`.\r\n\r\n#### Software Image File and Software Version models ([#1](https://github.com/nautobot/nautobot/issues/1))\r\n\r\nNew models have been added for Software Image Files and Software Versions. These models are used to track the software versions of Devices, Inventory Items and Virtual Machines and their associated image files. These models have been ported from the [Device Lifecycle Management App](https://github.com/nautobot/nautobot-app-device-lifecycle-mgmt/) and a future update to that app will migrate all existing data from the `nautobot_device_lifecycle_mgmt.SoftwareImageLCM` and `nautobot_device_lifecycle_mgmt.SoftwareLCM` models to the `dcim.SoftwareImageFile` and `dcim.SoftwareVersion` models added here.\r\n\r\nSoftware Versions must be associated to a Platform. Software Image Files must be associated to one Software Version and may be associated to one or more Device Types. Devices, Inventory Items and Virtual Machines may be associated to one Software Version to track their current version. See the documentation for [Software Image File](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/core-data-model/dcim/softwareimagefile/) and [Software Version](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/core-data-model/dcim/softwareversion/). There is also a [user guide](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/feature-guides/software-image-files-and-versions/) with instructions on how to create these models.\r\n\r\n#### Syntax Highlighting ([#5098](https://github.com/nautobot/nautobot/issues/5098))\r\n\r\nLanguage syntax highlighting for GraphQL, JSON, XML and YAML is now supported in the UI via JavaScript. To enable the feature, a code snippet has to be wrapped in the following HTML structure:\r\n\r\n```html\r\n<pre><code class=\"language-{graphql,json,xml,yaml}\">...</code></pre>\r\n```\r\n\r\n[`render_json`](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/platform-functionality/template-filters/#render_json) and [`render_yaml`](https://docs.nautobot.com/projects/core/en/v2.2.0/user-guide/platform-functionality/template-filters/#render_yaml) template filters default to this new behavior with an optional opt-out `syntax_highlight=False` arg.\r\n\r\n### Changed\r\n\r\n#### Data Imports as a System Job ([#5064](https://github.com/nautobot/nautobot/issues/5064))\r\n\r\nThe CSV import functionality for all models has been changed from a synchronous operation to an asynchronous background task (system Job). As a result, imports of large CSV files will no longer fail due to browser timeout.\r\n\r\n!!! tip\r\n    Users now must have the `run` action permission for `extras > job` (specifically the `nautobot.core.jobs.ImportObjects` Job) in order to import objects, in addition to the normal `add` permissions for the object type being imported.\r\n\r\n#### Plugin to App Renames ([#5341](https://github.com/nautobot/nautobot/issues/5341))\r\n\r\n`Installed Plugins` view has been renamed to `Installed Apps`. `Plugin` terminologies in `Installed Plugins` (now `Installed Apps`) view and dependent views have been changed to `App` throughout. `Plugin` references in documentation (excluding old release-notes) have been replaced by `App`. `Plugins` navigation menu has been renamed to `Apps`.\r\n\r\n#### Standardization of `max_length` on all Charfields ([#2906](https://github.com/nautobot/nautobot/issues/2906))\r\n\r\nModel CharFields' `max_length` attributes have been standardized globally to have at least 255 characters except where a shorter `max_length` is explicitly justified.\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.9...v2.2.0\r\n\r\n## Contributors\r\n\r\n* @bradh11 \r\n* @snaselj\r\n* @edwardtheharris\r\n* @gsnider2195\r\n* @timizuoebideri1\r\n* @abates\r\n* @mzbroch\r\n* @glennmatthews\r\n* @lampwins\r\n* @HanlinMiao\r\n* @whitej6\r\n* @norbert-mieczkowski-codilime \r\n* @gertzakis \r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5510",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/149058872/reactions",
            "total_count": 3,
            "+1": 2,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 1,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 13
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/148321099",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/148321099/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/148321099/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.9",
        "id": 148321099,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4I1zNL",
        "tag_name": "v2.1.9",
        "target_commitish": "main",
        "name": "v2.1.9 - 2024-03-25",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-25T19:13:40Z",
        "updated_at": "2024-03-25T20:02:49Z",
        "published_at": "2024-03-25T19:43:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/158560688",
                "id": 158560688,
                "node_id": "RA_kwDOFEucDc4Jc3Gw",
                "name": "nautobot-2.1.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31689160,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-03-25T20:02:48Z",
                "updated_at": "2024-03-25T20:02:49Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.9/nautobot-2.1.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/158560685",
                "id": 158560685,
                "node_id": "RA_kwDOFEucDc4Jc3Gt",
                "name": "nautobot-2.1.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30752765,
                "digest": null,
                "download_count": 13,
                "created_at": "2024-03-25T20:02:47Z",
                "updated_at": "2024-03-25T20:02:48Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.9/nautobot-2.1.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.9",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5450](https://github.com/nautobot/nautobot/issues/5450) - Updated `django` to `~3.2.25` due to `CVE-2024-27351`.\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added requirement for user authentication to access the endpoint `/extras/job-results/<uuid:pk>/log-table/`; furthermore it will not allow an authenticated user to view log entries for a JobResult they don't otherwise have permission to view. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added narrower permissions enforcement on the endpoints `/extras/git-repositories/<uuid:pk>/sync/` and `/extras/git-repositories/<uuid:pk>/dry-run/`; a user who has `change` permissions for a subset of Git repositories is no longer permitted to sync or dry-run other repositories for which they lack the appropriate permissions. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added narrower permissions enforcement on the `/api/dcim/connected-device/?peer_device=...&?peer_interface=...` REST API endpoint; a user who has `view` permissions for a subset of interfaces is no longer permitted to query other interfaces for which they lack permissions. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added narrower permissions enforcement on all `<app>/<model>/<uuid>/notes/` UI endpoints; a user must now have the appropriate `extras.view_note` permissions to view existing notes. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added requirement for user authentication to access the REST API endpoints `/api/redoc/`, `/api/swagger/`, `/api/swagger.json`, and `/api/swagger.yaml`. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added requirement for user authentication to access the `/api/graphql` REST API endpoint, even when `EXEMPT_VIEW_PERMISSIONS` is configured. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added requirement for user authentication to access the endpoints `/dcim/racks/<uuid>/dynamic-groups/`, `/dcim/devices/<uuid>/dynamic-groups/`, `/ipam/prefixes/<uuid>/dynamic-groups/`, `/ipam/ip-addresses/<uuid>/dynamic-groups/`, `/virtualization/clusters/<uuid>/dynamic-groups/`, and `/virtualization/virtual-machines/<uuid>/dynamic-groups/`, even when `EXEMPT_VIEW_PERMISSIONS` is configured. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added requirement for user authentication to access the endpoint `/extras/secrets/provider/<str:provider_slug>/form/`. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n\r\n### Added\r\n\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added `nautobot.apps.utils.get_url_for_url_pattern` and `nautobot.apps.utils.get_url_patterns` lookup functions.\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added `nautobot.apps.views.GenericView` base class.\r\n\r\n### Changed\r\n\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added support for `view_name` and `view_description` optional parameters when instantiating a `nautobot.apps.api.OrderedDefaultRouter`. Specifying these parameters is to be preferred over defining a custom `APIRootView` subclass when defining App API URLs.\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Added requirement for user authentication by default on the `nautobot.apps.api.APIRootView` class. As a consequence, viewing the browsable REST API root endpoints (e.g. `/api/`, `/api/circuits/`, `/api/dcim/`, etc.) now requires user authentication.\r\n\r\n### Removed\r\n\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Removed the URL endpoints `/api/users/users/my-profile/`, `/api/users/users/session/`, `/api/users/tokens/authenticate/`, and `/api/users/tokens/logout/` as they are unused at this time.\r\n\r\n### Fixed\r\n\r\n- [#5413](https://github.com/nautobot/nautobot/issues/5413) - Updated Device \"LLDP Neighbors\" detail panel to handle LLDP neighbors with MAC address as port-id.\r\n- [#5423](https://github.com/nautobot/nautobot/issues/5423) - Fixed collapsable navbar for GraphiQL page `/graphql`.\r\n- [#5423](https://github.com/nautobot/nautobot/issues/5423) - Fixed collapsable navbar for Admin page `/admin`.\r\n- [#5423](https://github.com/nautobot/nautobot/issues/5423) - Fixed collapsable navbar for Django Rest Framework (DRF) page `/api/`.\r\n- [#5423](https://github.com/nautobot/nautobot/issues/5423) - Improved footer responsiveness for certain media sizes.\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Fixed a 500 error when accessing any of the `/dcim/<port-type>/<uuid>/connect/<termination_b_type>/` view endpoints with an invalid/nonexistent `termination_b_type` string.\r\n- [#5466](https://github.com/nautobot/nautobot/issues/5466) - Remove duplicated location param in vlan table.\r\n\r\n### Dependencies\r\n\r\n- [#5296](https://github.com/nautobot/nautobot/issues/5296) - Fixed bug in pyproject.toml that added `coverage` as a nautobot dependency instead of a development dependency.\r\n\r\n### Documentation\r\n\r\n- [#5340](https://github.com/nautobot/nautobot/issues/5340) - Added installation documentation about recommended health-checks for Docker Compose and Kubernetes.\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Updated example views in the App developer documentation to include `ObjectPermissionRequiredMixin` or `LoginRequiredMixin` as appropriate best practices.\r\n\r\n### Housekeeping\r\n\r\n- [#1746](https://github.com/nautobot/nautobot/issues/1746) - Replaced `OrderedDict` instance in `nautobot/core/api/routers.py#21` with with a plain `dict` instance.\r\n- [#1746](https://github.com/nautobot/nautobot/issues/1746) - Replaced `OrderedDict` instance in `nautobot/dcim/models/racks.py#275` with a plain `dict` instance.\r\n- [#5435](https://github.com/nautobot/nautobot/issues/5435) - Added `--pattern` argument to `invoke unittest`.\r\n- [#5435](https://github.com/nautobot/nautobot/issues/5435) - Added `--parallel-workers` argument to `invoke unittest`.\r\n- [#5464](https://github.com/nautobot/nautobot/issues/5464) - Updated custom views in the `example_plugin` to use the new `GenericView` base class as a best practice.\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.8...v2.1.9\r\n\r\n## Contributors\r\n\r\n- @HanlinMiao\r\n- @bradh11\r\n- @snaselj \r\n- @edwardtheharris \r\n- @gsnider2195\r\n- @abates \r\n- @mzbroch \r\n- @glennmatthews ",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5478",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/148344367",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/148344367/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/148344367/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.16",
        "id": 148344367,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4I144v",
        "tag_name": "v1.6.16",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.16 - 2024-03-25",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-25T21:06:08Z",
        "updated_at": "2024-03-25T22:17:25Z",
        "published_at": "2024-03-25T21:37:06Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/158578144",
                "id": 158578144,
                "node_id": "RA_kwDOFEucDc4Jc7Xg",
                "name": "nautobot-1.6.16-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30994474,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-03-25T22:17:24Z",
                "updated_at": "2024-03-25T22:17:25Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.16/nautobot-1.6.16-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/158578137",
                "id": 158578137,
                "node_id": "RA_kwDOFEucDc4Jc7XZ",
                "name": "nautobot-1.6.16.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30303139,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-03-25T22:17:22Z",
                "updated_at": "2024-03-25T22:17:23Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.16/nautobot-1.6.16.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.16",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.16",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5450](https://github.com/nautobot/nautobot/issues/5450) - Updated `django` to `~3.2.25` due to `CVE-2024-27351`.\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added requirement for user authentication to access the endpoint `/extras/job-results/<uuid:pk>/log-table/`; furthermore it will not allow an authenticated user to view log entries for a JobResult they don't otherwise have permission to view. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added narrower permissions enforcement on the endpoints `/extras/git-repositories/<str:slug>/sync/` and `/extras/git-repositories/<str:slug>/dry-run/`; a user who has `change` permissions for a subset of Git repositories is no longer permitted to sync or dry-run other repositories for which they lack the appropriate permissions. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added narrower permissions enforcement on the `/api/dcim/connected-device/?peer_device=...&?peer_interface=...` REST API endpoint; a user who has `view` permissions for a subset of interfaces is no longer permitted to query other interfaces for which they lack permissions. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added narrower permissions enforcement on all `<app>/<model>/<lookup>/notes/` UI endpoints; a user must now have the appropriate `extras.view_note` permissions to view existing notes. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added requirement for user authentication to access the REST API endpoints `/api/redoc/`, `/api/swagger/`, `/api/swagger.json`, and `/api/swagger.yaml`. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added requirement for user authentication to access the `/api/graphql` REST API endpoint, even when `EXEMPT_VIEW_PERMISSIONS` is configured. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added requirement for user authentication to access the endpoints `/dcim/racks/<uuid>/dynamic-groups/`, `/dcim/devices/<uuid>/dynamic-groups/`, `/ipam/prefixes/<uuid>/dynamic-groups/`, `/ipam/ip-addresses/<uuid>/dynamic-groups/`, `/virtualization/clusters/<uuid>/dynamic-groups/`, and `/virtualization/virtual-machines/<uuid>/dynamic-groups/`, even when `EXEMPT_VIEW_PERMISSIONS` is configured. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added requirement for user authentication to access the endpoint `/extras/secrets/provider/<str:provider_slug>/form/`. ([GHSA-m732-wvh2-7cq4](https://github.com/nautobot/nautobot/security/advisories/GHSA-m732-wvh2-7cq4))\r\n\r\n### Added\r\n\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added `nautobot.apps.utils.get_url_for_url_pattern` and `nautobot.apps.utils.get_url_patterns` lookup functions.\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added `nautobot.apps.views.GenericView` base class.\r\n\r\n### Changed\r\n\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added support for `view_name` and `view_description` optional parameters when instantiating a `nautobot.apps.api.OrderedDefaultRouter`. Specifying these parameters is to be preferred over defining a custom `APIRootView` subclass when defining App API URLs.\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added requirement for user authentication by default on the `nautobot.core.api.AuthenticatedAPIRootView` class. As a consequence, viewing the browsable REST API root endpoints (e.g. `/api/`, `/api/circuits/`, `/api/dcim/`, etc.) now requires user authentication.\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Added requirement for user authentication to access `/api/docs/` and `/graphql/` even when `HIDE_RESTRICTED_UI` is False.\r\n\r\n### Fixed\r\n\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Fixed a 500 error when accessing any of the `/dcim/<port-type>/<uuid>/connect/<termination_b_type>/` view endpoints with an invalid/nonexistent `termination_b_type` string.\r\n\r\n### Documentation\r\n\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Updated example views in the App developer documentation to include `ObjectPermissionRequiredMixin` or `LoginRequiredMixin` as appropriate best practices.\r\n\r\n### Housekeeping\r\n\r\n- [#5465](https://github.com/nautobot/nautobot/issues/5465) - Updated custom views in the `example_plugin` to use the new `GenericView` base class as a best practice.\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.15...v1.6.16\r\n\r\n## Contributors\r\n- @HanlinMiao \r\n- @glennmatthews ",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5482",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/147474656",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/147474656/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/147474656/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.2.0-beta.1",
        "id": 147474656,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Iykjg",
        "tag_name": "v2.2.0-beta.1",
        "target_commitish": "next",
        "name": "v2.2.0-beta.1 - 2024-03-20",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2024-03-20T13:42:18Z",
        "updated_at": "2024-03-20T14:29:13Z",
        "published_at": "2024-03-20T14:07:52Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/157676718",
                "id": 157676718,
                "node_id": "RA_kwDOFEucDc4JZfSu",
                "name": "nautobot-2.2.0b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31987802,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-03-20T14:29:12Z",
                "updated_at": "2024-03-20T14:29:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.0-beta.1/nautobot-2.2.0b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/157676716",
                "id": 157676716,
                "node_id": "RA_kwDOFEucDc4JZfSs",
                "name": "nautobot-2.2.0b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31025523,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-03-20T14:29:10Z",
                "updated_at": "2024-03-20T14:29:11Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.2.0-beta.1/nautobot-2.2.0b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.2.0-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.2.0-beta.1",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#1](https://github.com/nautobot/nautobot/issues/1) - Added new models for software versions and software image files.\r\n- [#1](https://github.com/nautobot/nautobot/issues/1) - Added a many-to-many relationship from `Device` to `SoftwareImageFile`.\r\n- [#1](https://github.com/nautobot/nautobot/issues/1) - Added a many-to-many relationship from `DeviceType` to `SoftwareImageFile`.\r\n- [#1](https://github.com/nautobot/nautobot/issues/1) - Added a many-to-many relationship from `InventoryItem` to `SoftwareImageFile`.\r\n- [#1](https://github.com/nautobot/nautobot/issues/1) - Added a many-to-many relationship from `VirtualMachine` to `SoftwareImageFile`.\r\n- [#1](https://github.com/nautobot/nautobot/issues/1) - Added a foreign key relationship from `Device` to `SoftwareVersion`.\r\n- [#1](https://github.com/nautobot/nautobot/issues/1) - Added a foreign key relationship from `InventoryItem` to `SoftwareVersion`.\r\n- [#1](https://github.com/nautobot/nautobot/issues/1) - Added a foreign key relationship from `VirtualMachine` to `SoftwareVersion`.\r\n- [#230](https://github.com/nautobot/nautobot/issues/230) - Added Contact and Team Models.\r\n- [#1150](https://github.com/nautobot/nautobot/issues/1150) - Added environment variable support for most admin-configurable settings (`ALLOW_REQUEST_PROFILING`, `BANNER_TOP`, etc.)\r\n- [#3111](https://github.com/nautobot/nautobot/issues/3111) - Initial work on the controller model.\r\n- [#3559](https://github.com/nautobot/nautobot/issues/3559) - Added `HardwareFamily` model class. (Renamed before release to `DeviceFamily`.)\r\n- [#3559](https://github.com/nautobot/nautobot/issues/3559) - Added `device_family` field to Device Type model class.\r\n- [#4269](https://github.com/nautobot/nautobot/issues/4269) - Added REST API endpoint for `VRFDeviceAssignment` model.\r\n- [#4270](https://github.com/nautobot/nautobot/issues/4270) - Added REST API endpoint for `VRFPrefixAssignment` model.\r\n- [#4811](https://github.com/nautobot/nautobot/issues/4811) - Enabled sorting on the API endpoints for tree node models.\r\n- [#5012](https://github.com/nautobot/nautobot/issues/5012) - Added database indexes to the ObjectChange model to improve performance when filtering by `user_name`, `changed_object`, or `related_object`, and also by `changed_object` in combination with `user` or `user_name`.\r\n- [#5064](https://github.com/nautobot/nautobot/issues/5064) - Added `job_import_button` template-tag and marked `import_button` button template-tag as deprecated.\r\n- [#5064](https://github.com/nautobot/nautobot/issues/5064) - Added `nautobot.apps.utils.get_view_for_model` utility function.\r\n- [#5064](https://github.com/nautobot/nautobot/issues/5064) - Added `can_add`, `can_change`, `can_delete`, `can_view`, and `has_serializer` filters to the `/api/extras/content-types/` REST API.\r\n- [#5067](https://github.com/nautobot/nautobot/issues/5067) - Added `q` (SearchFilter) filter to all filtersets where it was missing.\r\n- [#5067](https://github.com/nautobot/nautobot/issues/5067) - Added two generic test cases for `q` filter: `test_q_filter_exists` and `test_q_filter_valid`.\r\n- [#5097](https://github.com/nautobot/nautobot/issues/5097) - Added a JSON Schema file for Nautobot settings (`nautobot/core/settings.yaml`).\r\n- [#5097](https://github.com/nautobot/nautobot/issues/5097) - Added REST API endpoint to show the JSON Schema for authenticated users.\r\n- [#5098](https://github.com/nautobot/nautobot/issues/5098) - Added client-side GraphQL, JSON, XML, and YAML syntax highlighting with the `highlight.js` library.\r\n- [#5101](https://github.com/nautobot/nautobot/issues/5101) - Added a utility to help when writing migrations that replace database models.\r\n- [#5107](https://github.com/nautobot/nautobot/issues/5107) - Added `hyperlinked_email` and `hyperlinked_phone_number` template tags/filters.\r\n- [#5127](https://github.com/nautobot/nautobot/issues/5127) - Added bulk-edit and bulk-delete capabilities for Jobs.\r\n- [#5129](https://github.com/nautobot/nautobot/issues/5129) - Implemented jobs tile view.\r\n- [#5188](https://github.com/nautobot/nautobot/issues/5188) - Added table of related Device Families to the DeviceType detail view.\r\n- [#5278](https://github.com/nautobot/nautobot/issues/5278) - Added permission constraint for User Token.\r\n- [#5341](https://github.com/nautobot/nautobot/issues/5341) - Added `/apps/` and `/api/apps/` URL groupings, initially containing only the `installed-apps/` sub-items.\r\n- [#5341](https://github.com/nautobot/nautobot/issues/5341) - Added `nautobot-apps` key to the `/api/status/` REST API endpoint.\r\n- [#5342](https://github.com/nautobot/nautobot/issues/5342) - Added `MigrationsBackend` to health-check, which will fail if any unapplied database migrations are present.\r\n- [#5347](https://github.com/nautobot/nautobot/issues/5347) - Added an option to the Job-based CSV import to make atomic transactions optional.\r\n- [#5349](https://github.com/nautobot/nautobot/issues/5349) - Added REST API for vlan-to-location and prefix-to-location M2M.\r\n\r\n### Changed\r\n\r\n- [#2906](https://github.com/nautobot/nautobot/issues/2906) - Increased `max_length` on all CharFields to at least 255 characters except where a shorter `max_length` is explicitly justified.\r\n- [#4334](https://github.com/nautobot/nautobot/issues/4334) - Changed `Prefix.location` to `Prefix.locations` allowing multiple Locations to be associated with a given Prefix.\r\n- [#4334](https://github.com/nautobot/nautobot/issues/4334) - Changed VLANGroup default ordering to be sorted by `name` alone since it is a unique field.\r\n- [#4412](https://github.com/nautobot/nautobot/issues/4412) - Changed `VLAN.location` to `VLAN.locations` allowing multiple Locations to be associated with a given VLAN.\r\n- [#4811](https://github.com/nautobot/nautobot/issues/4811) - Changed the behavior of tree model tables: now they are sortable, and after sorting is applied, all hierarchy indentations are removed.\r\n- [#5064](https://github.com/nautobot/nautobot/issues/5064) - Changed CSV import functionality to run as a system Job, avoiding HTTP timeouts when importing large data sets.\r\n- [#5064](https://github.com/nautobot/nautobot/issues/5064) - Updated JobResult main tab to render any return value from the Job as syntax-highlighted JSON.\r\n- [#5126](https://github.com/nautobot/nautobot/issues/5126) - Rearranged Job List table row contents.\r\n- [#5341](https://github.com/nautobot/nautobot/issues/5341) - Renamed `Plugins` navigation menu to `Apps`. Apps that add to this menu are encouraged to update their `navigation.py` to use the new name.\r\n- [#5341](https://github.com/nautobot/nautobot/issues/5341) - Renamed `Installed Plugins` view to `Installed Apps`.\r\n- [#5341](https://github.com/nautobot/nautobot/issues/5341) - Changed permissions on the `Installed Apps` views to be visible to all authenticated users, not just staff/superuser accounts.\r\n- [#5342](https://github.com/nautobot/nautobot/issues/5342) - Changed default Docker HEALTHCHECK to use `nautobot-server health_check` CLI command.\r\n- [#5405](https://github.com/nautobot/nautobot/issues/5405) - Changed DeviceType list view \"Import\" button to include a dropdown to select between JSON/YAML or CSV import formats.\r\n- [#5405](https://github.com/nautobot/nautobot/issues/5405) - Changed DeviceType list view \"Export\" button to default to YAML format.\r\n- [#5412](https://github.com/nautobot/nautobot/issues/5412) - Changed DeviceType YAML/JSON import to now map unrecognized port template `type` values to `\"other\"` instead of failing the import.\r\n- [#5414](https://github.com/nautobot/nautobot/issues/5414) - Changed `ImportObjects.roll_back_if_error` form field help text and label.\r\n\r\n### Deprecated\r\n\r\n- [#5064](https://github.com/nautobot/nautobot/issues/5064) - Deprecated the `import_button` button template-tag.\r\n- [#5116](https://github.com/nautobot/nautobot/issues/5116) - Deprecated the `nautobot.apps.exceptions.ConfigurationError` class as it is no longer used in Nautobot core and is trivially reimplementable by any App if desired.\r\n- [#5341](https://github.com/nautobot/nautobot/issues/5341) - Deprecated the `plugins` key under the `/api/status/` REST API endpoint. Refer to `nautobot-apps` instead.\r\n\r\n### Removed\r\n\r\n- [#5064](https://github.com/nautobot/nautobot/issues/5064) - Removed the requirement for `ViewTestCases` subclasses to define `csv_data` for testing bulk-import views, as this functionality is now covered by a generic system Job.\r\n- [#5116](https://github.com/nautobot/nautobot/issues/5116) - Removed `logan`-derived application startup logic, simplifying the Nautobot startup code flow.\r\n\r\n### Fixed\r\n\r\n- [#4334](https://github.com/nautobot/nautobot/issues/4334) - Fixed ordering of VLANs in the UI list view.\r\n- [#5064](https://github.com/nautobot/nautobot/issues/5064) - Fixed an exception in `Job.after_return()` if a Job with an optional `FileVar` was executed without supplying a value for that variable.\r\n- [#5116](https://github.com/nautobot/nautobot/issues/5116) - Fixed inability to specify a `--config PATH` value with the `nautobot-server runserver` command.\r\n- [#5186](https://github.com/nautobot/nautobot/issues/5186) - Fixed `Prefix.ip_version` and `IPAddress.ip_version` fields to be non-nullable.\r\n- [#5220](https://github.com/nautobot/nautobot/issues/5220) - Fixed contacts field in \"Add a new team\" form not populating.\r\n- [#5241](https://github.com/nautobot/nautobot/issues/5241) - Fixed rendering of `NavMenuItems` that do not define any specific required `permissions`.\r\n- [#5241](https://github.com/nautobot/nautobot/issues/5241) - Fixed incorrect construction of `NavMenuTab` and `NavMenuGroup` permissions.\r\n- [#5241](https://github.com/nautobot/nautobot/issues/5241) - Fixed incorrect permissions required for `Roles` navigation menu item.\r\n- [#5298](https://github.com/nautobot/nautobot/issues/5298) - Fixed a `ValidationError` that was being thrown when a user logged out.\r\n- [#5298](https://github.com/nautobot/nautobot/issues/5298) - Fixed a case where viewing a completed JobResult that was missing a `date_done` value would cause the JobResult view to repeatedly refresh.\r\n\r\n### Dependencies\r\n\r\n- [#5248](https://github.com/nautobot/nautobot/issues/5248) - Broadened `Markdown` dependency to permit versions up to 3.5.x.\r\n\r\n### Documentation\r\n\r\n- [#5179](https://github.com/nautobot/nautobot/issues/5179) - Updated all documentation referencing the `example_plugin` to refer to the (renamed) `example_app`.\r\n- [#5179](https://github.com/nautobot/nautobot/issues/5179) - Replaced some \"plugin\" references in the documentation with \"App\" or \"Nautobot App\" as appropriate.\r\n- [#5248](https://github.com/nautobot/nautobot/issues/5248) - Removed source code excerpts from the \"App Developer Guide > Code Reference\" section of the documentation.\r\n- [#5341](https://github.com/nautobot/nautobot/issues/5341) - Replaced references to \"plugins\" in the documentation with \"Apps\".\r\n\r\n### Housekeeping\r\n\r\n- [#5099](https://github.com/nautobot/nautobot/issues/5099) - Added `mkdocs-macros-plugin` as a development/documentation-rendering dependency.\r\n- [#5099](https://github.com/nautobot/nautobot/issues/5099) - Refactored documentation in `optional-settings` and `required-settings` to be generated automatically from `settings.yaml` schema.\r\n- [#5099](https://github.com/nautobot/nautobot/issues/5099) - Replaced `nautobot/core/settings.json` with `nautobot/core/settings.yaml` for improved readability and maintainability.\r\n- [#5105](https://github.com/nautobot/nautobot/issues/5105) - Added Bulk Edit functionality for ContactAssociation.\r\n- [#5105](https://github.com/nautobot/nautobot/issues/5105) - Added Bulk Edit buttons for associated contact tables in the contacts tabs of object detail views.\r\n- [#5145](https://github.com/nautobot/nautobot/issues/5145) - Added data migration to populate default statuses and default roles for the `ContactAssociation` model.\r\n- [#5179](https://github.com/nautobot/nautobot/issues/5179) - Renamed `example_plugin` to `example_app`.\r\n- [#5179](https://github.com/nautobot/nautobot/issues/5179) - Renamed `example_plugin_with_view_override` to `example_app_with_view_override`.\r\n- [#5179](https://github.com/nautobot/nautobot/issues/5179) - Replaced all \"plugin\" terminology within the `examples` directory with \"App\", except in cases where the terminology is embedded in core code (`settings.PLUGINS`, `plugins:` and `plugins-api` named URLs, etc.)\r\n- [#5179](https://github.com/nautobot/nautobot/issues/5179) - Replaced some \"plugin\" terminology in docstrings, comments, and test code with \"app\" as appropriate.\r\n- [#5187](https://github.com/nautobot/nautobot/issues/5187) - Removed \"Add Contact\" button from the standard buttons in the detail views.\r\n- [#5187](https://github.com/nautobot/nautobot/issues/5187) - Renamed \"Assign Contact/Team\" UI buttons text from \"Create\", \"Create and Add Another\" to \"Assign\" and \"Assign and Add Another\".\r\n- [#5187](https://github.com/nautobot/nautobot/issues/5187) - Split out Contact/Team icons into a separate column and renamed the columns to \"Type\" and \"Name\" on AssociatedContactsTable.\r\n- [#5207](https://github.com/nautobot/nautobot/issues/5207) - Made `role` attribute required on `ContactAssociation` Model.\r\n- [#5213](https://github.com/nautobot/nautobot/issues/5213) - Made the default action when assigning a contact/team to an object to be the assignment of an existing contact/team.\r\n- [#5214](https://github.com/nautobot/nautobot/issues/5214) - Fixed the bug causing Contact Tab disappear when the user navigates to the Notes and Changelog Tabs.\r\n- [#5221](https://github.com/nautobot/nautobot/issues/5221) - Fixed the return URL from adding/assigning a contact/team from ObjectDetailView to redirect to the contacts tab instead of the main tab.\r\n- [#5248](https://github.com/nautobot/nautobot/issues/5248) - Updated development dependencies including `coverage`, `django-debug-toolbar`, `factory-boy`, `mkdocs-material`, `mkdocstrings`, `mkdocstrings-python`, `pylint`, `rich`, `ruff`, `selenium`, `splinter`, `towncrier`, `watchdog`, and `yamllint` to their latest available versions.\r\n- [#5272](https://github.com/nautobot/nautobot/issues/5272) - Fixed incorrectly set return urls on the edit and delete buttons of job tile view.\r\n- [#5352](https://github.com/nautobot/nautobot/issues/5352) - Renamed `HardwareFamily` to `DeviceFamily`.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @timizuoebideri1 \r\n* @gsnider2195 \r\n* @HanlinMiao \r\n* @norbert-mieczkowski-codilime \r\n* @gertzakis \r\n* @whitej6 \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.8...v2.2.0-beta.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5458",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/147082641",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/147082641/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/147082641/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.8",
        "id": 147082641,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IxE2R",
        "tag_name": "v2.1.8",
        "target_commitish": "main",
        "name": "v2.1.8 - 2024-03-18",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-18T17:11:35Z",
        "updated_at": "2024-03-18T17:34:47Z",
        "published_at": "2024-03-18T17:16:36Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/157323565",
                "id": 157323565,
                "node_id": "RA_kwDOFEucDc4JYJEt",
                "name": "nautobot-2.1.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31651065,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-03-18T17:34:46Z",
                "updated_at": "2024-03-18T17:34:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.8/nautobot-2.1.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/157323564",
                "id": 157323564,
                "node_id": "RA_kwDOFEucDc4JYJEs",
                "name": "nautobot-2.1.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30715297,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-03-18T17:34:44Z",
                "updated_at": "2024-03-18T17:34:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.8/nautobot-2.1.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.8",
        "body": "## What's Changed\r\n### Added\r\n\r\n- [#1102](https://github.com/nautobot/nautobot/issues/1102) - Added `CELERY_BEAT_HEARTBEAT_FILE` settings variable.\r\n- [#5228](https://github.com/nautobot/nautobot/issues/5228) - Added the option to configure and enforce `validation_minimum` and `validation_maximum` as length constraints on a Custom Field of type `Text`, `URL`, `JSON`, `Markdown`, `Selection`, or `Multiple Selection`.\r\n- [#5228](https://github.com/nautobot/nautobot/issues/5228) - Added the option to configure and enforce `validation_regex` as a constraint on valid choice definitions for a Custom Field of type `Selection` or `Multiple Selection`.\r\n- [#5400](https://github.com/nautobot/nautobot/issues/5400) - Added power-port/power-outlet types `IEC 60906-1`, `2P+T 10A (NBR 14136)`, and `2P+T 20A (NBR 14136)`.\r\n- [#5401](https://github.com/nautobot/nautobot/issues/5401) - Added front/rear port types `LX.5`, `LX.5/PC`, `LX.5/UPC`, and `LX.5/APC`.\r\n- [#5402](https://github.com/nautobot/nautobot/issues/5402) - Added interface types `CXP (100GE)`, `DSFP (100GE)`, `SFP-DD (100GE)`, `QSFP-DD (100GE)`, `QSFP-DD (200GE)`, `CFP2 (400GE)`, `OSFP-RHS (400GE)`, `CDFP (400GE)`, `CPF8 (400GE)`, `SFP+ (32GFC)`, `SFP-DD (64GFC)`, and `SFP+ (64GFC)`.\r\n- [#5424](https://github.com/nautobot/nautobot/issues/5424) - Added `TemplateExtension.list_buttons()` API, allowing apps to register button content to be injected into object list views.\r\n\r\n### Changed\r\n\r\n- [#5403](https://github.com/nautobot/nautobot/issues/5403) - Changed uses of `functools.lru_cache` to use django-redis cache instead.\r\n- [#5403](https://github.com/nautobot/nautobot/issues/5403) - Standardized cache key strings used with the django-redis cache.\r\n\r\n### Removed\r\n\r\n- [#5228](https://github.com/nautobot/nautobot/issues/5228) - Removed the hard-coded 255-character limit on custom fields of type `Text`.\r\n\r\n### Fixed\r\n\r\n- [#5247](https://github.com/nautobot/nautobot/issues/5247) - Fixed Job buttons do not respect the `task_queues` of the job class.\r\n- [#5380](https://github.com/nautobot/nautobot/issues/5380) - Fixed incorrect permission for \"Add Tenant\" button in the navigation menu.\r\n- [#5380](https://github.com/nautobot/nautobot/issues/5380) - Added missing `extras.view_scheduledjob` permission to the \"Job Approval Queue\" navigation menu item.\r\n- [#5395](https://github.com/nautobot/nautobot/issues/5395) - Fixed incorrect permission for \"Roles\" link in the navigation menu.\r\n- [#5403](https://github.com/nautobot/nautobot/issues/5403) - Fixed an issue with stale CustomField, ComputedField, Relationship, and TreeModel caches that caused incorrect data at times.\r\n\r\n### Documentation\r\n\r\n- [#5437](https://github.com/nautobot/nautobot/issues/5437) - Added release-note for version 1.6.15.\r\n- [#5421](https://github.com/nautobot/nautobot/issues/5421) - Added release-notes for versions 1.6.11 through 1.6.14.\r\n\r\n### Housekeeping\r\n\r\n- [#1102](https://github.com/nautobot/nautobot/issues/1102) - Added health check for Celery Beat based on it touching a file (by default `/tmp/nautobot_celery_beat_heartbeat`) each time its scheduler wakes up.\r\n- [#3213](https://github.com/nautobot/nautobot/issues/3213) - Removed redundant filter tests for related boolean filters.\r\n- [#5434](https://github.com/nautobot/nautobot/issues/5434) - Fixed health check for beat container in `docker-compose.yml` under `docker-compose` v1.x.\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @glennmatthews \r\n* @HanlinMiao \r\n* @whitej6 \r\n* @lampwins \r\n* @Kircheneer \r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.7...v2.1.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5443",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/147079573",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/147079573/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/147079573/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.15",
        "id": 147079573,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IxEGV",
        "tag_name": "v1.6.15",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.15 - 2024-03-18",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-18T16:50:26Z",
        "updated_at": "2024-03-18T17:36:49Z",
        "published_at": "2024-03-18T16:57:10Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/157323760",
                "id": 157323760,
                "node_id": "RA_kwDOFEucDc4JYJHw",
                "name": "nautobot-1.6.15-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30966853,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-03-18T17:36:48Z",
                "updated_at": "2024-03-18T17:36:49Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.15/nautobot-1.6.15-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/157323753",
                "id": 157323753,
                "node_id": "RA_kwDOFEucDc4JYJHp",
                "name": "nautobot-1.6.15.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30278637,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-03-18T17:36:46Z",
                "updated_at": "2024-03-18T17:36:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.15/nautobot-1.6.15.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.15",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.15",
        "body": "## What's Changed\r\n### Added\r\n\r\n- [#1102](https://github.com/nautobot/nautobot/issues/1102) - Added `CELERY_BEAT_HEARTBEAT_FILE` settings variable.\r\n- [#5424](https://github.com/nautobot/nautobot/issues/5424) - Added `TemplateExtension.list_buttons()` API, allowing apps to register button content to be injected into object list views.\r\n\r\n### Fixed\r\n\r\n- [#5247](https://github.com/nautobot/nautobot/issues/5247) - Fixed Job buttons do not respect the `task_queues` of the job class.\r\n- [#5354](https://github.com/nautobot/nautobot/issues/5354) - Fixed Configuration Context not applied based on nested Tenant Groups.\r\n\r\n### Housekeeping\r\n\r\n- [#1102](https://github.com/nautobot/nautobot/issues/1102) - Added health check for Celery Beat based on it touching a file (by default `/tmp/nautobot_celery_beat_heartbeat`) each time its scheduler wakes up.\r\n- [#5434](https://github.com/nautobot/nautobot/issues/5434) - Fixed health check for beat container in `docker-compose.yml` under `docker-compose` v1.x.\r\n## Contributors\r\n* @HanlinMiao\r\n* @lampwins\r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.14...v1.6.15",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5441",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/144894518",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/144894518/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/144894518/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.7",
        "id": 144894518,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Iouo2",
        "tag_name": "v2.1.7",
        "target_commitish": "main",
        "name": "v2.1.7 - 2024-03-05",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-05T15:41:18Z",
        "updated_at": "2024-03-05T16:01:46Z",
        "published_at": "2024-03-05T15:43:46Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/155042438",
                "id": 155042438,
                "node_id": "RA_kwDOFEucDc4JPcKG",
                "name": "nautobot-2.1.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31621097,
                "digest": null,
                "download_count": 13,
                "created_at": "2024-03-05T16:01:45Z",
                "updated_at": "2024-03-05T16:01:46Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.7/nautobot-2.1.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/155042437",
                "id": 155042437,
                "node_id": "RA_kwDOFEucDc4JPcKF",
                "name": "nautobot-2.1.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30689060,
                "digest": null,
                "download_count": 14,
                "created_at": "2024-03-05T16:01:43Z",
                "updated_at": "2024-03-05T16:01:44Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.7/nautobot-2.1.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.7",
        "body": "## What's Changed\r\n\r\n### Fixed\r\n\r\n- [#5387](https://github.com/nautobot/nautobot/issues/5387) - Fixed an error in the Dockerfile that resulted in `pyuwsgi` being installed without SSL support.\r\n\r\n\r\n## Contributors\r\n\r\n* @glennmatthews \r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.6...v2.1.7",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5392",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/144923376",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/144923376/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/144923376/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.14",
        "id": 144923376,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Io1rw",
        "tag_name": "v1.6.14",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.14 - 2024-03-05",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-05T18:17:42Z",
        "updated_at": "2024-03-05T19:00:47Z",
        "published_at": "2024-03-05T18:18:47Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/155069914",
                "id": 155069914,
                "node_id": "RA_kwDOFEucDc4JPi3a",
                "name": "nautobot-1.6.14-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30963827,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-03-05T19:00:46Z",
                "updated_at": "2024-03-05T19:00:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.14/nautobot-1.6.14-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/155069909",
                "id": 155069909,
                "node_id": "RA_kwDOFEucDc4JPi3V",
                "name": "nautobot-1.6.14.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30275247,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-03-05T19:00:44Z",
                "updated_at": "2024-03-05T19:00:46Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.14/nautobot-1.6.14.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.14",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.14",
        "body": "## What's Changed\r\n\r\n### Fixed\r\n\r\n- [#5387](https://github.com/nautobot/nautobot/issues/5387) - Fixed an error in the Dockerfile that resulted in `pyuwsgi` being installed without SSL support.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.13...v1.6.14",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5394",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/144731932",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/144731932/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/144731932/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.6",
        "id": 144731932,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IoG8c",
        "tag_name": "v2.1.6",
        "target_commitish": "main",
        "name": "v2.1.6 - 2024-03-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-04T22:08:48Z",
        "updated_at": "2024-03-05T14:27:48Z",
        "published_at": "2024-03-04T22:12:26Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/154904980",
                "id": 154904980,
                "node_id": "RA_kwDOFEucDc4JO6mU",
                "name": "nautobot-2.1.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31620938,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-03-04T22:29:39Z",
                "updated_at": "2024-03-04T22:29:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.6/nautobot-2.1.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/154904978",
                "id": 154904978,
                "node_id": "RA_kwDOFEucDc4JO6mS",
                "name": "nautobot-2.1.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30688829,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-03-04T22:29:37Z",
                "updated_at": "2024-03-04T22:29:39Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.6/nautobot-2.1.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.6",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5319](https://github.com/nautobot/nautobot/issues/5319) - Updated `cryptography` to 42.0.4 due to CVE-2024-26130. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Added\r\n\r\n- [#5172](https://github.com/nautobot/nautobot/issues/5172) - Added Collapse Capable Side Navbar: Side Navbar is now able to be expanded and collapsed\r\n- [#5172](https://github.com/nautobot/nautobot/issues/5172) - Added Expandable Main Content: The Main Content part of the UI grows as the Side Navbar collapses and shrinks as the Side Navbar expands.\r\n- [#5172](https://github.com/nautobot/nautobot/issues/5172) - Added Better mobile friendly bottom navbar: This update will switch to vertically aligned bottom nav menu items once a certain media query is hit, making for a better mobile experience.\r\n- [#5172](https://github.com/nautobot/nautobot/issues/5172) - Added automatic Side Navbar collapse for mobile devices.  This is based on media query and will trigger at specific width.\r\n- [#5329](https://github.com/nautobot/nautobot/issues/5329) - Added caching of `ChangeLoggedModelsQuery().as_queryset()` to improve performance when saving many objects in a change-logged context.\r\n- [#5361](https://github.com/nautobot/nautobot/issues/5361) - Added `nautobot.core.testing.forms.FormTestCases` base class and added it to `nautobot.apps.testing` as well.\r\n\r\n### Changed\r\n\r\n- [#5082](https://github.com/nautobot/nautobot/issues/5082) - Adjusted Edit / Create panels to occupy more page width on medium and large screens.\r\n\r\n### Fixed\r\n\r\n- [#4106](https://github.com/nautobot/nautobot/issues/4106) - Fixed inefficient query in VirtualMachine create form.\r\n- [#5172](https://github.com/nautobot/nautobot/issues/5172) - Fixed Brand Icon mouseover Background: Fix for mouseover effect on the Brand / Icon (was flashing white background vs being transparent) when in dark mode.\r\n- [#5307](https://github.com/nautobot/nautobot/issues/5307) - Fixed Custom Field form field(s) missing from git repository edit form.\r\n- [#5309](https://github.com/nautobot/nautobot/issues/5309) - Fixed `Tenant` UI detail view breadcrumb with invalid `TenantGroup` filter link.\r\n- [#5309](https://github.com/nautobot/nautobot/issues/5309) - Fixed `TenantGroup` UI detail view with invalid \"add tenant\" button invalid `query_params` link.\r\n- [#5309](https://github.com/nautobot/nautobot/issues/5309) - Fixed `DeviceForm` invalid `cluster` field `query_params`.\r\n- [#5309](https://github.com/nautobot/nautobot/issues/5309) - Fixed `PrefixForm` invalid `vlan` and `vlan_group` fields `query_params`.\r\n- [#5311](https://github.com/nautobot/nautobot/issues/5311) - Fixed dependencies in various migration files.\r\n- [#5332](https://github.com/nautobot/nautobot/issues/5332) - Fixed Docker image missing OS-level dependencies for SSO (SAML) support.\r\n- [#5334](https://github.com/nautobot/nautobot/issues/5334) - Fixed migration from 1.x failing when specific duplicate prefixes are present.\r\n- [#5343](https://github.com/nautobot/nautobot/issues/5343) - Fixed incorrect reference for `device.device_role` on the Rack detail view for non-racked device objects.\r\n- [#5345](https://github.com/nautobot/nautobot/issues/5345) - Fixed intermittent 405 errors when using the Docker image with SAML authentication.\r\n- [#5346](https://github.com/nautobot/nautobot/issues/5346) - Fixed device LLDP view to work when interface names include a space.\r\n- [#5365](https://github.com/nautobot/nautobot/issues/5365) - Fixed `invalidate_max_depth_cache` itself calculating `max_depth` on querysets without tree fields.\r\n\r\n### Documentation\r\n\r\n- [#4419](https://github.com/nautobot/nautobot/issues/4419) - Added documentation on `nautobot.apps` import locations.\r\n- [#4419](https://github.com/nautobot/nautobot/issues/4419) - Added documentation about the supported public interfaces.\r\n- [#4419](https://github.com/nautobot/nautobot/issues/4419) - Removed some incorrect content from the documentation about nav menu changes that were reverted during 2.0 development.\r\n- [#4511](https://github.com/nautobot/nautobot/issues/4511) - Added documentation on how to correctly implement NautobotUIViewSet with custom views.\r\n- [#5284](https://github.com/nautobot/nautobot/issues/5284) - Added a quick overview of the most used models.\r\n- [#5311](https://github.com/nautobot/nautobot/issues/5311) - Added documentation on writing custom migrations.\r\n- [#5326](https://github.com/nautobot/nautobot/issues/5326) - Fixed simple typo in creating-location-types-and-locations.md.\r\n- [#5330](https://github.com/nautobot/nautobot/issues/5330) - Updated SSO documentation to include a view for presenting SAML metadata.\r\n- [#5345](https://github.com/nautobot/nautobot/issues/5345) - Added a note to the Nautobot installation documentation about the need to do `pip3 install --no-binary=pyuwsgi` in order to have SSL support in `pyuwsgi`.\r\n- [#5345](https://github.com/nautobot/nautobot/issues/5345) - Added a note to the SSO documentation about the need to do `pip3 install --no-binary=lxml` to avoid incompatibilities between `lxml` and `xmlsec` packages.\r\n\r\n## Contributors\r\n\r\n* @HanlinMiao\r\n* @timizuoebideri1\r\n* @gsnider2195\r\n* @itdependsnetworks\r\n* @edwardtheharris\r\n* @dependabot\r\n* @whitej6\r\n* @glennmatthews\r\n* @bradh11 \r\n* @abates\r\n* @Kircheneer \r\n* @mathiaswegner\r\n\r\n## New Contributors\r\n* @edwardtheharris made their first contribution in https://github.com/nautobot/nautobot/pull/5327\r\n* @mathiaswegner made their first contribution in https://github.com/nautobot/nautobot/pull/5331\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.5...v2.1.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5384",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/144732461",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/144732461/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/144732461/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.13",
        "id": 144732461,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IoHEt",
        "tag_name": "v1.6.13",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.13 - 2024-03-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-03-04T22:14:55Z",
        "updated_at": "2024-03-04T23:01:21Z",
        "published_at": "2024-03-04T22:16:49Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/154909885",
                "id": 154909885,
                "node_id": "RA_kwDOFEucDc4JO7y9",
                "name": "nautobot-1.6.13-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30963675,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-03-04T23:01:20Z",
                "updated_at": "2024-03-04T23:01:21Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.13/nautobot-1.6.13-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/154909877",
                "id": 154909877,
                "node_id": "RA_kwDOFEucDc4JO7y1",
                "name": "nautobot-1.6.13.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30275034,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-03-04T23:01:18Z",
                "updated_at": "2024-03-04T23:01:20Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.13/nautobot-1.6.13.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.13",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.13",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#4247](https://github.com/nautobot/nautobot/issues/4247) - Added a check to the `nautobot-server pre_migrate` command to identify Interfaces and VMInterfaces with multiple VRFs through IPAddress relationships.\r\n\r\n### Fixed\r\n\r\n- [#5307](https://github.com/nautobot/nautobot/issues/5307) - Fixed Custom Field form field(s) missing from git repository edit form.\r\n- [#5336](https://github.com/nautobot/nautobot/issues/5336) - Fixed 'docker-compose: command not found' error when running invoke commands.\r\n- [#5345](https://github.com/nautobot/nautobot/issues/5345) - Fixed intermittent 405 errors when using the Docker image with SAML authentication.\r\n\r\n### Documentation\r\n\r\n- [#5345](https://github.com/nautobot/nautobot/issues/5345) - Added a note to the Nautobot installation documentation about the need to do `pip3 install --no-binary=pyuwsgi` in order to have SSL support in `pyuwsgi`.\r\n- [#5345](https://github.com/nautobot/nautobot/issues/5345) - Added a note to the SSO documentation about the need to do `pip3 install --no-binary=lxml` to avoid incompatibilities between `lxml` and `xmlsec` packages.\r\n\r\n## Contributors\r\n\r\n* @gsnider2195\r\n* @glennmatthews\r\n* @HanlinMiao\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.12...v1.6.13",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5385",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/143024616",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/143024616/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/143024616/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.5",
        "id": 143024616,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IhmHo",
        "tag_name": "v2.1.5",
        "target_commitish": "main",
        "name": "v2.1.5 - 2024-02-21",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-02-21T17:01:41Z",
        "updated_at": "2024-02-21T17:25:18Z",
        "published_at": "2024-02-21T17:07:17Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/152819809",
                "id": 152819809,
                "node_id": "RA_kwDOFEucDc4JG9hh",
                "name": "nautobot-2.1.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30590641,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-02-21T17:25:18Z",
                "updated_at": "2024-02-21T17:25:18Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.5/nautobot-2.1.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/152819806",
                "id": 152819806,
                "node_id": "RA_kwDOFEucDc4JG9he",
                "name": "nautobot-2.1.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 29660999,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-02-21T17:25:16Z",
                "updated_at": "2024-02-21T17:25:17Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.5/nautobot-2.1.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.5",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5303](https://github.com/nautobot/nautobot/pull/5303) - Updated `cryptography` to 42.0.2 due to CVE-2024-0727. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Added\r\n\r\n- [#5171](https://github.com/nautobot/nautobot/issues/5171) - Added `latest` and `latest-py<version>` tags to the `nautobot` Docker images published for the latest stable release of Nautobot.\r\n- [#5210](https://github.com/nautobot/nautobot/issues/5210) - Added `METRICS_AUTHENTICATED` setting to control authentication for the HTTP endpoint `/metrics`.\r\n- [#5243](https://github.com/nautobot/nautobot/issues/5243) - Added support for setting display_field on DynamicModelChoiceField to nested values in suggested choices list.\r\n\r\n### Changed\r\n\r\n- [#5171](https://github.com/nautobot/nautobot/issues/5171) - Changed the tagging of `nautobot-dev` Docker images to reserve the `latest` and `latest-py<version>` tags for the latest stable release of Nautobot, rather than the latest build from the `develop` branch.\r\n- [#5254](https://github.com/nautobot/nautobot/issues/5254) - Changed `TreeQuerySet.ancestors` implementation to a more efficient approach for shallow trees.\r\n- [#5254](https://github.com/nautobot/nautobot/issues/5254) - Changed the location detail view not to annotate tree fields on its queries.\r\n- [#5267](https://github.com/nautobot/nautobot/issues/5267) - Updated navbar user dropdown with chevron.\r\n\r\n### Fixed\r\n\r\n- [#5058](https://github.com/nautobot/nautobot/issues/5058) - Changed more filter parameters from `location_id` to `location` in `virtualization/forms.py`.\r\n- [#5121](https://github.com/nautobot/nautobot/issues/5121) - Fixed an issue where deleting a git repository resulted in a job result stuck in running state.\r\n- [#5186](https://github.com/nautobot/nautobot/issues/5186) - Fixed a case where an IPAddress created with a `host` and `mask_length` would default to a null `ip_version`.\r\n- [#5267](https://github.com/nautobot/nautobot/issues/5267) - Fixed hover coloring after closing/reopening navbar dropdown.\r\n- [#5267](https://github.com/nautobot/nautobot/issues/5267) - Fixed button spacing when there are multiple buttons in navbar.\r\n- [#5283](https://github.com/nautobot/nautobot/issues/5283) - Fixed inconsistent ordering of IP addresses in various tables.\r\n\r\n### Documentation\r\n\r\n- [#3349](https://github.com/nautobot/nautobot/issues/3349) - Added annotations to document the importance of keeping the TIME_ZONE setting consistent on Nautobot web servers and Celery Beat servers.\r\n- [#5297](https://github.com/nautobot/nautobot/issues/5297) - Updated the low level application stack diagram to orient user traffic coming from the top.\r\n\r\n### Housekeeping\r\n\r\n- [#5267](https://github.com/nautobot/nautobot/issues/5267) - Reorganized navbar css rules in `base.css`.\r\n\r\n## Contributors\r\n\r\n* @gsnider2195\r\n* @timizuoebideri1\r\n* @glennmatthews\r\n* @nlgotz\r\n* @gsnider2195\r\n* @skrobul\r\n* @Kircheneer \r\n* @DistantVoyager \r\n* @tlourey\r\n* @itdependsnetworks\r\n* @HanlinMiao \r\n\r\n## New Contributors\r\n\r\n* @skrobul made their first contribution in https://github.com/nautobot/nautobot/pull/5244\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.4...v2.1.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5316",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/142900431",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/142900431/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/142900431/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.12",
        "id": 142900431,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IhHzP",
        "tag_name": "v1.6.12",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.12 - 2024-02-20",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-02-21T04:39:13Z",
        "updated_at": "2024-02-21T05:24:12Z",
        "published_at": "2024-02-21T04:44:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/152710068",
                "id": 152710068,
                "node_id": "RA_kwDOFEucDc4JGiu0",
                "name": "nautobot-1.6.12-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30959885,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-02-21T05:24:10Z",
                "updated_at": "2024-02-21T05:24:12Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.12/nautobot-1.6.12-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/152710060",
                "id": 152710060,
                "node_id": "RA_kwDOFEucDc4JGius",
                "name": "nautobot-1.6.12.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30271255,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-02-21T05:24:08Z",
                "updated_at": "2024-02-21T05:24:10Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.12/nautobot-1.6.12.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.12",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.12",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#5104](https://github.com/nautobot/nautobot/issues/5104) - Added User Token as permission constraints.\r\n\r\n### Security\r\n\r\n- [#5251](https://github.com/nautobot/nautobot/issues/5251) - Updated `Django` dependency to 3.2.24 due to CVE-2024-24680.\r\n\r\n### Changed\r\n\r\n- [#5254](https://github.com/nautobot/nautobot/issues/5254) - Changed `TreeQuerySet.ancestors` implementation to a more efficient approach for shallow trees.\r\n- [#5254](https://github.com/nautobot/nautobot/issues/5254) - Changed the location detail view not to annotate tree fields on its queries.\r\n\r\n### Fixed\r\n\r\n- [#5253](https://github.com/nautobot/nautobot/issues/5253) - Fixed issue with Job Button Groups displaying when Conditional Rendering should remove the button.\r\n- [#5261](https://github.com/nautobot/nautobot/issues/5261) - Fixed a regression introduced in v1.6.8 where Job Buttons would always run with `commit=False`.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @smk4664 \r\n* @Kircheneer \r\n* @gertzakis \r\n* @HanlinMiao \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.11...v1.6.12",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5312",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/140705529",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/140705529/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/140705529/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.4",
        "id": 140705529,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IYv75",
        "tag_name": "v2.1.4",
        "target_commitish": "main",
        "name": "v2.1.4 - 2024-02-08",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-02-08T21:45:05Z",
        "updated_at": "2024-02-08T22:07:12Z",
        "published_at": "2024-02-08T21:48:48Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/150596705",
                "id": 150596705,
                "node_id": "RA_kwDOFEucDc4I-exh",
                "name": "nautobot-2.1.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30455536,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-02-08T22:07:11Z",
                "updated_at": "2024-02-08T22:07:12Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.4/nautobot-2.1.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/150596704",
                "id": 150596704,
                "node_id": "RA_kwDOFEucDc4I-exg",
                "name": "nautobot-2.1.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 29524957,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-02-08T22:07:09Z",
                "updated_at": "2024-02-08T22:07:10Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.4/nautobot-2.1.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.4",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5251](https://github.com/nautobot/nautobot/issues/5251) - Updated `Django` dependency to 3.2.24 due to CVE-2024-24680.\r\n\r\n### Fixed\r\n\r\n- [#5254](https://github.com/nautobot/nautobot/issues/5254) - Fixed `TypeError` and similar exceptions thrown when rendering certain App data tables in v2.1.3.\r\n\r\n### Documentation\r\n\r\n- [#4778](https://github.com/nautobot/nautobot/issues/4778) - Added troubleshooting documentation for PostgreSQL databases with unsupported encoding settings.\r\n\r\n### Housekeeping\r\n\r\n- [#5240](https://github.com/nautobot/nautobot/issues/5240) - Changed test config to use `constance.backends.memory.MemoryBackend` to avoid intermittent failures in parallel tests.\r\n\r\n## Contributors\r\n\r\n- @glennmatthews \r\n- @gsnider2195\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.3...v2.1.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5259",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/139995268",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/139995268/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/139995268/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.3",
        "id": 139995268,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IWCiE",
        "tag_name": "v2.1.3",
        "target_commitish": "main",
        "name": "v2.1.3 - 2024-02-05",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-02-05T21:33:30Z",
        "updated_at": "2024-02-05T21:55:41Z",
        "published_at": "2024-02-05T21:36:57Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/149989614",
                "id": 149989614,
                "node_id": "RA_kwDOFEucDc4I8Kju",
                "name": "nautobot-2.1.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30452459,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-02-05T21:55:39Z",
                "updated_at": "2024-02-05T21:55:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.3/nautobot-2.1.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/149989613",
                "id": 149989613,
                "node_id": "RA_kwDOFEucDc4I8Kjt",
                "name": "nautobot-2.1.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 29520515,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-02-05T21:55:37Z",
                "updated_at": "2024-02-05T21:55:39Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.3/nautobot-2.1.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.3",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5151](https://github.com/nautobot/nautobot/issues/5151) - Updated `pillow` dependency to 10.2.0 due to CVE-2023-50447.\r\n\r\n### Added\r\n\r\n- [#4981](https://github.com/nautobot/nautobot/issues/4981) - Add serial types to InterfaceTypeChoices.\r\n- [#5012](https://github.com/nautobot/nautobot/issues/5012) - Added database indexes to the ObjectChange model to improve performance when filtering by `user_name`, `changed_object`, or `related_object`, and also by `changed_object` in combination with `user` or `user_name`.\r\n- [#5169](https://github.com/nautobot/nautobot/issues/5169) - Added support for user session profiling via django-silk.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Added Navbar dropdown arrow rotation on open/close.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Added behavior of resetting navbar state when the \"home\" link is clicked.\r\n\r\n### Changed\r\n\r\n- [#5149](https://github.com/nautobot/nautobot/issues/5149) - Updated the Job List to show Job Hook Receiver and Job Button Receiver Jobs, which were previously being hidden from view.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Changed navbar dropdown link behavior to turn orange when active/clicked; state is saved.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Changed navbar dropdown link hover style.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Changed navbar state save to use session storage.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Changed navbar dropdown to use chevron icon instead of carets.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Aligned navbar dropdown icons to the right.\r\n\r\n### Removed\r\n\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Removed unneeded tooltip of dropdown title.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Removed navbar dropdown links underlining.\r\n\r\n### Fixed\r\n\r\n- [#3664](https://github.com/nautobot/nautobot/issues/3664) - Fixed AssertionError when querying Date type custom fields in GraphQL.\r\n- [#4898](https://github.com/nautobot/nautobot/issues/4898) - Improved automatic query optimization when rendering object list views.\r\n- [#4898](https://github.com/nautobot/nautobot/issues/4898) - Optimized database queries to improve performance of `/api/ipam/prefixes/` and `/api/ipam/vrfs/` REST API endpoints.\r\n- [#5067](https://github.com/nautobot/nautobot/issues/5067) - Fixed missing search filter on ExternalIntegration.\r\n- [#5146](https://github.com/nautobot/nautobot/issues/5146) - Changed nav menu items to collapse in a smooth animated way, rather than jumping 100% open immediately and covering menu items below. Previously opened menu items now collapse smoothly as well.\r\n- [#5146](https://github.com/nautobot/nautobot/issues/5146) - Changed nav menu so that menu expansion now pushes other menus below it downward rather than covering them (z axis).\r\n- [#5146](https://github.com/nautobot/nautobot/issues/5146) - Changed nav menu headers to not lose their color after a link was clicked.\r\n- [#5146](https://github.com/nautobot/nautobot/issues/5146) - Added nav menu state (expanded or closed) and scroll position to local storage, allowing it to be maintained on page refresh, link clicked, or page reload.\r\n- [#5174](https://github.com/nautobot/nautobot/issues/5174) - Added missing postgresql public schema permission grant command.\r\n- [#5178](https://github.com/nautobot/nautobot/issues/5178) - Fixed navbar dropdown links alignment and spacing.\r\n- [#5198](https://github.com/nautobot/nautobot/issues/5198) - Fixed error in device and rack dropdowns when attempting to add an Interface to an InterfaceRedundancyGroup.\r\n\r\n### Dependencies\r\n\r\n- [#4821](https://github.com/nautobot/nautobot/issues/4821) - Updated `MarkupSafe` dependency to 2.1.5.\r\n- [#4821](https://github.com/nautobot/nautobot/issues/4821) - Updated `mysqlclient` dependency to 2.2.3.\r\n- [#4821](https://github.com/nautobot/nautobot/issues/4821) - Updated `python-slugify` dependency to 8.0.3.\r\n- [#4821](https://github.com/nautobot/nautobot/issues/4821) - Updated `pyuwsgi` dependency to 2.0.23.\r\n\r\n### Housekeeping\r\n\r\n- [#4821](https://github.com/nautobot/nautobot/issues/4821) - Updated `mkdocs-section-index` documentation dependency to 0.3.8.\r\n- [#4821](https://github.com/nautobot/nautobot/issues/4821) - Updated `ruff` development dependency to 0.1.15.\r\n- [#5130](https://github.com/nautobot/nautobot/issues/5130) - Added experimental `--parallel` option to `invoke unittest`.\r\n- [#5163](https://github.com/nautobot/nautobot/issues/5163) - Added `--parallel` flag to `invoke unittest` in CI.\r\n- [#5163](https://github.com/nautobot/nautobot/issues/5163) - Fixed code coverage calculation when running `invoke unittest --parallel`.\r\n- [#5163](https://github.com/nautobot/nautobot/issues/5163) - Changed `invoke unittest` and `invoke integration-test` to automatically report code coverage on successful completion.\r\n- [#5163](https://github.com/nautobot/nautobot/issues/5163) - Changed test code coverage analysis to exclude the test code itself from the analysis.\r\n- [#5206](https://github.com/nautobot/nautobot/issues/5206) - Added q filter test for ExternalIntegration.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @dependabot\r\n* @nicholaskuechler\r\n* @bradh11\r\n* @gsnider2195\r\n* @whitej6\r\n* @HanlinMiao\r\n* @Torstein-Eide\r\n* @lampwins\r\n* @renovate\r\n* @MittWillson\r\n* @DistantVoyager\r\n\r\n## New Contributors\r\n* @nicholaskuechler made their first contribution in https://github.com/nautobot/nautobot/pull/5150\r\n* @bradh11 made their first contribution in https://github.com/nautobot/nautobot/pull/5146\r\n* @Torstein-Eide made their first contribution in https://github.com/nautobot/nautobot/pull/4981\r\n* @MittWillson made their first contribution in https://github.com/nautobot/nautobot/pull/5175\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.2...v2.1.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5233",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/139983973",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/139983973/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/139983973/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.11",
        "id": 139983973,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IV_xl",
        "tag_name": "v1.6.11",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.11 - 2024-02-05",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-02-05T19:58:48Z",
        "updated_at": "2024-02-05T20:48:54Z",
        "published_at": "2024-02-05T20:01:17Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/149981862",
                "id": 149981862,
                "node_id": "RA_kwDOFEucDc4I8Iqm",
                "name": "nautobot-1.6.11-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30954851,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-02-05T20:48:53Z",
                "updated_at": "2024-02-05T20:48:54Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.11/nautobot-1.6.11-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/149981860",
                "id": 149981860,
                "node_id": "RA_kwDOFEucDc4I8Iqk",
                "name": "nautobot-1.6.11.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30265509,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-02-05T20:48:51Z",
                "updated_at": "2024-02-05T20:48:52Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.11/nautobot-1.6.11.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.11",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.11",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5151](https://github.com/nautobot/nautobot/issues/5151) - Updated `pillow` dependency to 10.2.0 due to CVE-2023-50447.\r\n\r\n### Added\r\n\r\n- [#5169](https://github.com/nautobot/nautobot/issues/5169) - Added support for user session profiling via django-silk.\r\n\r\n### Fixed\r\n\r\n- [#3664](https://github.com/nautobot/nautobot/issues/3664) - Fixed AssertionError when querying Date type custom fields in GraphQL.\r\n- [#5162](https://github.com/nautobot/nautobot/issues/5162) - Fixed incorrect rack group variable in device template.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @qduk\r\n* @lampwins\r\n* @HanlinMiao\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.10...v1.6.11",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5231",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/138038332",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/138038332/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/138038332/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.2",
        "id": 138038332,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IOkw8",
        "tag_name": "v2.1.2",
        "target_commitish": "main",
        "name": "v2.1.2 - 2024-01-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-01-22T19:31:43Z",
        "updated_at": "2024-01-22T20:09:42Z",
        "published_at": "2024-01-22T19:35:55Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/147140470",
                "id": 147140470,
                "node_id": "RA_kwDOFEucDc4IxS92",
                "name": "nautobot-2.1.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30231885,
                "digest": null,
                "download_count": 10,
                "created_at": "2024-01-22T20:09:41Z",
                "updated_at": "2024-01-22T20:09:42Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.2/nautobot-2.1.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/147140467",
                "id": 147140467,
                "node_id": "RA_kwDOFEucDc4IxS9z",
                "name": "nautobot-2.1.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 29300661,
                "digest": null,
                "download_count": 12,
                "created_at": "2024-01-22T20:09:39Z",
                "updated_at": "2024-01-22T20:09:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.2/nautobot-2.1.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.2",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5054](https://github.com/nautobot/nautobot/issues/5054) - Added validation of redirect URLs to the \"Add a new IP Address\" and \"Assign an IP Address\" views.\r\n- [#5109](https://github.com/nautobot/nautobot/issues/5109) - Removed `/files/get/` URL endpoint (for viewing FileAttachment files in the browser), as it was unused and could potentially pose security issues.\r\n- [#5133](https://github.com/nautobot/nautobot/issues/5133) - Fixed an XSS vulnerability ([GHSA-v4xv-795h-rv4h](https://github.com/nautobot/nautobot/security/advisories/GHSA-v4xv-795h-rv4h)) in the `render_markdown()` utility function used to render comments, notes, job log entries, etc.\r\n\r\n### Added\r\n\r\n- [#3877](https://github.com/nautobot/nautobot/issues/3877) - Added global filtering to Job Result log table, enabling search across all pages.\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Enhanced the `sanitize` function to also handle sanitization of lists and tuples of strings.\r\n- [#5133](https://github.com/nautobot/nautobot/issues/5133) - Enhanced Markdown-supporting fields (`comments`, `description`, Notes, Job log entries, etc.) to also permit the use of a limited subset of \"safe\" HTML tags and attributes.\r\n\r\n### Changed\r\n\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Changed the `nautobot-server runjob` management command to check whether the requested user has permission to run the requested job.\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Changed the `nautobot-server runjob` management command to check whether the requested job is installed and enabled.\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Changed the `nautobot-server runjob` management command to check whether a Celery worker is running when invoked without the `--local` flag.\r\n- [#5131](https://github.com/nautobot/nautobot/issues/5131) - Improved the performance of the `/api/dcim/locations/` REST API.\r\n\r\n### Removed\r\n\r\n- [#5078](https://github.com/nautobot/nautobot/issues/5078) - Removed `nautobot-server startplugin` management command.\r\n\r\n### Fixed\r\n\r\n- [#4075](https://github.com/nautobot/nautobot/issues/4075) - Fixed sorting of Device Bays list view by installed device status.\r\n- [#4444](https://github.com/nautobot/nautobot/issues/4444) - Fixed Sync Git Repository requires non-matching permissions for UI vs API.\r\n- [#4998](https://github.com/nautobot/nautobot/issues/4998) - Fixed inability to import CSVs where later rows include references to records defined by earlier rows.\r\n- [#5024](https://github.com/nautobot/nautobot/issues/5024) - Improved performance of the Job Result list view by optimizing the way JobLogEntry records are queried.\r\n- [#5024](https://github.com/nautobot/nautobot/issues/5024) - Improved performance of the Device list view by including the manufacturer name in the table queryset.\r\n- [#5024](https://github.com/nautobot/nautobot/issues/5024) - Improved performance of most ObjectListViews by optimizing how Custom fields, Computed fields, and Relationships are queried.\r\n- [#5024](https://github.com/nautobot/nautobot/issues/5024) - Fixed a bug that caused IPAddress objects to query their parent Prefix and Namespace every time they were instantiated.\r\n- [#5024](https://github.com/nautobot/nautobot/issues/5024) - Improved performance of the IPAddress list view by including the namespace in the table queryset.\r\n- [#5024](https://github.com/nautobot/nautobot/issues/5024) - Updated bulk-edit and bulk-delete views to auto-hide any \"actions\" column in the table of objects being edited or deleted.\r\n- [#5031](https://github.com/nautobot/nautobot/issues/5031) - Updated the default sanitizer pattern to include secret(s) and to be flexible with python dictionaries.\r\n- [#5043](https://github.com/nautobot/nautobot/issues/5043) - Fixed early return conditional in `ensure_git_repository`.\r\n- [#5045](https://github.com/nautobot/nautobot/issues/5045) - Adjusted Bootstrap grid breakpoints to account for the space occupied by the sidebar, fixing various page rendering.\r\n- [#5054](https://github.com/nautobot/nautobot/issues/5054) - Fixed missing search logic on the \"Assign an IP Address\" view.\r\n- [#5058](https://github.com/nautobot/nautobot/issues/5058) - Changed filter query parameters from `location_id` to `location` in `virtualization/forms.py`.\r\n- [#5081](https://github.com/nautobot/nautobot/issues/5081) - Fixed core.tables.BaseTable to terminate dynamic queryset's building of pre-fetched fields upon first non-RelatedField of a column.\r\n- [#5095](https://github.com/nautobot/nautobot/issues/5095) - Fixed a couple of potential `KeyError` when refreshing Git repository Jobs.\r\n- [#5095](https://github.com/nautobot/nautobot/issues/5095) - Fixed color highlighting of `error` and `critical` log entries when viewing a Job Result.\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Fixed missing log messages when errors occur during `Job.__call__()` initial setup.\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Fixed misleading \"Job completed\" message from being logged when a Job aborted.\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Fixed an error in `nautobot-server runjob` if a job returned data other than a dict.\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Fixed misleading \"SUCCESS\" message when `nautobot-server runjob` resulted in any JobResult status other than \"FAILED\".\r\n- [#5102](https://github.com/nautobot/nautobot/issues/5102) - Fixed incorrect JobResult data when using `nautobot-server runjob --local` or `JobResult.execute_job()`.\r\n- [#5111](https://github.com/nautobot/nautobot/issues/5111) - Fixed rack group and rack filtering by the location selected in the device bulk edit form.\r\n\r\n### Dependencies\r\n\r\n- [#5083](https://github.com/nautobot/nautobot/issues/5083) - Updated GitPython to version 3.1.41 to address Windows security vulnerability [GHSA-2mqj-m65w-jghx](https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-2mqj-m65w-jghx).\r\n- [#5086](https://github.com/nautobot/nautobot/issues/5086) - Updated Jinja2 to version 3.1.3 to address to address XSS security vulnerability [GHSA-h5c8-rqwp-cp95](https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95).\r\n- [#5133](https://github.com/nautobot/nautobot/issues/5133) - Added `nh3` HTML sanitization library as a dependency.\r\n\r\n### Documentation\r\n\r\n- [#5078](https://github.com/nautobot/nautobot/issues/5078) - Added a link to the `cookiecutter-nautobot-app` project in the App developer documentation.\r\n\r\n### Housekeeping\r\n\r\n- [#4906](https://github.com/nautobot/nautobot/issues/4906) - Added automatic superuser creation environment variables to docker development environment.\r\n- [#4906](https://github.com/nautobot/nautobot/issues/4906) - Updated VS Code Dev Containers configuration and documentation.\r\n- [#5076](https://github.com/nautobot/nautobot/issues/5076) - Updated `packaging` dependency to permit newer versions since it follows CalVer rather than SemVer.\r\n- [#5079](https://github.com/nautobot/nautobot/issues/5079) - Increased overly-brief `start_period` for development `nautobot` container to allow sufficient time for initial migrations to run.\r\n- [#5079](https://github.com/nautobot/nautobot/issues/5079) - Fixed bug with invoke cli and invoke nbshell.\r\n- [#5118](https://github.com/nautobot/nautobot/issues/5118) - Updated PR template to encourage inclusion of screenshots.\r\n\r\n## Contributors\r\n\r\n* @Kircheneer\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @erjac77\r\n* @housepbass\r\n* @bryanculver\r\n* @dependabot\r\n* @lampwins\r\n* @timizuoebideri1\r\n* @jvanderaa\r\n* @gertzakis\r\n* @jeffkala\r\n* @jmcgill298\r\n* @HanlinMiao\r\n* @joewesch\r\n* @tlourey\r\n\r\n## New Contributors\r\n* @housepbass made their first contribution in https://github.com/nautobot/nautobot/pull/5077\r\n* @tlourey made their first contribution in https://github.com/nautobot/nautobot/pull/5124\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.1.1...v2.1.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5147",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/138038332/reactions",
            "total_count": 1,
            "+1": 1,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 16
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/138005863",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/138005863/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/138005863/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.10",
        "id": 138005863,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IOc1n",
        "tag_name": "v1.6.10",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.10 - 2024-01-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-01-22T15:42:59Z",
        "updated_at": "2024-01-22T16:40:59Z",
        "published_at": "2024-01-22T15:46:59Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/147108035",
                "id": 147108035,
                "node_id": "RA_kwDOFEucDc4IxLDD",
                "name": "nautobot-1.6.10-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30745874,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-01-22T16:40:58Z",
                "updated_at": "2024-01-22T16:40:59Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.10/nautobot-1.6.10-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/147108030",
                "id": 147108030,
                "node_id": "RA_kwDOFEucDc4IxLC-",
                "name": "nautobot-1.6.10.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30058152,
                "digest": null,
                "download_count": 9,
                "created_at": "2024-01-22T16:40:57Z",
                "updated_at": "2024-01-22T16:40:58Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.10/nautobot-1.6.10.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.10",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.10",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#5109](https://github.com/nautobot/nautobot/issues/5109) - Removed `/files/get/` URL endpoint (for viewing FileAttachment files in the browser), as it was unused and could potentially pose security issues.\r\n- [#5134](https://github.com/nautobot/nautobot/issues/5134) - Fixed an XSS vulnerability ([GHSA-v4xv-795h-rv4h](https://github.com/nautobot/nautobot/security/advisories/GHSA-v4xv-795h-rv4h)) in the `render_markdown()` utility function used to render comments, notes, job log entries, etc.\r\n\r\n### Added\r\n\r\n- [#5134](https://github.com/nautobot/nautobot/issues/5134) - Enhanced Markdown-supporting fields (`comments`, `description`, Notes, Job log entries, etc.) to also permit the use of a limited subset of \"safe\" HTML tags and attributes.\r\n\r\n### Changed\r\n\r\n- [#5132](https://github.com/nautobot/nautobot/issues/5132) - Updated poetry version for development Docker image to match 2.0.\r\n\r\n### Dependencies\r\n\r\n- [#5087](https://github.com/nautobot/nautobot/issues/5087) - Updated GitPython to version 3.1.41 to address Windows security vulnerability [GHSA-2mqj-m65w-jghx](https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-2mqj-m65w-jghx).\r\n- [#5087](https://github.com/nautobot/nautobot/issues/5087) - Updated Jinja2 to version 3.1.3 to address to address XSS security vulnerability [GHSA-h5c8-rqwp-cp95](https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95).\r\n- [#5134](https://github.com/nautobot/nautobot/issues/5134) - Added `nh3` HTML sanitization library as a dependency.\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @gertzakis\r\n* @Kircheneer\r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.9...v1.6.10",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5144",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/136244807",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/136244807/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/136244807/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.1",
        "id": 136244807,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IHu5H",
        "tag_name": "v2.1.1",
        "target_commitish": "main",
        "name": "v2.1.1 (2024-01-08)",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-01-08T21:30:16Z",
        "updated_at": "2024-01-08T22:27:36Z",
        "published_at": "2024-01-08T21:35:25Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/144476604",
                "id": 144476604,
                "node_id": "RA_kwDOFEucDc4InIm8",
                "name": "nautobot-2.1.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30221621,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-01-08T22:27:34Z",
                "updated_at": "2024-01-08T22:27:36Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.1/nautobot-2.1.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/144476598",
                "id": 144476598,
                "node_id": "RA_kwDOFEucDc4InIm2",
                "name": "nautobot-2.1.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 29293227,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-01-08T22:27:31Z",
                "updated_at": "2024-01-08T22:27:33Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.1/nautobot-2.1.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.1",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#5046](https://github.com/nautobot/nautobot/issues/5046) - Updated the LocationType clone process to pre-populate the original object's parent, nestable and content type fields.\r\n\r\n### Changed\r\n\r\n- [#4992](https://github.com/nautobot/nautobot/issues/4992) - Added change-logging (ObjectChange support) for the ObjectPermission model.\r\n\r\n### Removed\r\n\r\n- [#5033](https://github.com/nautobot/nautobot/issues/5033) - Removed alpha UI from the main code base for now (it still exists in a prototype branch) to reduce the burden of maintaining its dependencies in the meantime.\r\n- [#5035](https://github.com/nautobot/nautobot/issues/5035) - Removed nodesource apt repository from Dockerfile.\r\n\r\n### Fixed\r\n\r\n- [#4606](https://github.com/nautobot/nautobot/issues/4606) - Fixed an error when attempting to \"Save Changes\" to an existing GraphQL saved query via the GraphiQL UI.\r\n- [#4606](https://github.com/nautobot/nautobot/issues/4606) - Fixed incorrect positioning of the \"Save Changes\" button in the \"Queries\" menu in the GraphiQL UI.\r\n- [#4606](https://github.com/nautobot/nautobot/issues/4606) - Fixed incorrect specification of the \"variables\" field in the GraphQL saved query REST API.\r\n- [#4606](https://github.com/nautobot/nautobot/issues/4606) - Fixed a display glitch in the detail view for GraphQL saved queries.\r\n- [#5005](https://github.com/nautobot/nautobot/issues/5005) - Fixed missing schema field in config context create/edit forms.\r\n- [#5020](https://github.com/nautobot/nautobot/issues/5020) - Fixed display of secrets when editing a SecretsGroup.\r\n\r\n### Documentation\r\n\r\n- [#5019](https://github.com/nautobot/nautobot/issues/5019) - Updated the documentation on the usage of the `nautobot-server runjob` management command.\r\n- [#5023](https://github.com/nautobot/nautobot/issues/5023) - Fixed some typos in the 2.1.0 release notes.\r\n- [#5027](https://github.com/nautobot/nautobot/issues/5027) - Fixed typo in Device Redundancy Group docs.\r\n- [#5044](https://github.com/nautobot/nautobot/issues/5044) - Updated the documentation on `nautobot_database_ready` signal handlers with a warning.\r\n\r\n### Housekeeping\r\n\r\n- [#5039](https://github.com/nautobot/nautobot/issues/5039) - Updated `ruff` development dependency to `~0.1.10`.\r\n- [#5039](https://github.com/nautobot/nautobot/issues/5039) - Removed `black` and `flake8` as development dependencies as they're fully replaced by `ruff` now.\r\n- [#5039](https://github.com/nautobot/nautobot/issues/5039) - Removed `black` and `flake8` steps from CI.\r\n- [#5039](https://github.com/nautobot/nautobot/issues/5039) - Enabled `DJ` Ruff rules (`flake8-django`) and addressed all warnings raised.\r\n- [#5039](https://github.com/nautobot/nautobot/issues/5039) - Enabled `PIE` Ruff rules except for `PIE808` (`flake8-pie`) and addressed all warnings raised.\r\n- [#5039](https://github.com/nautobot/nautobot/issues/5039) - Enabled `RUF` Ruff rules except for `RUF012` and addressed all warnings raised.\r\n- [#5039](https://github.com/nautobot/nautobot/issues/5039) - Enabled remaining `S` Ruff rules (`flake8-bandit`) and addressed all warnings raised.\r\n- [#5049](https://github.com/nautobot/nautobot/issues/5049) - Fixed an intermittent timing-related failure in `DynamicGroupModelTest.test_member_caching_enabled` test case.\r\n- [#5053](https://github.com/nautobot/nautobot/issues/5053) - Removed reference to develop-1.6 branch in CI workflow.\r\n- [#5055](https://github.com/nautobot/nautobot/issues/5055) - Enabled `I` Ruff rules (`isort`) and addressed all warnings raised.\r\n- [#5055](https://github.com/nautobot/nautobot/issues/5055) - Removed `isort` as a development dependency as it's fully replaced by `ruff` now.\r\n\r\n## Contributors\r\n\r\n- @glennmatthews\r\n- @gsnider2195\r\n- @HanlinMiao\r\n- @DistantVoyager\r\n- @joewesch\r\n- @Kircheneer\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5071",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/136244278",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/136244278/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/136244278/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.9",
        "id": 136244278,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4IHuw2",
        "tag_name": "v1.6.9",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.9 (2024-01-08)",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2024-01-08T21:27:02Z",
        "updated_at": "2024-01-08T22:25:15Z",
        "published_at": "2024-01-08T21:29:38Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/144476214",
                "id": 144476214,
                "node_id": "RA_kwDOFEucDc4InIg2",
                "name": "nautobot-1.6.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30742594,
                "digest": null,
                "download_count": 8,
                "created_at": "2024-01-08T22:25:14Z",
                "updated_at": "2024-01-08T22:25:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.9/nautobot-1.6.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/144476210",
                "id": 144476210,
                "node_id": "RA_kwDOFEucDc4InIgy",
                "name": "nautobot-1.6.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30054439,
                "digest": null,
                "download_count": 11,
                "created_at": "2024-01-08T22:25:12Z",
                "updated_at": "2024-01-08T22:25:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.9/nautobot-1.6.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.9",
        "body": "## What's Changed\r\n\r\n### Fixed\r\n\r\n- [#5042](https://github.com/nautobot/nautobot/issues/5042) - Fixed early return conditional in ensure_git_repository.\r\n\r\n## Contributors\r\n\r\n- @Kircheneer",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5070",
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/134917288",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/134917288/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/134917288/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.0",
        "id": 134917288,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4ICqyo",
        "tag_name": "v2.1.0",
        "target_commitish": "main",
        "name": "v2.1.0 - 2023-12-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-12-22T14:56:09Z",
        "updated_at": "2023-12-22T15:39:44Z",
        "published_at": "2023-12-22T15:04:18Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/141999710",
                "id": 141999710,
                "node_id": "RA_kwDOFEucDc4Idr5e",
                "name": "nautobot-2.1.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30590729,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-12-22T15:39:42Z",
                "updated_at": "2023-12-22T15:39:44Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.0/nautobot-2.1.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/141999700",
                "id": 141999700,
                "node_id": "RA_kwDOFEucDc4Idr5U",
                "name": "nautobot-2.1.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 29624585,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-12-22T15:39:39Z",
                "updated_at": "2023-12-22T15:39:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.0/nautobot-2.1.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.0",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n#### Django Admin Log Entries ([#4646](https://github.com/nautobot/nautobot/pull/4646))\r\n\r\nDjango Admin Log Entries record administrative changes made under the \"Admin\" section of the user interface. Changes (add/delete/update) to Objects like Users, Group, Object Permissions, etc. in the \"Admin\" user interface are now displayed as \"Log Entries\" under the \"Administration\" section of the Admin UI.\r\n\r\n> Django Admin Log Entries are automatically created when adminstrative changes happen and have always existed natively in Django Admin. This feature is simply providing a read-only UI view for admin/privileged users to access them with more ease.\r\n\r\nSee [Administrative Change-logging](nautobot/docs/user-guide/platform-functionality/change-logging.md#administrative-changes) for more details.\r\n\r\n#### External Integration Model ([#4694](https://github.com/nautobot/nautobot/issues/4694))\r\n\r\nA new [`ExternalIntegration` model](nautobot/docs/user-guide/platform-functionality/externalintegration.md) has been added which provides a centralized store for data such as URLs and credentials that are used to access systems external to Nautobot. This information can then be used by jobs or apps to perform actions such as creating DNS records or updating configuration management tickets.\r\n\r\n#### Home Page Panels Can Be Customized ([#2149](https://github.com/nautobot/nautobot/issues/2149))\r\n\r\nThe panels displayed on the Nautobot home page have been modified to enable a more personalized user experience. Individual panels can now be collapsed, hiding the contents from view. Additionally, panels can be reordered by dragging and dropping the panels to the desired order.\r\n\r\n#### Job File Outputs ([#3352](https://github.com/nautobot/nautobot/issues/3352), [#4820](https://github.com/nautobot/nautobot/issues/4820))\r\n\r\nThe `Job` base class now includes a [`create_file(filename, content)`](nautobot/docs/development/jobs/index.md#file-output) method which can be called by a Job to create a persistent file with the provided content when run. This file will be linked from the Job Result detail view for subsequent downloading by users, and can also be downloaded via the REST API (`/api/extras/file-proxies/<id>/download/`) as desired.\r\n\r\nThe size of files Jobs can create via this method are constrained by the [`JOB_CREATE_FILE_MAX_SIZE`](nautobot/docs/user-guide/administration/configuration/optional-settings.md#job_create_file_max_size) settings variable.\r\n\r\n> The specific storage backend used to retain such files is controlled by the [`JOB_FILE_IO_STORAGE`](nautobot/docs/user-guide/administration/configuration/optional-settings.md#job_file_io_storage) settings variable. The default value of this setting uses the Nautobot database to store output files, which should work in all deployments but is generally not optimal and better alternatives may exist in your specific deployment. Refer to the documentation link above for more details.\r\n\r\n> Users must have permission to `view` the `extras > file proxy` object type in order to list and download files from the REST API.\r\n\r\n#### Job JSONVar inputs ([#4926](https://github.com/nautobot/nautobot/issues/4926))\r\n\r\nProvides the ability to have native JSON data inputs for Jobs, this is provided by a multi-line text input on the Job form and the provided JSON data is serialized prior to passing to the `run()` method of the Job.\r\n\r\n#### UI/API `isnull` Filter on Nullable Fields ([#1905](https://github.com/nautobot/nautobot/issues/1905))\r\n\r\nModels with nullable fields (i.e. model fields with `null=True`) can now be filtered in the UI and the API with `<field>__isnull=true/false` filters. These filters are automatically added to all appropriate fields.\r\n\r\n> Model fields that have the value `\"\"` (i.e. blank) will not match with `__isnull=True`. Instead, they will match with `__isnull=False`.\r\n\r\n### Changed\r\n\r\n#### Data Exports as a System Job ([#4745](https://github.com/nautobot/nautobot/issues/4745))\r\n\r\nThe data export functionality in all object list views (allowing export of all or a filtered subset of objects to CSV, YAML, and/or as defined by an `ExportTemplate`) has been changed from a synchronous operation to an asynchronous background task, leveraging the new `ExportObjectList` system Job. As a result, exports of thousands of objects in a single operation will no longer fail due to browser timeout.\r\n\r\n> Users now must have the `run` action permission for `extras > job` (specifically the `nautobot.core.jobs.ExportObjectList` Job) in order to export objects, in addition to the normal `view` permissions for the objects being exported.\r\n\r\n#### Nautobot UI Reskin ([#4677](https://github.com/nautobot/nautobot/issues/4677), [#4765](https://github.com/nautobot/nautobot/issues/4765))\r\n\r\nThe Nautobot UI has been updated with a customized theme, giving it a brand new look. In addition, Nautobot's navigation bar has been moved from the top to the left.\r\n\r\n### Removed\r\n\r\n#### Drop Support for Legacy PostgreSQL Versions ([#4757](https://github.com/nautobot/nautobot/issues/4757))\r\n\r\nSupport for versions of PostgreSQL prior to 12.0 has been removed as these versions are no longer maintained and contain bugs that prevent migrations from running in certain scenarios. The `nautobot-server migrate` or `nautobot-server post_upgrade` commands will now abort when detecting an unsupported PostgreSQL version.\r\n\r\n#### Remove `HIDE_RESTRICTED_UI` Toggle ([#4787](https://github.com/nautobot/nautobot/issues/4787))\r\n\r\nSupport for `HIDE_RESTRICTED_UI` has been removed. UI elements requiring specific permissions will now always be hidden from users lacking those permissions. Additionally, users not logged in will now be automatically redirected to the login page.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @jathanism\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @norbert-mieczkowski-codilime\r\n* @timizuoebideri1\r\n* @matt852\r\n* @whitej6\r\n* @Kircheneer\r\n* @nrnvgh\r\n* @itdependsnetworks\r\n* @joewesch\r\n* @jvanderaa\r\n* @dependabot\r\n* @zackt25\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.6...v2.1.0",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5021",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/134917288/reactions",
            "total_count": 2,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 2,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 15
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/134909855",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/134909855/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/134909855/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.8",
        "id": 134909855,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4ICo-f",
        "tag_name": "v1.6.8",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.8 - 2023-12-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-12-21T23:35:17Z",
        "updated_at": "2023-12-22T14:43:24Z",
        "published_at": "2023-12-22T14:04:00Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/141992126",
                "id": 141992126,
                "node_id": "RA_kwDOFEucDc4IdqC-",
                "name": "nautobot-1.6.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30742470,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-12-22T14:43:23Z",
                "updated_at": "2023-12-22T14:43:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.8/nautobot-1.6.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/141992125",
                "id": 141992125,
                "node_id": "RA_kwDOFEucDc4IdqC9",
                "name": "nautobot-1.6.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30054389,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-12-22T14:43:21Z",
                "updated_at": "2023-12-22T14:43:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.8/nautobot-1.6.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.8",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#4876](https://github.com/nautobot/nautobot/issues/4876) - Updated `cryptography` to `41.0.7` due to CVE-2023-49083. As this is not a direct dependency of Nautobot, it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#4988](https://github.com/nautobot/nautobot/issues/4988) - Fixed missing object-level permissions enforcement when running a JobButton ([GHSA-vf5m-xrhm-v999](https://github.com/nautobot/nautobot/security/advisories/GHSA-vf5m-xrhm-v999)).\r\n- [#4988](https://github.com/nautobot/nautobot/issues/4988) - Removed the requirement for users to have both `extras.run_job` and `extras.run_jobbutton` permissions to run a Job via a Job Button. Only `extras.run_job` permission is now required.\r\n- [#5002](https://github.com/nautobot/nautobot/issues/5002) - Updated `paramiko` to `3.4.0` due to CVE-2023-48795. As this is not a direct dependency of Nautobot, it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n### Added\r\n\r\n- [#4965](https://github.com/nautobot/nautobot/issues/4965) - Added MMF OM5 cable type to cable type choices.\r\n\r\n### Removed\r\n\r\n- [#4988](https://github.com/nautobot/nautobot/issues/4988) - Removed redundant `/extras/job-button/<uuid>/run/` URL endpoint; Job Buttons now use `/extras/jobs/<uuid>/run/` endpoint like any other job.\r\n\r\n### Fixed\r\n\r\n- [#4977](https://github.com/nautobot/nautobot/issues/4977) - Fixed early return conditional in `ensure_git_repository`.\r\n\r\n### Housekeeping\r\n\r\n- [#4988](https://github.com/nautobot/nautobot/issues/4988) - Fixed some bugs in `example_plugin.jobs.ExampleComplexJobButtonReceiver`.\r\n\r\n## Contributors\r\n\r\n* @nrnvgh\r\n* @Kircheneer\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.7...v1.6.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/5017",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/133648562",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/133648562/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/133648562/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.6",
        "id": 133648562,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4H91Cy",
        "tag_name": "v2.0.6",
        "target_commitish": "main",
        "name": "v2.0.6 - 2023-12-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-12-12T21:16:37Z",
        "updated_at": "2023-12-12T22:02:56Z",
        "published_at": "2023-12-12T21:23:40Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/140347079",
                "id": 140347079,
                "node_id": "RA_kwDOFEucDc4IXYbH",
                "name": "nautobot-2.0.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32553620,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-12-12T22:02:55Z",
                "updated_at": "2023-12-12T22:02:56Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.6/nautobot-2.0.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/140347078",
                "id": 140347078,
                "node_id": "RA_kwDOFEucDc4IXYbG",
                "name": "nautobot-2.0.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31570223,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-12-12T22:02:53Z",
                "updated_at": "2023-12-12T22:02:54Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.6/nautobot-2.0.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.6",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#4876](https://github.com/nautobot/nautobot/issues/4876) - Updated `cryptography` to `~41.0.6` due to CVE-2023-49083. As this is not a direct dependency of Nautobot, it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#4890](https://github.com/nautobot/nautobot/issues/4890) - Updated alpha UI dependency `@adobe/css-tools` to version 4.3.2 due to CVE-2023-48631.\r\n- [#4959](https://github.com/nautobot/nautobot/issues/4959) - Enforce authentication and object permissions on DB file storage views ([GHSA-75mc-3pjc-727q](https://github.com/nautobot/nautobot/security/advisories/GHSA-75mc-3pjc-727q)).\r\n\r\n### Added\r\n\r\n- [#4854](https://github.com/nautobot/nautobot/issues/4854) - Added invocations of `clean()` methods to `save()` methods for `ComputedField`, `CustomField`, and `Relationship` models to protect against creation of invalid data.\r\n- [#4873](https://github.com/nautobot/nautobot/issues/4873) - Added QSFP112 interface type to interface type choices.\r\n- [#4883](https://github.com/nautobot/nautobot/issues/4883) - Added `get_default_namespace` and `get_default_namespace_pk` methods to `nautobot.apps.models` API.\r\n\r\n### Changed\r\n\r\n- [#4813](https://github.com/nautobot/nautobot/issues/4813) - Changed `generate_secret_key.py` to use Python `secrets` library instead of `random`.\r\n\r\n### Removed\r\n\r\n- [#4805](https://github.com/nautobot/nautobot/issues/4805) - Removed unused `nautobot.extras.choices.JobSourceChoices`.- [#4805](https://github.com/nautobot/nautobot/issues/4805) - Removed check for `__init__.py` in `JOBS_ROOT` directory.\r\n- [#4858](https://github.com/nautobot/nautobot/issues/4858) - Removed Jathan McCollum as a point of contact in `SECURITY.md`. \r\n\r\n### Fixed \r\n\r\n- [#3488](https://github.com/nautobot/nautobot/issues/3488) - Corrected positioning and style of \"Collapse All\" button in Jobs list view.\r\n- [#4142](https://github.com/nautobot/nautobot/issues/4142) - Fixed unnecessary git operations when calling `ensure_git_repository` while the desired commit is already checked out.\r\n- [#4179](https://github.com/nautobot/nautobot/issues/4179) - Fixed error in creation of storage directories (GIT_ROOT, JOBS_ROOT, MEDIA_ROOT, etc.) when running tests in parallel.\r\n- [#4747](https://github.com/nautobot/nautobot/issues/4747) - Fixed an issue when appending nautobot version to a static file path with existing query parameters resulted in an invalid URL generation.\r\n- [#4768](https://github.com/nautobot/nautobot/issues/4768) - Fixed incorrect link in TenantGroup template.\r\n- [#4768](https://github.com/nautobot/nautobot/issues/4768) - Fixed ConfigContext not applied to nested TenantGroup objects.\r\n- [#4819](https://github.com/nautobot/nautobot/issues/4819) - Fixed empty assignment field in IPAddress detail view.\r\n- [#4845](https://github.com/nautobot/nautobot/issues/4845) - Fixed issues with installing an app that is nested inside a python package (e.g. `my_apps/app1/` + `my_apps/app2/`), and lookups for UI view testing.\r\n- [#4851](https://github.com/nautobot/nautobot/issues/4851) - Fixed an exception when trying to access computed fields via GraphQL.\r\n- [#4854](https://github.com/nautobot/nautobot/issues/4854) - Fixed GraphQL UI unable to load when some ComputedField instances have non-graphql-safe keys.\r\n- [#4856](https://github.com/nautobot/nautobot/issues/4856) - Fix ConfigContext application logic for Locations and TenantGroups.\r\n- [#4867](https://github.com/nautobot/nautobot/issues/4867) - Added try/except block to handle the `AttributeError` raised by `get_absolute_url()` when a valid absolute url cannot be found.\r\n- [#4883](https://github.com/nautobot/nautobot/issues/4883) - Fixed `IPAddress` default namespace, when no namespace is provided.\r\n- [#4891](https://github.com/nautobot/nautobot/issues/4891) - Fixed Prefix API and UI inability to filter on multiple values for the fields `prefix`, `within`, `within_include`, `contains`.\r\n- [#4891](https://github.com/nautobot/nautobot/issues/4891) - Fixed IPAddress API and UI inability to filter on multiple values of `prefix`.\r\n- [#4911](https://github.com/nautobot/nautobot/issues/4911) - Fixed the ability to modify tags on Namespaces via the UI.\r\n- [#4922](https://github.com/nautobot/nautobot/issues/4922) - Fixed incorrect position of \"actions\" column in Location table view.\r\n\r\n### Dependencies\r\n\r\n- [#4812](https://github.com/nautobot/nautobot/issues/4812) - Updated `django-tree-queries` to `0.16.1` to bring in some desired feature fixes.\r\n- [#4937](https://github.com/nautobot/nautobot/issues/4937) - Updated alpha UI dependency @rjsf/core to version 5.13.6.\r\n- [#4937](https://github.com/nautobot/nautobot/issues/4937) - Updated alpha UI dependency @rjsf/utils to version 5.13.6.\r\n- [#4937](https://github.com/nautobot/nautobot/issues/4937) - Updated alpha UI dependency @rjsf/validator-ajv8 to version 5.13.6.\r\n- [#4937](https://github.com/nautobot/nautobot/issues/4937) - Updated alpha UI dependency react-refresh to version 0.14.0.\r\n- [#4937](https://github.com/nautobot/nautobot/issues/4937) - Updated alpha UI dependency react-router-dom to version 6.18.0.\r\n\r\n### Documentation\r\n\r\n- [#4805](https://github.com/nautobot/nautobot/issues/4805) - Updated documentation on jobs registration.\r\n- [#4871](https://github.com/nautobot/nautobot/issues/4871) - Removed some duplicate documentation links in the Feature Guides.\r\n- [#4923](https://github.com/nautobot/nautobot/issues/4923) - Fixed border for namespace image in docs.\r\n- [#4952](https://github.com/nautobot/nautobot/issues/4952) - Corrected spelling of \"extensions\" in the navigation menu.\r\n\r\n### Housekeeping\r\n\r\n- [#4945](https://github.com/nautobot/nautobot/issues/4945) - Replaced calls to deprecated `is_safe_url()` Django API with `url_has_allowed_host_and_scheme()` replacement API.\r\n\r\n## Contributors\r\n\r\n* @gsnider2195\r\n* @HanlinMiao\r\n* @jathanism\r\n* @joewesch\r\n* @nrnvgh\r\n* @glennmatthews\r\n* @dependabot\r\n* @snaselj\r\n* @byteborg\r\n* @whitej6\r\n* @Kircheneer\r\n* @timizuoebideri1\r\n* @itdependsnetworks\r\n* @erjac77\r\n\r\n## New Contributors\r\n* @byteborg made their first contribution in https://github.com/nautobot/nautobot/pull/4814\r\n* @erjac77 made their first contribution in https://github.com/nautobot/nautobot/pull/4928\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.5...v2.0.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4969",
        "mentions_count": 14
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/133652483",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/133652483/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/133652483/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.7",
        "id": 133652483,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4H92AD",
        "tag_name": "v1.6.7",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.7 - 2023-12-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-12-12T21:58:22Z",
        "updated_at": "2023-12-12T23:00:29Z",
        "published_at": "2023-12-12T22:01:28Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/140356856",
                "id": 140356856,
                "node_id": "RA_kwDOFEucDc4IXaz4",
                "name": "nautobot-1.6.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30741119,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-12-12T23:00:28Z",
                "updated_at": "2023-12-12T23:00:29Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.7/nautobot-1.6.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/140356852",
                "id": 140356852,
                "node_id": "RA_kwDOFEucDc4IXaz0",
                "name": "nautobot-1.6.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30052046,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-12-12T23:00:27Z",
                "updated_at": "2023-12-12T23:00:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.7/nautobot-1.6.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.7",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#4959](https://github.com/nautobot/nautobot/issues/4959) - Enforce authentication and object permissions on DB file storage views ([GHSA-75mc-3pjc-727q](https://github.com/nautobot/nautobot/security/advisories/GHSA-75mc-3pjc-727q)).\r\n\r\n### Added\r\n\r\n- [#4873](https://github.com/nautobot/nautobot/issues/4873) - Added QSFP112 interface type to interface type choices.\r\n\r\n### Removed\r\n\r\n- [#4797](https://github.com/nautobot/nautobot/issues/4797) - Removed erroneous `custom_fields` decorator from InterfaceRedundancyGroupAssociation as it's not a supported feature for this model.\r\n- [#4857](https://github.com/nautobot/nautobot/issues/4857) - Removed Jathan McCollum as a point of contact in `SECURITY.md`.\r\n\r\n### Fixed\r\n\r\n- [#4142](https://github.com/nautobot/nautobot/issues/4142) - Fixed unnecessary git operations when calling `ensure_git_repository` while the desired commit is already checked out.\r\n- [#4917](https://github.com/nautobot/nautobot/issues/4917) - Fixed slow performance on location hierarchy html template.\r\n- [#4921](https://github.com/nautobot/nautobot/issues/4921) - Fixed inefficient queries in `Location.base_site`.\r\n\r\n## Contributors\r\n\r\n* @jathanism\r\n* @nrnvgh\r\n* @timizuoebideri1\r\n* @Kircheneer\r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.6...v1.6.7",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4972",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/132148253",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/132148253/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/132148253/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.1.0-beta.1",
        "id": 132148253,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4H4Gwd",
        "tag_name": "v2.1.0-beta.1",
        "target_commitish": "develop",
        "name": "v2.1.0-beta.1 - 2023-11-30",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-11-30T15:54:17Z",
        "updated_at": "2023-11-30T17:52:58Z",
        "published_at": "2023-11-30T17:18:27Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/138265613",
                "id": 138265613,
                "node_id": "RA_kwDOFEucDc4IPcQN",
                "name": "nautobot-2.1.0b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32748981,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-11-30T17:52:56Z",
                "updated_at": "2023-11-30T17:52:58Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.0-beta.1/nautobot-2.1.0b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/138265601",
                "id": 138265601,
                "node_id": "RA_kwDOFEucDc4IPcQB",
                "name": "nautobot-2.1.0b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31756777,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-11-30T17:52:54Z",
                "updated_at": "2023-11-30T17:52:55Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.1.0-beta.1/nautobot-2.1.0b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.1.0-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.1.0-beta.1",
        "body": "### Added\r\n\r\n- [#1905](https://github.com/nautobot/nautobot/issues/1905) - Added the ability to automatically apply `isnull` filters when model field is nullable.\r\n- [#1905](https://github.com/nautobot/nautobot/issues/1905) - Enhanced `status` filters to support filtering by ID (UUID) as an alternative to filtering by `name`.\r\n- [#3352](https://github.com/nautobot/nautobot/issues/3352) - Added `Job.create_file()` API and `JOB_FILE_IO_STORAGE` configuration setting.\r\n- [#3994](https://github.com/nautobot/nautobot/issues/3994) - Added \"Data Provenance\" section to the Advanced tab in ObjectDetailView to display the user that created and last updated the object.\r\n- [#4272](https://github.com/nautobot/nautobot/issues/4272) - Added bulk edit and bulk destroy views to Namespaces.\r\n- [#4646](https://github.com/nautobot/nautobot/issues/4646) - Added read-only view in admin panel for Django admin log entries.\r\n- [#4694](https://github.com/nautobot/nautobot/issues/4694) - Added `ExternalIntegration` model to track connections to systems external to Nautobot.\r\n- [#4745](https://github.com/nautobot/nautobot/issues/4745) - Added `ExportObjectList` system Job.\r\n- [#4750](https://github.com/nautobot/nautobot/issues/4750) - Added \"copy\" button support to titles of all object retrieve views.\r\n- [#4750](https://github.com/nautobot/nautobot/issues/4750) - Added support for `BRANDING_FILEPATHS[\"header_bullet\"]` to customize the view header appearance.\r\n- [#4765](https://github.com/nautobot/nautobot/issues/4765) - Added support for `BRANDING_FILEPATHS[\"nav_bullet\"]` to customize the nav menu appearance.\r\n- [#4796](https://github.com/nautobot/nautobot/issues/4796) - Added InterfaceRedundancyGroupAssociation to GraphQL.\r\n- [#4796](https://github.com/nautobot/nautobot/issues/4796) - Added IPAddressToInterface to GraphQL.\r\n- [#4796](https://github.com/nautobot/nautobot/issues/4796) - Added VRFDeviceAssignment to GraphQL.\r\n- [#4796](https://github.com/nautobot/nautobot/issues/4796) - Added VRFPrefixAssignment to GraphQL.\r\n- [#4820](https://github.com/nautobot/nautobot/issues/4820) - Added listing of related `files` to the `/api/extras/job-results/` REST API.\r\n- [#4820](https://github.com/nautobot/nautobot/issues/4820) - Added read-only REST API for the FileProxy model (files generated by a Job run), including a `/download/` endpoint for downloading the file content.\r\n\r\n### Changed\r\n\r\n- [#4677](https://github.com/nautobot/nautobot/issues/4677) - Updated and customized nautobot UI bootstrap theme with LESS variables.\r\n- [#4745](https://github.com/nautobot/nautobot/issues/4745) - Changed object export (CSV, YAML, export-template) to run as a background task, avoiding HTTP timeouts when exporting thousands of objects in a single operation.\r\n- [#4750](https://github.com/nautobot/nautobot/issues/4750) - Refined CSS to Nautobot Bootstrap UI.\r\n- [#4765](https://github.com/nautobot/nautobot/issues/4765) - Moved navbar to the left.\r\n- [#4786](https://github.com/nautobot/nautobot/issues/4786) - Lightened table row background color in dark mode.\r\n- [#4808](https://github.com/nautobot/nautobot/issues/4808) - Make NavItem link text margin-right slightly larger.\r\n\r\n### Removed\r\n\r\n- [#4765](https://github.com/nautobot/nautobot/issues/4765) - Removed \"Import\" buttons from navbar dropdown menus.\r\n- [#4787](https://github.com/nautobot/nautobot/issues/4787) - Removed support for `HIDE_RESTRICTED_UI`. UI elements requiring specific permissions will now always be hidden from users lacking those permissions. Additionally, users not logged in will now be automatically redirected to the login page.\r\n\r\n### Fixed\r\n\r\n- [#4646](https://github.com/nautobot/nautobot/issues/4646) - Fixed a bug in `ObjectPermission` where `users.user` permissions could not be created.\r\n- [#4786](https://github.com/nautobot/nautobot/issues/4786) - Fixed default button background color in dark mode.\r\n- [#4818](https://github.com/nautobot/nautobot/issues/4818) - Fixed various inconsistencies with UI reskin in dark mode.\r\n- [#4862](https://github.com/nautobot/nautobot/issues/4862) - Fixes issues with uninstalled apps & lingering contenttypes referenced in changelog.\r\n- [#4882](https://github.com/nautobot/nautobot/issues/4882) - Fixed a regression in the rendering of the Jobs table view.\r\n\r\n### Housekeeping\r\n\r\n- [#3352](https://github.com/nautobot/nautobot/issues/3352) - Added a shared `media_root` volume to developer Docker Compose environment.\r\n- [#4781](https://github.com/nautobot/nautobot/issues/4781) - Added Gherkin writeups for \"Locations\" and \"Prefixes\" feature workflows.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @jathanism\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @norbert-mieczkowski-codilime\r\n* @timizuoebideri1\r\n* @matt852\r\n* @whitej6\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.5...v2.1.0-beta.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4887",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/132148253/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 1,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/130849058",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/130849058/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/130849058/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.6",
        "id": 130849058,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HzJki",
        "tag_name": "v1.6.6",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.6 - 2023-11-21",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-11-22T02:12:36Z",
        "updated_at": "2023-11-22T03:06:47Z",
        "published_at": "2023-11-22T02:21:45Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/136822788",
                "id": 136822788,
                "node_id": "RA_kwDOFEucDc4IJ8AE",
                "name": "nautobot-1.6.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30739271,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-11-22T03:06:45Z",
                "updated_at": "2023-11-22T03:06:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.6/nautobot-1.6.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/136822786",
                "id": 136822786,
                "node_id": "RA_kwDOFEucDc4IJ8AC",
                "name": "nautobot-1.6.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 30050572,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-11-22T03:06:43Z",
                "updated_at": "2023-11-22T03:06:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.6/nautobot-1.6.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.6",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#4833](https://github.com/nautobot/nautobot/issues/4833) - Fixed cross-site-scripting (XSS) potential with maliciously crafted Custom Links, Computed Fields, and Job Buttons (GHSA-cf9f-wmhp-v4pr).\r\n\r\n### Changed\r\n\r\n- [#4833](https://github.com/nautobot/nautobot/issues/4833) - Changed the `render_jinja2()` API to no longer automatically call `mark_safe()` on the output.\r\n\r\n### Fixed\r\n\r\n- [#3179](https://github.com/nautobot/nautobot/issues/3179) - Fixed the error that occurred when fetching the API response for CircuitTermination with a cable connected to CircuitTermination, FrontPort, or RearPort.\r\n- [#4799](https://github.com/nautobot/nautobot/issues/4799) - Reduced size of Nautobot `sdist` and `wheel` packages from 69 MB to 29 MB.\r\n\r\n### Dependencies\r\n\r\n- [#4799](https://github.com/nautobot/nautobot/issues/4799) - Updated `mkdocs` development dependency to `1.5.3`.\r\n\r\n### Housekeeping\r\n\r\n- [#4799](https://github.com/nautobot/nautobot/issues/4799) - Updated docs configuration for `examples/example_plugin`.\r\n- [#4833](https://github.com/nautobot/nautobot/issues/4833) - Added `ruff` to invoke tasks and CI.\r\n\r\n## Contributors\r\n- @glennmatthews\r\n- @timizuoebideri1\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.5...v1.6.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4842",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/130841939",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/130841939/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/130841939/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.5",
        "id": 130841939,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HzH1T",
        "tag_name": "v2.0.5",
        "target_commitish": "main",
        "name": "v2.0.5 - 2023-11-21",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-11-21T23:51:49Z",
        "updated_at": "2023-11-22T01:01:57Z",
        "published_at": "2023-11-22T00:29:11Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/136807595",
                "id": 136807595,
                "node_id": "RA_kwDOFEucDc4IJ4Sr",
                "name": "nautobot-2.0.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 32344109,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-11-22T01:01:56Z",
                "updated_at": "2023-11-22T01:01:57Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.5/nautobot-2.0.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/136807589",
                "id": 136807589,
                "node_id": "RA_kwDOFEucDc4IJ4Sl",
                "name": "nautobot-2.0.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 31358839,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-11-22T01:01:54Z",
                "updated_at": "2023-11-22T01:01:55Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.5/nautobot-2.0.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.5",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#4832](https://github.com/nautobot/nautobot/issues/4832) - Fixed cross-site-scripting (XSS) potential with maliciously crafted Custom Links, Computed Fields, and Job Buttons (GHSA-cf9f-wmhp-v4pr).\r\n\r\n### Changed\r\n\r\n- [#4832](https://github.com/nautobot/nautobot/issues/4832) - Changed the `render_jinja2()` API to no longer automatically call `mark_safe()` on the output.\r\n\r\n### Fixed\r\n\r\n- [#3015](https://github.com/nautobot/nautobot/issues/3015) - Fixed multiple jobhooks and/or webhooks triggered by a single change.\r\n- [#3015](https://github.com/nautobot/nautobot/issues/3015) - Fixed change logging behavior to properly combine multiple changes to an object in the same request.\r\n- [#4280](https://github.com/nautobot/nautobot/issues/4280) - Fixed text color of linked labels to use the same color as the text color of the non-linked labels.\r\n- [#4790](https://github.com/nautobot/nautobot/issues/4790) - Fixed REST API error that interpreted `rack_group` as a required field when creating a rack.\r\n- [#4791](https://github.com/nautobot/nautobot/issues/4791) - Fixed a bug where some form fields may change unexpectedly.\r\n- [#4799](https://github.com/nautobot/nautobot/issues/4799) - Reduced size of Nautobot `sdist` and `wheel` packages from 86 MB to 31 MB.\r\n- [#4804](https://github.com/nautobot/nautobot/issues/4804) - Fixed VarbinaryIPField storing None or empty values as the binary representation of b'' thereby ignoring the non-null constraint on the field.\r\n\r\n### Dependencies\r\n\r\n- [#4615](https://github.com/nautobot/nautobot/issues/4615) - Updated `psycopg2-binary` dependency to version 2.9.9.\r\n- [#4615](https://github.com/nautobot/nautobot/issues/4615) - Updated `pylint` development dependency to version 2.17.7.\r\n- [#4799](https://github.com/nautobot/nautobot/issues/4799) - Updated `mkdocs` development dependency to `1.5.3`.\r\n\r\n### Documentation\r\n\r\n- [#4008](https://github.com/nautobot/nautobot/issues/4008) - Removed CacheOps reference from application stack diagram.\r\n\r\n### Housekeeping\r\n\r\n- [#3179](https://github.com/nautobot/nautobot/issues/3179) - Added unittest for CircuitTermination with a cable connected to CircuitTermination, FrontPort, or RearPort fix in #4815.\r\n- [#4799](https://github.com/nautobot/nautobot/issues/4799) - Updated docs configuration for `examples/example_plugin`.\r\n- [#4832](https://github.com/nautobot/nautobot/issues/4832) - Added `ruff` to invoke tasks and CI.\r\n\r\n## Contributors\r\n\r\n- @glennmatthews\r\n- @gsnider2195\r\n- @HanlinMiao\r\n- @bryanculver\r\n- @timizuoebideri1\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.4...v2.0.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4841",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/129234594",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/129234594/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/129234594/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.4",
        "id": 129234594,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Hs_ai",
        "tag_name": "v2.0.4",
        "target_commitish": "main",
        "name": "v2.0.4 - 2023-11-13",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-11-13T20:54:09Z",
        "updated_at": "2023-11-13T21:29:19Z",
        "published_at": "2023-11-13T20:58:11Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/135367692",
                "id": 135367692,
                "node_id": "RA_kwDOFEucDc4IEYwM",
                "name": "nautobot-2.0.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 90220464,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-11-13T21:29:16Z",
                "updated_at": "2023-11-13T21:29:19Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.4/nautobot-2.0.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/135367690",
                "id": 135367690,
                "node_id": "RA_kwDOFEucDc4IEYwK",
                "name": "nautobot-2.0.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89046770,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-11-13T21:29:14Z",
                "updated_at": "2023-11-13T21:29:16Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.4/nautobot-2.0.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.4",
        "body": "## What's Changed\r\n\r\n### Security\r\n\r\n- [#4748](https://github.com/nautobot/nautobot/issues/4748) - Updated `Django` minimum version to 3.2.23 to protect against CVE-2023-46695.\r\n- [#4782](https://github.com/nautobot/nautobot/issues/4782) - Updated alpha-UI dependency `axios` to version 1.6.0 due to CVE-2023-45857.\r\n\r\n### Added\r\n\r\n- [#4349](https://github.com/nautobot/nautobot/issues/4349) - Added Note List View.\r\n- [#4704](https://github.com/nautobot/nautobot/issues/4704) - Added missing Rack table to Role Detail View.\r\n- [#4709](https://github.com/nautobot/nautobot/issues/4709) - Added form field to allow assignment of IP addresses when creating a new Interface.\r\n\r\n### Changed\r\n\r\n- [#4709](https://github.com/nautobot/nautobot/issues/4709) - Changed order of fields displayed when editing an Interface to be the same as when creating a new Interface.\r\n\r\n### Fixed\r\n\r\n- [#3990](https://github.com/nautobot/nautobot/issues/3990) - Fixed the issue preventing associated Note objects from being deleted when the assigned object is deleted.\r\n- [#4626](https://github.com/nautobot/nautobot/issues/4626) - Fixed incorrect \"Prefixes\" link from VRF detail view.\r\n- [#4675](https://github.com/nautobot/nautobot/issues/4675) - Fixed the issue where the 500 error page does not support dark mode.\r\n- [#4680](https://github.com/nautobot/nautobot/issues/4680) - Fixed the bug that prevented the user from adding tags without member objects as DynamicGroup `tags` filters.\r\n- [#4681](https://github.com/nautobot/nautobot/issues/4681) - Fixed NAPALM device view functions assuming 'Active' as the correct status.\r\n- [#4684](https://github.com/nautobot/nautobot/issues/4684) - Fixed InterfaceRedundancyGroup.status to no longer be nullable.\r\n- [#4684](https://github.com/nautobot/nautobot/issues/4684) - Fixed InterfaceRedundancyGroupAssociation.created to be a DateTimeField.\r\n- [#4685](https://github.com/nautobot/nautobot/issues/4685) - Fixed invalid link to IPAddress in Interface Detail View.\r\n- [#4704](https://github.com/nautobot/nautobot/issues/4704) - Fixed a display issue with table pagination controls floating over other UI elements.\r\n- [#4704](https://github.com/nautobot/nautobot/issues/4704) - Fixed Role detail view displaying tables for content types that aren't in the Role's allowed content types.\r\n- [#4709](https://github.com/nautobot/nautobot/issues/4709) - Fixed incorrect (missing) filtering of available VRFs by parent Device when editing an Interface in the UI.\r\n- [#4718](https://github.com/nautobot/nautobot/issues/4718) - Fixed bug in which a device's device redundancy group priority was not being set to `None` when the device redundancy group was deleted.\r\n- [#4726](https://github.com/nautobot/nautobot/issues/4726) - Fixed the bug caused by Tenant Edit View template accessing `group` instead of `tenant_group`.\r\n- [#4728](https://github.com/nautobot/nautobot/issues/4728) - Fixed bug with JobResultFilterSet and ScheduledJobFilterSet using `django_filters.DateTimeFilter` for only exact date matches.\r\n- [#4751](https://github.com/nautobot/nautobot/issues/4751) - Fixed a bug with `BaseModel.get_absolute_url` returning an AttributeError instead of raising it.\r\n- [#4779](https://github.com/nautobot/nautobot/issues/4779) - Fixed an error when syncing a git repo without a worker running.\r\n\r\n### Documentation\r\n\r\n- [#3927](https://github.com/nautobot/nautobot/issues/3927) - Fixed documentation for creating databases on PostgreSQL version 15.\r\n- [#4622](https://github.com/nautobot/nautobot/issues/4622) - Fixed docs incorrectly referencing Nautobot 1.5 as the LTM release for 1.x.\r\n- [#4642](https://github.com/nautobot/nautobot/issues/4642) - Added `documentation` category to release-notes.\r\n- [#4704](https://github.com/nautobot/nautobot/issues/4704) - Fixed a broken link in CONTRIBUTING.md to point to the correct contributing guide.\r\n- [#4713](https://github.com/nautobot/nautobot/issues/4713) - Fixed documentation regarding API endpoint to use for running saved GraphQL queries.\r\n- [#4714](https://github.com/nautobot/nautobot/issues/4714) - Added documentation detailing rack power utilization calculation.\r\n- [#4720](https://github.com/nautobot/nautobot/issues/4720) - Added redeployment demo environment step to release-checklist.md.\r\n- [#4767](https://github.com/nautobot/nautobot/issues/4767) - Updated Job and App Developer docs to import from the `nautobot.apps` module throughout.\r\n\r\n### Housekeeping\r\n\r\n- [#4638](https://github.com/nautobot/nautobot/issues/4638) - Updated Apps upstream testing CI to use the correct branch pairings post-2.0.\r\n- [#4686](https://github.com/nautobot/nautobot/issues/4686) - Fixed incorrect tagging of 1.6.x Docker `nautobot-dev` images as `latest`.\r\n- [#4700](https://github.com/nautobot/nautobot/issues/4700) - Removed incorrect `NAUTOBOT_DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUT` environment variable reference from settings documentation.\r\n- [#4709](https://github.com/nautobot/nautobot/issues/4709) - Replaced a number of `ModelChoiceField` in DCIM forms with more appropriate `DynamicModelChoiceField`.\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @justinbrink\r\n* @joewesch\r\n* @Kircheneer\r\n* @lvrfrc87\r\n* @nrnvgh\r\n* @timizuoebideri1\r\n* @dependabot\r\n* @apanagio\r\n* @scetron\r\n* @smk4664\r\n* @Dav-C\r\n* @cardoe\r\n\r\n## New Contributors\r\n\r\n* @lvrfrc87 made their first contribution in https://github.com/nautobot/nautobot/pull/4739\r\n* @apanagio made their first contribution in https://github.com/nautobot/nautobot/pull/4730\r\n* @cardoe made their first contribution in https://github.com/nautobot/nautobot/pull/4767\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.3...v2.0.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4793",
        "mentions_count": 15
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/129234086",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/129234086/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/129234086/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.5",
        "id": 129234086,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Hs_Sm",
        "tag_name": "v1.6.5",
        "target_commitish": "ltm-1.6",
        "name": "v1.6.5 - 2023-11-13",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-11-13T20:50:06Z",
        "updated_at": "2023-11-15T13:58:24Z",
        "published_at": "2023-11-13T20:53:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/135669940",
                "id": 135669940,
                "node_id": "RA_kwDOFEucDc4IFii0",
                "name": "nautobot-1.6.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89449478,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-11-15T13:58:20Z",
                "updated_at": "2023-11-15T13:58:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.5/nautobot-1.6.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/135669933",
                "id": 135669933,
                "node_id": "RA_kwDOFEucDc4IFiit",
                "name": "nautobot-1.6.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88619862,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-11-15T13:58:16Z",
                "updated_at": "2023-11-15T13:58:19Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.5/nautobot-1.6.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.5",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#4649](https://github.com/nautobot/nautobot/issues/4649) - Added `device_redundancy_groups` field to `ConfigContextSerializer`.\r\n\r\n### Changed\r\n\r\n- [#4638](https://github.com/nautobot/nautobot/issues/4638) - Renamed `ltm/1.6` branch to `ltm-1.6`.\r\n\r\n### Fixed\r\n\r\n- [#4645](https://github.com/nautobot/nautobot/issues/4645) - Fixed a bug where the `failover-strategy` field was required for the device redundancy group api.\r\n- [#4686](https://github.com/nautobot/nautobot/issues/4686) - Fixed incorrect tagging of 1.6.x Docker `nautobot-dev` images as `latest`.\r\n- [#4718](https://github.com/nautobot/nautobot/issues/4718) - Fixed bug in which a device's device redundancy group priority was not being set to `None` when the device redundancy group was deleted.\r\n- [#4728](https://github.com/nautobot/nautobot/issues/4728) - Fixed bug with JobResultFilterSet and ScheduledJobFilterSet using `django_filters.DateTimeFilter` for only exact date matches.\r\n- [#4733](https://github.com/nautobot/nautobot/issues/4733) - Fixed the bug that prevents retrieval of IPAddress using its address args if it was created using `host` and `prefix_length`.\r\n\r\n### Housekeeping\r\n\r\n- [#4700](https://github.com/nautobot/nautobot/issues/4700) - Removed incorrect `NAUTOBOT_DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUT` environment variable reference from settings documentation.\r\n\r\n### Security\r\n\r\n- [#4671](https://github.com/nautobot/nautobot/issues/4671) - Updated `urllib3` to 2.0.7 due to CVE-2023-45803. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#4748](https://github.com/nautobot/nautobot/issues/4748) - Updated `Django` minimum version to 3.2.23 to protect against CVE-2023-46695.\r\n\r\n## Contributors\r\n\r\n* @nrnvgh\r\n* @glennmatthews\r\n* @justinbrink\r\n* @timizuoebideri1\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.4...v1.6.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4792",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/126341414",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/126341414/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/126341414/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.3",
        "id": 126341414,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Hh9Em",
        "tag_name": "v2.0.3",
        "target_commitish": "develop",
        "name": "v2.0.3 - 2023-10-23",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-10-24T00:00:33Z",
        "updated_at": "2023-10-24T00:52:37Z",
        "published_at": "2023-10-24T00:05:04Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/132030756",
                "id": 132030756,
                "node_id": "RA_kwDOFEucDc4H3qEk",
                "name": "nautobot-2.0.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 90283164,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-10-24T00:52:34Z",
                "updated_at": "2023-10-24T00:52:37Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.3/nautobot-2.0.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/132030751",
                "id": 132030751,
                "node_id": "RA_kwDOFEucDc4H3qEf",
                "name": "nautobot-2.0.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89113315,
                "digest": null,
                "download_count": 11,
                "created_at": "2023-10-24T00:52:32Z",
                "updated_at": "2023-10-24T00:52:34Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.3/nautobot-2.0.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.3",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#4612](https://github.com/nautobot/nautobot/issues/4612) - Added validation step to handle invalid/legacy filters from v1.x in DynamicGroup form validation.\r\n- [#4668](https://github.com/nautobot/nautobot/issues/4668) - Added an `ENABLE_ALPHA_UI` configuration option to the settings, which is initially set to False. When set to True, this option enables the \"Alpha UI 2.0\" feature.\r\n\r\n### Changed\r\n\r\n- [#4668](https://github.com/nautobot/nautobot/issues/4668) - Changed the flag `--no-build-ui` to `--build-ui`, and its default value to False for the `nautobot-server post-upgrade` command.\r\n\r\n### Fixed\r\n\r\n- [#4604](https://github.com/nautobot/nautobot/issues/4604) - Fixed `post_upgrade` bug involving potential left over references to Aggregate, DeviceRole, and RackRole ContentTypes in ObjectChange records.\r\n- [#4608](https://github.com/nautobot/nautobot/issues/4608) - Fixed error `'IPAddressBulkAddForm' has no field named 'parent'` when bulk creating IPs via UI.\r\n- [#4669](https://github.com/nautobot/nautobot/issues/4669) - Added redirects from 1.x documentation paths to their 2.x equivalents to fix broken links/bookmarks.\r\n- [#4676](https://github.com/nautobot/nautobot/issues/4676) - Ensured that `ScheduledJob.job_class` values are correctly transferred to `ScheduledJob.task` during v2 migration.\r\n- [#4692](https://github.com/nautobot/nautobot/issues/4692) - Fixed incorrect inheritance of `Meta` attributes into nested serializers (`depth >= 1`).\r\n\r\n### Housekeeping\r\n\r\n- [#4692](https://github.com/nautobot/nautobot/issues/4692) - Added check in REST API generic test cases to detect strings like `password` and `sha256` that shouldn't generally appear in REST API responses.\r\n\r\n### Security\r\n\r\n- [#4671](https://github.com/nautobot/nautobot/issues/4671) - Updated `urllib3` to 2.0.7 due to CVE-2023-45803. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#4673](https://github.com/nautobot/nautobot/issues/4673) - Fixed token exposure in `JobResult` traceback and result output when a `GitRepositorySync` job fails in certain ways.\r\n- [#4692](https://github.com/nautobot/nautobot/issues/4692) - Fixed potential exposure of hashed user password data on certain REST API endpoints when using the `?depth=1` query parameter. For more details, please refer to [GHSA-r2hw-74xv-4gqp](https://github.com/nautobot/nautobot/security/advisories/GHSA-r2hw-74xv-4gqp).\r\n\r\n## Contributors\r\n\r\n* @glennmatthews\r\n* @timizuoebideri1\r\n* @bryanculver\r\n* @HanlinMiao\r\n* @dependabot\r\n* @jathanism\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.2...v2.0.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4695",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/125424890",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/125424890/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/125424890/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.2",
        "id": 125424890,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HedT6",
        "tag_name": "v2.0.2",
        "target_commitish": "develop",
        "name": "v2.0.2 - 2023-10-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-10-17T13:36:08Z",
        "updated_at": "2023-10-17T14:26:45Z",
        "published_at": "2023-10-17T13:40:36Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/131027006",
                "id": 131027006,
                "node_id": "RA_kwDOFEucDc4Hz1A-",
                "name": "nautobot-2.0.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 90202950,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-10-17T14:26:40Z",
                "updated_at": "2023-10-17T14:26:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.2/nautobot-2.0.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/131026995",
                "id": 131026995,
                "node_id": "RA_kwDOFEucDc4Hz1Az",
                "name": "nautobot-2.0.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89090683,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-10-17T14:26:36Z",
                "updated_at": "2023-10-17T14:26:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.2/nautobot-2.0.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.2",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#4361](https://github.com/nautobot/nautobot/issues/4361) - Added `SUPPORT_MESSAGE` configuration setting.\r\n- [#4607](https://github.com/nautobot/nautobot/issues/4607) - Added `nautobot-server audit_graphql_queries` management command for evaluating breaking filter changes to existing GraphQLQuery instances.\r\n\r\n### Changed\r\n\r\n- [#4313](https://github.com/nautobot/nautobot/issues/4313) - Updated device search to include manufacturer name.\r\n\r\n### Fixed\r\n\r\n- [#4472](https://github.com/nautobot/nautobot/issues/4472) - Fixed incorrect logic in `nautobot_config.py.j2` template that wouldn't detect the MySQL engine when Prometheus metrics are enabled.\r\n- [#4547](https://github.com/nautobot/nautobot/issues/4547) - Fixed incorrect form field type for `DeviceFilterForm.device_redundancy_group_priority`.\r\n- [#4588](https://github.com/nautobot/nautobot/issues/4588) - Fixed the error when creating a child Location under a non-globally-unique named parent Location.\r\n- [#4598](https://github.com/nautobot/nautobot/issues/4598) - Fixed inconsistent column names in `docs/user-guide/administration/upgrading/from-v1/tables/v2-filters-renamed-fields.yml`.\r\n- [#4603](https://github.com/nautobot/nautobot/issues/4603) - Fixed a bug that makes Manufacturers list fail to load.\r\n- [#4639](https://github.com/nautobot/nautobot/issues/4639) - Fixed the ability to attach images to Locations.\r\n\r\n### Housekeeping\r\n\r\n- [#4591](https://github.com/nautobot/nautobot/issues/4591) - Fixed incorrect documentation of `FEEDBACK_BUTTON_ENABLED` configuration setting.\r\n- [#4591](https://github.com/nautobot/nautobot/issues/4591) - Fixed a number of missing app code-reference links in the documentation table of contents.\r\n- [#4592](https://github.com/nautobot/nautobot/issues/4592) - Updated formatting on installation docs.\r\n- [#4611](https://github.com/nautobot/nautobot/issues/4611) - Updated pylint to use multiple threads.\r\n- [#4613](https://github.com/nautobot/nautobot/issues/4613) - Changed CLI reference from `dns` to `dnf` for install on RHEL systems.\r\n- [#4619](https://github.com/nautobot/nautobot/issues/4619) - Fixed broken links in Nautobot README.md.\r\n\r\n### Security\r\n\r\n- [#4586](https://github.com/nautobot/nautobot/issues/4586) - Updated `urllib3` to 2.0.6 due to CVE-2023-43804. This is not a direct dependency so it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#4621](https://github.com/nautobot/nautobot/issues/4621) - Updated `postcss` `npm` package to 8.4.31 to address CVE-2023-44270.\r\n- [#4652](https://github.com/nautobot/nautobot/issues/4652) - Updated `babel/traverse` `npm` dependency to 7.23.2 to address CVE-2023-45133.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @jvanderaa\r\n* @whitej6\r\n* @joewesch\r\n* @dependabot\r\n* @FragmentedPacket\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.1...v2.0.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4662",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/125498502",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/125498502/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/125498502/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.4",
        "id": 125498502,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HevSG",
        "tag_name": "v1.6.4",
        "target_commitish": "develop",
        "name": "v1.6.4 - 2023-10-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-10-17T20:59:08Z",
        "updated_at": "2023-10-17T22:09:01Z",
        "published_at": "2023-10-17T21:01:29Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/131083563",
                "id": 131083563,
                "node_id": "RA_kwDOFEucDc4H0C0r",
                "name": "nautobot-1.6.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89445920,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-10-17T22:08:58Z",
                "updated_at": "2023-10-17T22:09:01Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.4/nautobot-1.6.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/131083550",
                "id": 131083550,
                "node_id": "RA_kwDOFEucDc4H0C0e",
                "name": "nautobot-1.6.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88617140,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-10-17T22:08:54Z",
                "updated_at": "2023-10-17T22:08:57Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.4/nautobot-1.6.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.4",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#4361](https://github.com/nautobot/nautobot/issues/4361) - Added `SUPPORT_MESSAGE` configuration setting.\r\n- [#4573](https://github.com/nautobot/nautobot/issues/4573) - Added caching for `display` property of `Location` and `LocationType`, mitigating duplicated SQL queries in the related API views.\r\n\r\n### Changed\r\n\r\n- [#4313](https://github.com/nautobot/nautobot/issues/4313) - Updated device search to include manufacturer name.\r\n\r\n### Housekeeping\r\n\r\n- [#4619](https://github.com/nautobot/nautobot/issues/4619) - Fixed broken links in Nautobot README.md.\r\n\r\n### Removed\r\n\r\n- [#4595](https://github.com/nautobot/nautobot/issues/4595) - Removed `stable` tagging for container builds in LTM release workflow.\r\n\r\n## Contributors\r\n\r\n* @jathanism\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @HanlinMiao\r\n* @Kircheneer\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.3...v1.6.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4670",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/123733928",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/123733928/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/123733928/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.1",
        "id": 123733928,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HYAeo",
        "tag_name": "v2.0.1",
        "target_commitish": "main",
        "name": "v2.0.1 - 2023-10-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-10-04T17:57:08Z",
        "updated_at": "2023-10-04T18:48:27Z",
        "published_at": "2023-10-04T18:00:07Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/129044268",
                "id": 129044268,
                "node_id": "RA_kwDOFEucDc4HsQ8s",
                "name": "nautobot-2.0.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 90170130,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-10-04T18:48:24Z",
                "updated_at": "2023-10-04T18:48:27Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.1/nautobot-2.0.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/129044265",
                "id": 129044265,
                "node_id": "RA_kwDOFEucDc4HsQ8p",
                "name": "nautobot-2.0.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89058328,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-10-04T18:48:22Z",
                "updated_at": "2023-10-04T18:48:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.1/nautobot-2.0.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.1",
        "body": "## What's Changed\r\n### Fixed\r\n\r\n- [#4436](https://github.com/nautobot/nautobot/issues/4436) - Allowed Interfaces of type `Virtual`, `LAG`, and `Bridge` to be selected as a virtual Interface's `parent`.\r\n- [#4572](https://github.com/nautobot/nautobot/issues/4572) - Fixed a JS crash when using list view search box to filter objects in legacy UI.\r\n\r\n### Housekeeping\r\n\r\n- [#4523](https://github.com/nautobot/nautobot/issues/4523) - Fixed `invoke eslint` not running against local development environment.\r\n- [#4552](https://github.com/nautobot/nautobot/issues/4552) - Improved `test_bulk_delete_form_contains_all_filtered` and `test_bulk_edit_form_contains_all_filtered` generic tests to fail more gracefully if insufficient test data is available.\r\n\r\n## Contributors\r\n* @glennmatthews \r\n* @gsnider2195 \r\n* @jathanism \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.0...v2.0.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4600",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/123562869",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/123562869/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/123562869/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.3",
        "id": 123562869,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HXWt1",
        "tag_name": "v1.6.3",
        "target_commitish": "ltm/1.6",
        "name": "v1.6.3 - 2023-10-03",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-10-03T19:45:39Z",
        "updated_at": "2023-10-03T20:44:47Z",
        "published_at": "2023-10-03T19:49:26Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/128893643",
                "id": 128893643,
                "node_id": "RA_kwDOFEucDc4HrsLL",
                "name": "nautobot-1.6.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89442655,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-10-03T20:44:45Z",
                "updated_at": "2023-10-03T20:44:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.3/nautobot-1.6.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/128893628",
                "id": 128893628,
                "node_id": "RA_kwDOFEucDc4HrsK8",
                "name": "nautobot-1.6.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88615032,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-10-03T20:44:42Z",
                "updated_at": "2023-10-03T20:44:44Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.3/nautobot-1.6.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.3",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#3372](https://github.com/nautobot/nautobot/issues/3372) - Added ObjectPermission constraints check to pre_migrate management command.\r\n\r\n### Fixed\r\n\r\n- [#4396](https://github.com/nautobot/nautobot/issues/4396) - Fixed rack form silently dropping custom field values.\r\n\r\n### Housekeeping\r\n\r\n- [#4587](https://github.com/nautobot/nautobot/issues/4587) - Fixed `release.yml` and `pre-release.yml` workflow files to target `ci_integration.yml` in its own branch.\r\n- [#4587](https://github.com/nautobot/nautobot/issues/4587) - Enforced changelog requirement in `ci_pullrequest.yml` for `ltm/1.6`.\r\n\r\n### Security\r\n\r\n- [#4446](https://github.com/nautobot/nautobot/issues/4446) - Updated `GitPython` to `3.1.36` to address `CVE-2023-41040`.\r\n\r\n## Contributors\r\n\r\n* @HanlinMiao \r\n* @bryanculver \r\n* @gsnider2195 \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.2...v1.6.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4590",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/123130350",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/123130350/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/123130350/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0",
        "id": 123130350,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HVtHu",
        "tag_name": "v2.0.0",
        "target_commitish": "main",
        "name": "v2.0.0 - 2023-09-29",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-09-29T13:56:38Z",
        "updated_at": "2023-10-02T20:47:26Z",
        "published_at": "2023-09-29T14:05:52Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/128326665",
                "id": 128326665,
                "node_id": "RA_kwDOFEucDc4HphwJ",
                "name": "nautobot-2.0.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 90168469,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-09-29T14:55:55Z",
                "updated_at": "2023-09-29T14:55:57Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0/nautobot-2.0.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/128326657",
                "id": 128326657,
                "node_id": "RA_kwDOFEucDc4HphwB",
                "name": "nautobot-2.0.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89058185,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-09-29T14:55:52Z",
                "updated_at": "2023-09-29T14:55:54Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0/nautobot-2.0.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0",
        "body": "> \ud83d\udca1 Please thoroughly review the release overview below to see what changes may affect you during upgrade. Our [\"Upgrading from Nautobot v1.X\"](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/) guide provides a lot of information around pre- and post-migration helpers we have written that should assist you in a successful 2.0 upgrade. If you have any questions, please reach out to us on the **#nautobot** channel on [Network to Code's Slack community](https://slack.networktocode.com/) or [GitHub Discussions](https://github.com/nautobot/nautobot/discussions).\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Alpha UI 2.0 ([#3142](https://github.com/nautobot/nautobot/issues/3142))\r\n\r\nNautobot 2.0 includes an \"alpha\" version of a new user interface (UI) for Nautobot, based on the React web framework.\r\n\r\nUsers can switch between the existing UI and new UI for views supported in the new UI via a \"View in New UI\" link in the page footer of the existing UI and a \"Return to Legacy UI\" link in the left sidebar of the new UI.\r\n\r\n> \ud83d\udca1 The new UI also includes a \"Submit Feedback\" link that can be used to easily submit feedback regarding the new UI to the Nautobot maintainers.\r\n\r\nAs of Nautobot release 2.0.0, the new UI supports read-only access to Locations, Device Types, Devices, Prefixes, and IP Addresses; these views will be enhanced and refined, and support for additional models and workflows will be added, throughout the Nautobot 2.x release lifecycle.\r\n\r\n> \u2139\ufe0f As of Nautobot release 2.0.0, the new UI, as an alpha feature, does not yet support Nautobot Apps (plugins), but this capability will be added and supported in a future release.\r\n\r\n#### Assign an IP Address to Multiple Interfaces ([#2403](https://github.com/nautobot/nautobot/issues/2403))\r\n\r\nIntroduced the ability to assign one `IPAddress` to multiple `Interfaces`/`Devices` and `VMInterfaces`/`VirtualMachines` by creating a many to many relationship between `IPAddress` and `Interface`/`VMInterface` models represented as a through table model [`IPAddressToInterface`](../user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.md#new-interface-to-ip-address-relationship-endpoint). This feature allows you to model a network environment where you have anycast `IPAddresses` are shared extensively among a large number of `Devices`/`VirtualMachines`.\r\n\r\nAs a result of this feature and associated changes, you can no longer assign `Interfaces`/`VMInterfaces` during bulk creation of `IPAddresses`, but a separate bulk-create endpoint has been [introduced](https://github.com/nautobot/nautobot/pull/4522) to allow the bulk import of `IPAddressToInterface` assignments.\r\n\r\n#### Generic Role Model ([#1063](https://github.com/nautobot/nautobot/issues/1063))\r\n\r\n`DeviceRole`, `RackRole`, IPAM `Role`, and `IPAddressRoleChoices` have all been merged into a single generic `Role` model. A `Role`can now be created and associated to one or more of the content-types that support reference to a `role`. These model content-types include `dcim.device`, `dcim.rack`, `virtualization.virtualmachine`, `ipam.ipaddress`, `ipam.prefix`, and `ipam.vlan`.\r\n\r\n#### IPAM Namespaces ([#3337](https://github.com/nautobot/nautobot/issues/3337))\r\n\r\nThe new Namespace model expands on the functionality previously provided by `VRF.enforce_unique` and the `ENFORCE_GLOBAL_UNIQUE` settings flag, both of which have now been removed. Within a namespace, all VRFs, prefixes, and IP addresses must be unique and non-duplicated. For more details please refer to the [documentation](https://docs.nautobot.com/projects/core/en/latest/user-guide/core-data-model/ipam/namespace/).\r\n\r\n#### Natural Key Support Across Nautobot Models ([#2900](https://github.com/nautobot/nautobot/issues/2900))\r\n\r\nNautobot's `BaseModel` base class and related classes now implement automatic support for Django [natural keys](https://docs.djangoproject.com/en/3.2/topics/serialization/#natural-keys) for lookup and referencing. For example:\r\n\r\n```python\r\n>>> DeviceType.objects.first().natural_key()\r\n['MegaCorp', 'Model 9000']\r\n\r\n>>> DeviceType.objects.get_by_natural_key(\"MegaCorp\", \"Model 9000\")\r\n<DeviceType: Model 9000>\r\n```\r\n\r\nDevelopers can refer to the [documentation on natural keys](https://docs.nautobot.com/projects/core/en/latest/development/core/natural-keys/) for details on how to support and use this feature.\r\n\r\nTwo new configuration settings, [`DEVICE_NAME_AS_NATURAL_KEY`](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/configuration/optional-settings/#device_name_as_natural_key) and [`LOCATION_NAME_AS_NATURAL_KEY`](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/configuration/optional-settings/#location_name_as_natural_key), have been added to allow an administrator to customize the natural-key behavior of these two widely-used models.\r\n\r\n#### REST API Query Depth Parameter ([#3042](https://github.com/nautobot/nautobot/issues/3042))\r\n\r\nAdded the `?depth` query parameter in Nautobot v2.X to replace the `?brief` parameter in the REST API. It enables [nested serialization](https://www.django-rest-framework.org/api-guide/serializers/#specifying-nested-serialization) functionality and offers a more dynamic and comprehensive browsable API. It allows users greater control of the API response data and it is available for both retrieving a single object and a list of objects. This parameter is a positive integer value that can range from 0 to 10. To learn more more, check out the [documentation on the `?depth` query parameter](https://docs.nautobot.com/projects/core/en/latest/user-guide/platform-functionality/rest-api/overview/#depth-query-parameter).\r\n\r\n#### Site Fields Added to Location ([#2954](https://github.com/nautobot/nautobot/issues/2954))\r\n\r\nAdded Site Model Fields to Location. Location Model now has `asn`, `comments`, `contact_email`, `contact_name`, `contact_phone`, `facility`, `latitude`, `longitude`, `physical_address`, `shipping_address` and `time_zone` fields.\r\n\r\n### Changed\r\n\r\n#### Aggregate Model Migrated to Prefix ([#3302](https://github.com/nautobot/nautobot/issues/3302))\r\n\r\nThe `ipam.Aggregate` model has been removed and all existing aggregates will be migrated to `ipam.Prefix` with `type` set to \"Container\". The `Aggregate.date_added` field will be migrated to `Prefix.date_allocated` and changed from a Date field to a DateTime field with the time set to `00:00`. `Aggregate.tenant`, `Aggregate.rir` and `Aggregate.description` will be migrated over to the same fields on `Prefix`.\r\n\r\nSee the [upgrade guide](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#aggregate-migrated-to-prefix) for more details on the data migration.\r\n\r\n#### Changed `created` Field to DateTimeField for ChangeLoggedModel ([#2076](https://github.com/nautobot/nautobot/issues/2076))\r\n\r\nThe `created` field of all models that inherit from `ChangedLoggedModel`, which includes `OrganizationalModel` and `PrimaryModel` and therefore most objects in the core data model, has been changed from a `DateField` to a `DateTimeField` for added granularity. Preexisting records will show as created at midnight UTC on their original creation date.\r\n\r\nAll such objects may now be filtered by date or time or a combination of both. All other date-based behavior such as filtering works as it did before.\r\n\r\n#### Collapsed `nautobot.utilities` into `nautobot.core` ([#2721](https://github.com/nautobot/nautobot/issues/2721))\r\n\r\n`nautobot.utilities` no longer exists as a separate Python module or Django app. Its functionality has been collapsed into the `nautobot.core` app. See details at [Python Code Location Changes](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#python-code-location-changes).\r\n\r\n#### Collapsed Region and Site Models into Location ([#2517](https://github.com/nautobot/nautobot/issues/2517))\r\n\r\n##### Initial Data Migration\r\n\r\nThe `Site` and `Region` models have been removed in v2.0 and have been replaced with `Location` of specific `LocationType`. As a result, the existing `Site` and `Region` data will be migrated to corresponding `LocationType` and `Location` objects. Here is what to expect:\r\n\r\n1. If you do not have any `Site` and `Region` instances in your existing database, running this data migration will do nothing.\r\n2. If you only have `Region` instances in your existing database, a `LocationType` named **Region** will be created and for each legacy `Region` instance, a corresponding `Location` instance with the same attributes (`id`, `name`, `description`, etc.) and hierarchy will be created.\r\n3. If you only have `Site` instances in your existing database:\r\n\r\n    - A `LocationType` named **Site** will be created and every preexisting root level `LocationType` in your database will be updated to have the new **Site** `LocationType` as their parent.\r\n\r\n    - For each legacy `Site` instance, a corresponding `Location` instance with the same attributes (`id`, `name`, `description`, `tenant`, `facility`, `asn`, `latitude`, `longitude`, etc.) will be created, and any preexisting `Locations` in your database will be updated to have the appropriate \"site\" `Locations` as their parents.\r\n\r\n    - Model instances that had a `site` field (`CircuitTermination`, `Device`, `PowerPanel`, `RackGroup`, `Rack`, `Prefix`, `VLANGroup`, `VLAN`, `Cluster`) assigned and *did not* have a `location` attribute assigned will be updated to have their `location` point to the new `Location` corresponding to that `Site`. All other attributes on these models will remain unchanged.\r\n\r\n    - Model instances that were previously associated to the `ContentType` for `Site` (`ComputedField`, `CustomField`, `CustomLink`, `ExportTemplate`, `ImageAttachment`, `JobHook`, `Note`, `Relationship`, `Status`, `Tag` and `Webhook`) will have their `ContentType` replaced with `Location`. All other attributes on these models will remain unchanged.\r\n\r\n    For Example:\r\n\r\n    - We will start with a `Site` instance with name **AMS01** as the base `Site` for two top-level `Location` objects with names **root-01** and **root-02** respectively.\r\n\r\n    - During the data migration, a `LocationType` named **Site** will be created, and a `Location` of **Site** `LocationType` named **AMS01** with all the information (`asn`, `latitude`, etc.) from the base `Site` will be created.\r\n\r\n    - The `Location` objects named **root-01** and **root-02** will have this **AMS01** `Location` set as their `parent`.\r\n\r\n4. If you have both `Site` and `Region` instances in your existing database:\r\n\r\n    - A `LocationType` named **Region** will be created.\r\n\r\n    - For each legacy `Region` instance, a corresponding `Location` instance with the same attributes (`id`, `name`, `description`, etc.) will be created.\r\n\r\n    - A `LocationType` named **Site** will be created with the new `LocationType` named **Region** set as its `parent`.\r\n\r\n    - Every pre-existing root-level `LocationType` in your database will be updated to have the new `LocationType` named **Site** as its `parent`.\r\n\r\n    - For each legacy `Site` instance, a corresponding \"site\" `Location` instance with the same attributes (`id`, `name`, `description`, `tenant`, `facility`, `asn`, `latitude`, `longitude`, etc.) will be created with its parent set to the corresponding \"region\" `Location` if any.\r\n\r\n        - If you have `Site` instances in your database without a `Region` assigned to them, one additional `Location` named **Global Region** of `LocationType` **Region** will be created and each `Location` of `LocationType` **Site** created from the legacy region-less `Site` instances will have the **Global Region** `Location` as their parent.\r\n\r\n    - Model instances that had a `site` attribute (`CircuitTermination`, `Device`, `Location`, `PowerPanel`, `Rack`, `RackGroup`, `Prefix`, `VLANGroup`, `VLAN`, `Cluster`) assigned and *did not* have a `location` attribute assigned will be updated to have their `location` point to the new `Location` of `LocationType` **Site**. All other attributes on these models will remain unchanged.\r\n\r\n    - Model instances that were previously associated to the `ContentType` for `Site`  or `Region` (`ComputedField`, `CustomField`, `CustomLink`, `ExportTemplate`, `ImageAttachment`, `JobHook`, `Note`, `Relationship`, `Status`, `Tag` and `Webhook`) will have their `ContentType` replaced with `Location`. All other attributes on these models will remain unchanged.\r\n\r\n    For Example:\r\n\r\n    - There are two `Site` instances and one `Region` instance in your existing database. The `Region` with name **America** has one child `Site` instance named **AMS01**. And the other `Site` instance named **AUS01** is not associated with any `Region` (`region` attribute is set to `None`).\r\n\r\n    - The `Site` **AMS01** is the base `Site` for two top-level `Location` objects with names **root-01** and **root-02** respectively.\r\n\r\n    - During the data migration, a `LocationType` named **Region** and a `Location` of this `LocationType` named **America** with all the same information will be created.\r\n\r\n    - The `LocationType` named **Site** with its `parent` set as the new `LocationType` **Region** and a `Location` of `LocationType` named **AMS01** with all the same information (`asn`, `latitude`, etc.) will be created. The `Location` **AMS01** will have `Location` **America** as its `parent` and each - `Location` **root-01** and **root-02** will have `Location` **AMS01** as its `parent`.\r\n\r\n    - Finally, the `Site` instance **AUS01**, since it does not have a `Region` instance associated with it, its corresponding `Location` **AUS01** will have a new `Location` named **Global Region** of `LocationType` **Region** as its `parent`.\r\n\r\n    - In addition, legacy `Site` instance with name **AMS01** also has three `Device` instances associated with it named **ams01-edge-01**, **ams01-edge-02**,  and **ams01-edge-03**.\r\n\r\n    - However, **ams01-edge-01** only has its `site` attribute set as `Site` **AMS01** whereas **ams01-edge-02** and **ams01-edge-03** have both its `site` and `location` attributes set `Site` **AMS01** and `Location` **root-01** respectively.\r\n\r\n    - During the data migration, **ams01-edge-01**'s `location` attribute will point to the new `Location` of `LocationType` **Site** with name **AMS01** while devices **ams01-edge-02** and **ams01-edge-03** will remain unchanged.\r\n\r\n##### Remove Site and Region Related Fields from Models\r\n\r\n`Region` and `Site` relationships are being removed from these models: `CircuitTermination`, `Device`, `Location`, `Rack`, `RackGroup`, `PowerFeed`, `PowerPanel`, `ConfigContext`, `Prefix`, `VLAN`, `VLANGroup`, `Cluster`.\r\n\r\nThe `ContentType` for `Region` and `Site` are being replaced with `Location` on these models: `ComputedField`, `CustomField`, `CustomLink`, `ExportTemplate`, `ImageAttachment`, `JobHook`, `Note`, `Relationship`, `Status`, `Tag` and `Webhook`.\r\n\r\nThe `region` and `site` fields are being removed in the `filter` data of `DynamicGroup` objects. The previously associated values are being added to the existing `location` field and its associated list of filter values or to a new `location` key with an empty list if one does not exist.\r\n\r\nCheck out the API and UI endpoints changes incurred by the changes stated above in the [\"Upgrading from Nautobot v1.X\"](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/) guide.\r\n\r\nCheck out the [Region and Site Related Data Model Migration Guide](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide/#region-and-site-related-data-model-migration-guide-for-existing-nautobot-app-installations) to learn how to migrate your Nautobot Apps and data models from `Site` and `Region` to `Location`.\r\n\r\n#### Corrected Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\n> \u26a0\ufe0f This change may introduce breaking changes to your existing `DynamicGroup` filters, `ObjectPermission` filters, `Relationship` filters, and any other saved references to these fields. You should review any existing instances of these models before and after upgrading your production environment for any potentially subtle change. Please refer to the [Upgrading from Nautobot v1.X](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#corrected-filter-fields) guide for more details.\r\n\r\nThere were also instances where a foreign-key related field (e.g. `console_ports`) was incorrectly mapped to a boolean membership filter (e.g. `has_console_ports`), making it impossible to filter based on specific values of the foreign key:\r\n\r\nFor example in v1.x:\r\n\r\n`/dcim/devices/?console_ports=True` and `/dcim/devices/?has_console_ports=True` are functionally the same and this behavior is **incorrect**.\r\n\r\nThis has been addressed in v2.x as follows:\r\n\r\n`console_ports` and similar filters are taking foreign key UUIDs as input values and can be used in this format: `/dcim/devices/?console_ports=<uuid>` whereas `has_console_ports` and similar filters remain the same.\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#corrected-filter-fields)\r\n\r\n#### Enhanced Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\n> \u26a0\ufe0f This change may introduce breaking changes to your existing `DynamicGroup` filters, `ObjectPermission` filters, `Relationship` filters, and any other saved references to these fields. You should review any existing instances of these models before and after upgrading your production environment for any potentially subtle change. Please refer to the [Upgrading from Nautobot v1.X](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#enhanced-filter-fields) guide for more details.\r\n\r\nMany filter fields have been enhanced to enable filtering by both names and UUID primary keys.\r\n\r\nFor example in v1.X, to filter `RackGroups` with a specific `parent` value in the UI or make changes to them via the REST API, you could only to input slugs as the filter values:\r\n\r\n`/dcim/rack-groups/?parent=<slug>`\r\n\r\nNow in v2.x, you are able to filter those `RackGroups` by their parent(s) names or UUID primary keys:\r\n\r\n`/dcim/rack-groups/?parent=<name>` or `/dcim/rack-groups/?parent=<uuid>`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#enhanced-filter-fields)\r\n\r\n#### Generic Role Model ([#1063](https://github.com/nautobot/nautobot/issues/1063))\r\n\r\nThe `DeviceRole`, `RackRole`, `ipam.Role`, and `IPAddressRoleChoices` have all been removed and replaced with a `extras.Role` model, This means that all references to any of the replaced models and choices now points to this generic role model.\r\n\r\nIn addition, the `role` field of the `IPAddress` model has also been changed from a choice field to a foreign key related field to the `extras.Role` model.\r\n\r\n#### Job Overhaul ([#765](https://github.com/nautobot/nautobot/issues/765))\r\n\r\nWithin Nautobot 2.0, Jobs has undergone significant changes within the overall functionality of Jobs along with migration for existing 1.x Jobs operation. Database changes for Jobs will affect DryRun functionality. Other significant changes to Jobs in 2.0 provide greater interoperability with Celery for registering, logging, and tracking however 2.0 will be moving away from previous backwards compatibility scripts. These improvements will simplify Job implementation and help reduce administration overhead for status tracking on completions and/or failures. For more details, refer to [Migrating Jobs from Nautobot v1.X to Nautobot v2.0](https://docs.nautobot.com/projects/core/en/latest/development/jobs/migration/from-v1/).\r\n\r\n#### Prefix `is_pool` Field and \"Container\" Status replaced by New Field `Prefix.type` ([#1362](https://github.com/nautobot/nautobot/issues/1362))\r\n\r\nA new `type` field was added to `Prefix` to replace the `is_pool` boolean field and the \"Container\" status. The `type` field can be set to \"Network\", \"Pool\" or \"Container\", with \"Network\" being the default.\r\n\r\nExisting prefixes with a status of \"Container\" will be migrated to the \"Container\" type. Existing prefixes with `is_pool` set will be migrated to the \"Pool\" type. Prefixes with both `is_pool` set and a status of \"Container\" will be migrated to the \"Pool\" type.\r\n\r\nThe \"Container\" status will be removed and all prefixes will be migrated to the \"Active\" status if it exists. If the \"Active\" status was deleted, prefixes will be migrated to the first available prefix status in the database that is not \"Container\".\r\n\r\n#### Renamed Database Foreign Keys and Related Names ([#2520](https://github.com/nautobot/nautobot/issues/2520))\r\n\r\n> \u26a0\ufe0f This change may introduce breaking changes to your existing `DynamicGroup` filters, `ObjectPermission` filters, `Relationship` filters, and any other saved references to these fields. You should review any existing instances of these models before and after upgrading your production environment for any potentially subtle change. Please refer to the [Upgrading from Nautobot v1.X](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#renamed-database-fields) guide for more details.\r\n\r\nSome Foreign Key fields have been renamed to follow a more self-consistent pattern across the Nautobot app. This change is aimed to offer more clarity and predictability when it comes to related object database operations:\r\n\r\nFor example in v1.x to create a circuit object with `type` \"circuit-type-1\", you would do:\r\n\r\n```python\r\nCircuit.objects.create(\r\n    cid=\"Circuit 1\",\r\n    provider=\"provider-1\",\r\n    type=\"circuit-type-1\",\r\n    status=\"active\",\r\n)\r\n```\r\n\r\nand to filter `Circuit` objects of `type` \"circuit-type-2\", you would do:\r\n\r\n```python\r\nCircuit.objects.filter(type=\"circuit-type-2\")\r\n```\r\n\r\nNow in v2.x, we have renamed the Foreign Key field `type` on Circuit Model to `circuit_type`, because this naming convention made it clearer that this Foregin Key field is pointing to the model `CircuitType`. The same operations would look like:\r\n\r\n```python\r\nCircuit.objects.create(\r\n    cid=\"Circuit 1\",\r\n    provider=\"provider-1\",\r\n    circuit_type=\"circuit-type-1\",\r\n    status=\"active\",\r\n)\r\n```\r\n\r\n```python\r\nCircuit.objects.filter(circuit_type=\"circuit-type-2\")\r\n```\r\n\r\nCheck out more Foreign Key related changes documented in the table [Renamed Database Fields](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#renamed-database-fields)\r\n\r\nIn addition to the changes made to Foreign Key fields' own names, some of their `related_names` are also renamed:\r\n\r\nFor example in v1.x, to query `Circuit` objects with `CircuitTermination` instances located in sites [\"ams01\", \"ams02\", \"atl03\"], you would do:\r\n\r\n```python\r\nCircuit.objects.filter(terminations__site__in=[\"ams01\", \"ams02\", \"atl03\"])\r\n```\r\n\r\nNow in v2.x, we have renamed the Foreign Key field `circuit`'s `related_name` attribute `terminations` on `CircuitTermination` Model to `circuit_terminations`, the same operations would look like:\r\n\r\n```python\r\nCircuit.objects.filter(circuit_terminations__site__in=[\"ams01\", \"ams02\", \"atl03\"])\r\n```\r\n\r\nCheck out more `related-name` changes documented in the table [Renamed Database Fields](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#renamed-database-fields)\r\n\r\n#### Renamed Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\n> \u26a0\ufe0f This change may introduce breaking changes to your existing `DynamicGroup` filters, `ObjectPermission` filters, `Relationship` filters, and any other saved references to these fields. You should review any existing instances of these models before and after upgrading your production environment for any potentially subtle change. Please refer to the [Upgrading from Nautobot v1.X](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#renamed-filter-fields) guide for more details.\r\n\r\nSome filter fields have been renamed to reflect their functionalities better.\r\n\r\nFor example in v1.X, to filter `FrontPorts` that has a cable attached in the UI or make changes to them via Rest API, you would use the `cabled` filter:\r\n\r\n`/dcim/front-ports/?cabled=True`\r\n\r\nNow in v2.x, you would instead use the `has_cable` filter which has a more user-friendly name:\r\n\r\n`/dcim/front-ports/?has_cable=True`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#renamed-filter-fields)\r\n\r\n#### REST API Versioning Behavior ([#2799](https://github.com/nautobot/nautobot/issues/2799))\r\n\r\nIn Nautobot 2.0 and later, the REST API defaults, when the caller doesn't request a specific API version, to using the latest available version of the REST API. This is a change from Nautobot 1.x, where the default behavior was to use the 1.2 version of the REST API even when newer versions were available.\r\n\r\n#### Revamped CSV Import and Export ([#254](https://github.com/nautobot/nautobot/issues/254))\r\n\r\nExporting objects and lists of objects to CSV format has been totally reimplemented in a new framework for ease of use and maintainability. Instead of accessing `http://nautobot/<app>/<model>/?export` users can now use the URL pattern `http://nautobot/api/<app>/<model>/?format=csv` (the \"Export\" links in the UI have of course been updated accordingly), as the new CSV rendering for exports is based on the REST API serializer definitions. This results in substantially more comprehensive CSV representations of many models.\r\n\r\nConversely, importing objects from CSV format has also been reimplemented in the same new framework. The REST API can now accept CSV files as well as the existing JSON support, and the UI for importing CSVs uses this same framework behind the scenes.\r\n\r\n> \u26a0\ufe0f The Nautobot 2.0 CSV formats for exports and imports are **not** backwards-compatible with the Nautobot 1.x CSV formats. In general, the CSV formats are subject to refinement in future releases, and should **not** be considered a stable API for data portability between differing Nautobot versions.\r\n\r\nAn immediate benefit users can notice from this reimplementation is that CSVs should now **generally** be \"round-trip\" capable, meaning that you can export a set of records to CSV format and then import that CSV into a different Nautobot instance (or delete the records and use the CSV to recreate them) without needing to \"massage\" the CSV into a different set of columns or fields. One caveat to this is many-to-many fields (such as `VRF.import_targets` or `Interface.tagged_vlans`), which are not currently included in CSV exports or supported for CSV import, with the exception of object `tags` which are supported. Support for many-to-many export and import via CSV may be added in a future release.\r\n\r\nA benefit to App developers is that data models no longer need to define a `csv_headers` attribute or implement a `to_csv` method, because implementing the REST API for a model is now sufficient to enable CSV import/export support for that model. Similarly, there is no longer a need to implement a `CSVForm` for each model in order to support CSV import.\r\n\r\nIn addition to the above improvements, you can now reference related objects in your CSV by using a combination of unique fields. For instance:\r\n\r\nInstead of:\r\n\r\n```csv\r\nname,rack\r\nDevice one,7f3ca431-8103-45cc-a9ce-b94c1f784a1d\r\n```\r\n\r\nyou can use:\r\n\r\n```csv\r\nname,rack__location__name,rack__name\r\nDevice one,Equinix DC6,R204\r\n```\r\n\r\nThis enhancement allows you to specify related objects using their unique attributes, making data import even more intuitive and flexible.\r\n\r\n### Removed\r\n\r\n#### Brief REST API Query Parameter ([#3042](https://github.com/nautobot/nautobot/issues/3042))\r\n\r\nSupport for `?brief` REST API query parameter and `Nested*Serializers` have been removed in Nautobot v2.X. They are replaced by the new [`?depth` query parameter](https://docs.nautobot.com/projects/core/en/latest/user-guide/platform-functionality/rest-api/overview/#depth-query-parameter).\r\n\r\n#### `django-cacheops` ([#1721](https://github.com/nautobot/nautobot/issues/1721))\r\n\r\nNautobot no longer uses `django-cacheops` for caching of database queries or other information. In some cases this has been replaced by the use of Django's native Redis caching capabilities.\r\n\r\nThe configuration settings `CACHEOPS`, `CACHEOPS_DEFAULTS`, `CACHEOPS_DEGRADE_ON_FAILURE`, `CACHEOPS_ENABLED`, `CACHEOPS_HEALTH_CHECK_ENABLED`, `CACHEOPS_REDIS`, etc. are now unused by Nautobot and may be removed from your configuration.\r\n\r\n#### Legacy `manage.py` Removed ([#1634](https://github.com/nautobot/nautobot/issues/1634))\r\n\r\nWhen we launched Nautobot we introduced the `nautobot-server` command as the primary entrypoint to managing your application, replacing the legacy `manage.py` script that is common with Django-based applications. The original `manage.py` was left there initially in v1.0.0 as a fallback, however it is no longer needed, so we have removed it in Nautobot 2.0.\r\n\r\n#### Redundant Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\n> \u26a0\ufe0f This change may introduce breaking changes to your existing `DynamicGroup` filters, `ObjectPermission` filters, `Relationship` filters, and any other saved references to these fields. You should review any existing instances of these models before and after upgrading your production environment for any potentially subtle change. Please refer to the [Upgrading from Nautobot v1.X](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#removed-redundant-filter-fields) guide for more details.\r\n\r\nAs a part of breaking changes made in v2.X, shadowed filter/filterset fields are being removed throughout Nautobot.\r\n\r\nIn Nautobot 1.x, for some of the foreign-key related fields:\r\n    - The field was shadowed for the purpose of replacing the PK filter with a lookup-based on a more human-readable value (typically `slug`, if available).\r\n    - A PK-based filter was available as well, generally with a name suffixed by `_id`\r\n\r\nNow these two filter fields will be replaced by a single filter field that can support both names and UUID primary keys as inputs; As a result, PK-based filters suffixed by `_id` will no longer be supported in v2.0.\r\n\r\nFor example in v1.X, to filter `Circuits` with a specific `provider` value in the UI or make changes to them via the REST API with a UUID primary key, you would use:\r\n\r\n`/circuits/circuits/?provider_id=<uuid>`\r\n\r\nNow in v2.x, that format is no longer supported. Instead, you would use:\r\n\r\n`/circuits/circuits/?provider=<uuid>`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](https://docs.nautobot.com/projects/core/en/latest/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1/#removed-redundant-filter-fields)\r\n\r\n#### RQ support ([#2523](https://github.com/nautobot/nautobot/issue/2523))\r\n\r\nSupport for RQ and `django-rq`, deprecated since Nautobot 1.1.0, has been fully removed from Nautobot 2.0.\r\n\r\n#### Slug Fields ([#2662](https://github.com/nautobot/nautobot/issues/2662))\r\n\r\nThe `slug` field has been removed from all core models except for `GitRepository`. Generally, Nautobot URLs that referenced the `slug` field have been changed to use the primary key instead. For example, the URL for `https://nautobot/dcim/locations/building-01` would change to a URL similar to `https://nautobot/dcim/locations/e41f381a-a53b-485a-886f-9d36859b47a1`. There are a small number of URLs that still reference a value that's not the primary key, including some URLs related to secrets providers, cables and jobs.\r\n\r\nA `natural_slug` property has been added to all models that inherit from `BaseModel` to provide a human-readable value for use in tools that require a loose reference to a Nautobot object, but this value is not equivalent to the `slug` field and is not guaranteed to be unique.\r\n\r\nA natural key interface has been provided for most models to allow for uniquely referencing objects by a name that is friendlier than the primary key. For more information on the usage of natural keys vs primary keys see the documentation for [Uniquely Identifying a Nautobot Object](https://docs.nautobot.com/projects/core/en/latest/development/apps/api/platform-features/uniquely-identify-objects/).\r\n\r\n## Contributors\r\n* @bile0026\r\n* @bryanculver\r\n* @dependabot\r\n* @DistantVoyager\r\n* @glennmatthews\r\n* @grelleum\r\n* @gsnider2195\r\n* @HanlinMiao\r\n* @itdependsnetworks\r\n* @jamesharr\r\n* @jathanism\r\n* @jeffkala\r\n* @jfach\r\n* @jmcgill298\r\n* @joewesch\r\n* @jvanderaa\r\n* @Kircheneer\r\n* @lampwins\r\n* @matt852\r\n* @MeganerdDev\r\n* @nniehoff\r\n* @norbert-mieczkowski-codilime\r\n* @PavelSafronov\r\n* @renovate\r\n* @romanukes\r\n* @scetron\r\n* @slash-24\r\n* @smk4664\r\n* @snaselj\r\n* @timizuoebideri1\r\n* @u1735067\r\n* @whitej6\r\n\r\n## New Contributors\r\n* @PavelSafronov made their first contribution in https://github.com/nautobot/nautobot/pull/3568\r\n* @MeganerdDev made their first contribution in https://github.com/nautobot/nautobot/pull/4007\r\n* @jamesharr made their first contribution in https://github.com/nautobot/nautobot/pull/4163\r\n* @slash-24 made their first contribution in https://github.com/nautobot/nautobot/pull/4554\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.2...v2.0.0",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4568",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/123130350/reactions",
            "total_count": 3,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 3,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 32
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/122846645",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/122846645/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/122846645/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-rc.4",
        "id": 122846645,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HUn21",
        "tag_name": "v2.0.0-rc.4",
        "target_commitish": "develop",
        "name": "v2.0.0-rc.4 - 2023-09-27",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-09-27T19:56:47Z",
        "updated_at": "2023-09-27T20:57:42Z",
        "published_at": "2023-09-27T20:04:42Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/128035825",
                "id": 128035825,
                "node_id": "RA_kwDOFEucDc4Hoavx",
                "name": "nautobot-2.0.0rc4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 90162435,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-09-27T20:57:39Z",
                "updated_at": "2023-09-27T20:57:42Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-rc.4/nautobot-2.0.0rc4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/128035823",
                "id": 128035823,
                "node_id": "RA_kwDOFEucDc4Hoavv",
                "name": "nautobot-2.0.0rc4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89054160,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-09-27T20:57:35Z",
                "updated_at": "2023-09-27T20:57:38Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-rc.4/nautobot-2.0.0rc4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-rc.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-rc.4",
        "body": "## What's Changed\r\n\r\n### Added\r\n\r\n- [#3303](https://github.com/nautobot/nautobot/issues/3303) - Added additional section headers to the Release Overview of Nautobot 2.0 release notes.\r\n- [#3303](https://github.com/nautobot/nautobot/issues/3303) - Added TODO comments for each additional section header.\r\n- [#3689](https://github.com/nautobot/nautobot/issues/3689) - Added namespace diagram to docs.\r\n- [#4103](https://github.com/nautobot/nautobot/issues/4103) - Added UI viewset for detail/list/import/export views of `IPAddressToInterface` objects.\r\n- [#4301](https://github.com/nautobot/nautobot/issues/4301) - Added missing and good-to-have information in the app migration guide.\r\n- [#4418](https://github.com/nautobot/nautobot/issues/4418) - Added `netutils_parser` to `network_driver`.\r\n- [#4425](https://github.com/nautobot/nautobot/issues/4425) - Added `BaseModelSerializer.determine_view_options()` API for use in new UI.\r\n- [#4425](https://github.com/nautobot/nautobot/issues/4425) - Added option for individual model serializers to override the default contents of the Advanced tab in the new UI.\r\n- [#4425](https://github.com/nautobot/nautobot/issues/4425) - Added option for individual model serializers to define additional tabs in the new UI and the fields included in such tabs.\r\n- [#4426](https://github.com/nautobot/nautobot/issues/4426) - Added the ability to specify one or more content types to the `fix_custom_fields` management command.\r\n- [#4434](https://github.com/nautobot/nautobot/issues/4434) - Implemented `ObjectList` view filters in `FiltersPanelContent` component of the new UI.\r\n- [#4459](https://github.com/nautobot/nautobot/issues/4459) - Added more re-exports to the `nautobot.apps` namespace.\r\n- [#4462](https://github.com/nautobot/nautobot/issues/4462) - Added FilterSet data to REST API metadata.\r\n- [#4474](https://github.com/nautobot/nautobot/issues/4474) - Added live search of `q` filter to list and detail views.\r\n- [#4476](https://github.com/nautobot/nautobot/issues/4476) - Added `/api/extras/jobs/<name>/...` REST API endpoints as an alternative option to the existing `/api/extras/jobs/<uuid>/...` endpoints.\r\n- [#4477](https://github.com/nautobot/nautobot/issues/4477) - Added the `slugify` Django template tag as a Jinja filter.\r\n- [#4490](https://github.com/nautobot/nautobot/issues/4490) - Added additional information to the release-notes and other documentation about the revamped CSV import/export feature.\r\n- [#4491](https://github.com/nautobot/nautobot/issues/4491) - Added documentation to Nautobot 2.0 release notes Release Overview for removal of `manage.py`.\r\n- [#4491](https://github.com/nautobot/nautobot/issues/4491) - Added documentation to Nautobot 2.0 release notes Release Overview for change of `ChangedLoggedModel.created` field from `DateField` to `DateTimeField`.\r\n- [#4493](https://github.com/nautobot/nautobot/issues/4493) - Added release-note overview of alpha 2.0 UI.\r\n- [#4507](https://github.com/nautobot/nautobot/issues/4507) - Added Data Validation Engine to list of apps in docs.\r\n- [#4524](https://github.com/nautobot/nautobot/issues/4524) - Added `test_notes_url_functionality` test case to `APIViewTestCases.NotesURLViewTestCase` generic test class.\r\n- [#4524](https://github.com/nautobot/nautobot/issues/4524) - Added optional `api` parameter to `NotesMixin.get_notes_url()` model method.\r\n\r\n### Changed\r\n\r\n- [#2472](https://github.com/nautobot/nautobot/issues/2472) - Added `tagged_vlans` and `untagged_vlan` as selected/prefetched in (VM)Interface API views.\r\n- [#2472](https://github.com/nautobot/nautobot/issues/2472) - Added `ip_addresses` as prefetched in VMInterface API views.\r\n- [#4014](https://github.com/nautobot/nautobot/issues/4014) - Refine Prefix List and Detail Views in new UI.\r\n- [#4367](https://github.com/nautobot/nautobot/issues/4367) - Changed CSV export to use multi-column natural keys for related models instead of composite-keys.\r\n- [#4367](https://github.com/nautobot/nautobot/issues/4367) - Changed `natural_key_field_names` for Prefix from `[\"namespace\", \"prefix\"]` to `[\"namespace\", \"network\", \"prefix_length\"]`\r\n- [#4420](https://github.com/nautobot/nautobot/issues/4420) - Updated jobs migration docs to reflect alternate method of job params migration.\r\n- [#4425](https://github.com/nautobot/nautobot/issues/4425) - Refined layout of new-UI Device detail view, including addition of \"Virtual Chassis\" tab.\r\n- [#4425](https://github.com/nautobot/nautobot/issues/4425) - Moved logic deriving list and detail view schemas for new UI from a serializer from `nautobot.core.api.metadata` to `nautobot.core.api.serializers`.\r\n- [#4425](https://github.com/nautobot/nautobot/issues/4425) - Changed new-UI detail-view schema construction to automatically include `comments` and `tags` fields (if present) in the appropriate location to avoid needing every serializer to specify these fields in its configuration.\r\n- [#4425](https://github.com/nautobot/nautobot/issues/4425) - Refined the structure of new-UI detail-view and list-view schemas.\r\n- [#4426](https://github.com/nautobot/nautobot/issues/4426) - Changed `fix_custom_fields` to skip models without any custom fields.\r\n- [#4462](https://github.com/nautobot/nautobot/issues/4462) - Updated new UI to use REST API FilterSet metadata to populate filter form.\r\n- [#4493](https://github.com/nautobot/nautobot/issues/4493) - Reordered overview items in the 2.0 release-notes.\r\n\r\n### Dependencies\r\n\r\n- [#4418](https://github.com/nautobot/nautobot/issues/4418) - Dependency `netutils` updated to `^1.6.0`.\r\n- [#4538](https://github.com/nautobot/nautobot/issues/4538) - Updated npm dependencies via `npm update`.\r\n\r\n### Fixed\r\n\r\n- [#4033](https://github.com/nautobot/nautobot/issues/4033) - Fixed filtering objects in bulk edit and bulk delete.\r\n- [#4327](https://github.com/nautobot/nautobot/issues/4327) - Fixed a case where an ObjectChange would not be created when making an M2M change via the ORM.\r\n- [#4327](https://github.com/nautobot/nautobot/issues/4327) - Fixed an error when trying to send a Webhook after all ObjectChanges for an object had been deleted/pruned.\r\n- [#4327](https://github.com/nautobot/nautobot/issues/4327) - Fixed a case where a JobHook would not be sent when making an M2M change after all existing ObjectChanges for the object had been deleted/pruned.\r\n- [#4396](https://github.com/nautobot/nautobot/issues/4396) - Fixed rack form silently dropping custom field values.\r\n- [#4416](https://github.com/nautobot/nautobot/issues/4416) - Fixed a bug that raises `CablePath matching query does not exist` exception when deleting a device with multiple types of connected interfaces.\r\n- [#4426](https://github.com/nautobot/nautobot/issues/4426) - Fixed a potential out-of-memory issue when running `nautobot-server fix_custom_fields` on large datasets.\r\n- [#4430](https://github.com/nautobot/nautobot/issues/4430) - Fixed VLAN form missing VLAN Group.\r\n- [#4469](https://github.com/nautobot/nautobot/issues/4469) - Fixed issue that resulted in stacktrace if no model docs and dunder str was not resolvable.\r\n- [#4469](https://github.com/nautobot/nautobot/issues/4469) - Fixed `alter_queryset` not being respected by list views based on `NautobotUIViewSet`.\r\n- [#4473](https://github.com/nautobot/nautobot/issues/4473) - Fixed a bug that stripped any `tags` field from Job input forms.\r\n- [#4487](https://github.com/nautobot/nautobot/issues/4487) - Fixed general UI layout sizing and spacing.\r\n- [#4503](https://github.com/nautobot/nautobot/issues/4503) - Fixed a bug that stripped any `tags` field from DynamicGroup filter options in `DynamicGroupEditForm`.\r\n- [#4510](https://github.com/nautobot/nautobot/issues/4510) - Fixed placeholder values being present in new UI.\r\n- [#4514](https://github.com/nautobot/nautobot/issues/4514) - Fixed an issue with `alter_queryset` not being called when constructing a table.\r\n- [#4524](https://github.com/nautobot/nautobot/issues/4524) - Fixed incorrect implementation of `test_notes_url_on_object` test case that never actually tested anything.\r\n- [#4524](https://github.com/nautobot/nautobot/issues/4524) - Fixed incorrect permissions enforcement on REST API `/notes/` action endpoints.\r\n- [#4524](https://github.com/nautobot/nautobot/issues/4524) - Fixed an exception in REST API `/notes/` action endpoints that was inadvertently introduced in #4517.\r\n- [#4535](https://github.com/nautobot/nautobot/issues/4535) - Fixed off-by-one error in new UI date processing.\r\n\r\n### Housekeeping\r\n\r\n- [#4479](https://github.com/nautobot/nautobot/issues/4479) - Configured `npm` in Docker image to use 30s timeout, pinned `npm` to 9.X, and changed Docker build to use `npm ci` instead of `npm install` to improve builds.\r\n\r\n### Removed\r\n\r\n- [#4301](https://github.com/nautobot/nautobot/issues/4301) - Removed references to `RoleModelSerializerMixin`, `RoleRequiredRoleModelSerializerMixin` and `RoleSerializerField` from generic Role-related documentation.\r\n- [#4425](https://github.com/nautobot/nautobot/issues/4425) - Removed composite key from new UI object-detail \"Advanced\" tab.\r\n- [#4448](https://github.com/nautobot/nautobot/issues/4448) - Removed composite key from user-facing interfaces (API, UI).\r\n- [#4538](https://github.com/nautobot/nautobot/issues/4538) - Removed unnecessary dependency on `semver` npm package.\r\n\r\n### Security\r\n\r\n- [#4500](https://github.com/nautobot/nautobot/issues/4500) - Updated `cryptography` to 41.0.4 due to [GHSA-v8gr-m533-ghj9](https://github.com/advisories/GHSA-v8gr-m533-ghj9). This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @HanlinMiao\r\n* @itdependsnetworks\r\n* @snaselj\r\n* @smk4664\r\n* @norbert-mieczkowski-codilime\r\n* @glennmatthews\r\n* @joewesch\r\n* @bryanculver\r\n* @DistantVoyager\r\n* @u1735067\r\n* @timizuoebideri1\r\n* @jathanism\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.0-rc.3...v2.0.0-rc.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4546",
        "mentions_count": 13
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/121368598",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/121368598/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/121368598/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-rc.3",
        "id": 121368598,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HO_AW",
        "tag_name": "v2.0.0-rc.3",
        "target_commitish": "develop",
        "name": "v2.0.0-rc.3 - 2023-09-15",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-09-15T21:02:46Z",
        "updated_at": "2023-09-15T22:07:23Z",
        "published_at": "2023-09-15T21:14:04Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/126259747",
                "id": 126259747,
                "node_id": "RA_kwDOFEucDc4HhpIj",
                "name": "nautobot-2.0.0rc3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89289329,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-09-15T22:07:20Z",
                "updated_at": "2023-09-15T22:07:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-rc.3/nautobot-2.0.0rc3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/126259740",
                "id": 126259740,
                "node_id": "RA_kwDOFEucDc4HhpIc",
                "name": "nautobot-2.0.0rc3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88228020,
                "digest": null,
                "download_count": 12,
                "created_at": "2023-09-15T22:07:18Z",
                "updated_at": "2023-09-15T22:07:20Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-rc.3/nautobot-2.0.0rc3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-rc.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-rc.3",
        "body": "### What to Check Out\r\n\r\n#### Natural Slug Property\r\n\r\nWe implemented the `natural_slug` property on all `BaseModel` objects. A Natural Slug is a natural-key-derived, human-readable, automation-friendly representation of the object it references. It cannot be used to look up an object and is intended for a one-way \"slug-ification\" of the natural key.\r\n\r\n#### IPAddressToInterface REST API Endpoint\r\n\r\nWith changing the `IPAddress` model's `interface` field from a `ForeignKey` to a `ManyToManyField`, the `IPAddressToInterface` model was introduced to track the many-to-many relationship between `IPAddress` and `Interface` (and `VMInterface`) objects. This model is now exposed via the REST API as a new endpoint. You can find more information about this endpoint in the auto-generated API documentation.\r\n\r\n### Added\r\n\r\n- [#3289](https://github.com/nautobot/nautobot/issues/3289) - Added documentation on factory data caching and generic filter tests.\r\n- [#3372](https://github.com/nautobot/nautobot/issues/3372) - Added documentation for migrating permission constraints.\r\n- [#3934](https://github.com/nautobot/nautobot/issues/3934) - Added `Namespace` column to `VRFDeviceAssignmentTable` and `VRFPrefixAssignmentTable` to display assigned VRFs' `namespace` property.\r\n- [#3934](https://github.com/nautobot/nautobot/issues/3934) - Added `namespace` attribute to rendering of \"IP Addresses\" columns of relevant `Interface` and `InterfaceRedundancyGroup` tables.\r\n- [#3934](https://github.com/nautobot/nautobot/issues/3934) - Added `namespace` attribute to rendering of `primary_ip` fields in `DeviceDetailView` and `VirtualMachineDetailView`.\r\n- [#3934](https://github.com/nautobot/nautobot/issues/3934) - Added hover copy button and functionality to `primary_ip` field in `VirtualMachineDetailView`.\r\n- [#4011](https://github.com/nautobot/nautobot/issues/4011) - Added redirect in new UI to legacy UI if the page being visited is not new UI ready.\r\n- [#4249](https://github.com/nautobot/nautobot/issues/4249) - Added REST API endpoint for the IPAddressToInterface model.\r\n- [#4249](https://github.com/nautobot/nautobot/issues/4249) - Added section on many-to-many relationships in the REST API overview docs.\r\n- [#4303](https://github.com/nautobot/nautobot/issues/4303) - Added documentation on identifying objects after the removal of slug fields.\r\n- [#4326](https://github.com/nautobot/nautobot/issues/4326) - Update documentation on Nautobot release workflow.\r\n- [#4346](https://github.com/nautobot/nautobot/issues/4346) - Implemented `.natural_slug` property on all models.\r\n\r\n### Changed\r\n\r\n- [#2821](https://github.com/nautobot/nautobot/issues/2821) - Adds navigation.footer to mkdocs features to enable navigation in the footer.\r\n- [#2821](https://github.com/nautobot/nautobot/issues/2821) - Updates installation documentation into a single path, using tabs for MySQL/PostgeSQL & Ubuntu/Debian/RHEL.\r\n- [#2821](https://github.com/nautobot/nautobot/issues/2821) - Removes centos.md and ubuntu.md as these are collapsed into single `install_system.md` file.\r\n- [#2821](https://github.com/nautobot/nautobot/issues/2821) - Updates docker-compose standalone to docker compose plugin to assist in development environment.\r\n- [#4012](https://github.com/nautobot/nautobot/issues/4012) - Disable non ready Model View in new-ui sidebar.\r\n- [#4015](https://github.com/nautobot/nautobot/issues/4015) - Refined new-UI IPAddress detail view.\r\n- [#4017](https://github.com/nautobot/nautobot/issues/4017) - Refined new-UI DeviceType detail view.\r\n- [#4017](https://github.com/nautobot/nautobot/issues/4017) - Moved `object_type` to the Advanced tab of new-UI detail views in general.\r\n- [#4019](https://github.com/nautobot/nautobot/issues/4019) - Refine new-ui Location Detail view.\r\n- [#4333](https://github.com/nautobot/nautobot/issues/4333) - Updated Dockerfile not to use Python virtual environment.\r\n- [#4338](https://github.com/nautobot/nautobot/issues/4338) - Updated GitHub CI integration workflow for Long-term maintenance branch.\r\n- [#4429](https://github.com/nautobot/nautobot/issues/4429) - Updated the pylint-nautobot migration steps.\r\n- [#4440](https://github.com/nautobot/nautobot/issues/4440) - Fixed an issues with ModelForm's that used `__all__`  on `Meta.fields` and `custom_fields` displayed a JSON blob.\r\n\r\n### Fixed\r\n\r\n- [#3934](https://github.com/nautobot/nautobot/issues/3934) - Fixed validation logic for VirtualMachine primary ips.\r\n- [#4010](https://github.com/nautobot/nautobot/issues/4010) - Fixed error not being raised when an invalid parent is provided to the IPAddress in both the API and ORM.\r\n- [#4293](https://github.com/nautobot/nautobot/issues/4293) - Fixed the issue of ObjectChange Detail View not rendering in the new UI.\r\n- [#4307](https://github.com/nautobot/nautobot/issues/4307) - Fixed incorrect hyperlinks that exist in the Notes and ChangeLog Tables in the ObjectDetailView of the new UI.\r\n- [#4329](https://github.com/nautobot/nautobot/issues/4329) - Fixed an issue in `TreeNodeMultipleChoiceFilter` filtering that could result in incorrect inclusion of unrelated records with the same name located elsewhere in the tree.\r\n- [#4377](https://github.com/nautobot/nautobot/issues/4377) - Fixed incorrect OpenAPI schema for filters available on Device and VirtualMachine REST API endpoints.\r\n- [#4377](https://github.com/nautobot/nautobot/issues/4377) - Fixed incorrect logic for queryset annotation on Device and VirtualMachine REST API views.\r\n- [#4388](https://github.com/nautobot/nautobot/issues/4388) - Fixed a bug that makes ConfigContexts applied to parent locations missing from rendered config context of child location Devices/Virtual Machines.\r\n- [#4407](https://github.com/nautobot/nautobot/issues/4407) - Fixed Dockerfile Node.js `setup_XX.x` [deprecated script](https://github.com/nodesource/distributions#new-update-%EF%B8%8F).\r\n\r\n### Housekeeping\r\n\r\n- [#4310](https://github.com/nautobot/nautobot/issues/4310) - Updated CI integration workflow to remove some redundant tests, run more tests in parallel and remove arm64 platform from the container build.\r\n- [#4311](https://github.com/nautobot/nautobot/issues/4311) - Updated CI pull request workflow for `next` branch to remove some redundant tests, run more tests in parallel and test the container build.\r\n- [#4409](https://github.com/nautobot/nautobot/issues/4409) - Updated upstream testing workflow for apps to test against LTM and 2.0 with `ltm-1.6` and `develop` branch tags respectively.\r\n\r\n### Removed\r\n\r\n- [#3934](https://github.com/nautobot/nautobot/issues/3934) - Removed `ip_family` queryset annotation from `PrefixQuerySet` and `IPAddressQuerySet`.\r\n- [#4011](https://github.com/nautobot/nautobot/issues/4011) - Removed the \"disable menu\" feature for non-NewUI ready menu links in the sidebar and NavBar.\r\n- [#4015](https://github.com/nautobot/nautobot/issues/4015) - Removed `tags`, `custom-fields`, `computed-fields`, `relationships` from new-UI object detail\r\n- [#4017](https://github.com/nautobot/nautobot/issues/4017) - Removed `notes_url` from new-UI object detail views.\r\n\r\n### Security\r\n\r\n- [#3880](https://github.com/nautobot/nautobot/issues/3880) - Updated `GitPython` to `3.1.36` to address `CVE-2023-41040`.\r\n\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @HanlinMiao\r\n* @glennmatthews \r\n* @bryanculver\r\n* @timizuoebideri1 \r\n* @DistantVoyager\r\n* @snaselj \r\n* @jvanderaa\r\n* @itdependsnetworks\r\n* @jathanism\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.0-rc.2...v2.0.0-rc.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4468",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/119977272",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/119977272/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/119977272/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.2",
        "id": 119977272,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HJrU4",
        "tag_name": "v1.6.2",
        "target_commitish": "main",
        "name": "v1.6.2 - 2023-09-05",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-09-05T14:58:00Z",
        "updated_at": "2023-09-05T17:05:28Z",
        "published_at": "2023-09-05T16:04:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/124686468",
                "id": 124686468,
                "node_id": "RA_kwDOFEucDc4HbpCE",
                "name": "nautobot-1.6.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89439104,
                "digest": null,
                "download_count": 11,
                "created_at": "2023-09-05T17:05:26Z",
                "updated_at": "2023-09-05T17:05:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.2/nautobot-1.6.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/124686460",
                "id": 124686460,
                "node_id": "RA_kwDOFEucDc4HbpB8",
                "name": "nautobot-1.6.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88613787,
                "digest": null,
                "download_count": 14,
                "created_at": "2023-09-05T17:05:23Z",
                "updated_at": "2023-09-05T17:05:25Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.2/nautobot-1.6.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.2",
        "body": "### Added\r\n\r\n- [#3289](https://github.com/nautobot/nautobot/issues/3289) - Added documentation on factory data caching.\r\n- [#3913](https://github.com/nautobot/nautobot/issues/3913) - Added `url` field to GraphQL objects.\r\n- [#4201](https://github.com/nautobot/nautobot/issues/4201) - Added docs for `InterfaceRedundancyGroup`.\r\n- [#4316](https://github.com/nautobot/nautobot/issues/4316) - Added management command \"nautobot-server populate_platform_network_driver\" to help update the `Platform.network_driver` field in bulk.\r\n- [#4317](https://github.com/nautobot/nautobot/issues/4317) - Added tests for GraphQL url field.\r\n\r\n### Changed\r\n\r\n- [#3212](https://github.com/nautobot/nautobot/issues/3212) - Updated Dynamic Group field filter/child group exclusivity error to be more noticeable.\r\n- [#3949](https://github.com/nautobot/nautobot/issues/3949) - Moved DynamicGroup `clean_filter()` call from `clean()` to `clean_fields()`, which has the impact that it will still be called by `full_clean()` and `validated_save()` but no longer called on a simple `clean()`.\r\n- [#4216](https://github.com/nautobot/nautobot/issues/4216) - Changed the rendering of `TagFilterField` to prevent very slow rendering of pages when large numbers of tags are defined.\r\n- [#4217](https://github.com/nautobot/nautobot/issues/4217) - Added a restriction that two Git repositories with the same `remote_url` cannot overlap in their `provided_contents`, as such cases are highly likely to introduce data conflicts.\r\n\r\n### Fixed\r\n\r\n- [#3949](https://github.com/nautobot/nautobot/issues/3949) - Fixed a ValueError when editing an existing DynamicGroup that has invalid `filter` data.\r\n- [#3949](https://github.com/nautobot/nautobot/issues/3949) - Fixed `DynamicGroup.clean_fields()` so that it will respect an `exclude=[\"filter\"]` kwarg by not validating the `filter` field.\r\n- [#4262](https://github.com/nautobot/nautobot/issues/4262) - Fixed warning message when trying to use bulk edit with no items selected.\r\n\r\n### Housekeeping\r\n\r\n- [#4331](https://github.com/nautobot/nautobot/issues/4331) - Added a \"housekeeping\" subsection to the release-notes via `towncrier`.\r\n\r\n## Contributors\r\n\r\n* @timizuoebideri1\r\n* @joewesch\r\n* @whitej6\r\n* @jamesharr\r\n* @gsnider2195\r\n* @glennmatthews\r\n* @DistantVoyager\r\n\r\n## New Contributors\r\n* @jamesharr made their first contribution in https://github.com/nautobot/nautobot/pull/4163\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.1...v1.6.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4389",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/118642809",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/118642809/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/118642809/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-rc.2",
        "id": 118642809,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HElh5",
        "tag_name": "v2.0.0-rc.2",
        "target_commitish": "develop",
        "name": "v2.0.0-rc.2 - 2023-08-24",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-08-24T19:13:22Z",
        "updated_at": "2023-08-25T01:00:16Z",
        "published_at": "2023-08-24T23:52:51Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/123011073",
                "id": 123011073,
                "node_id": "RA_kwDOFEucDc4HVQAB",
                "name": "nautobot-2.0.0rc2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89204975,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-08-25T01:00:14Z",
                "updated_at": "2023-08-25T01:00:16Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-rc.2/nautobot-2.0.0rc2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/123011071",
                "id": 123011071,
                "node_id": "RA_kwDOFEucDc4HVP__",
                "name": "nautobot-2.0.0rc2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88157438,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-08-25T01:00:11Z",
                "updated_at": "2023-08-25T01:00:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-rc.2/nautobot-2.0.0rc2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-rc.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-rc.2",
        "body": "### Added\r\n\r\n- [#3794](https://github.com/nautobot/nautobot/issues/3794) - Added support for multi-column keys for CSV Import.\r\n\r\n### Changed\r\n\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Renamed `IPAddress` `vrf` filter to `vrfs`.\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Renamed `Prefix` `mask_length` filter to `prefix_length` and `vrf` filter to `vrfs`.\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Enhanced `Prefix` `vlan_vid` filter to permit multiple query values.\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Renamed `RouteTarget` `exporting_vrf` filter to `exporting_vrfs` and `importing_vrf` filter to `importing_vrfs`.\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Renamed `Service` `port` filter to `ports`.\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Renamed `VRF` `export_target` filter to `export_targets` and `import_target` filter to `import_targets`.\r\n- [#2853](https://github.com/nautobot/nautobot/issues/2853) - Renamed `JobView` to `JobRunView` and `JobDetailView` to `JobView`.\r\n- [#2853](https://github.com/nautobot/nautobot/issues/2853) - Rename url lookups `job` to `job_run_by_class_path` and `job_detail` to `job`.\r\n- [#2853](https://github.com/nautobot/nautobot/issues/2853) - Changed `as_form_class`, `as_form` and `validate_data` functions on BaseJob Model to `classmethods`.\r\n- [#4305](https://github.com/nautobot/nautobot/issues/4305) - Merged develop back into next after release 1.6.1\r\n\r\n### Fixed\r\n\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Fixed misnamed `tag` fields on various filter forms (correct filter name is now `tags`).\r\n- [#4299](https://github.com/nautobot/nautobot/issues/4299) - Added missing `to_field_name` attribute on `TagFilterField`, which was causing dynamic-group filtering failures.\r\n- [#4300](https://github.com/nautobot/nautobot/issues/4300) - Fixed a permission issue when using `final-dev` containers by switching to root user before exposing port and entrypoint.\r\n\r\n### Removed\r\n\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Removed `RouteTarget` `exporting_vrf_id` and `importing_vrf_id` filters as they are redundant with the `exporting_vrfs` and `importing_vrfs` filters.\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Removed `Service` `device_id` and `virtual_machine_id` filters as they are redundant with the `device` and `virtual_machine` filters.\r\n- [#2807](https://github.com/nautobot/nautobot/issues/2807) - Removed `VRF` `export_target_id` and `import_target_id` filters as they are redundant with the `export_targets` and `import_targets` filters.\r\n- [#2853](https://github.com/nautobot/nautobot/issues/2853) - Removed `/extras/jobs/results/<uuid:pk>/` URL endpoint.\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @jvanderaa\r\n* @glennmatthews\r\n* @jathanism\r\n* @timizuoebideri1\r\n* @joewesch\r\n* @whitej6\r\n* @jamesharr\r\n* @HanlinMiao\r\n\r\n## New Contributors\r\n* @jamesharr made their first contribution in https://github.com/nautobot/nautobot/pull/4163\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.0-rc.1...v2.0.0-rc.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4324",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/118017937",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/118017937/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/118017937/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.1",
        "id": 118017937,
        "author": {
            "login": "timizuoebideri1",
            "id": 94907097,
            "node_id": "U_kgDOBagq2Q",
            "avatar_url": "https://avatars.githubusercontent.com/u/94907097?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/timizuoebideri1",
            "html_url": "https://github.com/timizuoebideri1",
            "followers_url": "https://api.github.com/users/timizuoebideri1/followers",
            "following_url": "https://api.github.com/users/timizuoebideri1/following{/other_user}",
            "gists_url": "https://api.github.com/users/timizuoebideri1/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/timizuoebideri1/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/timizuoebideri1/subscriptions",
            "organizations_url": "https://api.github.com/users/timizuoebideri1/orgs",
            "repos_url": "https://api.github.com/users/timizuoebideri1/repos",
            "events_url": "https://api.github.com/users/timizuoebideri1/events{/privacy}",
            "received_events_url": "https://api.github.com/users/timizuoebideri1/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HCM-R",
        "tag_name": "v1.6.1",
        "target_commitish": "main",
        "name": "v1.6.1 (2023-08-21)",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-08-21T13:54:33Z",
        "updated_at": "2023-08-21T15:07:51Z",
        "published_at": "2023-08-21T13:59:14Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/122459885",
                "id": 122459885,
                "node_id": "RA_kwDOFEucDc4HTJbt",
                "name": "nautobot-1.6.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89413230,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-08-21T15:07:33Z",
                "updated_at": "2023-08-21T15:07:51Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.1/nautobot-1.6.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/122459870",
                "id": 122459870,
                "node_id": "RA_kwDOFEucDc4HTJbe",
                "name": "nautobot-1.6.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88590804,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-08-21T15:07:29Z",
                "updated_at": "2023-08-21T15:07:32Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.1/nautobot-1.6.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.1",
        "body": "## v1.6.1 \r\n\r\n### Changed\r\n\r\n- [#4242](https://github.com/nautobot/nautobot/issues/4242) - Changed `development/nautobot_config.py` to disable installation metrics for developer environments by default.\r\n- [#4242](https://github.com/nautobot/nautobot/issues/4242) - Changed behavior of `dev` and `final-dev` Docker images to disable installation metrics by default.\r\n\r\n### Fixed\r\n\r\n- [#4028](https://github.com/nautobot/nautobot/issues/4028) - Fixed CI integration workflow to publish 'final-dev', and build only `final` images.\r\n- [#4028](https://github.com/nautobot/nautobot/issues/4028) - Fixed CI integration workflow `set-output` warnings.\r\n- [#4093](https://github.com/nautobot/nautobot/issues/4093) - Fixed dependencies required for saml support missing in final docker image.\r\n- [#4149](https://github.com/nautobot/nautobot/issues/4149) - Fixed a bug that prevented renaming a `Rack` if it contained any devices whose names were not globally unique.\r\n- [#4241](https://github.com/nautobot/nautobot/issues/4241) - Added a timeout and exception handling to the `nautobot-server send_installation_metrics` command.\r\n- [#4256](https://github.com/nautobot/nautobot/issues/4256) - Introduced new `mkdocs` setting of `tabbed`.\r\n- [#4256](https://github.com/nautobot/nautobot/issues/4256) - Updated docs at `nautobot/docs/installation/nautobot.md` and `nautobot/docs/installation/http-server.md` to adopt tabbed interfaces.\r\n- [#4258](https://github.com/nautobot/nautobot/issues/4258) - Re-enabled copy-to-clipboard button in mkdocs theme.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @snaselj\r\n* @gsnider2195\r\n* @jvanderaa\r\n* @jathanism\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.6.0...v1.6.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4297",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/117802427",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/117802427/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/117802427/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-rc.1",
        "id": 117802427,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4HBYW7",
        "tag_name": "v2.0.0-rc.1",
        "target_commitish": "next",
        "name": "v2.0.0-rc.1 - 2023-08-18",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-08-18T17:05:55Z",
        "updated_at": "2023-08-18T19:30:39Z",
        "published_at": "2023-08-18T18:19:26Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/122104275",
                "id": 122104275,
                "node_id": "RA_kwDOFEucDc4HRynT",
                "name": "nautobot-2.0.0rc1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89195027,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-08-18T19:30:36Z",
                "updated_at": "2023-08-18T19:30:39Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-rc.1/nautobot-2.0.0rc1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/122104269",
                "id": 122104269,
                "node_id": "RA_kwDOFEucDc4HRynN",
                "name": "nautobot-2.0.0rc1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88148508,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-08-18T19:30:33Z",
                "updated_at": "2023-08-18T19:30:35Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-rc.1/nautobot-2.0.0rc1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-rc.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-rc.1",
        "body": "### Added\r\n\r\n- [#1175](<https://github.com/nautobot/nautobot/issues/1175>) - Added \"Submit Feedback\" functionality to the new UI.\r\n- [#3330](<https://github.com/nautobot/nautobot/issues/3330>) - Added UI configuration documentation.\r\n- [#3386](<https://github.com/nautobot/nautobot/issues/3386>) - Added documentation linking to best practices for database backup.\r\n- [#3386](<https://github.com/nautobot/nautobot/issues/3386>) - Added missing files to the documentation table of contents.\r\n- [#3387](<https://github.com/nautobot/nautobot/issues/3387>) - Added an app developer migration guide on how to upgrade an Nautobot App from v1.x to v2.0.\r\n- [#3394](<https://github.com/nautobot/nautobot/issues/3394>) - Added Developer migration guide.\r\n- [#3582](<https://github.com/nautobot/nautobot/issues/3582>) - The 'GetFilterSetFieldDOMElementAPIView' now has the option to return the filterset field's DOM element in JSON format.\r\n- [#3690](<https://github.com/nautobot/nautobot/issues/3690>) - Added an IPAM Migration Guide for users upgrading to Nautobot 2.0.\r\n- [#3904](<https://github.com/nautobot/nautobot/issues/3904>) - Added Input component for changing the page number, in addition to using the arrows.\r\n- [#3904](<https://github.com/nautobot/nautobot/issues/3904>) - Added total number of rows to footer.\r\n- [#3976](<https://github.com/nautobot/nautobot/issues/3976>) - Added support for related-object specification by PK (UUID) in CSV imports as an alternative to composite-keys.\r\n- [#3976](<https://github.com/nautobot/nautobot/issues/3976>) - Added support for related-object specification by composite-key in JSON REST API data.\r\n- [#3977](<https://github.com/nautobot/nautobot/issues/3977>) - Added `DEVICE_NAME_AS_NATURAL_KEY` and `LOCATION_NAME_AS_NATURAL_KEY` optional config settings to allow the use of simplified natural keys for Device and Location models.\r\n- [#3978](<https://github.com/nautobot/nautobot/issues/3978>) - Added data migration for JobResult to migrate old status to its equivalent new status.\r\n- [#3983](<https://github.com/nautobot/nautobot/issues/3983>) - Added `FiltersPanel` UI component.\r\n- [#4042](<https://github.com/nautobot/nautobot/issues/4042>) - Added additional documentations and references for how CustomField, ComputedField, and Relationship behave in Nautobot v2.0.\r\n- [#4052](<https://github.com/nautobot/nautobot/issues/4052>) - Added the option for models to specify a `documentation_static_path` attribute if a non-default path is needed.\r\n- [#4081](<https://github.com/nautobot/nautobot/issues/4081>) - Added data migration to ensure `Note` objects' `created` timestamps are unique.\r\n- [#4091](<https://github.com/nautobot/nautobot/issues/4091>) - Added information about installing and running Node.js as a part of the Nautobot installation documentation.\r\n- [#4100](<https://github.com/nautobot/nautobot/issues/4100>) - Added columns for interface count, device count, VM interface count and virtual machine count to the IP address list view.\r\n- [#4154](<https://github.com/nautobot/nautobot/issues/4154>) - Added handleOnKeyDown to Pagination to now update the page number when Enter key is pressed.\r\n- [#4154](<https://github.com/nautobot/nautobot/issues/4154>) - Added double arrow icons to Pagination for navigating to first/last page.\r\n- [#4197](<https://github.com/nautobot/nautobot/issues/4197>) - Added Bulk Import View for Namespace.\r\n- [#4225](<https://github.com/nautobot/nautobot/issues/4225>) - Added Namespace to IPAddressDetailTable.\r\n- [#4228](<https://github.com/nautobot/nautobot/issues/4228>) - Incorporated all code changes from Nautobot 1.6.0.\r\n\r\n### Changed\r\n\r\n- [#3229](<https://github.com/nautobot/nautobot/issues/3229>) - Rename [JobResult.data](https://JobResult.data) to JobResult.result and delete the original JobResult.result.\r\n- [#3636](<https://github.com/nautobot/nautobot/issues/3636>) - Reintroduced \"Assign IP Address\" button to Device Interfaces list view.\r\n- [#3892](<https://github.com/nautobot/nautobot/issues/3892>) - Removed `logger` kwarg from `JobResult.log()`. Jobs' `self.logger` logging instance automatically logs to both the console and database and should be used instead of this method.\r\n- [#3892](<https://github.com/nautobot/nautobot/issues/3892>) - Changed the function signatures for `nautobot.extras.datasources.git` methods `get_repo_from_url_to_path_and_from_branch`, `ensure_git_repository`, `git_repository_dry_run`, `import_config_context`, `import_local_config_context`, and `import_config_context_schema`.\r\n- [#3904](<https://github.com/nautobot/nautobot/issues/3904>) - Restyled the pagination section.\r\n- [#3904](<https://github.com/nautobot/nautobot/issues/3904>) - Modified the back \"<\" and next \">\" arrows to navigate to the previous/next page, respectively, rather than the first/last page.\r\n- [#3904](<https://github.com/nautobot/nautobot/issues/3904>) - The back \"<\" and next \">\" arrows no longer show when they aren't relevant (i.e. when on the first/last page).\r\n- [#3904](<https://github.com/nautobot/nautobot/issues/3904>) - Changed Pagination component from Class to function.\r\n- [#3906](<https://github.com/nautobot/nautobot/issues/3906>) - Changed visual loading behavior of object list views in new UI.\r\n- [#3928](<https://github.com/nautobot/nautobot/issues/3928>) - Updated settings documentation for Nautobot 2.0 Celery changes.\r\n- [#3972](<https://github.com/nautobot/nautobot/issues/3972>) - Changed the natural-key for `ComponentModel` to `[\"name\", \"device\"]`.\r\n- [#3972](<https://github.com/nautobot/nautobot/issues/3972>) - Re-ordered the natural-key fields for `PowerOutlet` and `PowerPanel`.\r\n- [#3972](<https://github.com/nautobot/nautobot/issues/3972>) - Changed the natural-key fields for `Cable`, `CablePath`, and `TaggedItem` to merely \"pk\".\r\n- [#3972](<https://github.com/nautobot/nautobot/issues/3972>) - Changed the natural-key for `RackReservation` to `[\"units\", \"racks\"]`.\r\n- [#3972](<https://github.com/nautobot/nautobot/issues/3972>) - Changed the natural-key of `VirtualChassis` to \"name\".\r\n- [#3976](<https://github.com/nautobot/nautobot/issues/3976>) - Moved `NautobotHyperlinkedRelatedField` from `nautobot.core.api.serializers` to `nautobot.core.api.fields`.\r\n- [#4013](<https://github.com/nautobot/nautobot/issues/4013>) - Refined the Device Detail View in the New UI.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Changed development `nodejs` Docker container to use Nautobot `dev` image instead of generic `node` image.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Changed the `dev` and `final-dev` Docker images to install and run Nautobot as a `nautobot` user instead of as `root`.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Updated `poetry` version included in `dev` and `final-dev` Docker images from 1.3.1 to 1.5.1.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Updated `markdownlint-cli` to version 0.35.0.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Changed all Docker images to install Nautobot and its dependencies to a virtualenv in `/opt/nautobot/` instead of the system Python.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Changed Docker build to install dependencies for and then build the new UI as a separate set of stages from the installation of Python dependencies and build of the Python package.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Consolidated development/non-development `package.json` and `package-lock.json` files into a single set of files.\r\n- [#4164](<https://github.com/nautobot/nautobot/issues/4164>) - Modified docker dev stage to run as root user to prevent permission issues with bind mounts.\r\n- [#4242](<https://github.com/nautobot/nautobot/issues/4242>) - Changed `development/nautobot_config.py` to disable installation metrics for developer environments by default.\r\n- [#4242](<https://github.com/nautobot/nautobot/issues/4242>) - Changed behavior of `dev` and `final-dev` Docker images to disable installation metrics by default.\r\n\r\n### Dependencies\r\n\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Added support for Python 3.11.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `django-auth-ldap` optional dependency to `~4.3.0`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `django-cors-headers` dependency to `~4.2.0`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `django-storages` optional dependency to `~1.13.2`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `django-tables2` dependency to `~2.6.0`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `django-tree-queries` dependency to `~0.15.0`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `drf-spectacular` dependency to `~0.26.3`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `napalm` optional dependency to `~4.1.0`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `Pillow` dependency to `~10.0.0`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `prometheus-client` dependency to `~0.17.1`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated `social-auth-core` optional dependency to `~4.4.2`.\r\n- [#4125](<https://github.com/nautobot/nautobot/issues/4125>) - Updated various development-only dependencies to the latest available versions.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `celery` dependency to `~5.3.1`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `django-celery-beat` dependency to `~2.5.0`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `django-constance` dependency to `~2.9.1`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `django-extensions` dependency to `~3.2.3`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `django-prometheus` dependency to `~2.3.1`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `django-redis` dependency to `~5.3.0`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `django-taggit` dependency to `~4.0.0.`\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `django-timezone-field` dependency to `~5.1`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `GitPython` dependency to `~3.1.32`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `graphene-django` dependency to `~2.16.0`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `Jinja2` dependency to `~3.1.2`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `jsonschema` dependency to permit versions up to 4.18.x. Note that versions back to 4.7.0 are still permitted, so this dependency may not necessarily auto-upgrade when updating Nautobot.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `MarkupSafe` dependency to `~2.1.3`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `mysqlclient` optional dependency to `~2.2.0`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `packaging` dependency to `~23.1`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated `psycopg2-binary` dependency to `~2.9.6`.\r\n- [#4143](<https://github.com/nautobot/nautobot/issues/4143>) - Updated various development-only dependencies to the latest available versions.\r\n\r\n### Fixed\r\n\r\n- [#3904](<https://github.com/nautobot/nautobot/issues/3904>) - Added proper spacing/alignment to pagination section.\r\n- [#3974](<https://github.com/nautobot/nautobot/issues/3974>) - Corrected the natural-key definitions for `ComputedField`, `CustomField`, `FileAttachment`, `ImageAttachment`, `ObjectChange`, `Relationship`, `RelationshipAssociation`, and `Token` models.\r\n- [#3976](<https://github.com/nautobot/nautobot/issues/3976>) - Fixed an error when creating `VRF` or `Prefix` records via the REST API without specifying a `namespace` value.\r\n- [#4013](<https://github.com/nautobot/nautobot/issues/4013>) - Fixed incorrect related model url rendering in ObjectRetrieve view.\r\n- [#4028](<https://github.com/nautobot/nautobot/issues/4028>) - Fixed CI integration workflow to publish 'final-dev', and build only `final` images.\r\n- [#4028](<https://github.com/nautobot/nautobot/issues/4028>) - Fixed CI integration workflow `set-output` warnings.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Fixed error when running 'invoke markdownlint' with Docker Compose workflow.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Fixed a few broken links in the documentation.\r\n- [#4083](<https://github.com/nautobot/nautobot/issues/4083>) - Fixed a issue that was causing the build process of react to be slow.\r\n- [#4100](<https://github.com/nautobot/nautobot/issues/4100>) - Fixed `assigned` column in the IP address list view.\r\n- [#4115](<https://github.com/nautobot/nautobot/issues/4115>) - Fixed missing data validation in `IPAddressForm` and `PrefixForm`.\r\n- [#4124](<https://github.com/nautobot/nautobot/issues/4124>) - Fixed inability to start `nodejs` development container due to missing files.\r\n- [#4131](<https://github.com/nautobot/nautobot/issues/4131>) - Fixed inability to filter most models with `.exclude(composite_key=\"...\")`.\r\n- [#4131](<https://github.com/nautobot/nautobot/issues/4131>) - Fixed inability to call `Prefix.objects.exclude(prefix=\"...\")`.\r\n- [#4131](<https://github.com/nautobot/nautobot/issues/4131>) - Fixed inability to call `IPAddress.objects.exclude(address=\"...\")`.\r\n- [#4149](<https://github.com/nautobot/nautobot/issues/4149>) - Fixed a bug that prevented renaming a `Rack` if it contained any devices whose names were not globally unique.\r\n- [#4154](<https://github.com/nautobot/nautobot/issues/4154>) - Added useEffect to fix the last_page in Pagination from not updating dynamically.\r\n- [#4241](<https://github.com/nautobot/nautobot/issues/4241>) - Added a timeout and exception handling to the `nautobot-server send_installation_metrics` command.\r\n- [#4254](<https://github.com/nautobot/nautobot/issues/4254>) - Fixed CI container builds failing on `npm install` steps.\r\n- [#4285](<https://github.com/nautobot/nautobot/issues/4285>) - Fixed `next` container build workflow.\r\n\r\n### Removed\r\n\r\n- [#3761](<https://github.com/nautobot/nautobot/issues/3761>) - Remove remaining `Site` and `Region` references from core docs.\r\n- [#3892](<https://github.com/nautobot/nautobot/issues/3892>) - Removed unused method `get_job_result_and_repository_record` in `nautobot.extras.datasources.git`.\r\n- [#4061](<https://github.com/nautobot/nautobot/issues/4061>) - Removed `node_modules` shared volume from Docker development environment as no longer needed.\r\n- [#4104](<https://github.com/nautobot/nautobot/issues/4104>) - Removed unused `primary_for_device` from Interface data migration.\r\n- [#4115](<https://github.com/nautobot/nautobot/issues/4115>) - Removed temporary code from `ObjectEditView` that was working around some IPAddress/Prefix form validation gaps.\r\n\r\n\r\n## Contributors\r\n* @timizuoebideri1\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @lampwins\r\n* @DistantVoyager\r\n* @whitej6\r\n* @Kircheneer\r\n* @itdependsnetworks\r\n* @bryanculver\r\n* @grelleum\r\n* @jathanism\r\n* @norbert-mieczkowski-codilime\r\n\r\n**Full Changelog**: <https://github.com/nautobot/nautobot/compare/v2.0.0-beta.2...v2.0.0-rc.1>",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4289",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/115660215",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/115660215/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/115660215/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.0",
        "id": 115660215,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4G5NW3",
        "tag_name": "v1.6.0",
        "target_commitish": "main",
        "name": "v1.6.0 - 2023-08-08",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-08-08T18:52:15Z",
        "updated_at": "2023-08-08T19:55:22Z",
        "published_at": "2023-08-08T18:54:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/120669401",
                "id": 120669401,
                "node_id": "RA_kwDOFEucDc4HMUTZ",
                "name": "nautobot-1.6.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89408630,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-08-08T19:55:19Z",
                "updated_at": "2023-08-08T19:55:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.0/nautobot-1.6.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/120669397",
                "id": 120669397,
                "node_id": "RA_kwDOFEucDc4HMUTV",
                "name": "nautobot-1.6.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88586909,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-08-08T19:55:16Z",
                "updated_at": "2023-08-08T19:55:18Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.0/nautobot-1.6.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.0",
        "body": "<!-- markdownlint-disable MD024 -->\r\n\r\n# Nautobot v1.6\r\n\r\nThis document describes all new features and changes in Nautobot 1.6.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Custom Field \"Markdown\" Type ([#4006](https://github.com/nautobot/nautobot/issues/4006))\r\n\r\nA new Custom Field type, \"Markdown\", has been added. Custom fields of this type can store Markdown-formatted text which will be rendered in the web UI.\r\n\r\n#### Caching of Dynamic Groups and Content Types ([#4092](https://github.com/nautobot/nautobot/pull/4092))\r\n\r\nAPIs have been added to allow for caching of the results of looking up an object's content-type or Dynamic Group memberships, as well as for looking up the members of a Dynamic Group itself. These caches are disabled by default but can be enabled by configuring the [`DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUT`](https://docs.nautobot.com/projects/core/en/v1.6.0/configuration/optional-settings/#dynamic_groups_member_cache_timeout) and [`CONTENT_TYPE_CACHE_TIMEOUT`](https://docs.nautobot.com/projects/core/en/v1.6.0/configuration/optional-settings/#content_type_cache_timeout) settings respectively. Apps (plugins) that make use of dynamic groups should review the [documentation for the APIs](https://docs.nautobot.com/projects/core/en/v1.6.0/models/extras/dynamicgroup/#membership-and-caching) to determine how and when to make use of the cache for improved performance.\r\n\r\n#### Interface Redundancy Group ([#2825](https://github.com/nautobot/nautobot/issues/2825))\r\n\r\nInterface Redundancy Group model and related views have been added to allow logical grouping of multiple interfaces under a specific interface redundancy protocol (HSRP, VRRP, CARP, and etc).\r\n\r\n#### Installation Metrics ([#4047](https://github.com/nautobot/nautobot/issues/4047))\r\n\r\nA new setting, [`INSTALLATION_METRICS_ENABLED`](https://docs.nautobot.com/projects/core/en/v1.6.0/configuration/optional-settings/#installation_metrics_enabled), has been added to allow Nautobot to send anonymous installation metrics to the Nautobot maintainers. This setting is `True` by default but can be changed in `nautobot_config.py` or the `NAUTOBOT_INSTALLATION_METRICS_ENABLED` environment variable.\r\n\r\nIf the [`INSTALLATION_METRICS_ENABLED`](https://docs.nautobot.com/projects/core/en/v1.6.0/configuration/optional-settings/#installation_metrics_enabled) setting is `True`, running the [`post_upgrade`](https://docs.nautobot.com/projects/core/en/v1.6.0/administration/nautobot-server/#post_upgrade) or [`send_installation_metrics`](https://docs.nautobot.com/projects/core/en/v1.6.0/administration/nautobot-server/#send_installation_metrics) management commands will send a list of all installed [plugins](https://docs.nautobot.com/projects/core/en/v1.6.0/plugins/) and their versions, as well as the currently installed Nautobot and Python versions, to the Nautobot maintainers. A randomized UUID will be generated and saved in the [`DEPLOYMENT_ID`](https://docs.nautobot.com/projects/core/en/v1.6.0/optional-settings/#deployment_id) setting to anonymously and uniquely identify each installation. The plugin names will be one-way hashed with SHA256 to further anonymize the data sent. This enables tracking the installation metrics of publicly released plugins without disclosing the names of any private plugins.\r\n\r\nThe following is an example of the data that is sent:\r\n\r\n```py\r\n{\r\n    \"deployment_id\": \"1de3dacf-f046-4a98-8d4a-17419080db79\",\r\n    \"nautobot_version\": \"1.6.0b1\",\r\n    \"python_version\": \"3.10.12\",\r\n    \"installed_apps\": {\r\n        # \"example_plugin\" hashed by sha256\r\n        \"3ffee4622af3aad6f78257e3ae12da99ca21d71d099f67f4a2e19e464453bee7\": \"1.0.0\"\r\n    },\r\n    \"debug\": true\r\n}\r\n```\r\n\r\n#### `Platform.network_driver` and related fields ([4136](https://github.com/nautobot/nautobot/issues/4136))\r\n\r\nThe [Platform](https://docs.nautobot.com/projects/core/en/v1.6.0/models/dcim/platform/) model has been enhanced to include a `network_driver` database field and a `network_driver_mappings` derived property based on the [`netutils`](https://netutils.readthedocs.io/en/latest/) library. For example, if you set a Platform to have a `network_driver` value of `\"cisco_ios\"`, the `platform.network_driver_mappings` property will return a dictionary containing `ansible`, `hier_config`, `napalm`, `netmiko`, `ntc_templates`, `pyats`, `pyntc`, and `scrapli` keys corresponding to this entry. These properties can be referenced via the REST API and GraphQL to assist in developing and maintaining Apps, Jobs, or third-party code that interact with devices by using any of these libraries.\r\n\r\nIf the default derivations provided by `netutils` are not suitable for your purposes, you can extend or override them by configuring the [`NETWORK_DRIVERS`](https://docs.nautobot.com/projects/core/en/v1.6.0/configuration/optional-settings/#network_drivers) system setting.\r\n\r\n#### Python 3.11 Support ([#3561](https://github.com/nautobot/nautobot/issues/3561))\r\n\r\nNautobot 1.6.0 formally adds support for installation and operation under Python 3.11.\r\n\r\n### Changed\r\n\r\n#### Additional HIDE_RESTRICTED_UI Effects for Unauthenticated Users ([#3646](https://github.com/nautobot/nautobot/issues/3646))\r\n\r\nWhen `HIDE_RESTRICTED_UI` is enabled, unauthenticated users are no longer able to view the OpenAPI (Swagger) UI, the GraphiQL UI, or any configured top/bottom banners. Additionally, the page footer on the login page will not display the Nautobot server hostname in this case.\r\n\r\n#### Increased `Device.asset_tag` maximum length ([#3693](https://github.com/nautobot/nautobot/issues/3693))\r\n\r\nThe maximum length of the `Device.asset_tag` field has been increased from 50 to 100 characters.\r\n\r\n#### Changed Default Python Version for Docker Images ([#4029](https://github.com/nautobot/nautobot/issues/4029))\r\n\r\nThe default Python version for Nautobot Docker images has been changed from 3.7 to 3.11.\r\n\r\n### Removed\r\n\r\n#### Removed Python 3.7 Support ([#3561](https://github.com/nautobot/nautobot/issues/3561))\r\n\r\nAs Python 3.7 has reached end-of-life, Nautobot 1.6 and later do not support installation or operation under Python 3.7.\r\n\r\n<!-- towncrier release notes start -->\r\n## v1.6.0 (2023-08-08)\r\n\r\n### Added\r\n\r\n- [#4169](https://github.com/nautobot/nautobot/issues/4169) - Added environment variable `NAUTOBOT_SESSION_EXPIRE_AT_BROWSER_CLOSE` to set the `SESSION_EXPIRE_AT_BROWSER_CLOSE` Django setting which expires session cookies when the user closes their browser.\r\n- [#4184](https://github.com/nautobot/nautobot/issues/4184) - Added documentation detailing rack power utilization calculation.\r\n\r\n### Dependencies\r\n\r\n- [#4208](https://github.com/nautobot/nautobot/issues/4208) - Updated django-rq to 2.8.1.\r\n- [#4209](https://github.com/nautobot/nautobot/issues/4209) - Relaxed constraint on prometheus-client minimum version to `0.14.1`.\r\n- [#4173](https://github.com/nautobot/nautobot/issues/4173) - Updated `drf-spectacular` to `0.26.4`.\r\n- [#4199](https://github.com/nautobot/nautobot/issues/4199) - Updated `cryptography` to `~41.0.3`. As this is not a direct dependency of Nautobot, it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#4215](https://github.com/nautobot/nautobot/issues/4215) - Broadened the range of acceptable `packaging` dependency versions.\r\n\r\n### Fixed\r\n\r\n- [#3985](https://github.com/nautobot/nautobot/issues/3985) - Added error handling in `JobResult.log()` for the case where an object's `get_absolute_url()` raises an exception.\r\n- [#3985](https://github.com/nautobot/nautobot/issues/3985) - Added missing `get_absolute_url()` implementation on `CustomFieldChoice` model.\r\n- [#4222](https://github.com/nautobot/nautobot/issues/4222) - Fixed a bug in which `Job` `ChoiceVars` could sometimes get rendered incorrectly in the UI as multiple-choice fields.\r\n- [#4175](https://github.com/nautobot/nautobot/issues/4175) - Changed custom field clean to not populate null default values.\r\n- [#4204](https://github.com/nautobot/nautobot/issues/4204) - Fixed failing Apps CI by downgrading `jsonschema<4.18`.\r\n- [#4205](https://github.com/nautobot/nautobot/issues/4205) - Fixed failing Apps CI due to missing dependency of `toml`.\r\n\r\n## v1.6.0-rc.1 (2023-08-02)\r\n\r\n### Added\r\n\r\n- [#2825](https://github.com/nautobot/nautobot/issues/2825) - Added InterfaceRedundancyGroup and related views, forms, filtersets and table.\r\n- [#3269](https://github.com/nautobot/nautobot/issues/3269) - Added ability to cache `DynamicGroup` memberships in Redis to improve reverse lookup performance.\r\n- [#3269](https://github.com/nautobot/nautobot/issues/3269) - Added ability to cache `ContentType` lookups in Redis to improve performance.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Added support for Python 3.11.\r\n- [#4006](https://github.com/nautobot/nautobot/issues/4006) - Added Markdown custom field type.\r\n- [#4044](https://github.com/nautobot/nautobot/issues/4044) - Added ability to use `@action(detail=True)` decorator for registering additional non-standard `GET` views to a `NautobotUIViewSet`.\r\n- [#4047](https://github.com/nautobot/nautobot/issues/4047) - Added ability for Nautobot to send installation metrics.\r\n- [#4118](https://github.com/nautobot/nautobot/issues/4118) - Added documentation for troubleshooting integration test failures via VNC.\r\n- [#4136](https://github.com/nautobot/nautobot/issues/4136) - Added `network_driver` database field to the `Platform` model.\r\n- [#4136](https://github.com/nautobot/nautobot/issues/4136) - Added `network_driver_mappings` derived attribute on the `Platform` model.\r\n- [#4136](https://github.com/nautobot/nautobot/issues/4136) - Added `CONSTANCE_DATABASE_CACHE_BACKEND = 'default'` to `settings.py`, which should improve performance a bit.\r\n- [#4136](https://github.com/nautobot/nautobot/issues/4136) - Added support for `NETWORK_DRIVERS` config setting to override or extend default network driver mappings from `netutils` library.\r\n- [#4161](https://github.com/nautobot/nautobot/issues/4161) - Enhanced `NautobotUIViewSet` to allow Create and Update methods to have their own form classes.\r\n\r\n### Changed\r\n\r\n- [#3646](https://github.com/nautobot/nautobot/issues/3646) - Redirect unauthenticated users on all views to login page if `HIDE_RESTRICTED_UI` is True.\r\n- [#3646](https://github.com/nautobot/nautobot/issues/3646) - Only time is shown on the footer if a user is unauthenticated and `HIDE_RESTRICTED_UI` is True.\r\n- [#3693](https://github.com/nautobot/nautobot/issues/3693) - Increased Device model's `asset_tag` size limit to 100.\r\n\r\n### Dependencies\r\n\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `celery` dependency to `~5.3.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-auth-ldap` optional dependency to `~4.3.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-cacheops` dependency to `~6.2`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-celery-beat` dependency to `~2.5.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-constance` dependency to `~2.9.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-cors-headers` dependency to `~4.2.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-cryptography` dependency to `~1.1`. Note that this dependency will be removed in Nautobot 2.0.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-extensions` dependency to `~3.2.3`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-filter` dependency to `~23.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-health-check` dependency to `~3.17.0`\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-prometheus` dependency to `~2.3.1`.`\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-redis` dependency to `~5.3.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-storages` optional dependency to `~1.13.2`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-tables2` dependency to `~2.6.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-taggit` dependency to `~4.0.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-timezone-field` dependency to `~5.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-tree-queries` dependency to `~0.15.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `drf-spectacular` dependency to `~0.26.3`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `graphene-django` dependency to `~2.16.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `Jinja2` dependency to `~3.1.2`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `jsonschema` dependency to permit versions up to 4.18.x. Note that versions back to 4.7.0 are still permitted, so this dependency may not necessarily auto-upgrade when updating Nautobot.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `MarkupSafe` dependency to `~2.1.3`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `mysqlclient` optional dependency to `~2.2.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `napalm` optional dependency to `~4.1.0`. Note that as a result of this update, the following indirect package dependencies are no longer included by default when installing Nautobot with NAPALM: `ciscoconfparse`, `dnspython`, `loguru`, `passlib`, `tenacity`, `toml`, `win32-setctime`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `packaging` dependency to `~23.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `Pillow` dependency to `~10.0.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `prometheus-client` dependency to `~0.17.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `social-auth-core` optional dependency to `~4.4.2`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `social-auth-app-django` dependency to `~5.2.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated various development-only dependencies to the latest available versions.\r\n\r\n### Fixed\r\n\r\n- [#4178](https://github.com/nautobot/nautobot/issues/4178) - Fixed JSON serialization of overloaded/non-default FilterForm fields on Dynamic Groups.\r\n\r\n### Removed\r\n\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Dropped support for Python 3.7. Python 3.8 is now the minimum version required by Nautobot.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Removed direct dependency on `importlib-metadata`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Removed direct dependency on `pycryptodome` as Nautobot does not currently use this library and hasn't for some time.\r\n\r\n## Contributors\r\n- @MeganerdDev\r\n- @timizuoebideri1\r\n- @whitej6\r\n- @glennmatthews\r\n- @gsnider2195\r\n- @HanlinMiao\r\n- @itdependsnetworks\r\n- @bryanculver\r\n- @snaselj\r\n- @grelleum\r\n- @jfach\r\n\r\n## New Contributors\r\n* @MeganerdDev made their first contribution in https://github.com/nautobot/nautobot/pull/4007\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.24...v1.6.0\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4227",
        "mentions_count": 11
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/114877053",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/114877053/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/114877053/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.6.0-rc.1",
        "id": 114877053,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4G2OJ9",
        "tag_name": "v1.6.0-rc.1",
        "target_commitish": "develop",
        "name": "v1.6.0-rc.1 - 2023-08-02",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-08-02T20:11:30Z",
        "updated_at": "2023-08-02T21:39:08Z",
        "published_at": "2023-08-02T20:12:46Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/119812453",
                "id": 119812453,
                "node_id": "RA_kwDOFEucDc4HJDFl",
                "name": "nautobot-1.6.0rc1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89404435,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-08-02T21:39:05Z",
                "updated_at": "2023-08-02T21:39:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.0-rc.1/nautobot-1.6.0rc1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/119812452",
                "id": 119812452,
                "node_id": "RA_kwDOFEucDc4HJDFk",
                "name": "nautobot-1.6.0rc1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88582015,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-08-02T21:39:02Z",
                "updated_at": "2023-08-02T21:39:05Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.6.0-rc.1/nautobot-1.6.0rc1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.6.0-rc.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.6.0-rc.1",
        "body": "# Nautobot v1.6\r\n\r\nThis document describes all new features and changes in Nautobot 1.6.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Custom Field \"Markdown\" Type ([#4006](https://github.com/nautobot/nautobot/issues/4006))\r\n\r\nA new Custom Field type, \"Markdown\", has been added. Custom fields of this type can store Markdown-formatted text which will be rendered in the web UI.\r\n\r\n#### Caching of Dynamic Groups and Content Types ([#4092](https://github.com/nautobot/nautobot/pull/4092))\r\n\r\nAPIs have been added to allow for caching of the results of looking up an object's content-type or Dynamic Group memberships, as well as for looking up the members of a Dynamic Group itself. These caches are disabled by default but can be enabled by configuring the [`DYNAMIC_GROUPS_MEMBER_CACHE_TIMEOUT`](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/configuration/optional-settings/#dynamic_groups_member_cache_timeout) and [`CONTENT_TYPE_CACHE_TIMEOUT`](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/configuration/optional-settings/#content_type_cache_timeout) settings respectively. Apps (plugins) that make use of dynamic groups should review the [documentation for the APIs](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/models/extras/dynamicgroup/#membership-and-caching) to determine how and when to make use of the cache for improved performance.\r\n\r\n#### Installation Metrics ([#4047](https://github.com/nautobot/nautobot/issues/4047))\r\n\r\nA new setting, [`INSTALLATION_METRICS_ENABLED`](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/configuration/optional-settings/#installation_metrics_enabled), has been added to allow Nautobot to send anonymous installation metrics to the Nautobot maintainers. This setting is `True` by default but can be changed in `nautobot_config.py` or the `NAUTOBOT_INSTALLATION_METRICS_ENABLED` environment variable.\r\n\r\nIf the [`INSTALLATION_METRICS_ENABLED`](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/configuration/optional-settings/#installation_metrics_enabled) setting is `True`, running the [`post_upgrade`](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/administration/nautobot-server/#post_upgrade) or [`send_installation_metrics`](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/administration/nautobot-server/#send_installation_metrics) management commands will send a list of all installed [plugins](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/plugins/) and their versions, as well as the currently installed Nautobot and Python versions, to the Nautobot maintainers. A randomized UUID will be generated and saved in the [`DEPLOYMENT_ID`](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/configuration/optional-settings/#deployment_id) setting to anonymously and uniquely identify each installation. The plugin names will be one-way hashed with SHA256 to further anonymize the data sent. This enables tracking the installation metrics of publicly released plugins without disclosing the names of any private plugins.\r\n\r\nThe following is an example of the data that is sent:\r\n\r\n```py\r\n{\r\n    \"deployment_id\": \"1de3dacf-f046-4a98-8d4a-17419080db79\",\r\n    \"nautobot_version\": \"1.6.0b1\",\r\n    \"python_version\": \"3.10.12\",\r\n    \"installed_apps\": {\r\n        # \"example_plugin\" hashed by sha256\r\n        \"3ffee4622af3aad6f78257e3ae12da99ca21d71d099f67f4a2e19e464453bee7\": \"1.0.0\"\r\n    },\r\n    \"debug\": true\r\n}\r\n```\r\n\r\n#### `Platform.network_driver` and related fields ([4136](https://github.com/nautobot/nautobot/issues/4136))\r\n\r\nThe [Platform](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/models/dcim/platform/) model has been enhanced to include a `network_driver` database field and a `network_driver_mappings` derived property based on the [`netutils`](https://netutils.readthedocs.io/en/latest/) library. For example, if you set a Platform to have a `network_driver` value of `\"cisco_ios\"`, the `platform.network_driver_mappings` property will return a dictionary containing `ansible`, `hier_config`, `napalm`, `netmiko`, `ntc_templates`, `pyats`, `pyntc`, and `scrapli` keys corresponding to this entry. These properties can be referenced via the REST API and GraphQL to assist in developing and maintaining Apps, Jobs, or third-party code that interact with devices by using any of these libraries.\r\n\r\nIf the default derivations provided by `netutils` are not suitable for your purposes, you can extend or override them by configuring the [`NETWORK_DRIVERS`](https://docs.nautobot.com/projects/core/en/v1.6.0-rc.1/configuration/optional-settings/#network_drivers) system setting.\r\n\r\n#### Python 3.11 Support ([#3561](https://github.com/nautobot/nautobot/issues/3561))\r\n\r\nNautobot 1.6.0 formally adds support for installation and operation under Python 3.11.\r\n\r\n### Changed\r\n\r\n#### Additional HIDE_RESTRICTED_UI Effects for Unauthenticated Users ([#3646](https://github.com/nautobot/nautobot/issues/3646))\r\n\r\nWhen `HIDE_RESTRICTED_UI` is enabled, unauthenticated users are no longer able to view the OpenAPI (Swagger) UI, the GraphiQL UI, or any configured top/bottom banners. Additionally, the page footer on the login page will not display the Nautobot server hostname in this case.\r\n\r\n#### Increased `Device.asset_tag` maximum length ([#3693](https://github.com/nautobot/nautobot/issues/3693))\r\n\r\nThe maximum length of the `Device.asset_tag` field has been increased from 50 to 100 characters.\r\n\r\n### Removed\r\n\r\n#### Removed Python 3.7 Support ([#3561](https://github.com/nautobot/nautobot/issues/3561))\r\n\r\nAs Python 3.7 has reached end-of-life, Nautobot 1.6 and later do not support installation or operation under Python 3.7.\r\n\r\n<!-- towncrier release notes start -->\r\n## v1.6.0-rc.1 (2023-08-02)\r\n\r\n### Added\r\n\r\n- [#2825](https://github.com/nautobot/nautobot/issues/2825) - Added InterfaceRedundancyGroup and related views, forms, filtersets and table.\r\n- [#3269](https://github.com/nautobot/nautobot/issues/3269) - Added ability to cache `DynamicGroup` memberships in Redis to improve reverse lookup performance.\r\n- [#3269](https://github.com/nautobot/nautobot/issues/3269) - Added ability to cache `ContentType` lookups in Redis to improve performance.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Added support for Python 3.11.\r\n- [#4006](https://github.com/nautobot/nautobot/issues/4006) - Added Markdown custom field type.\r\n- [#4044](https://github.com/nautobot/nautobot/issues/4044) - Added ability to use `@action(detail=True)` decorator for registering additional non-standard `GET` views to a `NautobotUIViewSet`.\r\n- [#4047](https://github.com/nautobot/nautobot/issues/4047) - Added ability for Nautobot to send installation metrics.\r\n- [#4118](https://github.com/nautobot/nautobot/issues/4118) - Added documentation for troubleshooting integration test failures via VNC.\r\n- [#4136](https://github.com/nautobot/nautobot/issues/4136) - Added `network_driver` database field to the `Platform` model.\r\n- [#4136](https://github.com/nautobot/nautobot/issues/4136) - Added `network_driver_mappings` derived attribute on the `Platform` model.\r\n- [#4136](https://github.com/nautobot/nautobot/issues/4136) - Added `CONSTANCE_DATABASE_CACHE_BACKEND = 'default'` to `settings.py`, which should improve performance a bit.\r\n- [#4136](https://github.com/nautobot/nautobot/issues/4136) - Added support for `NETWORK_DRIVERS` config setting to override or extend default network driver mappings from `netutils` library.\r\n- [#4161](https://github.com/nautobot/nautobot/issues/4161) - Enhanced `NautobotUIViewSet` to allow Create and Update methods to have their own form classes.\r\n\r\n### Changed\r\n\r\n- [#3646](https://github.com/nautobot/nautobot/issues/3646) - Redirect unauthenticated users on all views to login page if `HIDE_RESTRICTED_UI` is True.\r\n- [#3646](https://github.com/nautobot/nautobot/issues/3646) - Only time is shown on the footer if a user is unauthenticated and `HIDE_RESTRICTED_UI` is True.\r\n- [#3693](https://github.com/nautobot/nautobot/issues/3693) - Increased Device model's `asset_tag` size limit to 100.\r\n\r\n### Dependencies\r\n\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `celery` dependency to `~5.3.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-auth-ldap` optional dependency to `~4.3.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-cacheops` dependency to `~6.2`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-celery-beat` dependency to `~2.5.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-constance` dependency to `~2.9.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-cors-headers` dependency to `~4.2.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-cryptography` dependency to `~1.1`. Note that this dependency will be removed in Nautobot 2.0.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-extensions` dependency to `~3.2.3`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-filter` dependency to `~23.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-health-check` dependency to `~3.17.0`\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-prometheus` dependency to `~2.3.1`.`\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-redis` dependency to `~5.3.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-storages` optional dependency to `~1.13.2`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-tables2` dependency to `~2.6.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-taggit` dependency to `~4.0.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-timezone-field` dependency to `~5.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `django-tree-queries` dependency to `~0.15.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `drf-spectacular` dependency to `~0.26.3`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `graphene-django` dependency to `~2.16.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `Jinja2` dependency to `~3.1.2`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `jsonschema` dependency to permit versions up to 4.18.x. Note that versions back to 4.7.0 are still permitted, so this dependency may not necessarily auto-upgrade when updating Nautobot.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `MarkupSafe` dependency to `~2.1.3`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `mysqlclient` optional dependency to `~2.2.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `napalm` optional dependency to `~4.1.0`. Note that as a result of this update, the following indirect package dependencies are no longer included by default when installing Nautobot with NAPALM: `ciscoconfparse`, `dnspython`, `loguru`, `passlib`, `tenacity`, `toml`, `win32-setctime`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `packaging` dependency to `~23.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `Pillow` dependency to `~10.0.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `prometheus-client` dependency to `~0.17.1`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `social-auth-core` optional dependency to `~4.4.2`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated `social-auth-app-django` dependency to `~5.2.0`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Updated various development-only dependencies to the latest available versions.\r\n\r\n### Fixed\r\n\r\n- [#4178](https://github.com/nautobot/nautobot/issues/4178) - Fixed JSON serialization of overloaded/non-default FilterForm fields on Dynamic Groups.\r\n\r\n### Removed\r\n\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Dropped support for Python 3.7. Python 3.8 is now the minimum version required by Nautobot.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Removed direct dependency on `importlib-metadata`.\r\n- [#3561](https://github.com/nautobot/nautobot/issues/3561) - Removed direct dependency on `pycryptodome` as Nautobot does not currently use this library and hasn't for some time.\r\n\r\n## Contributors\r\n- @MeganerdDev\r\n- @timizuoebideri1\r\n- @whitej6\r\n- @glennmatthews\r\n- @gsnider2195\r\n- @HanlinMiao\r\n- @itdependsnetworks\r\n- @bryanculver\r\n- @snaselj\r\n- @grelleum\r\n- @jfach\r\n\r\n## New Contributors\r\n* @MeganerdDev made their first contribution in https://github.com/nautobot/nautobot/pull/4007\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.24...v1.6.0-rc.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4198",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/114877053/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 1,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 11
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/113384403",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/113384403/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/113384403/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.24",
        "id": 113384403,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4GwhvT",
        "tag_name": "v1.5.24",
        "target_commitish": "main",
        "name": "v1.5.24 - 2023-07-24",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-07-24T20:29:17Z",
        "updated_at": "2023-07-24T21:34:35Z",
        "published_at": "2023-07-24T20:36:24Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/118426888",
                "id": 118426888,
                "node_id": "RA_kwDOFEucDc4HDw0I",
                "name": "nautobot-1.5.24-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89670899,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-07-24T21:34:33Z",
                "updated_at": "2023-07-24T21:34:35Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.24/nautobot-1.5.24-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/118426874",
                "id": 118426874,
                "node_id": "RA_kwDOFEucDc4HDwz6",
                "name": "nautobot-1.5.24.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88848342,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-07-24T21:34:30Z",
                "updated_at": "2023-07-24T21:34:32Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.24/nautobot-1.5.24.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.24",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.24",
        "body": "## v1.5.24 (2023-07-24)\r\n\r\n### Fixed\r\n\r\n- [#3312](https://github.com/nautobot/nautobot/issues/3312) - Fixed custom fields not auto-populating when creating objects through the ORM.\r\n- [#4127](https://github.com/nautobot/nautobot/issues/4127) - Fixed JavaScript error with 'Check Secret' button introduced in the previous patch release.\r\n\r\n### Security\r\n\r\n- [#4126](https://github.com/nautobot/nautobot/issues/4126) - Updated `cryptography` to `41.0.2` due to CVE-2023-38325. As this is not a direct dependency of Nautobot, it will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n## Contributors\r\n* @bryanculver \r\n* @Kircheneer \r\n* @glennmatthews \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.23...v1.5.24",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4159",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/111673197",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/111673197/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/111673197/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.23",
        "id": 111673197,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Gp_9t",
        "tag_name": "v1.5.23",
        "target_commitish": "develop",
        "name": "v1.5.23 - 2023-07-10",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-07-10T17:29:33Z",
        "updated_at": "2023-07-10T18:30:37Z",
        "published_at": "2023-07-10T17:31:29Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/116393311",
                "id": 116393311,
                "node_id": "RA_kwDOFEucDc4G8AVf",
                "name": "nautobot-1.5.23-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89669405,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-07-10T18:30:34Z",
                "updated_at": "2023-07-10T18:30:37Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.23/nautobot-1.5.23-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/116393310",
                "id": 116393310,
                "node_id": "RA_kwDOFEucDc4G8AVe",
                "name": "nautobot-1.5.23.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88847789,
                "digest": null,
                "download_count": 6,
                "created_at": "2023-07-10T18:30:30Z",
                "updated_at": "2023-07-10T18:30:33Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.23/nautobot-1.5.23.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.23",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.23",
        "body": "### Added\r\n\r\n- [#3235](https://github.com/nautobot/nautobot/issues/3235) - Added a warning notifying users when the requested `per_page` on a list page exceeds the `MAX_PAGE_SIZE` set.\r\n- [#3937](https://github.com/nautobot/nautobot/issues/3937) - Added a Nautobot 2.0 pre-migration management command aptly named `pre_migrate`.\r\n\r\n### Changed\r\n\r\n- [#1854](https://github.com/nautobot/nautobot/issues/1854) - When sorting tables for MPTT models, nesting/indentation of the model name display is disabled as it was misleading.\r\n- [#1854](https://github.com/nautobot/nautobot/issues/1854) - Disabled sorting on TreeNode model tables as TreeNode do not support sorting.\r\n- [#4049](https://github.com/nautobot/nautobot/issues/4049) - Restructured non-production dependencies in `pyproject.toml` to comply with latest Poetry expectations.\r\n- [#4050](https://github.com/nautobot/nautobot/issues/4050) - Added `develop-1.6` to list of target branches to run changelog step in pull request CI workflow.\r\n\r\n### Dependencies\r\n\r\n- [#4049](https://github.com/nautobot/nautobot/issues/4049) - Updated development-only dependencies for documentation rendering: `mkdocstrings` 0.22.0, `mkdocstrings-python` 1.1.2, and `griffe` 0.30.1.\r\n- [#4064](https://github.com/nautobot/nautobot/issues/4064) - Updated `Django` to `3.2.20` to address `CVE-2023-36053`.\r\n\r\n### Fixed\r\n\r\n- [#2374](https://github.com/nautobot/nautobot/issues/2374) - Revised documentation for recommended parameters to use when running `nautobot-server dumpdata`.\r\n- [#2374](https://github.com/nautobot/nautobot/issues/2374) - Revised documentation around preparing to run `nautobot-server loaddata`.\r\n- [#2374](https://github.com/nautobot/nautobot/issues/2374) - Added documentation to run `nautobot-server trace_paths` after `nautobot-server loaddata`.\r\n- [#2374](https://github.com/nautobot/nautobot/issues/2374) - Fixed a signal handler that could cause `nautobot-server loaddata` to abort if certain data is present.\r\n- [#3109](https://github.com/nautobot/nautobot/issues/3109) - Fixed missing trailing slash in NautobotUIViewSet urls.\r\n- [#3422](https://github.com/nautobot/nautobot/issues/3422) - Fixed postgres database healthcheck error message in development environment.\r\n- [#3524](https://github.com/nautobot/nautobot/issues/3524) - Fixed the unhandled exception brought on by updating Rack to a new site with a similar device sharing the same name and tenant by catching error in 'RackForm.clean`.\r\n- [#4021](https://github.com/nautobot/nautobot/issues/4021) - Fixed erroneous warning banner on list views when `MAX_PAGE_SIZE` is set to zero.\r\n- [#4048](https://github.com/nautobot/nautobot/issues/4048) - Fixed broken tab navigation in secrets.\r\n\r\n### Security\r\n\r\n- [#4064](https://github.com/nautobot/nautobot/issues/4064) - Updated `Django` to `3.2.20` to address `CVE-2023-36053`.\r\n\r\n## Contributors\r\n* @timizuoebideri1\r\n* @jathanism \r\n* @glennmatthews\r\n* @gsnider2195\r\n* @u1735067\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.22...v1.5.23",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4084",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/111496164",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/111496164/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/111496164/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-beta.2",
        "id": 111496164,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4GpUvk",
        "tag_name": "v2.0.0-beta.2",
        "target_commitish": "develop",
        "name": "v2.0.0-beta.2 - 2023-07-07",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-07-08T11:49:48Z",
        "updated_at": "2023-07-08T13:00:52Z",
        "published_at": "2023-07-08T11:52:29Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/116105464",
                "id": 116105464,
                "node_id": "RA_kwDOFEucDc4G66D4",
                "name": "nautobot-2.0.0b2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89311864,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-07-08T13:00:50Z",
                "updated_at": "2023-07-08T13:00:52Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-beta.2/nautobot-2.0.0b2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/116105454",
                "id": 116105454,
                "node_id": "RA_kwDOFEucDc4G66Du",
                "name": "nautobot-2.0.0b2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88392012,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-07-08T13:00:48Z",
                "updated_at": "2023-07-08T13:00:50Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-beta.2/nautobot-2.0.0b2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-beta.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-beta.2",
        "body": "_This is a retag with a fixed workflow file. Changes between previous tag and this: [diff](https://github.com/nautobot/nautobot/compare/dcf3cfea800ee8d0bd55543962dabad62fd3ac76..v2.0.0-beta.2)_\r\n### Added\r\n\r\n- [#3287](https://github.com/nautobot/nautobot/issues/3287) - Added `nautobot-server audit_dynamic_groups` management command for evaluating breaking filter changes to existing DynamicGroup instances.\r\n- [#3526](https://github.com/nautobot/nautobot/issues/3526) - Added detail view UI layout config.\r\n- [#3635](https://github.com/nautobot/nautobot/issues/3635) - Added `interfaces` and `vm_interfaces` fields to REST API representation of `IPAddress`.\r\n- [#3845](https://github.com/nautobot/nautobot/issues/3845) - Added data migration to ensure all existing service instances fit those uniqueness constraints.\r\n- [#3845](https://github.com/nautobot/nautobot/issues/3845) - Added CreateView for Service Model.\r\n- [#3846](https://github.com/nautobot/nautobot/issues/3846) - Added migration helper method to check if a model contains duplicate records based on its natural key fields.\r\n- [#3846](https://github.com/nautobot/nautobot/issues/3846) - Added migration to check whether all existing Virtual Chassis instances have unique names and to fail if they do not.\r\n- [#3885](https://github.com/nautobot/nautobot/issues/3885) - Added a `unique_together` constraint for `ObjectChange` records.\r\n- [#3900](https://github.com/nautobot/nautobot/issues/3900) - Added 'invoke migration-test' and corresponding CI step.\r\n- [#3935](https://github.com/nautobot/nautobot/issues/3935) - Added constraints to the `parent` field on `Prefix` based on the prefix's `type` and the parent's `type`.\r\n- [#3939](https://github.com/nautobot/nautobot/issues/3939) - Added a post-migration helper tool for de-duplicating `IPAddresses`.\r\n- [#3940](https://github.com/nautobot/nautobot/issues/3940) - Added Jobs migration docs.\r\n- [#4003](https://github.com/nautobot/nautobot/issues/4003) - Synced in code changes from `develop` branch up through version 1.5.22.\r\n- [#4004](https://github.com/nautobot/nautobot/issues/4004) - Added `--save` option to `nautobot-server validate_models` command.\r\n- [#4004](https://github.com/nautobot/nautobot/issues/4004) - Added `successful_post` callback function to `ObjectEditView`.\r\n- [#4004](https://github.com/nautobot/nautobot/issues/4004) - Added `parent` filter for `Prefix` objects.\r\n- [#4004](https://github.com/nautobot/nautobot/issues/4004) - Added warning messages when creating or editing a `Prefix` or `IPAddress` that does not follow prefix `type` guidance.\r\n\r\n### Changed\r\n\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Changed many FilterSet filters to filter on (name or ID) instead of (slug or ID) since the relevant model `slug` fields have been removed.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Changed FilterSet filters referring to `DeviceType` objects to filter on (model or ID) instead of (slug or ID).\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Changed `NaturalKeyOrPKMultipleChoiceFilter` default `to_field_name` from `slug` to `name`.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Replaced `NameSlugSearchFilterSet` with `NameSearchFilterSet`.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Changed default `ModelViewTestCase._get_url()` behavior to prefer `pk`-based URLs over `slug`-based URLs.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Changed `ObjectEditView.get_object()` and `ObjectDeleteView.get_object()` to prefer `pk`-based object lookups over `slug`-based lookups.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Revised development best-practices documentation around the inclusion of `slug` fields in models.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Changed Git repository provided \"implicit\" config context files to be based on `name` (or `model` in the case of DeviceType contexts) instead of `slug`.\r\n- [#2916](https://github.com/nautobot/nautobot/issues/2916) - Updated prefix utilization calculation.\r\n- [#3287](https://github.com/nautobot/nautobot/issues/3287) - Changed the `ip_version` filters in `PrefixFilterSet` and `IPAddressFilterSet` to `django_filters.NumberFilter`.\r\n- [#3424](https://github.com/nautobot/nautobot/issues/3424) - Added `IPAddress.type` field and moved DHCP/SLAAC status to types.\r\n- [#3424](https://github.com/nautobot/nautobot/issues/3424) - Unskipped `nautobot.ipam.tests.test_forms.IPAddressFormTest`\r\n- [#3634](https://github.com/nautobot/nautobot/issues/3634) - Restored `assigned_to_interface` as a `RelatedMembershipBooleanFilter` with name `has_interface_assignments` on `IPAddressFilterSet`.\r\n- [#3634](https://github.com/nautobot/nautobot/issues/3634) - Restored `present_in_vrf` and `present_in_vrf_id` filters on `IPAddressFilterSet`.\r\n- [#3635](https://github.com/nautobot/nautobot/issues/3635) - Re-enabled and updated some GraphQL tests relating to IPAddress objects in GraphQL.\r\n- [#3725](https://github.com/nautobot/nautobot/issues/3725) - Changed REST API nested hyperlink to a brief object representation consisting of its ID, URL, and object_type.\r\n- [#3748](https://github.com/nautobot/nautobot/issues/3748) - Updated API serializers to support Namespaces and unskip unit tests\r\n- [#3770](https://github.com/nautobot/nautobot/issues/3770) - Modified the text color to be gray-1 for the sidebarNav components.\r\n- [#3770](https://github.com/nautobot/nautobot/issues/3770) - In Layout.js, also made the 'Return to Legacy UI' link gray-1 for consistency.\r\n- [#3770](https://github.com/nautobot/nautobot/issues/3770) - Made the sidebar button links be orange when selected and on that page.\r\n- [#3778](https://github.com/nautobot/nautobot/issues/3778) - Changed the REST API depth for generating the OpenAPI schema from 1 to 0.\r\n- [#3778](https://github.com/nautobot/nautobot/issues/3778) - Set `ENUM_GENERATE_CHOICE_DESCRIPTION` to False to make OpenAPI schema for REST API filters less verbose.\r\n- [#3793](https://github.com/nautobot/nautobot/issues/3793) - Renamed Natural-key slug to Composite key throughout the code base, UI, REST API, and documentation.\r\n- [#3793](https://github.com/nautobot/nautobot/issues/3793) - Changed url separator character for Composite keys from `&` to `;`.\r\n- [#3845](https://github.com/nautobot/nautobot/issues/3845) - Changed `Service.name` and `Service.device` or `Service.name` and `Service.virtual_machine` to be globally unique and to serve as the natural key for this model.\r\n- [#3846](https://github.com/nautobot/nautobot/issues/3846) - Changed `VirtualChassis.name` to be globally unique and to serve as the natural key for this model.\r\n- [#3847](https://github.com/nautobot/nautobot/issues/3847) - Changed `ScheduledJob.name` to be globally unique and serve as the natural key for this model.\r\n- [#3847](https://github.com/nautobot/nautobot/issues/3847) - Increased `ScheduledJob.task` `max_length` to fix an off-by-one potential error.\r\n- [#3848](https://github.com/nautobot/nautobot/issues/3848) - Changed `ExportTemplate` uniqueness constraint (and natural key) to be simply `(content_type, name)`.\r\n- [#3849](https://github.com/nautobot/nautobot/issues/3849) - Changed `ConfigContext.name` to be globally unique and serve as the natural key for this model.\r\n- [#3849](https://github.com/nautobot/nautobot/issues/3849) - Changed `ConfigContextSchema.name` to be globally unique and serve as the natural key for this model.\r\n- [#3850](https://github.com/nautobot/nautobot/issues/3850) - Changed VLANGroup `name` to unique.\r\n- [#3851](https://github.com/nautobot/nautobot/issues/3851) - Changed `ObjectPermission.name` to be globally unique and serve as the natural key for this model.\r\n- [#3854](https://github.com/nautobot/nautobot/issues/3854) - Updated default index page for \"Networks\" context to Prefixes.\r\n- [#3883](https://github.com/nautobot/nautobot/issues/3883) - Updated nautobot-ui package in next.\r\n- [#3898](https://github.com/nautobot/nautobot/issues/3898) - Changed the `IPAddress` natural key definition (`IPAddress.natural_key_field_names`) to `[parent__namespace, host]`.\r\n- [#3936](https://github.com/nautobot/nautobot/issues/3936) - Restored navigation menu structure in the legacy UI.\r\n- [#3939](https://github.com/nautobot/nautobot/issues/3939) - Changed `Device.primary_ip4` and `primary_ip6` fields from `OneToOneField` to `ForeignKey`, relaxing the uniqueness constraint.\r\n- [#3939](https://github.com/nautobot/nautobot/issues/3939) - Changed `VirtualMachine.primary_ip4` and `primary_ip6` fields from `OneToOneField` to `ForeignKey`, relaxing the uniqueness constraint.\r\n- [#3940](https://github.com/nautobot/nautobot/issues/3940) - Updated `JOBS_ROOT` Jobs import code to check for conflicts with existing package names.\r\n- [#3953](https://github.com/nautobot/nautobot/issues/3953) - Removed static \"Home\" text.\r\n- [#3953](https://github.com/nautobot/nautobot/issues/3953) - Fixed padding/spacing of Home and Object Views to be consistent.\r\n- [#3973](https://github.com/nautobot/nautobot/issues/3973) - Changed natural-key for `Prefix` model to `[namespace, prefix]`.\r\n- [#3973](https://github.com/nautobot/nautobot/issues/3973) - Changed natural-key for `Service` model to `[name, virtual_machine, device]`.\r\n- [#3973](https://github.com/nautobot/nautobot/issues/3973) - Changed natural-key for `VLANGroup` model to simply `[name]`.\r\n- [#3973](https://github.com/nautobot/nautobot/issues/3973) - Changed natural-key for `VLAN` model to `[pk]` for now.\r\n- [#4004](https://github.com/nautobot/nautobot/issues/4004) - Changed `Prefix.type` validation with respect to parents and children from strictly-enforced to advisory-only for 2.0.\r\n- [#4004](https://github.com/nautobot/nautobot/issues/4004) - Changed `parent` filter on `IPAddress` to be exact-match by PK; the previously present filter is renamed to `prefix`.\r\n\r\n### Fixed\r\n\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Corrected leftover \"natural key slug\" reference in `object_bulk_create.html`.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Corrected incorrect logic in generic view test `test_list_objects_filtered` and `test_list_objects_unknown_filter_strict_filtering`.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Fixed leftover reference to `GraphQLQuery.slug` in `CustomGraphQLView`.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Fixed leftover references to `slug` in various detail view and edit view templates.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Fixed leftover references to `slug` in various IPAM table columns.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Fixed various leftover references to `slug` fields in the documentation.\r\n- [#3424](https://github.com/nautobot/nautobot/issues/3424) - Fixed a typo in `AvailableIPSerializer` for `ip_version` field representation.\r\n- [#3574](https://github.com/nautobot/nautobot/issues/3574) - Fixed Inability to select multiple entries on (Multiple) selection custom fields in filter.\r\n- [#3580](https://github.com/nautobot/nautobot/issues/3580) - Fixed a bug that prevented moving IP Addresses between Namespaces.\r\n- [#3778](https://github.com/nautobot/nautobot/issues/3778) - Fixed self-referential type loop in the OpenAPI schema that made Swagger UI unusable for some endpoints.\r\n- [#3782](https://github.com/nautobot/nautobot/issues/3782) - Fixed filename for CSV exports.\r\n- [#3847](https://github.com/nautobot/nautobot/issues/3847) - Corrected out-of-date information about `class_path` in the Jobs documentation.\r\n- [#3847](https://github.com/nautobot/nautobot/issues/3847) - Fixed incorrect filter form definitions for JobHookFilterForm, JobResultFilterForm, ScheduledJobFilterForm.\r\n- [#3858](https://github.com/nautobot/nautobot/issues/3858) - Fixed broken dynamic filter form in legacy view.\r\n- [#3859](https://github.com/nautobot/nautobot/issues/3859) - Added logic to protect against defining a `GitRepository.slug` that would conflict with existing Python modules.\r\n- [#3865](https://github.com/nautobot/nautobot/issues/3865) - Fixed errorneous algorithms used in CustomField and Relationship data migrations.\r\n- [#3867](https://github.com/nautobot/nautobot/issues/3867) - Fixed node_modules volume mount in docker-compose.\r\n- [#3876](https://github.com/nautobot/nautobot/issues/3876) - Fixed markdownlint command syntax.\r\n- [#3879](https://github.com/nautobot/nautobot/issues/3879) - Fixed permission check for navigation menu item for Namespaces.\r\n- [#3885](https://github.com/nautobot/nautobot/issues/3885) - Fixed missing `natural_key` for `ObjectChange` records.\r\n- [#3889](https://github.com/nautobot/nautobot/issues/3889) - Fixed a bug in `ScheduledJob` data migration where it is trying to delete a non-existent key from a dictionary.\r\n- [#3890](https://github.com/nautobot/nautobot/issues/3890) - Fixed an error that could happen during migrations if a Site and a Location both have the same `slug`.\r\n- [#3896](https://github.com/nautobot/nautobot/issues/3896) - Fixed a `KeyError` when accessing `ObjectChange` records for a `ConfigContext` via the REST API.\r\n- [#3898](https://github.com/nautobot/nautobot/issues/3898) - Fixed several errors that could occur when defining a model's `natural_key_field_names` to include related object lookups.\r\n- [#3902](https://github.com/nautobot/nautobot/issues/3902) - Fixed a GraphQL error when querying Interface `mac_address` when unset/null/empty values are present.\r\n- [#3916](https://github.com/nautobot/nautobot/issues/3916) - Fixed custom NautobotHyperlinkedRelatedField `to_representation` logic.\r\n- [#3930](https://github.com/nautobot/nautobot/issues/3930) - Fixed inconsistent job test behavior.\r\n- [#3933](https://github.com/nautobot/nautobot/issues/3933) - Fixed noisy output of unit tests.\r\n- [#3955](https://github.com/nautobot/nautobot/issues/3955) - Fixed an error in dcim.0030 migration when CircuitTerminations terminated to ProviderNetworks exist.\r\n- [#3955](https://github.com/nautobot/nautobot/issues/3955) - Fixed an error in ipam.0031 migration when an interface had multiple IPs in the same VRF.\r\n- [#3955](https://github.com/nautobot/nautobot/issues/3955) - Fixed failure of ipam.0031 migration to detect when an interface has a mix of VRF IPs and non-VRF IPs.\r\n- [#3980](https://github.com/nautobot/nautobot/issues/3980) - Fixed a regression in the display of Tag records in the UI.\r\n- [#3998](https://github.com/nautobot/nautobot/issues/3998) - Fixed rendering of breadcrumbs in the 2.0 UI.\r\n- [#4005](https://github.com/nautobot/nautobot/issues/4005) - Added logic to catch and report errors when registering a Job to the database.\r\n- [#4005](https://github.com/nautobot/nautobot/issues/4005) - Added logic to Job class `@classproperty` methods to enforce correct data types.\r\n- [#4005](https://github.com/nautobot/nautobot/issues/4005) - Fixed incorrect documentation about how to register Jobs from an app.\r\n- [#4071](https://github.com/nautobot/nautobot/issues/4071) - Fixed Docker tag syntax for pre-release workflow.\r\n\r\n### Removed\r\n\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `DeviceType.slug` field.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `Location.slug` field.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `LocationType.slug` field.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `Note.slug` field.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `ProviderNetwork.slug` field.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `RackGroup.slug` field.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `Tag.slug` field.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `VLANGroup.slug` field.\r\n- [#2662](https://github.com/nautobot/nautobot/issues/2662) - Removed `slug` FilterSet filters from models that no longer have slugs.\r\n- [#3424](https://github.com/nautobot/nautobot/issues/3424) - The built-in \"SLAAC\" `Status` object has been removed and replaced with an `IPAddress.type` of the same name.\r\n- [#3424](https://github.com/nautobot/nautobot/issues/3424) - The built-in \"DHCP\" `Status` object has been removed and replaced with an `IPAddress.type` of the same name.\r\n- [#3635](https://github.com/nautobot/nautobot/issues/3635) - Removed leftover `interface` and `vminterface` fields from `IPAddress` GraphQL representation.\r\n- [#3778](https://github.com/nautobot/nautobot/issues/3778) - Removed currently unused `app_full_width_fragment`, `detail-view-config`, `form-fields`, and `table-fields` REST API endpoints.\r\n- [#3847](https://github.com/nautobot/nautobot/issues/3847) - Removed `ScheduledJob.job_class` field as redundant.\r\n- [#3849](https://github.com/nautobot/nautobot/issues/3849) - Removed `ConfigContextSchema.slug` field.\r\n- [#3850](https://github.com/nautobot/nautobot/issues/3850) - Removed VLANGroup [`location`, `name`] uniqueness constraint.\r\n- [#3941](https://github.com/nautobot/nautobot/issues/3941) - Removed `device, rd, name` and `virtual_machine, rd, name` uniqueness constraints on `VRFDeviceAssignment`.\r\n- [#3941](https://github.com/nautobot/nautobot/issues/3941) - Removed `namespace, name` uniqueness constraint on `VRF`.\r\n- [#3941](https://github.com/nautobot/nautobot/issues/3941) - Removed some overly verbose messaging in IPAM migration utilities.\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @timizuoebideri1\r\n* @gsnider2195\r\n* @glennmatthews\r\n* @bryanculver\r\n* @jathanism\r\n* @DistantVoyager\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.0-beta.1...v2.0.0-beta.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/4079",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/111496164/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 1,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/109961185",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/109961185/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/109961185/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.22",
        "id": 109961185,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Gjd_h",
        "tag_name": "v1.5.22",
        "target_commitish": "develop",
        "name": "v1.5.22 - 2023-06-26",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-06-26T19:24:50Z",
        "updated_at": "2023-06-26T20:42:15Z",
        "published_at": "2023-06-26T19:27:24Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/114446348",
                "id": 114446348,
                "node_id": "RA_kwDOFEucDc4G0lAM",
                "name": "nautobot-1.5.22-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89655338,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-06-26T20:42:12Z",
                "updated_at": "2023-06-26T20:42:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.22/nautobot-1.5.22-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/114446345",
                "id": 114446345,
                "node_id": "RA_kwDOFEucDc4G0lAJ",
                "name": "nautobot-1.5.22.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88836430,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-06-26T20:42:09Z",
                "updated_at": "2023-06-26T20:42:12Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.22/nautobot-1.5.22.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.22",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.22",
        "body": "### Added\r\n\r\n- [#3534](https://github.com/nautobot/nautobot/issues/3534) - Added optional args and kwargs to `BaseModel.validated_save()` that pass through to the model's `save` method.\r\n- [#3946](https://github.com/nautobot/nautobot/issues/3946) - Added warning note to job scheduling documentation for the attributes that can prevent scheduling.\r\n\r\n### Fixed\r\n\r\n- [#3534](https://github.com/nautobot/nautobot/issues/3534) - Fixed confusing unit test failure message when trying to run a non-existent test.\r\n- [#3534](https://github.com/nautobot/nautobot/issues/3534) - Fixed unit tests sometimes clearing out the default database.\r\n- [#3658](https://github.com/nautobot/nautobot/issues/3658) - Fixed a typo in the success message when removing a child Device from a Device Bay.\r\n- [#3739](https://github.com/nautobot/nautobot/issues/3739) - Fixed change log entries not being created for some long running requests.\r\n- [#3891](https://github.com/nautobot/nautobot/issues/3891) - Fixed a bug preventing Job buttons from supporting the `FORCE_SCRIPT_NAME` setting due to hard-coded URLs.\r\n- [#3924](https://github.com/nautobot/nautobot/issues/3924) - Fixed a potential server hang at startup when a misconfigured GitRepository is present.\r\n- [#3948](https://github.com/nautobot/nautobot/issues/3948) - Fixed device name copy button adding an extra space/return.\r\n- [#3987](https://github.com/nautobot/nautobot/issues/3987) - Fixed issue where download SVG link did not actually download.\r\n\r\n### Security\r\n\r\n- [#3796](https://github.com/nautobot/nautobot/issues/3796) - Updated `requests` to 2.31.0 to address CVE-2023-32681. This is a development dependency and will not auto-update when upgrading Nautobot. Please be sure to update your local environment.\r\n- [#3843](https://github.com/nautobot/nautobot/issues/3843) - Updated `cryptography` to 41.0.0 due to a statically linked version of OpenSSL which contained vulnerability CVE-2023-2650. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n## Contributors\r\n* @jathanism \r\n* @gsnider2195\r\n* @glennmatthews\r\n* @u1735067\r\n* @whitej6\r\n* @itdependsnetworks\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.21...v1.5.22",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3996",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/108294013",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/108294013/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/108294013/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.21",
        "id": 108294013,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4GdG99",
        "tag_name": "v1.5.21",
        "target_commitish": "develop",
        "name": "v1.5.21 - 2023-06-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-06-12T22:57:23Z",
        "updated_at": "2023-06-13T01:20:49Z",
        "published_at": "2023-06-12T22:58:51Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/112472387",
                "id": 112472387,
                "node_id": "RA_kwDOFEucDc4GtDFD",
                "name": "nautobot-1.5.21-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89652177,
                "digest": null,
                "download_count": 15,
                "created_at": "2023-06-13T01:20:47Z",
                "updated_at": "2023-06-13T01:20:49Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.21/nautobot-1.5.21-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/112472379",
                "id": 112472379,
                "node_id": "RA_kwDOFEucDc4GtDE7",
                "name": "nautobot-1.5.21.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88832995,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-06-13T01:20:43Z",
                "updated_at": "2023-06-13T01:20:46Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.21/nautobot-1.5.21.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.21",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.21",
        "body": "### Added\r\n\r\n- [#3806](https://github.com/nautobot/nautobot/issues/3806) - Added instructions and examples for SAML SSO using Okta as the IdP.\r\n- [#3811](https://github.com/nautobot/nautobot/issues/3811) - Added a note that addresses UWSGI buffer size concerns with Azure SSO in `nautobot/docs/configuration/authentication/sso.md`.\r\n- [#3897](https://github.com/nautobot/nautobot/issues/3897) - Adds log message when a secrets group for a git repository doesn't yield a token.\r\n\r\n### Changed\r\n\r\n- [#3888](https://github.com/nautobot/nautobot/issues/3888) - Changed note for celery concurrency in the docs.\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @Kircheneer\r\n* @bile0026\r\n* @snaselj\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.20...v1.5.21",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/107578382",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/107578382/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/107578382/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-beta.1",
        "id": 107578382,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4GaYQO",
        "tag_name": "v2.0.0-beta.1",
        "target_commitish": "develop",
        "name": "v2.0.0-beta.1 - 2023-06-06",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-06-06T21:07:31Z",
        "updated_at": "2023-06-07T00:20:16Z",
        "published_at": "2023-06-06T21:16:23Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/111597536",
                "id": 111597536,
                "node_id": "RA_kwDOFEucDc4Gptfg",
                "name": "nautobot-2.0.0b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88096559,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-06-06T23:06:20Z",
                "updated_at": "2023-06-06T23:06:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-beta.1/nautobot-2.0.0b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/111597533",
                "id": 111597533,
                "node_id": "RA_kwDOFEucDc4Gptfd",
                "name": "nautobot-2.0.0b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 87194722,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-06-06T23:06:17Z",
                "updated_at": "2023-06-06T23:06:19Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-beta.1/nautobot-2.0.0b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-beta.1",
        "body": "### Added\r\n\r\n- [#851](https://github.com/nautobot/nautobot/issues/851) - Added list view with CSV import/export buttons for `CircuitTermination` objects.\r\n- [#1633](https://github.com/nautobot/nautobot/issues/1633) - Added `created` and `last_updated` fields on the `VMInterface` model. When migrating to this release, these fields will default to `None` for any pre-existing instances of this model.\r\n- [#2331](https://github.com/nautobot/nautobot/issues/2331) - Added job stdout/stderr redirection to database `JobLogEntry` records.\r\n- [#2331](https://github.com/nautobot/nautobot/issues/2331) - Added support to skip job logs from being written to the database.\r\n- [#2901](https://github.com/nautobot/nautobot/issues/2901) - Added `get_absolute_url` method on `BaseModel` which will attempt to resolve the detail view route for all subclassed models.\r\n- [#3192](https://github.com/nautobot/nautobot/issues/3192) - Added a data migration to migrate existing ScheduledJob instances to support new format.\r\n- [#3203](https://github.com/nautobot/nautobot/issues/3203) - Added a `nautobot-server build_ui` command for building the web UI\r\n- [#3237](https://github.com/nautobot/nautobot/issues/3237) - Added Node.JS to Docker final image, bundled `node_modules` to speed up rebuilds.\r\n- [#3615](https://github.com/nautobot/nautobot/issues/3615) - Added toggle buttons between Legacy UI and New UI.\r\n- [#3637](https://github.com/nautobot/nautobot/issues/3637) - Added `pre_delete` signal to nullify the device's `primary_ip` field/fields if its primary ips are removed from interface's `ip_addresses` m2m field.\r\n- [#3637](https://github.com/nautobot/nautobot/issues/3637) - Added `pre_save` signal to catch invalid operations in manual creations of `IPAddressToInterface`.\r\n- [#3637](https://github.com/nautobot/nautobot/issues/3637) - Added `unique_together` for through model `IPAddressToInterface`.\r\n- [#3651](https://github.com/nautobot/nautobot/issues/3651) - Added `home_url`, `config_url`, and `docs_url` keys to the `/api/plugins/installed-plugins/` REST API endpoint.\r\n- [#3679](https://github.com/nautobot/nautobot/issues/3679) - Added optional `api` argument to `BaseModel.get_absolute_url()`.\r\n- [#3702](https://github.com/nautobot/nautobot/issues/3702) - Added basic Redis caching for `TreeModel.display` to reduce redundant queries when listing such objects.\r\n- [#3708](https://github.com/nautobot/nautobot/issues/3708) - Added sorting support to the REST API via the `sort` query parameter.\r\n- [#3713](https://github.com/nautobot/nautobot/issues/3713) - Added `celery_kwargs` field to `JobResult` and `ScheduledJob` models.\r\n- [#3714](https://github.com/nautobot/nautobot/issues/3714) - Added generic test for GET/PUT round-trip in the REST API.\r\n- [#3714](https://github.com/nautobot/nautobot/issues/3714) - Added support for `{\"value\": \"x\"}` format when writing to ChoiceFields in the REST API, making round-trip data easier.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Added `NautobotCSVParser` class, providing the ability for the REST API to accept CSV as an input format.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Added ability to specify a `parent_bay` when creating a Device via the REST API.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Added `APIViewTestCases.CreateObjectViewTestCase.test_recreate_object_csv` generic test, testing the \"round-trip\" capability of each API endpoint's CSV export and import.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Added (temporary) `natural_key_field_names` to `IPAddress`, `Prefix`, `RackReservation`, `ScheduledJob`, and `Service` models.\r\n- [#3721](https://github.com/nautobot/nautobot/issues/3721) - Added App provided model view override.\r\n- [#3722](https://github.com/nautobot/nautobot/issues/3722) - Added `termination_type` filter to `CableFilterSet`.\r\n- [#3722](https://github.com/nautobot/nautobot/issues/3722) - Added `natural_key_slug` field to REST API serializers.\r\n- [#3736](https://github.com/nautobot/nautobot/issues/3736) - Added App provided custom route view.\r\n- [#3741](https://github.com/nautobot/nautobot/issues/3741) - Added natural-key-slug information to UI detail views.\r\n- [#3754](https://github.com/nautobot/nautobot/issues/3754) - Added loading widget to the left of the ObjectListTable Buttons after initial data load.\r\n- [#3759](https://github.com/nautobot/nautobot/issues/3759) - Implemented IPAM Namespace & parenting data migrations.\r\n- [#3767](https://github.com/nautobot/nautobot/issues/3767) - Added `detail-view-config` API endpoint to `ModelViewSetMixin`.\r\n- [#3804](https://github.com/nautobot/nautobot/issues/3804) - Added feature to redirect all add and edit views to legacy UI.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Added `bool` return value for `Nautobot.extras.datasources.git.ensure_git_repository()` to indicate whether the filesystem was changed.\r\n\r\n### Changed\r\n\r\n- [#1633](https://github.com/nautobot/nautobot/issues/1633) - The base class for all `tags` fields on `PrimaryModel` subclasses is now `nautobot.core.models.fields.TagsField` rather than `taggit.managers.TaggableManager`. Any apps using `PrimaryModel` as a base class will likely need to generate and run a schema migration to reflect this change.\r\n- [#2331](https://github.com/nautobot/nautobot/issues/2331) - Changed `JobLogEntry.log_level` choices from `default`, `info`, `success`, `warning`, `failure` to Python default logging levels `debug`, `info`, `warning`, `error` and `critical`.\r\n- [#2331](https://github.com/nautobot/nautobot/issues/2331) - Changed job logging from custom log methods on the `BaseJob` class to celery's `get_task_logger` logging implementation.\r\n- [#2569](https://github.com/nautobot/nautobot/issues/2569) - Revamped CSV export functionality to use REST API serializers for more self-consistency and reduced boilerplate.\r\n- [#2569](https://github.com/nautobot/nautobot/issues/2569) - Revised the natural key for `SecretsGroupAssociation` through-table model.\r\n- [#2569](https://github.com/nautobot/nautobot/issues/2569) - Changed behavior of `JobLogEntry.display` REST API field to match the model behavior.\r\n- [#2799](https://github.com/nautobot/nautobot/issues/2799) - Changed REST API versioning to default to latest instead of earliest when unspecified by the client.\r\n- [#3042](https://github.com/nautobot/nautobot/issues/3042) - Removed all `Nested*Serializer` classes in favor of a `depth`-based REST API design.\r\n- [#3042](https://github.com/nautobot/nautobot/issues/3042) - The `?brief=True` REST API parameter has been replaced by a new `?depth=<0-10>` API parameter, allowing greater control of the returned data.\r\n- [#3228](https://github.com/nautobot/nautobot/issues/3228) - Removed `run_job` Celery task and updated `BaseJob` to subclass Celery `Task`.\r\n- [#3449](https://github.com/nautobot/nautobot/issues/3449) - Renamed `Relationship` model attribute `slug` to `key`.\r\n- [#3449](https://github.com/nautobot/nautobot/issues/3449) - Renamed `Relationship` model attribute `name` to `label`.\r\n- [#3450](https://github.com/nautobot/nautobot/issues/3450) - Renamed `ComputedField` model attribute `slug` to `key`.\r\n- [#3465](https://github.com/nautobot/nautobot/issues/3465) - Renamed IPAddress `prefix_length` field to `mask_length`.\r\n- [#3465](https://github.com/nautobot/nautobot/issues/3465) - Made IPAddress `host` field non-modifiable.\r\n- [#3527](https://github.com/nautobot/nautobot/issues/3527) - Restructured navigation menus to context-centered design for 2.0.\r\n- [#3552](https://github.com/nautobot/nautobot/issues/3552) - Extracted data tables from upgrading-from-nautobot-v1.md into separate YAML files.\r\n- [#3586](https://github.com/nautobot/nautobot/issues/3586) - Changed REST API for Device and VirtualMachine to omit `config_context` by default and only include it when requested by using the `?include=config_context` query parameter.\r\n- [#3607](https://github.com/nautobot/nautobot/issues/3607) - Changed the default `lookup_field` for `NautobotUIViewSet` to `\"pk\"` instead of `\"slug\"`.\r\n- [#3650](https://github.com/nautobot/nautobot/issues/3650) - Updated ui 2.0 jsconfig.json to exclude `node_modules` and `build` directories.\r\n- [#3663](https://github.com/nautobot/nautobot/issues/3663) - Modified `delete_button` and `edit_button` template tags to lookup `pk` and `slug` without the need to specify the lookup key.\r\n- [#3679](https://github.com/nautobot/nautobot/issues/3679) - Changed `BaseModelSerializer` to inherit from `HyperlinkedModelSerializer` instead of `ModelSerializer`. This changed the REST API representation of related objects (at depth 0) from UUIDs to API hyperlinks to improve discoverability and usability of the API.\r\n- [#3691](https://github.com/nautobot/nautobot/issues/3691) - Implemented `Meta.list_display_fields` for all serializers.\r\n- [#3692](https://github.com/nautobot/nautobot/issues/3692) - Updated `JobResult` manager `store_result` method to censor sensitive variables.\r\n- [#3702](https://github.com/nautobot/nautobot/issues/3702) - Changed nested serialization to never include tags, computed fields, relationships, and other M2M fields.\r\n- [#3713](https://github.com/nautobot/nautobot/issues/3713) - Changed `Job.read_only` field to an informational field set by the job author and removed the ability for administrators to override this field. This field no longer changes the behavior of Nautobot core.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Reworked CSV import to be based on the REST API implementation instead of custom forms and views.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Changed the parameters and behavior of `CSVDataField` and `CSVFileField` in support of the new CSV import framework.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Changed the `user` parameter on the RackReservation REST API to optional; if omitted, the requesting user will now be automatically selected as the owner of any created reservations.\r\n- [#3742](https://github.com/nautobot/nautobot/issues/3742) - Centered the LoadingWidget component in UI.\r\n- [#3742](https://github.com/nautobot/nautobot/issues/3742) - Lightened the color of the LoadingWidget text to gray-3.\r\n- [#3742](https://github.com/nautobot/nautobot/issues/3742) - Lightened the color of the skeleton component when loading tables.\r\n- [#3744](https://github.com/nautobot/nautobot/issues/3744) - A batch of improvements to state handling in the UI to solve loading bugs.\r\n- [#3767](https://github.com/nautobot/nautobot/issues/3767) - Enhanced error handling for fetcher in React UI `ObjectRetrieveView`.\r\n- [#3785](https://github.com/nautobot/nautobot/issues/3785) - Deprecated `StatusModel` mixin in favor of directly including a `StatusField` as needed.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Changed Job `class_path` property from `<source>/<module>/<ClassName>` to simply `<module>.<ClassName>`.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Changed GitRepository slugs to use underscores rather than dashes so they can be used as Python module names.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Changed Job `module_name` for Git-derived Jobs to `<git_repository_slug>.jobs.<module>`.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - System-provided Jobs are now enabled by default for running.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Changed return signature for `Nautobot.core.utils.git.GitRepo.checkout()` to include whether the filesystem was changed.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Changed `job` filter on JobButton, JobHook, JobResult, and ScheduledJob to be name-based rather than slug-based.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Changed `Job.runnable` property to not consider whether the `job_class` is set, as a performance optimization.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Moved test Jobs from `nautobot/extras/tests/example_jobs/test_*.py` to `nautobot/extras/test_jobs/*.py` to avoid unnecessary loading by the `unittest` runner.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Changed client-side slug construction (legacy UI) to use underscores rather than dashes.\r\n\r\n### Dependencies\r\n\r\n- [#1721](https://github.com/nautobot/nautobot/issues/1721) - Removed dependency on `django-cacheops`.\r\n- [#3672](https://github.com/nautobot/nautobot/issues/3672) - Changed `napalm` dependency to 4.x release in order to allow Netmiko 4.x to install. Dependency resolution resulted in removing the following packages: `ciscoconfparse`, `deprecat`, `dnspython`, `loguru`, `toml`, `win32-setctime`.\r\n\r\n### Fixed\r\n\r\n- [#3378](https://github.com/nautobot/nautobot/issues/3378) - Re-enabled skipped tests.\r\n- [#3437](https://github.com/nautobot/nautobot/issues/3437) - Fixed the possibility of inadvertently applying the same `Tag` to the same object multiple times by adding appropriate uniqueness constraints on the `TaggedItem` through table.\r\n- [#3518](https://github.com/nautobot/nautobot/issues/3518) - Fixed an error seen when running the `extras.0061_collect_roles_from_related_apps_roles` migration.\r\n- [#3545](https://github.com/nautobot/nautobot/issues/3545) - Fixed a bug in Job edit view template where slug was missing, preventing creation from happening.\r\n- [#3591](https://github.com/nautobot/nautobot/issues/3591) - Fixed a few errors in the v2.0 migration documentation.\r\n- [#3592](https://github.com/nautobot/nautobot/issues/3592) - Fixed heuristic for duplicate calls to `populate_model_features_registry` causing skipped updates.\r\n- [#3618](https://github.com/nautobot/nautobot/issues/3618) - Fix corrupted `package-lock.json` which was causing test failures.\r\n- [#3675](https://github.com/nautobot/nautobot/issues/3675) - Fixed job edit form silently failing.\r\n- [#3687](https://github.com/nautobot/nautobot/issues/3687) - Fixed a bug in `Prefix.reparent_ips()` that was too greedy in reparenting IP addresses when child prexies were deeply nested (such as /31)\r\n- [#3702](https://github.com/nautobot/nautobot/issues/3702) - Added some missing `select_related` on `DeviceViewSet` and `PrefixViewSet` to improve performance.\r\n- [#3714](https://github.com/nautobot/nautobot/issues/3714) - Fixed inability to set null via the REST API on `Interface.mac_address` and `VMInterface.mac_address`.\r\n- [#3714](https://github.com/nautobot/nautobot/issues/3714) - Fixed inability to set null via the REST API on `DeviceType.front_image` and `DeviceType.rear_image`.\r\n- [#3714](https://github.com/nautobot/nautobot/issues/3714) - Fixed `password` being incorrectly marked as a required field when editing a User via the REST API.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Fixed inability to set the `failover_strategy` field as unspecified/blank when creating/updating `DeviceRedundancyGroup` via the REST API.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Fixed incorrect interim natural key definition for `Device` and `VRF` models.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Fixed the possibility of setting values for nonexistent custom fields via the REST API.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Fixed incorrect password-handling logic when creating/updating a `User` via the REST API.\r\n- [#3716](https://github.com/nautobot/nautobot/issues/3716) - Fixed an error when attempting to edit a user via the Nautobot admin UI.\r\n- [#3722](https://github.com/nautobot/nautobot/issues/3722) - Fixed incorrect filter forms on console-connections, power-connections, and interface-connections list views.\r\n- [#3729](https://github.com/nautobot/nautobot/issues/3729) - Fixed a bug that references a non-existent Relationship model attribute in Relationship migration file.\r\n- [#3731](https://github.com/nautobot/nautobot/issues/3731) - Fixed `debugpy` workflow not working with the removal of `manage.py`.\r\n- [#3737](https://github.com/nautobot/nautobot/issues/3737) - Fixed broken `--cache_test_fixtures` when running tests.\r\n- [#3740](https://github.com/nautobot/nautobot/issues/3740) - Fixed container builds failed resulting from #3731.\r\n- [#3741](https://github.com/nautobot/nautobot/issues/3741) - Fixed missing time-zone information on various Job-related tests in `nautobot.extras.tests.test_views`.\r\n- [#3741](https://github.com/nautobot/nautobot/issues/3741) - Fixed various cable-termination API serializers incorrectly reporting the `cable` field as writable.\r\n- [#3768](https://github.com/nautobot/nautobot/issues/3768) - Fixed new UI homepage breaks if recent object-changes reference objects that no longer exist.\r\n- [#3785](https://github.com/nautobot/nautobot/issues/3785) - Fixed undesirable nullability of `status` fields to correctly match their intended usage.\r\n- [#3786](https://github.com/nautobot/nautobot/issues/3786) - Fixed default descriptions of REST API actions in the OpenAPI schema to be more accurate.\r\n- [#3792](https://github.com/nautobot/nautobot/issues/3792) - Fixed logging output not being suppressed during unit and integration tests.\r\n- [#3828](https://github.com/nautobot/nautobot/issues/3828) - Fixed a bug caused by [#3637](https://github.com/nautobot/nautobot/issues/3637) that prevents devices with primary_ip from being deleted.\r\n- [#3829](https://github.com/nautobot/nautobot/issues/3829) - Fixed build failure caused by registered App missing ui/index.js.\r\n- [#3833](https://github.com/nautobot/nautobot/issues/3833) - Fixed build failure caused by registered App missing urls.py file or a urlpatterns.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Removed leftover/non-functional `Source` tab from job_approval_request.html.\r\n- [#3864](https://github.com/nautobot/nautobot/issues/3864) - Fixed cases where Device.role was null, incongruent with the enforcement in the API and UI.\r\n\r\n### Removed\r\n\r\n- [#1633](https://github.com/nautobot/nautobot/issues/1633) - Removed monkey-patching of `taggit.managers.TaggableManager`.\r\n- [#1633](https://github.com/nautobot/nautobot/issues/1633) - Removed `nautobot.extras.utils.is_taggable`; use `nautobot.core.models.utils.is_taggable` instead.\r\n- [#1633](https://github.com/nautobot/nautobot/issues/1633) - Removed backward-compatibility with `taggit` 1.x Python API; instead of `object.tags.set(tag1, tag2, tag3)` you must now do `object.tags.set([tag1, tag2, tag3])`.\r\n- [#1721](https://github.com/nautobot/nautobot/issues/1721) - Removed dependency on and usage of `django-cacheops`.\r\n- [#2331](https://github.com/nautobot/nautobot/issues/2331) - Removed custom `BaseJob` logging methods `_log`, `log`, `log_debug`, `log_success`, `log_info`, `log_warning` and `log_failure`.\r\n- [#2331](https://github.com/nautobot/nautobot/issues/2331) - Removed `active_test` and `failed` properties from `BaseJob` class.\r\n- [#2569](https://github.com/nautobot/nautobot/issues/2569) - Removed `csv_headers` and `to_csv()` from all models as they are no longer needed.\r\n- [#2885](https://github.com/nautobot/nautobot/issues/2885) - Removed `changelog_url` from `ObjectView`'s context.\r\n- [#3228](https://github.com/nautobot/nautobot/issues/3228) - Removed atomic transaction from Jobs.\r\n- [#3228](https://github.com/nautobot/nautobot/issues/3228) - Removed support for `test_*` and `post_run` methods in Jobs.\r\n- [#3465](https://github.com/nautobot/nautobot/issues/3465) - Removed `broadcast` field from IPAddress.\r\n- [#3527](https://github.com/nautobot/nautobot/issues/3527) - Removed `NavMenuButton` and its subclasses as they are not a part of the 2.0 UI.\r\n- [#3527](https://github.com/nautobot/nautobot/issues/3527) - Removed `NavMenuTab.weight` property as the menu tabs/contexts are not reorderable in 2.0.\r\n- [#3623](https://github.com/nautobot/nautobot/issues/3623) - Removed remaining erroneous slug references from tenant.html and tenantgroup.html.\r\n- [#3651](https://github.com/nautobot/nautobot/issues/3651) - Removed misspelled `verison` key from `/api/plugins/installed-plugins` REST API endpoint.\r\n- [#3679](https://github.com/nautobot/nautobot/issues/3679) - Removed explicit `url` field declarations from most REST API serializers as they are now derived automatically.\r\n- [#3713](https://github.com/nautobot/nautobot/issues/3713) - Removed `Job.read_only_override`, `JobResult.obj_type`, `JobResult.periodic_task_name`, and `JobResult.task_id` fields.\r\n- [#3713](https://github.com/nautobot/nautobot/issues/3713) - Removed `NautobotFakeRequest` and associated methods, variables and logic.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Removed `LocatableModelCSVFormMixin`, `RoleModelCSVFormMixin`, `RoleRequiredRoleModelCSVFormMixin`, and `StatusModelCSVFormMixin` classes, as they are no longer needed after reworking how CSV import is handled.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Removed `bulk_create_form_class` field from `NautobotUIViewSet` as it's no longer used or needed.\r\n- [#3715](https://github.com/nautobot/nautobot/issues/3715) - Removed `model_form` and `widget_attrs` fields from `BulkImportView` as they are no longer used or needed.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Removed `Job.slug`, `Job.source`, and `Job.git_repository` database fields.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Removed `source` and `slug` filters for Jobs.\r\n- [#3840](https://github.com/nautobot/nautobot/issues/3840) - Removed `get_jobs()`, `get_job_classpaths()`, `jobs_in_directory()` functions.\r\n\r\n## Contributors\r\n* @DistantVoyager\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @HanlinMiao\r\n* @jathanism\r\n* @timizuoebideri1\r\n* @bryanculver\r\n\r\n## New Contributors\r\n* @DistantVoyager made their first contribution in https://github.com/nautobot/nautobot/pull/3743\r\n\r\n**Container Publish Re-Run ([diff](https://github.com/nautobot/nautobot/compare/v2.0.0-beta.1...d1cfd3746ebfa7a712da47f7302db81fcbc47a1f))**: https://github.com/nautobot/nautobot/actions/runs/5194587410\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.0-alpha.3...v2.0.0-beta.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3866",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/105404740",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/105404740/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/105404740/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.20",
        "id": 105404740,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4GSFlE",
        "tag_name": "v1.5.20",
        "target_commitish": "develop",
        "name": "v1.5.20 - 2023-05-30",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-05-30T17:08:33Z",
        "updated_at": "2023-06-01T09:56:57Z",
        "published_at": "2023-05-30T17:13:50Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/110524119",
                "id": 110524119,
                "node_id": "RA_kwDOFEucDc4GlnbX",
                "name": "nautobot-1.5.20-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89647360,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-05-30T22:15:41Z",
                "updated_at": "2023-05-30T22:15:44Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.20/nautobot-1.5.20-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/110524098",
                "id": 110524098,
                "node_id": "RA_kwDOFEucDc4GlnbC",
                "name": "nautobot-1.5.20.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88828602,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-05-30T22:15:37Z",
                "updated_at": "2023-05-30T22:15:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.20/nautobot-1.5.20.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.20",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.20",
        "body": "### Added\r\n\r\n- [#3400](https://github.com/nautobot/nautobot/issues/3400) - Added documentation on how to enable Jobs and Job hooks.\r\n- [#3766](https://github.com/nautobot/nautobot/issues/3766) - Add troubleshooting steps for Azure AD SSO Group Sync example.\r\n\r\n### Changed\r\n\r\n- [#3680](https://github.com/nautobot/nautobot/issues/3680) - Changed device component instantiation to be a separate method.\r\n\r\n### Fixed\r\n\r\n- [#3503](https://github.com/nautobot/nautobot/issues/3503) - Fixed FieldError when sorting VMs list by primary IP.\r\n- [#3616](https://github.com/nautobot/nautobot/issues/3616) - Fixed `location` filter on `CircuitFilterSet` and `ProviderFilterSet`.\r\n- [#3787](https://github.com/nautobot/nautobot/issues/3787) - Fixed MySQL `Out of sort memory` error on `JobListView` and `JobResultListView`.\r\n- [#3789](https://github.com/nautobot/nautobot/issues/3789) - Fixed Exception `unsupported operand type(s) for -: 'list' and 'list'` for MultiObjectVar with missing UUID.\r\n\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @timizuoebideri1\r\n* @jeffkala\r\n* @grelleum\r\n* @Kircheneer\r\n* @jvanderaa\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.19...v1.5.20",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3825",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/103223765",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/103223765/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/103223765/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.19",
        "id": 103223765,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4GJxHV",
        "tag_name": "v1.5.19",
        "target_commitish": "develop",
        "name": "v1.5.19 - 2023-05-16",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-05-16T20:30:36Z",
        "updated_at": "2023-05-16T21:54:18Z",
        "published_at": "2023-05-16T20:33:36Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/108471089",
                "id": 108471089,
                "node_id": "RA_kwDOFEucDc4GdyMx",
                "name": "nautobot-1.5.19-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89642268,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-05-16T21:54:13Z",
                "updated_at": "2023-05-16T21:54:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.19/nautobot-1.5.19-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/108471097",
                "id": 108471097,
                "node_id": "RA_kwDOFEucDc4GdyM5",
                "name": "nautobot-1.5.19.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88820425,
                "digest": null,
                "download_count": 11,
                "created_at": "2023-05-16T21:54:15Z",
                "updated_at": "2023-05-16T21:54:18Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.19/nautobot-1.5.19.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.19",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.19",
        "body": "### Added\r\n\r\n- [#3695](https://github.com/nautobot/nautobot/issues/3695) - Added note to documentation about using `{{ obj.cf }}` to access custom fields in jinja templates.\r\n\r\n### Changed\r\n\r\n- [#3617](https://github.com/nautobot/nautobot/issues/3617) - SearchForms on Nautobot homepage now redirect users to login page when they are not authenticated.\r\n- [#3663](https://github.com/nautobot/nautobot/issues/3663) - Modified `delete_button` and `edit_button` template tags to lookup `pk` and `slug` without the need to specify the lookup key.\r\n- [#3703](https://github.com/nautobot/nautobot/issues/3703) - Added generic views documentation to navigation panel.\r\n\r\n### Dependencies\r\n\r\n- [#3549](https://github.com/nautobot/nautobot/issues/3549) - Updated `django` to `~3.2.19` to address `CVE-2023-31047`.\r\n- [#3549](https://github.com/nautobot/nautobot/issues/3549) - Updated `mkdocs` to `~1.4.3`.\r\n- [#3549](https://github.com/nautobot/nautobot/issues/3549) - Updated `psycopg2-binary` to `~2.9.6`.\r\n- [#3698](https://github.com/nautobot/nautobot/issues/3698) - Updated `social-auth-core` to `~4.4.0` to permit addressing `CVE-2022-2309`.\r\n- [#3753](https://github.com/nautobot/nautobot/issues/3753) - Updated indirect dev dependency `pymdown-extensions` to `10.0` to address `CVE-2023-32309`.\r\n\r\n### Fixed\r\n\r\n- [#3704](https://github.com/nautobot/nautobot/issues/3704) - Fixed GitRepository fetching on Home Page when getting repo-based Job's name.\r\n- [#3726](https://github.com/nautobot/nautobot/issues/3726) - Fixed a `KeyError` when filtering Cables in the UI by `termination_a_type` or `termination_b_type`.\r\n\r\n### Security\r\n\r\n- [#3698](https://github.com/nautobot/nautobot/issues/3698) - Updated `lxml` to `~4.9.2` to address `CVE-2022-2309`. This is not a direct dependency so it will not auto-update when upgrading Nautobot. Please be sure to update your local environment.\r\n- [#3724](https://github.com/nautobot/nautobot/issues/3724) - Updated `django` to `~3.2.19` due to `CVE-2023-31047`.\r\n- [#3753](https://github.com/nautobot/nautobot/issues/3753) - Updated indirect dev dependency `pymdown-extensions` to `10.0` to address `CVE-2023-32309`. This should not be installed in a production environment by default but should be updated if you have installed it.\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @joewesch\r\n* @itdependsnetworks\r\n* @bryanculver\r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.18...v1.5.19",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3758",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/101498187",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/101498187/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/101498187/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.18",
        "id": 101498187,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4GDL1L",
        "tag_name": "v1.5.18",
        "target_commitish": "develop",
        "name": "v1.5.18 - 2023-05-01",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-05-01T20:31:15Z",
        "updated_at": "2023-05-01T21:53:28Z",
        "published_at": "2023-05-01T20:34:11Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/106219887",
                "id": 106219887,
                "node_id": "RA_kwDOFEucDc4GVMlv",
                "name": "nautobot-1.5.18-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89635361,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-05-01T21:53:23Z",
                "updated_at": "2023-05-01T21:53:25Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.18/nautobot-1.5.18-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/106219890",
                "id": 106219890,
                "node_id": "RA_kwDOFEucDc4GVMly",
                "name": "nautobot-1.5.18.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88812625,
                "digest": null,
                "download_count": 12,
                "created_at": "2023-05-01T21:53:26Z",
                "updated_at": "2023-05-01T21:53:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.18/nautobot-1.5.18.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.18",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.18",
        "body": "### Added\r\n\r\n- [#1526](https://github.com/nautobot/nautobot/issues/1526) - Added UI button and REST API to validate a `Secret` can be retrieved.\r\n- [#3669](https://github.com/nautobot/nautobot/issues/3669) - Added indexes to `JobResult` across common fields: `created`, `completed`, and `status`.\r\n\r\n### Changed\r\n\r\n- [#2800](https://github.com/nautobot/nautobot/issues/2800) - Add model documentation to navigation panel.\r\n- [#3440](https://github.com/nautobot/nautobot/issues/3440) - Added warning admonitions for Job Hooks and Job Approvals documentation that setting `Meta.approval_required` is ignored on `JobHookReceiver` classes.\r\n- [#3602](https://github.com/nautobot/nautobot/issues/3602) - Updated `.gitignore` to not track new UI non-source files.\r\n- [#3621](https://github.com/nautobot/nautobot/issues/3621) - Changed development Docker compose commands to not leave temporary containers behind.\r\n- [#3633](https://github.com/nautobot/nautobot/issues/3633) - Changed Custom Validator applicator to not require DB query.\r\n\r\n### Fixed\r\n\r\n- [#3083](https://github.com/nautobot/nautobot/issues/3083) - Fixed an issue where unit tests might fail erroneously when dealing with objects whose name/display contains characters like `\"<>`.\r\n- [#3533](https://github.com/nautobot/nautobot/issues/3533) - Fixed an issue where sending a PATCH to `/api/dcim/interfaces/(uuid)/` might inadvertently reset the interface's status to `Active`.\r\n- [#3533](https://github.com/nautobot/nautobot/issues/3533) - Fixed an issue where sending a PATCH to `/api/users/tokens/(uuid)/` might inadvertently change the token's value.\r\n- [#3612](https://github.com/nautobot/nautobot/issues/3612) - Fixed a 500 error when filtering by `content_type` in Dynamic Groups list view.\r\n- [#3660](https://github.com/nautobot/nautobot/issues/3660) - Fixed an issue where grouped job buttons would always be disabled due to a template rendering issue.\r\n\r\n### Security\r\n\r\n- [#3642](https://github.com/nautobot/nautobot/issues/3642) - Updated `sqlparse` to `0.4.4` due to CVE-2023-30608. This is not a direct dependency so it will not auto-update when upgrading Nautobot. Please be sure to update your local environment.\r\n\r\n\r\n## What's Changed\r\n* @glennmatthews\r\n* @jathanism\r\n* @jifox\r\n* @bryanculver\r\n* @jfach\r\n* @itdependsnetworks\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.17...v1.5.18",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3673",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/99813020",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/99813020/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/99813020/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.17",
        "id": 99813020,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4F8wac",
        "tag_name": "v1.5.17",
        "target_commitish": "develop",
        "name": "v1.5.17 - 2023-04-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-04-17T20:09:41Z",
        "updated_at": "2023-04-17T21:11:02Z",
        "published_at": "2023-04-17T20:11:44Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/104124340",
                "id": 104124340,
                "node_id": "RA_kwDOFEucDc4GNM-0",
                "name": "nautobot-1.5.17-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89365049,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-04-17T21:10:57Z",
                "updated_at": "2023-04-17T21:10:59Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.17/nautobot-1.5.17-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/104124342",
                "id": 104124342,
                "node_id": "RA_kwDOFEucDc4GNM-2",
                "name": "nautobot-1.5.17.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88556893,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-04-17T21:11:00Z",
                "updated_at": "2023-04-17T21:11:02Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.17/nautobot-1.5.17.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.17",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.17",
        "body": "### Added\r\n\r\n- [#3484](https://github.com/nautobot/nautobot/issues/3484) - Added job profiling option to job execution when in DEBUG mode.\r\n- [#3544](https://github.com/nautobot/nautobot/issues/3544) - Added the ability to change the `CACHES[\"default\"][\"BACKEND\"]` via an environment variable `NAUTOBOT_CACHES_BACKEND`\r\n\r\n### Changed\r\n\r\n- [#3544](https://github.com/nautobot/nautobot/issues/3544) - The default database backend if `METRICS_ENABLED` is `True` is now \"django_prometheus.db.backends.postgresql\"\r\n- [#3544](https://github.com/nautobot/nautobot/issues/3544) - The default CACHES backend if `METRICS_ENABLED` is `True` is now \"django_prometheus.cache.backends.redis.RedisCache\"\r\n- [#3548](https://github.com/nautobot/nautobot/issues/3548) - Changed Git Repository docs to include admonition about Github Apps.\r\n- [#3595](https://github.com/nautobot/nautobot/issues/3595) - Update the warning provided when a bad reverse entry is not found in serializer to point to correct import location.\r\n\r\n### Dependencies\r\n\r\n- [#3525](https://github.com/nautobot/nautobot/issues/3525) - Added explicit dependency on `packaging` that had been inadvertently omitted.\r\n\r\n### Fixed\r\n\r\n- [#3116](https://github.com/nautobot/nautobot/issues/3116) - Fixed JSON comparison of `data_scheme` keys in `assertInstanceEqual` tests.\r\n- [#3573](https://github.com/nautobot/nautobot/issues/3573) - Fixed advanced filtering on interface UI list page not working.\r\n- [#3577](https://github.com/nautobot/nautobot/issues/3577) - Fixed `NautobotUIViewSet` documentation example for case sensitive typos.\r\n- [#3577](https://github.com/nautobot/nautobot/issues/3577) - Fixed `NautobotUIViewSet` documentation example not including imports.\r\n- [#3598](https://github.com/nautobot/nautobot/issues/3598) - Fixed default sanitizer patterns to account for strings beginning with `i` or `is`.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @timizuoebideri1\r\n* @nniehoff\r\n* @PavelSafronov\r\n* @itdependsnetworks\r\n* @gsnider2195\r\n* @jeffkala\r\n* @Kircheneer\r\n\r\n## New Contributors\r\n* @PavelSafronov made their first contribution in https://github.com/nautobot/nautobot/pull/3568\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.16...v1.5.17",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3600",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/99391178",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/99391178/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/99391178/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-alpha.3",
        "id": 99391178,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4F7JbK",
        "tag_name": "v2.0.0-alpha.3",
        "target_commitish": "develop",
        "name": "v2.0.0-alpha.3 -2023-04-13",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-04-13T12:43:53Z",
        "updated_at": "2023-04-13T13:44:20Z",
        "published_at": "2023-04-13T12:57:01Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/103520153",
                "id": 103520153,
                "node_id": "RA_kwDOFEucDc4GK5eZ",
                "name": "nautobot-2.0.0a3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 87437716,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-04-13T13:44:15Z",
                "updated_at": "2023-04-13T13:44:17Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-alpha.3/nautobot-2.0.0a3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/103520163",
                "id": 103520163,
                "node_id": "RA_kwDOFEucDc4GK5ej",
                "name": "nautobot-2.0.0a3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 86590833,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-04-13T13:44:17Z",
                "updated_at": "2023-04-13T13:44:20Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-alpha.3/nautobot-2.0.0a3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-alpha.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-alpha.3",
        "body": "# 2.0 IPAM Overhaul Alpha Release\r\n\r\n## Overview\r\n\r\nThis alpha introduces the Namespace concept to IPAM and makes many robust improvements to relationships between models:\r\n\r\n- Namespace introduced to provide a uniqueness boundary for IPAddresses and Prefixes\r\n- Prefixes have concrete relationships to their parents instead of derived\r\n- IPAddresses have concrete relationships to their parent prefixes\r\n- VRF is no longer used as a uniqueness constraint for IPAddresses and Prefixes\r\n\r\n**\u26a0\ufe0f NOTE:** Because we are validating these new data models the data migrations have not been implemented. You will have to re-input your data largely via the UI to prove if these models will work for you. We will implement the migrations in an upcoming beta if the relationships between Namespace and other IPAM objects prove to be the right design. As such, do not expect to migrate future releases on these installs. The data migration steps won't be re-performed.\r\n\r\n**For more detailed information, please view: https://github.com/nautobot/nautobot/issues/1032, https://github.com/nautobot/nautobot/issues/3337#issuecomment-1450855876**\r\n\r\n\u2757 This has been recreated to fix a bug with the prerelease workflow.\r\n\r\n---\r\n\r\n### Changelog\r\n* Add missing plugin links to docs page menu by @matt852 in https://github.com/nautobot/nautobot/pull/3447\r\n* Removed  `block sidebar` from aggregate_list.html and objectchange_list.html. by @HanlinMiao in https://github.com/nautobot/nautobot/pull/3463\r\n* Implement `Prefix.parent` concrete foreign key to self. by @jathanism in https://github.com/nautobot/nautobot/pull/3452\r\n* IPAddress lookup fix by @glennmatthews in https://github.com/nautobot/nautobot/pull/3487\r\n* Fix Docker Prerelease Tag Syntax by @bryanculver in https://github.com/nautobot/nautobot/pull/3475\r\n* Fixes to Prefix views and functionality by @glennmatthews in https://github.com/nautobot/nautobot/pull/3496\r\n* Update README.md by @lampwins in https://github.com/nautobot/nautobot/pull/3515\r\n* Release 2.0.0-alpha.2 by @jathanism in https://github.com/nautobot/nautobot/pull/3511\r\n* Introduced `IPAddress.parent` concrete foreign key to `Parent` by @jathanism in https://github.com/nautobot/nautobot/pull/3489\r\n* VRF namespace enhancements by @glennmatthews in https://github.com/nautobot/nautobot/pull/3505\r\n* Merge develop into next for docker tag fix by @gsnider2195 in https://github.com/nautobot/nautobot/pull/3522\r\n* Bump redis from 4.3.4 to 4.5.4 by @dependabot in https://github.com/nautobot/nautobot/pull/3499\r\n* Remove slug from models by @timizuoebideri1 in https://github.com/nautobot/nautobot/pull/3439\r\n* Release/1.5.15 by @bryanculver in https://github.com/nautobot/nautobot/pull/3537\r\n* Main to develop post v1.5.15 by @bryanculver in https://github.com/nautobot/nautobot/pull/3539\r\n* Add note to ViewSet Attributes. by @scetron in https://github.com/nautobot/nautobot/pull/3478\r\n* Remove nat_outside by @timizuoebideri1 in https://github.com/nautobot/nautobot/pull/3523\r\n* Adds doc page for Circuit Maintenance by @jvanderaa in https://github.com/nautobot/nautobot/pull/3558\r\n* Drop python 3.7 support for 2.0 by @glennmatthews in https://github.com/nautobot/nautobot/pull/3554\r\n* Update README.md by @lampwins in https://github.com/nautobot/nautobot/pull/3564\r\n* Use plugins `next-2.0` branch for `next` upstream tests by @snaselj in https://github.com/nautobot/nautobot/pull/3502\r\n* Batch of things to improve working with relationships. by @bryanculver in https://github.com/nautobot/nautobot/pull/3550\r\n* Fix #3525 - add missing dependency by @glennmatthews in https://github.com/nautobot/nautobot/pull/3563\r\n* Release/1.5.16 by @bryanculver in https://github.com/nautobot/nautobot/pull/3565\r\n* Main to develop post v1.5.16 by @bryanculver in https://github.com/nautobot/nautobot/pull/3569\r\n* Defense against #3525 - add explicit dependency to develop as well by @glennmatthews in https://github.com/nautobot/nautobot/pull/3566\r\n* Develop to next post 1.5.16 by @bryanculver in https://github.com/nautobot/nautobot/pull/3570\r\n* [REVIEW ONLY] `next` into Namespaces Prototype by @bryanculver in https://github.com/nautobot/nautobot/pull/3572\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.0-alpha.2...v2.0.0-alpha.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3578",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/98837109",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/98837109/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/98837109/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.16",
        "id": 98837109,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4F5CJ1",
        "tag_name": "v1.5.16",
        "target_commitish": "develop",
        "name": "v1.5.16 - 2023-04-10",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-04-10T20:12:55Z",
        "updated_at": "2023-04-10T21:30:09Z",
        "published_at": "2023-04-10T20:15:17Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/103083010",
                "id": 103083010,
                "node_id": "RA_kwDOFEucDc4GJOwC",
                "name": "nautobot-1.5.16-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89356408,
                "digest": null,
                "download_count": 10,
                "created_at": "2023-04-10T21:29:59Z",
                "updated_at": "2023-04-10T21:30:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.16/nautobot-1.5.16-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/103083013",
                "id": 103083013,
                "node_id": "RA_kwDOFEucDc4GJOwF",
                "name": "nautobot-1.5.16.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88549669,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-04-10T21:30:05Z",
                "updated_at": "2023-04-10T21:30:09Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.16/nautobot-1.5.16.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.16",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.16",
        "body": "### Added\r\n\r\n- [#3557](https://github.com/nautobot/nautobot/issues/3557) - Added docs page for Circuit Maintenance.\r\n\r\n### Fixed\r\n\r\n- [#2944](https://github.com/nautobot/nautobot/issues/2944) - Fixed slow performance of relationships on ObjectListView.\r\n- [#3345](https://github.com/nautobot/nautobot/issues/3345) - Fixed missing Relationships in DynamicFilterForm.\r\n- [#3477](https://github.com/nautobot/nautobot/issues/3477) - Added a note under heading Setting ViewSet Attributes to mention the caveat of not using `slug` or `pk`.\r\n- [#3502](https://github.com/nautobot/nautobot/issues/3502) - Updated upstream workflow to support testing apps `next-2.0` branches against `next`.\r\n- [#3550](https://github.com/nautobot/nautobot/issues/3550) - Fixed display name of filtered relationships on ObjectListView.\r\n\r\n\r\n## Contributors\r\n* @scetron\r\n* @jvanderaa\r\n* @snaselj\r\n* @bryanculver\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.15...v1.5.16",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3567",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/98088566",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/98088566/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/98088566/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.15",
        "id": 98088566,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4F2LZ2",
        "tag_name": "v1.5.15",
        "target_commitish": "develop",
        "name": "v1.5.15 - 2023-04-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-04-04T19:48:08Z",
        "updated_at": "2023-04-04T20:47:16Z",
        "published_at": "2023-04-04T19:50:19Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/102321703",
                "id": 102321703,
                "node_id": "RA_kwDOFEucDc4GGU4n",
                "name": "nautobot-1.5.15-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89348867,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-04-04T20:47:10Z",
                "updated_at": "2023-04-04T20:47:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.15/nautobot-1.5.15-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/102321708",
                "id": 102321708,
                "node_id": "RA_kwDOFEucDc4GGU4s",
                "name": "nautobot-1.5.15.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88541563,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-04-04T20:47:14Z",
                "updated_at": "2023-04-04T20:47:16Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.15/nautobot-1.5.15.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.15",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.15",
        "body": "### Added\r\n\r\n- [#3446](https://github.com/nautobot/nautobot/issues/3446) - Added documentation links for Device Onboarding and LifeCycle Management plugins to docs.nautobot.com menu.\r\n\r\n### Changed\r\n\r\n- [#3384](https://github.com/nautobot/nautobot/issues/3384) - Moved extra information stored previously in `block sidebar` to `block header_extra` in page templates (`aggregate_list.html` and `objectchange_list.html`).\r\n- [#3384](https://github.com/nautobot/nautobot/issues/3384) - Documented `block header_extra` in `docs/development/templates.md`.\r\n\r\n### Dependencies\r\n\r\n- [#3499](https://github.com/nautobot/nautobot/issues/3499) - Updated `redis` to 4.5.4. This is not a direct dependency of Nautobot so it will not auto-update when upgrading. Please update your local environment as needed.\r\n\r\n### Fixed\r\n\r\n- [#3206](https://github.com/nautobot/nautobot/issues/3206) - Fixed Docker tag syntax on prerelease workflow.\r\n- [#3480](https://github.com/nautobot/nautobot/issues/3480) - Fixed an error that could be seen in certain cases with IPAddress records.\r\n\r\n### Removed\r\n\r\n- [#3384](https://github.com/nautobot/nautobot/issues/3384) - Removed all remaining instances of `block sidebar` from page templates (`aggregate_list.html` and `objectchange_list.html`).\r\n- [#3384](https://github.com/nautobot/nautobot/issues/3384) - Removed documentation about `block sidebar` from `docs/development/templates.md`.\r\n\r\n### Security\r\n\r\n- [#3499](https://github.com/nautobot/nautobot/issues/3499) - Updated `redis` to 4.5.4 due to CVE-2023-28858 and CVE-2023-28859. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n\r\n## Contributors\r\n* @matt852\r\n* @HanlinMiao\r\n* @glennmatthews\r\n* @bryanculver\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.14...v1.5.15",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3538",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/97383786",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/97383786/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/97383786/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-alpha.2",
        "id": 97383786,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FzfVq",
        "tag_name": "v2.0.0-alpha.2",
        "target_commitish": "develop",
        "name": "v2.0.0-alpha.2 - 2023-03-29",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-03-29T20:16:24Z",
        "updated_at": "2023-03-30T16:22:53Z",
        "published_at": "2023-03-29T20:37:47Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/101506503",
                "id": 101506503,
                "node_id": "RA_kwDOFEucDc4GDN3H",
                "name": "nautobot-2.0.0a2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 87616813,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-03-29T21:37:12Z",
                "updated_at": "2023-03-29T21:37:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-alpha.2/nautobot-2.0.0a2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/101506508",
                "id": 101506508,
                "node_id": "RA_kwDOFEucDc4GDN3M",
                "name": "nautobot-2.0.0a2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 86772048,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-03-29T21:37:16Z",
                "updated_at": "2023-03-29T21:37:19Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-alpha.2/nautobot-2.0.0a2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-alpha.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-alpha.2",
        "body": "# Nautobot v2.0\r\n\r\nThis document describes all new features and changes in Nautobot 2.0.\r\n\r\nIf you are a user migrating from Nautobot v1.X, please refer to the [\"Upgrading from Nautobot v1.X\"](../installation/upgrading-from-nautobot-v1.md) documentation.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Generic Role Model ([#1063](https://github.com/nautobot/nautobot/issues/1063))\r\n\r\nDeviceRole, RackRole, IPAM Role, and IPAddressRoleChoices have all been merged into a single generic Role model. A role can now be created and associated to one or more of the content-types that previously implemented role as a field. These model content-types include dcim.device, dcim.rack, virtualization.virtualmachine, ipam.ipaddress, ipam.prefix, and ipam.vlan.\r\n\r\n#### Added Site Fields to Location ([#2954](https://github.com/nautobot/nautobot/issues/2954))\r\n\r\nAdded Site Model Fields to Location. Location Model now has `asn`, `comments`, `contact_email`, `contact_name`, `contact_phone`, `facility`, `latitude`, `longitude`, `physical_address`, `shipping_address` and `time_zone` fields.\r\n\r\n#### Natural Key Support Across Nautobot Models ([#2900](https://github.com/nautobot/nautobot/issues/2900))\r\n\r\nNautobot's `BaseModel` base class and related classes now implement automatic support for Django [natural keys](https://docs.djangoproject.com/en/3.2/topics/serialization/#natural-keys) for lookup and referencing, as well as supporting a `natural_key_slug` concept similar to that introduced by `django-natural-keys`. (Nautobot does not depend on `django-natural-keys` but its implementation is heavily inspired by that project.) For example:\r\n\r\n```python\r\n>>> DeviceType.objects.first().natural_key()\r\n['MegaCorp', 'Model 9000']\r\n\r\n>>> DeviceType.objects.get_by_natural_key(\"MegaCorp\", \"Model 9000\")\r\n<DeviceType: Model 9000>\r\n\r\n>>> DeviceType.objects.first().natural_key_slug\r\n'MegaCorp&Model+9000'\r\n\r\n>>> DeviceType.objects.get(natural_key_slug=\"MegaCorp&Model+9000\")\r\n<DeviceType: Model 9000>\r\n```\r\n\r\nDevelopers can refer to the [documentation on natural keys](../development/natural-keys.md) for details on how to support and use this feature.\r\n\r\n### Changed\r\n\r\n#### Aggregate model Migrated to Prefix ([#3302](https://github.com/nautobot/nautobot/issues/3302))\r\n\r\nThe `ipam.Aggregate` model has been removed and all existing aggregates will be migrated to `ipam.Prefix` with `type` set to \"Container\". The `Aggregate.date_added` field will be migrated to `Prefix.date_allocated` and changed from a Date field to a DateTime field with the time set to `00:00`. `Aggregate.tenant`, `Aggregate.rir` and `Aggregate.description` will be migrated over to the same fields on `Prefix`.\r\n\r\nSee the [upgrade guide](../installation/upgrading-from-nautobot-v1.md#aggregate-migrated-to-prefix) for more details on the data migration.\r\n\r\n#### Collapse Region and Site Models into Location ([#2517](https://github.com/nautobot/nautobot/issues/2517))\r\n\r\n##### Initial Data Migration\r\n\r\nThe `Site` and `Region` models have been removed in v2.0 and have been replaced with `Location` of specific `LocationType`. As a result, the existing `Site` and `Region` data will be migrated to corresponding `LocationType` and `Location` objects. Here is what to expect:\r\n\r\n1. If you do not have any `Site` and `Region` instances in your existing database, running this data migration will do nothing.\r\n2. If you only have `Region` instances in your existing database, a `LocationType` named **Region** will be created and for each legacy `Region` instance, a corresponding `Location` instance with the same attributes (`id`, `name`, `description`, etc.) and hierarchy will be created.\r\n3. If you only have `Site` instances in your existing database:\r\n\r\n    - A `LocationType` named **Site** will be created and every preexisting root level `LocationType` in your database will be updated to have the new **Site** `LocationType` as their parent.\r\n\r\n    - For each legacy `Site` instance, a corresponding `Location` instance with the same attributes (`id`, `name`, `description`, `tenant`, `facility`, `asn`, `latitude`, `longitude`, etc.) will be created, and any preexisting `Locations` in your database will be updated to have the appropriate \"site\" `Locations` as their parents.\r\n\r\n    - Model instances that had a `site` field (`CircuitTermination`, `Device`, `PowerPanel`, `RackGroup`, `Rack`, `Prefix`, `VLANGroup`, `VLAN`, `Cluster`) assigned and *did not* have a `location` attribute assigned will be updated to have their `location` point to the new `Location` corresponding to that `Site`. All other attributes on these models will remain unchanged.\r\n\r\n    - Model instances that were previously associated to the `ContentType` for `Site` (`ComputedField`, `CustomField`, `CustomLink`, `ExportTemplate`, `ImageAttachment`, `JobHook`, `Note`, `Relationship`, `Status`, `Tag` and `Webhook`) will have their `ContentType` replaced with `Location`. All other attributes on these models will remain unchanged.\r\n\r\n    For Example:\r\n\r\n    - We will start with a `Site` instance with name **AMS01** as the base `Site` for two top-level `Location` objects with names **root-01** and **root-02** respectively.\r\n\r\n    - During the data migration, a `LocationType` named **Site** will be created, and a `Location` of **Site** `LocationType` named **AMS01** with all the information (`asn`, `latitude`, etc.) from the base `Site` will be created.\r\n\r\n    - The `Location` objects named **root-01** and **root-02** will have this **AMS01** `Location` set as their `parent`.\r\n\r\n4. If you have both `Site` and `Region` instances in your existing database:\r\n\r\n    - A `LocationType` named **Region** will be created.\r\n\r\n    - For each legacy `Region` instance, a corresponding `Location` instance with the same attributes (`id`, `name`, `description`, etc.) will be created.\r\n\r\n    - A `LocationType` named **Site** will be created with the new `LocationType` named **Region** set as its `parent`.\r\n\r\n    - Every pre-existing root-level `LocationType` in your database will be updated to have the new `LocationType` named **Site** as its `parent`.\r\n\r\n    - For each legacy `Site` instance, a corresponding \"site\" `Location` instance with the same attributes (`id`, `name`, `description`, `tenant`, `facility`, `asn`, `latitude`, `longitude`, etc.) will be created with its parent set to the corresponding \"region\" `Location` if any.\r\n\r\n        - If you have `Site` instances in your database without a `Region` assigned to them, one additional `Location` named **Global Region** of `LocationType` **Region** will be created and each `Location` of `LocationType` **Site** created from the legacy region-less `Site` instances will have the **Global Region** `Location` as their parent.\r\n\r\n    - Model instances that had a `site` attribute (`CircuitTermination`, `Device`, `Location`, `PowerPanel`, `Rack`, `RackGroup`, `Prefix`, `VLANGroup`, `VLAN`, `Cluster`) assigned and *did not* have a `location` attribute assigned will be updated to have their `location` point to the new `Location` of `LocationType` **Site**. All other attributes on these models will remain unchanged.\r\n\r\n    - Model instances that were previously associated to the `ContentType` for `Site`  or `Region` (`ComputedField`, `CustomField`, `CustomLink`, `ExportTemplate`, `ImageAttachment`, `JobHook`, `Note`, `Relationship`, `Status`, `Tag` and `Webhook`) will have their `ContentType` replaced with `Location`. All other attributes on these models will remain unchanged.\r\n\r\n    For Example:\r\n\r\n    - There are two `Site` instances and one `Region` instance in your existing database. The `Region` with name **America** has one child `Site` instance named **AMS01**. And the other `Site` instance named **AUS01** is not associated with any `Region` (`region` attribute is set to `None`).\r\n\r\n    - The `Site` **AMS01** is the base `Site` for two top-level `Location` objects with names **root-01** and **root-02** respectively.\r\n\r\n    - During the data migration, a `LocationType` named **Region** and a `Location` of this `LocationType` named **America** with all the same information will be created.\r\n\r\n    - The `LocationType` named **Site** with its `parent` set as the new `LocationType` **Region** and a `Location` of `LocationType` named **AMS01** with all the same information (`asn`, `latitude`, etc.) will be created. The `Location` **AMS01** will have `Location` **America** as its `parent` and each - `Location` **root-01** and **root-02** will have `Location` **AMS01** as its `parent`.\r\n\r\n    - Finally, the `Site` instance **AUS01**, since it does not have a `Region` instance associated with it, its corresponding `Location` **AUS01** will have a new `Location` named **Global Region** of `LocationType` **Region** as its `parent`.\r\n\r\n    - In addition, legacy `Site` instance with name **AMS01** also has three `Device` instances associated with it named **ams01-edge-01**, **ams01-edge-02**,  and **ams01-edge-03**.\r\n\r\n    - However, **ams01-edge-01** only has its `site` attribute set as `Site` **AMS01** whereas **ams01-edge-02** and **ams01-edge-03** have both its `site` and `location` attributes set `Site` **AMS01** and `Location` **root-01** respectively.\r\n\r\n    - During the data migration, **ams01-edge-01**'s `location` attribute will point to the new `Location` of `LocationType` **Site** with name **AMS01** while devices **ams01-edge-02** and **ams01-edge-03** will remain unchanged.\r\n\r\n##### Remove Site and Region Related Fields from Models\r\n\r\n`Region` and `Site` relationships are being removed from these models: `CircuitTermination`, `Device`, `Location`, `Rack`, `RackGroup`, `PowerFeed`, `PowerPanel`, `ConfigContext`, `Prefix`, `VLAN`, `VLANGroup`, `Cluster`.\r\n\r\nThe `ContentType` for `Region` and `Site` are being replaced with `Location` on these models: `ComputedField`, `CustomField`, `CustomLink`, `ExportTemplate`, `ImageAttachment`, `JobHook`, `Note`, `Relationship`, `Status`, `Tag` and `Webhook`.\r\n\r\nThe `region` and `site` fields are being removed in the `filter` data of `DynamicGroup` objects. The previously associated values are being added to the existing `location` field and its associated list of filter values or to a new `location` key with an empty list if one does not exist.\r\n\r\nCheck out the API and UI endpoints changes incurred by the changes stated above in the [\"Upgrading from Nautobot v1.X\"](../installation/upgrading-from-nautobot-v1.md) guide.\r\n\r\nCheck out the [Region and Site Related Data Model Migration Guide](../installation/region-and-site-data-migration-guide.md#region-and-site-related-data-model-migration-guide-for-existing-nautobot-app-installations) to learn how to migrate your Nautobot Apps and data models from `Site` and `Region` to `Location`.\r\n\r\n#### Collapsed `nautobot.utilities` into `nautobot.core` ([#2721](https://github.com/nautobot/nautobot/issues/2721))\r\n\r\n`nautobot.utilities` no longer exists as a separate Python module or Django app. Its functionality has been collapsed into the `nautobot.core` app. See details at [Python Code Location Changes](../installation/upgrading-from-nautobot-v1.md#python-code-location-changes).\r\n\r\n#### Renamed Database Foreign Keys and Related Names ([#2520](https://github.com/nautobot/nautobot/issues/2520))\r\n\r\nSome Foreign Key fields have been renamed to follow a more self-consistent pattern across the Nautobot app. This change is aimed to offer more clarity and predictability when it comes to related object database operations:\r\n\r\nFor example in v1.x to create a circuit object with `type` \"circuit-type-1\", you would do:\r\n\r\n```python\r\nCircuit.objects.create(\r\n    cid=\"Circuit 1\",\r\n    provider=\"provider-1\",\r\n    type=\"circuit-type-1\",\r\n    status=\"active\",\r\n)\r\n```\r\n\r\nand to filter `Circuit` objects of `type` \"circuit-type-2\", you would do:\r\n\r\n```python\r\nCircuit.objects.filter(type=\"circuit-type-2\")\r\n```\r\n\r\nNow in v2.x, we have renamed the Foreign Key field `type` on Circuit Model to `circuit_type`, because this naming convention made it clearer that this Foregin Key field is pointing to the model `CircuitType`. The same operations would look like:\r\n\r\n```python\r\nCircuit.objects.create(\r\n    cid=\"Circuit 1\",\r\n    provider=\"provider-1\",\r\n    circuit_type=\"circuit-type-1\",\r\n    status=\"active\",\r\n)\r\n```\r\n\r\n```python\r\nCircuit.objects.filter(circuit_type=\"circuit-type-2\")\r\n```\r\n\r\nCheck out more Foreign Key related changes documented in the table [Renamed Database Fields](../installation/upgrading-from-nautobot-v1.md#renamed-database-fields)\r\n\r\nIn addition to the changes made to Foreign Key fields' own names, some of their `related_names` are also renamed:\r\n\r\nFor example in v1.x, to query `Circuit` objects with `CircuitTermination` instances located in sites [\"ams01\", \"ams02\", \"atl03\"], you would do:\r\n\r\n```python\r\nCircuit.objects.filter(terminations__site__in=[\"ams01\", \"ams02\", \"atl03\"])\r\n```\r\n\r\nNow in v2.x, we have renamed the Foreign Key field `circuit`'s `related_name` attribute `terminations` on `CircuitTermination` Model to `circuit_terminations`, the same operations would look like:\r\n\r\n```python\r\nCircuit.objects.filter(circuit_terminations__site__in=[\"ams01\", \"ams02\", \"atl03\"])\r\n```\r\n\r\nCheck out more `related-name` changes documented in the table [Renamed Database Fields](../installation/upgrading-from-nautobot-v1.md#renamed-database-fields)\r\n\r\n#### Renamed Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\nSome filter fields have been renamed to reflect their functionalities better.\r\n\r\nFor example in v1.X, to filter `FrontPorts` that has a cable attached in the UI or make changes to them via Rest API, you would use the `cabled` filter:\r\n\r\n`/dcim/front-ports/?cabled=True`\r\n\r\nNow in v2.x, you would instead use the `has_cable` filter which has a more user-friendly name:\r\n\r\n`/dcim/front-ports/?has_cable=True`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](../installation/upgrading-from-nautobot-v1.md#renamed-filter-fields)\r\n\r\n#### Enhanced Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\nMany filter fields have been enhanced to enable filtering by both slugs and UUID primary keys.\r\n\r\nFor example in v1.X, to filter `Regions` with a specific `parent` value in the UI or make changes to them via Rest API, you are only able to input slugs as the filter values:\r\n\r\n`/dcim/regions/?parent=<slug>`\r\n\r\nNow in v2.x, you are able to filter those `Regions` by slugs or UUID primary keys:\r\n\r\n`/dcim/regions/?parent=<slug>` or `/dcim/regions/?parent=<uuid>`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](../installation/upgrading-from-nautobot-v1.md#enhanced-filter-fields)\r\n\r\n#### Corrected Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\nThere were also instances where a foreign-key related field (e.g. `console_ports`) was incorrectly mapped to a boolean membership filter (e.g. `has_console_ports`), making it impossible to filter based on specific values of the foreign key:\r\n\r\nFor example in v1.x:\r\n\r\n`/dcim/devices/?console_ports=True` and `/dcim/devices/?has_console_ports=True` are functionally the same and this behavior is **incorrect**.\r\n\r\nThis has been addressed in v2.x as follows:\r\n\r\n`console_ports` and similar filters are taking foreign key UUIDs as input values and can be used in this format: `/dcim/devices/?console_ports=<uuid>` whereas `has_console_ports` and similar filters remain the same.\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](../installation/upgrading-from-nautobot-v1.md#corrected-filter-fields)\r\n\r\n#### Generic Role Model ([#1063](https://github.com/nautobot/nautobot/issues/1063))\r\n\r\nThe `DeviceRole`, `RackRole`, `ipam.Role`, and `IPAddressRoleChoices` have all been removed and replaced with a `extras.Role` model, This means that all references to any of the replaced models and choices now points to this generic role model.\r\n\r\nIn addition, the `role` field of the `IPAddress` model has also been changed from a choice field to a foreign key related field to the `extras.Role` model.\r\n\r\n#### Prefix `is_pool` field and \"Container\" status replaced by new field `Prefix.type` ([#1362](https://github.com/nautobot/nautobot/issues/1362))\r\n\r\nA new `type` field was added to `Prefix` to replace the `is_pool` boolean field and the \"Container\" status. The `type` field can be set to \"Network\", \"Pool\" or \"Container\", with \"Network\" being the default.\r\n\r\nExisting prefixes with a status of \"Container\" will be migrated to the \"Container\" type. Existing prefixes with `is_pool` set will be migrated to the \"Pool\" type. Prefixes with both `is_pool` set and a status of \"Container\" will be migrated to the \"Pool\" type.\r\n\r\nThe \"Container\" status will be removed and all prefixes will be migrated to the \"Active\" status if it exists. If the \"Active\" status was deleted, prefixes will be migrated to the first available prefix status in the database that is not \"Container\".\r\n\r\n### Removed\r\n\r\n#### Removed Redundant Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\nAs a part of breaking changes made in v2.X, shadowed filter/filterset fields are being removed throughout Nautobot.\r\n\r\nIn Nautobot 1.x, for some of the foreign-key related fields:\r\n    - The field was shadowed for the purpose of replacing the PK filter with a lookup-based on a more human-readable value (typically `slug`, if available).\r\n    - A PK-based filter was available as well, generally with a name suffixed by `_id`\r\n\r\nNow these two filter fields will be replaced by a single filter field that can support both slugs and UUID primary keys as inputs; As a result, PK-based filters suffixed by `_id` will no longer be supported in v2.0.\r\n\r\nFor example in v1.X, to filter `Devices` with a specific `site` value in the UI or make changes to them via Rest API with a UUID primary key, you will use:\r\n\r\n`/dcim/devices/?site_id=<uuid>`\r\n\r\nNow in v2.x, that format is no longer supported. Instead, you would use:\r\n\r\n`/dcim/devices/?site=<uuid>`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](../installation/upgrading-from-nautobot-v1.md#removed-redundant-filter-fields)\r\n\r\n#### Removed RQ support ([#2523](https://github.com/nautobot/nautobot/issue/2523))\r\n\r\nSupport for RQ and `django-rq`, deprecated since Nautobot 1.1.0, has been fully removed from Nautobot 2.0.\r\n\r\n<!-- towncrier release notes start -->\r\n## v2.0.0-alpha.2 (2023-03-29)\r\n\r\n### Added\r\n\r\n- [#2900](https://github.com/nautobot/nautobot/issues/2900) - Added natural-key support to most Nautobot models, inspired by the `django-natural-keys` library.\r\n- [#2957](https://github.com/nautobot/nautobot/issues/2957) - Added Location constraints for objects (CircuitTermination, Device, PowerPanel, PowerFeed, RackGroup, Rack, Prefix, VLAN, VLANGroup, Cluster).\r\n- [#2957](https://github.com/nautobot/nautobot/issues/2957) - Added Region and Site data migration to Locations for existing ConfigContext instances.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Added `ForeignKeyWithAutoRelatedName` helper class.\r\n- [#3154](https://github.com/nautobot/nautobot/issues/3154) - Added ability for `tags` filters to filter by UUID as well as by slug.\r\n- [#3185](https://github.com/nautobot/nautobot/issues/3185) - Added missing user filterset fields.\r\n- [#3222](https://github.com/nautobot/nautobot/issues/3222) - Added Site and Region data migration for ConfigContext class and ensured that \"Site\" LocationType allows the correct ContentTypes.\r\n- [#3255](https://github.com/nautobot/nautobot/issues/3255) - Added `--cache-test-fixtures` command line argument to Nautobot unit and integration tests.\r\n- [#3256](https://github.com/nautobot/nautobot/issues/3256) - Added Site and Region data migration for ComputedFields, CustomFields, CustomLinks, ExportTemplates, ImageAttachments, JobHooks, Notes, Relationships, Webhooks, Statuses and Tags\r\n- [#3283](https://github.com/nautobot/nautobot/issues/3283) - Added Site and Region migration to Location for filter data of DynamicGroups.\r\n- [#3360](https://github.com/nautobot/nautobot/issues/3360) - Added an alternate approach to updating model feature registry without having to decorate a model with `@extras_features`.\r\n- [#3364](https://github.com/nautobot/nautobot/issues/3364) - Added FK fields migrated_location to Site and Region models before data migration is applied.\r\n- [#3403](https://github.com/nautobot/nautobot/issues/3403) - Added support for Nautobot Apps to provide Django Constance Fields for the settings.\r\n- [#3418](https://github.com/nautobot/nautobot/issues/3418) - Added ObjectPermission Data Migration from Region/Site to Location.\r\n\r\n### Changed\r\n\r\n- [#824](https://github.com/nautobot/nautobot/issues/824) - Renamed `slug` field to `key` on CustomField model class.\r\n- [#824](https://github.com/nautobot/nautobot/issues/824) - Changed validation of CustomField `key` to enforce that it is valid as a GraphQL identifier.\r\n- [#951](https://github.com/nautobot/nautobot/issues/951) - The `nautobot-server nbshell` command is now based on `shell_plus` from `django-extensions`.\r\n- [#1362](https://github.com/nautobot/nautobot/issues/1362) - Added `type` field to `Prefix`, replacing \"Container\" status and `is_pool` field.\r\n- [#2076](https://github.com/nautobot/nautobot/issues/2076) - Changed the `created` field of all models from a DateField to a DateTimeField for added granularity. Preexisting records will show as created at midnight UTC on their original creation date.\r\n- [#2611](https://github.com/nautobot/nautobot/issues/2611) - Changed `Job` model uniqueness constraints and `slug` field.\r\n- [#2806](https://github.com/nautobot/nautobot/issues/2806) - Enhanced VLAN `available_on_device` filter to permit specifying multiple Devices.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `related_name` values for path endpoints on `CablePath` for consistency and readability (`dcim_interface_related` to `interfaces`, `circuits_circuittermination_related` to `circuit_terminations`, etc.)\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `related_name` values for device components on `Device` for consistency and readability (`consoleports` to `console_ports`, `devicebays` to `device_bays`, etc.)\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `related_name` values for device component templates on `DeviceType` for consistency and readability (`consoleporttemplates` to `console_port_templates`, `devicebaytemplates` to `device_bay_templates`, etc.)\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `DeviceType.instances` to `devices` and renamed the corresponding query filters.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `DeviceRedundancyGroup.members` to `devices`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `FrontPortTemplate.rear_port` to `rear_port_template`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `Location.powerpanels` to `power_panels`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `PowerOutletTemplate.power_port` to `power_port_template`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `PowerPanel.powerfeeds` to `power_feeds`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `PowerPort.poweroutlets` to `power_outlets`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `PowerPortTemplate.poweroutlet_templates` to `power_outlet_templates`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `Rack.powerfeed_set` to `power_feeds`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `Rack.group` and `Rack.reservations` to `rack_group` and `rack_reservations` and renamed the corresponding query filters.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `RackGroup.powerpanel_set` to `power_panels`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `RearPort.frontports` to `front_ports`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `RearPortTemplate.frontport_templates` to `front_port_templates`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `SecretsGroup.device_set` and `SecretsGroup.deviceredundancygroup_set` to `devices` and `device_redundancy_groups`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `Tenant.rackreservations` to `rack_reservations`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `User.rackreservation_set` to `rack_reservations`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed REST API field on `Interface` from `count_ipaddresses` to `ip_address_count`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed REST API fields on `Manufacturer` from `devicetype_count` and `inventoryitem_count` to `device_type_count` and `inventory_item_count`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed REST API field on `Platform` from `virtualmachine_count` to `virtual_machine_count`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed REST API field on `PowerPanel` from `powerfeed_count` to `power_feed_count`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed REST API field on `Rack` from `powerfeed_count` to `power_feed_count`.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Changed `RackReservation` `group` filter to `rack_group`.\r\n- [#3154](https://github.com/nautobot/nautobot/issues/3154) - Renamed various `tag` filters to `tags` for self-consistency.\r\n- [#3160](https://github.com/nautobot/nautobot/issues/3160) - Changed logger names to use `__name__` instead of explicit module names.\r\n- [#3215](https://github.com/nautobot/nautobot/issues/3215) - Changed representation of related Status objects in the REST API to use a NestedStatusSerializer instead of presenting as enums.\r\n- [#3236](https://github.com/nautobot/nautobot/issues/3236) - Changed `Interface` and `VMInterface` relationship to `IPAddress` to many-to-many instead of one-to-many.\r\n- [#3262](https://github.com/nautobot/nautobot/issues/3262) - Changed extras FKs and related names.\r\n- [#3266](https://github.com/nautobot/nautobot/issues/3266) - Changed erroneous attribute \"type\" to correct \"circuit_type\" in circuit-related templates.\r\n- [#3302](https://github.com/nautobot/nautobot/issues/3302) - Migrated `Aggregate` model to `Prefix` with type set to \"Container\".\r\n- [#3351](https://github.com/nautobot/nautobot/issues/3351) - Changed extras abstract model ForeignKeys to use ForeignKeyWithAutoRelatedName.\r\n- [#3354](https://github.com/nautobot/nautobot/issues/3354) - Synced in fixes from 1.5.x LTM branch up through v1.5.11.\r\n\r\n### Dependencies\r\n\r\n- [#2521](https://github.com/nautobot/nautobot/issues/2521) - Removed dependency on `django-cryptography`.\r\n- [#2524](https://github.com/nautobot/nautobot/issues/2524) - Removed no-longer-used `drf-yasg` dependency.\r\n\r\n### Fixed\r\n\r\n- [#633](https://github.com/nautobot/nautobot/issues/633) - Fixed job result not updating when job hard time limit is reached.\r\n- [#1362](https://github.com/nautobot/nautobot/issues/1362) - Fixed migrations for `Prefix.type`.\r\n- [#1422](https://github.com/nautobot/nautobot/issues/1422) - Improved OpenAPI schema representation of polymorphic fields such as `cable_peer`, `assigned_object`, etc.\r\n- [#2806](https://github.com/nautobot/nautobot/issues/2806) - Fixed some issues with initialization and updating of the dynamic (\"advanced\") filter form.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Fixed incorrect `field_class` when filtering `FloatField` and `DecimalField` model fields.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Fixed inability to provide non-integer values when filtering on `FloatField` and `DecimalField` fields in GraphQL.\r\n- [#3066](https://github.com/nautobot/nautobot/issues/3066) - Fixed inability to specify partial substrings in the UI when filtering by MAC address.\r\n- [#3154](https://github.com/nautobot/nautobot/issues/3154) - Fixed incorrect initialization of `TagFilter` when auto-attached to a FilterSet.\r\n- [#3164](https://github.com/nautobot/nautobot/issues/3164) - Merged `TaskResult` from `django-celery-results` into `JobResult`.\r\n- [#3291](https://github.com/nautobot/nautobot/issues/3291) - Fixed inheritance and `RoleField` definition on `Role` model mixins.\r\n- [#3342](https://github.com/nautobot/nautobot/issues/3342) - Fixed BaseFilterSet not using multiple choice filters for CharFields with choices.\r\n- [#3457](https://github.com/nautobot/nautobot/issues/3457) - Fixed bug preventing scheduled job from running.\r\n\r\n### Removed\r\n\r\n- [#824](https://github.com/nautobot/nautobot/issues/824) - Removed `name` field from CustomField model class.\r\n- [#1634](https://github.com/nautobot/nautobot/issues/1634) - Removed unnecessary legacy `manage.py` file from Nautobot repository.\r\n- [#2521](https://github.com/nautobot/nautobot/issues/2521) - Removed support for storing Git repository credentials (username/token) in the Nautobot database. Use [Secrets](../models/extras/secret.md) instead.\r\n- [#2957](https://github.com/nautobot/nautobot/issues/2957) - Removed Site constraints for model classes (CircuitTermination, Device, Location, PowerPanel, PowerFeed, RackGroup, Rack, Prefix, VLAN, VLANGroup, Cluster).\r\n- [#2957](https://github.com/nautobot/nautobot/issues/2957) - Removed `regions` and `sites` attributes from ConfigContext model class.\r\n- [#2957](https://github.com/nautobot/nautobot/issues/2957) - Removed `region` and `site` related fields from Serializers for aforementioned model classes.\r\n- [#2957](https://github.com/nautobot/nautobot/issues/2957) - Removed `region` and `site` related fields from Forms for aforementioned model classes.\r\n- [#2957](https://github.com/nautobot/nautobot/issues/2957) - Removed `region` and `site` related UI and API Endpoints for aforementioned model classes.\r\n- [#2957](https://github.com/nautobot/nautobot/issues/2957) - Removed `region` and `site` columns from Tables for aforementioned model classes.\r\n- [#2958](https://github.com/nautobot/nautobot/issues/2958) - Removed Region and Site factories, filtersets, forms, factories, models, navigation menu items, serializers, tables, templates, tests and urls.\r\n- [#3224](https://github.com/nautobot/nautobot/issues/3224) - Removed support for Nautobot \"1.x\" REST API versions. The minimum supported REST API version is now \"2.0\".\r\n- [#3233](https://github.com/nautobot/nautobot/issues/3233) - Removed `CeleryTestCase` and associated calling code as it is no longer needed.\r\n- [#3302](https://github.com/nautobot/nautobot/issues/3302) - Removed `Aggregate` and migrated all existing instances to `Prefix`.\r\n\r\n## New Contributors\r\n* @DimasInchidi made their first contribution in https://github.com/nautobot/nautobot/pull/3186\r\n* @justinjeffery-ipf made their first contribution in https://github.com/nautobot/nautobot/pull/3327\r\n* @dsykes16 made their first contribution in https://github.com/nautobot/nautobot/pull/3379\r\n* @bile0026 made their first contribution in https://github.com/nautobot/nautobot/pull/3182\r\n* @snaselj made their first contribution in https://github.com/nautobot/nautobot/pull/3420\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v2.0.0-alpha.1...v2.0.0-alpha.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3513",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/97383786/reactions",
            "total_count": 1,
            "+1": 1,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/96249263",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/96249263/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/96249263/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.14",
        "id": 96249263,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FvKWv",
        "tag_name": "v1.5.14",
        "target_commitish": "develop",
        "name": "v1.5.14 - 2023-03-20",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-03-20T18:16:52Z",
        "updated_at": "2023-03-20T19:28:40Z",
        "published_at": "2023-03-20T18:19:47Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/100188892",
                "id": 100188892,
                "node_id": "RA_kwDOFEucDc4F-MLc",
                "name": "nautobot-1.5.14-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89338064,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-03-20T19:28:33Z",
                "updated_at": "2023-03-20T19:28:36Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.14/nautobot-1.5.14-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/100188896",
                "id": 100188896,
                "node_id": "RA_kwDOFEucDc4F-MLg",
                "name": "nautobot-1.5.14.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88528257,
                "digest": null,
                "download_count": 11,
                "created_at": "2023-03-20T19:28:37Z",
                "updated_at": "2023-03-20T19:28:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.14/nautobot-1.5.14.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.14",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.14",
        "body": "### Added\r\n\r\n- [#2618](https://github.com/nautobot/nautobot/issues/2618) - Added the ability to stand up a local dev env for SSO using Keycloak.\r\n- [#3033](https://github.com/nautobot/nautobot/issues/3033) - Added `JobButton` model to create single click execution buttons in the web UI to run jobs based on a single object.\r\n- [#3377](https://github.com/nautobot/nautobot/issues/3377) - Added additional choices for many data types in `nautobot.dcim`.\r\n\r\n### Changed\r\n\r\n- [#3434](https://github.com/nautobot/nautobot/issues/3434) - Changed the recommended exception to raise to end jobs early.\r\n\r\n### Fixed\r\n\r\n- [#3419](https://github.com/nautobot/nautobot/issues/3419) - Fixed `test_queryset_to_csv` to format data fetched from the model.\r\n\r\n## Contributors\r\n* @whitej6\r\n* @snaselj\r\n* @alextremblay\r\n* @Kircheneer\r\n* @joewesch\r\n\r\n## New Contributors\r\n* @snaselj made their first contribution in https://github.com/nautobot/nautobot/pull/3420\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.13...v1.5.14",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3454",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/95600467",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/95600467/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/95600467/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.13",
        "id": 95600467,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Fsr9T",
        "tag_name": "v1.5.13",
        "target_commitish": "develop",
        "name": "v1.5.13 - 2023-03-14",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-03-14T18:00:35Z",
        "updated_at": "2023-03-14T19:02:06Z",
        "published_at": "2023-03-14T18:02:49Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/99387714",
                "id": 99387714,
                "node_id": "RA_kwDOFEucDc4F7IlC",
                "name": "nautobot-1.5.13-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89012146,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-03-14T19:01:59Z",
                "updated_at": "2023-03-14T19:02:02Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.13/nautobot-1.5.13-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/99387720",
                "id": 99387720,
                "node_id": "RA_kwDOFEucDc4F7IlI",
                "name": "nautobot-1.5.13.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88209086,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-03-14T19:02:03Z",
                "updated_at": "2023-03-14T19:02:06Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.13/nautobot-1.5.13.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.13",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.13",
        "body": "### Added\r\n\r\n- [#766](https://github.com/nautobot/nautobot/issues/766) - Added option for apps to extend Nautobot's Prometheus metrics, based on `nautobot_capacity_metrics`.\r\n- [#3410](https://github.com/nautobot/nautobot/issues/3410) - Added `-time` index for ObjectChange records.\r\n\r\n### Changed\r\n\r\n- [#3410](https://github.com/nautobot/nautobot/issues/3410) - Changed Homepage ObjectChange query to not join User or Content Type tables, use record cache for user entries instead.\r\n- [#3416](https://github.com/nautobot/nautobot/issues/3416) - Updated Windows development documentation.\r\n\r\n### Dependencies\r\n\r\n- [#3405](https://github.com/nautobot/nautobot/issues/3405) - Updated version of `pyopenssl` in Nautobot dev environment and Docker images to 23.0.0 due to an incompatibility between older versions of `pyopenssl` and version 39.x of `cryptography`. This is not a direct dependency of Nautobot so it will not auto-update when upgrading. Please update your local environment as needed.\r\n- [#3405](https://github.com/nautobot/nautobot/issues/3405) - Updated `cryptography` to 39.0.2. This is not a direct dependency of Nautobot so it will not auto-update when upgrading. Please update your local environment as needed.\r\n\r\n### Fixed\r\n\r\n- [#3347](https://github.com/nautobot/nautobot/issues/3347) - Fixed (again) `Location.parent` not populating correctly in the form when editing an existing Location.\r\n\r\n### Removed\r\n\r\n- [#3407](https://github.com/nautobot/nautobot/issues/3407) - Removed permission checks for ContentTypeAPIViewSet.\r\n\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @Kircheneer\r\n* @gsnider2195\r\n* @bryanculver \r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.12...v1.5.13",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/94639774",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/94639774/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/94639774/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.12",
        "id": 94639774,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FpBae",
        "tag_name": "v1.5.12",
        "target_commitish": "develop",
        "name": "v1.5.12 - 2023-03-06",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-03-06T14:07:38Z",
        "updated_at": "2023-03-06T15:05:13Z",
        "published_at": "2023-03-06T14:09:38Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/98254441",
                "id": 98254441,
                "node_id": "RA_kwDOFEucDc4F2z5p",
                "name": "nautobot-1.5.12-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89004264,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-03-06T15:05:04Z",
                "updated_at": "2023-03-06T15:05:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.12/nautobot-1.5.12-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/98254446",
                "id": 98254446,
                "node_id": "RA_kwDOFEucDc4F2z5u",
                "name": "nautobot-1.5.12.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88200233,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-03-06T15:05:08Z",
                "updated_at": "2023-03-06T15:05:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.12/nautobot-1.5.12.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.12",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.12",
        "body": "### Added\r\n\r\n- [#3182](https://github.com/nautobot/nautobot/issues/3182) - Added support for assigning Config Context objects via Dynamic Groups.\r\n- [#3219](https://github.com/nautobot/nautobot/issues/3219) - Added support for custom fields to Dynamic Groups.\r\n- [#3220](https://github.com/nautobot/nautobot/issues/3220) - Added support for relationships to Dynamic Groups.\r\n\r\n### Changed\r\n\r\n- [#3369](https://github.com/nautobot/nautobot/issues/3369) - Changed `RelationshipModelFilterSetMixin` to perform a single OR query including `select_related` for `source_type` and `destination_type` vs. two single queries for each source/destination types.\r\n\r\n### Dependencies\r\n\r\n- [#3388](https://github.com/nautobot/nautobot/issues/3388) - Updated `GitPython` to 3.1.31.\r\n- [#3388](https://github.com/nautobot/nautobot/issues/3388) - Updated `drf-yasg` to 1.21.5. Note: this is automatic for the Nautobot-provided containers, but because our dependency on it goes away in 2.0, it's an optional update for other installations.\r\n- [#3388](https://github.com/nautobot/nautobot/issues/3388) - Updated `netutils` to 1.4.1.\r\n\r\n### Fixed\r\n\r\n- [#3295](https://github.com/nautobot/nautobot/issues/3295) - Fixed kombu serialization error on `User` object that arose when `CELERY_RESULT_EXTENDED == True` or when `enqueue_job` was called from within an existing `Job`.\r\n- [#3318](https://github.com/nautobot/nautobot/issues/3318) - Fixed a bug in prefix factory when a /0 ipv6 network is generated by faker.\r\n- [#3341](https://github.com/nautobot/nautobot/issues/3341) - Fixed missing `get_route_for_model()` logic for the `ContentType` and `Group` models.\r\n- [#3353](https://github.com/nautobot/nautobot/issues/3353) - Fixed a bug in `nautobot.extras.forms.mixins.CustomFieldModelFilterFormMixin` where the list of custom field names were not being stored on `self.custom_fields`.\r\n- [#3353](https://github.com/nautobot/nautobot/issues/3353) - Fixed a bug in `nautobot.utilities.filters.MappedPredicatesFilterMixin` (from which `SearchFilter` inherits) that was preventing `q` fields from being used in Dynamic Group filters.\r\n\r\n## Contributors\r\n* @timizuoebideri1\r\n* @gsnider2195\r\n* @jathanism\r\n* @dsykes16\r\n* @bile0026\r\n\r\n## New Contributors\r\n* @dsykes16 made their first contribution in https://github.com/nautobot/nautobot/pull/3379\r\n* @bile0026 made their first contribution in https://github.com/nautobot/nautobot/pull/3182\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.11...v1.5.12",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3392",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/92981711",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/92981711/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/92981711/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.11",
        "id": 92981711,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FisnP",
        "tag_name": "v1.5.11",
        "target_commitish": "develop",
        "name": "v1.5.11 - 2023-02-20",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-02-20T05:14:37Z",
        "updated_at": "2023-02-20T06:12:28Z",
        "published_at": "2023-02-20T05:18:17Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/96354900",
                "id": 96354900,
                "node_id": "RA_kwDOFEucDc4FvkJU",
                "name": "nautobot-1.5.11-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88994210,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-02-20T06:12:15Z",
                "updated_at": "2023-02-20T06:12:24Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.11/nautobot-1.5.11-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/96354926",
                "id": 96354926,
                "node_id": "RA_kwDOFEucDc4FvkJu",
                "name": "nautobot-1.5.11.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88192506,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-02-20T06:12:24Z",
                "updated_at": "2023-02-20T06:12:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.11/nautobot-1.5.11.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.11",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.11",
        "body": "### Added\r\n\r\n- [#3168](https://github.com/nautobot/nautobot/issues/3168) - Add device name to bulk interface rename header.\r\n- [#3184](https://github.com/nautobot/nautobot/issues/3184) - Added Git 2.0+ as a mandatory dependency in the installation instructions.\r\n- [#3255](https://github.com/nautobot/nautobot/issues/3255) - Added `--cache-test-fixtures` command line argument to Nautobot unit and integration tests.\r\n\r\n### Changed\r\n\r\n- [#3134](https://github.com/nautobot/nautobot/issues/3134) - Migrate ModelMultipleChoiceFilters to NaturalKeyOrPKMultipleChoiceFilter.\r\n- [#3224](https://github.com/nautobot/nautobot/issues/3224) - Updates to our deprecation policy: Prior-major REST API versions will be dropped upon next-major release.\r\n- [#3264](https://github.com/nautobot/nautobot/issues/3264) - Changed `DynamicGroup.objects.get_for_object()` to be a little more efficient.\r\n- [#3311](https://github.com/nautobot/nautobot/issues/3311) - Add Links to Branch Names to README.md.\r\n- [#3314](https://github.com/nautobot/nautobot/issues/3314) - Updated developer documentation for user and prototype branching conventions.\r\n- [#3314](https://github.com/nautobot/nautobot/issues/3314) - Updated pre-commit hook to validate user namespace prefix on branch name.\r\n\r\n### Dependencies\r\n\r\n- [#3251](https://github.com/nautobot/nautobot/issues/3251) - Updated `oauthlib` to 3.2.2.\r\n- [#3258](https://github.com/nautobot/nautobot/issues/3258) - Updated `cryptography` to 39.0.1.\r\n- [#3320](https://github.com/nautobot/nautobot/issues/3320) - Updated `django` to 3.2.18.\r\n- [#3333](https://github.com/nautobot/nautobot/issues/3333) - Updated `netutils` constraint from ~1.4.0 to ^1.4.0 to permit semver upgrades.\r\n\r\n### Fixed\r\n\r\n- [#2580](https://github.com/nautobot/nautobot/issues/2580) - Fixed fragile generic view test.\r\n- [#3187](https://github.com/nautobot/nautobot/issues/3187) - Fixed `DynamicModelChoiceField`s having a generic default label when one is provided.\r\n- [#3274](https://github.com/nautobot/nautobot/issues/3274) - Fixed ObjectListViewMixin's filtering when exporting objects in NautobotUIViewSet.\r\n- [#3277](https://github.com/nautobot/nautobot/issues/3277) - Fixed incorrect test data in `nautobot.extras.tests.test_api.NoteTest`.\r\n- [#3278](https://github.com/nautobot/nautobot/issues/3278) - Fixed docker development environment error when the Nautobot container tries to start before the database is ready.\r\n- [#3290](https://github.com/nautobot/nautobot/issues/3290) - Fixed an issue preventing the inclusion of `netutils` functions in Django templates.\r\n- [#3308](https://github.com/nautobot/nautobot/issues/3308) - Fixed incorrect documentation for object permissions.\r\n- [#3327](https://github.com/nautobot/nautobot/issues/3327) - Fixed Azure AD tenant configuration documentation.\r\n- [#3332](https://github.com/nautobot/nautobot/issues/3332) - Fixed missing imports in Secrets Providers plugin development documentation.\r\n- [#3335](https://github.com/nautobot/nautobot/issues/3335) - Fixed inability to change filtering on custom field (selection) once filter is configured.\r\n\r\n### Security\r\n\r\n- [#3251](https://github.com/nautobot/nautobot/issues/3251) - Updated `oauthlib` to 3.2.2 due to CVE-2022-36087. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#3258](https://github.com/nautobot/nautobot/issues/3258) - Updated `cryptography` to 39.0.1 due to CVE-2023-0286, CVE-2023-23931. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#3320](https://github.com/nautobot/nautobot/issues/3320) - Updated `django` to 3.2.18 due to CVE-2023-24580.\r\n\r\n## Contributors\r\n* @jathanism\r\n* @timizuoebideri1\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @mzbroch\r\n* @DimasInchidi \r\n* @HanlinMiao\r\n* @justinjeffery-ipf\r\n* @bryanculver \r\n* @alextremblay \r\n* @itdependsnetworks\r\n\r\n## New Contributors\r\n* @DimasInchidi made their first contribution in https://github.com/nautobot/nautobot/pull/3186\r\n* @justinjeffery-ipf made their first contribution in https://github.com/nautobot/nautobot/pull/3327\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.10...v1.5.11",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3339",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/91508623",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/91508623/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/91508623/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.10",
        "id": 91508623,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FdE-P",
        "tag_name": "v1.5.10",
        "target_commitish": "develop",
        "name": "v1.5.10 - 2023-02-06",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-02-06T19:08:06Z",
        "updated_at": "2023-02-06T20:06:27Z",
        "published_at": "2023-02-06T19:10:20Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/94542236",
                "id": 94542236,
                "node_id": "RA_kwDOFEucDc4Fopmc",
                "name": "nautobot-1.5.10-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88970520,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-02-06T20:06:16Z",
                "updated_at": "2023-02-06T20:06:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.10/nautobot-1.5.10-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/94542249",
                "id": 94542249,
                "node_id": "RA_kwDOFEucDc4Fopmp",
                "name": "nautobot-1.5.10.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88170324,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-02-06T20:06:23Z",
                "updated_at": "2023-02-06T20:06:27Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.10/nautobot-1.5.10.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.10",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.10",
        "body": "### Added\r\n\r\n- [#3013](https://github.com/nautobot/nautobot/issues/3013) - Added `CELERY_WORKER_PROMETHEUS_PORTS` configuration setting\r\n- [#3013](https://github.com/nautobot/nautobot/issues/3013) - Added prometheus HTTP server listening on the worker to expose worker metrics\r\n- [#3013](https://github.com/nautobot/nautobot/issues/3013) - Added `nautobot_job_duration_seconds` counter metric that reports on job execution\r\n\r\n### Changed\r\n\r\n- [#3177](https://github.com/nautobot/nautobot/issues/3177) - Updated VLANFactory to generate longer and more \"realistic\" VLAN names.\r\n- [#3198](https://github.com/nautobot/nautobot/issues/3198) - Added dependencies towncrier section, removed extra newline.\r\n\r\n### Dependencies\r\n\r\n- [#3227](https://github.com/nautobot/nautobot/issues/3227) - Updated `django` to 3.2.17.\r\n\r\n### Fixed\r\n\r\n- [#3126](https://github.com/nautobot/nautobot/issues/3126) - Fixed interface not raising exception when adding a VLAN from a different site in tagged_vlans.\r\n- [#3153](https://github.com/nautobot/nautobot/issues/3153) - Made integration test `CableConnectFormTestCase.test_js_functionality` more resilient and less prone to erroneous failures.\r\n- [#3177](https://github.com/nautobot/nautobot/issues/3177) - Fixed a spurious failure in BulkEditObjectsViewTestCase.test_bulk_edit_objects_with_constrained_permission.\r\n- [#3200](https://github.com/nautobot/nautobot/issues/3200) - Added `dependencies` to the list of valid change fragment types in the documentation.\r\n\r\n### Security\r\n\r\n- [#3227](https://github.com/nautobot/nautobot/issues/3227) - Updated `django` to 3.2.17 due to CVE-2023-23969.\r\n\r\n## Contributors\r\n* @timizuoebideri1\r\n* @glennmatthews\r\n* @Kircheneer\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.9...v1.5.10",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3247",
        "mentions_count": 3
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/90877088",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/90877088/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/90877088/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v2.0.0-alpha.1",
        "id": 90877088,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Faqyg",
        "tag_name": "v2.0.0-alpha.1",
        "target_commitish": "develop",
        "name": "v2.0.0-alpha.1 - 2022-01-31",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2023-01-31T18:25:15Z",
        "updated_at": "2023-01-31T19:32:31Z",
        "published_at": "2023-01-31T18:32:27Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/93776203",
                "id": 93776203,
                "node_id": "RA_kwDOFEucDc4FlulL",
                "name": "nautobot-2.0.0a1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 89111168,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-01-31T19:32:24Z",
                "updated_at": "2023-01-31T19:32:27Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-alpha.1/nautobot-2.0.0a1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/93776209",
                "id": 93776209,
                "node_id": "RA_kwDOFEucDc4FlulR",
                "name": "nautobot-2.0.0a1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88297566,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-01-31T19:32:28Z",
                "updated_at": "2023-01-31T19:32:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v2.0.0-alpha.1/nautobot-2.0.0a1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v2.0.0-alpha.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v2.0.0-alpha.1",
        "body": "# Nautobot v2.0\r\n\r\nThis document describes all new features and changes in Nautobot 2.0.\r\n\r\nIf you are a user migrating from Nautobot v1.X, please refer to the [\"Upgrading from Nautobot v1.X\"](https://docs.nautobot.com/projects/core/en/v2.0.0-alpha.1/installation/upgrading-from-nautobot-v1/) documentation.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Generic Role Model ([#1063](https://github.com/nautobot/nautobot/issues/1063))\r\n\r\nDeviceRole, RackRole, IPAM Role, and IPAddressRoleChoices have all been merged into a single generic Role model. A role can now be created and associated to one or more of the content-types that previously implemented role as a field. These model content-types include dcim.device, dcim.rack, virtualization.virtualmachine, ipam.ipaddress, ipam.prefix, and ipam.vlan.\r\n\r\n#### Added Site Fields to Location ([#2954](https://github.com/nautobot/nautobot/issues/2954))\r\n\r\nAdded Site Model Fields to Location. Location Model now has `asn`, `comments`, `contact_email`, `contact_name`, `contact_phone`, `facility`, `latitude`, `longitude`, `physical_address`, `shipping_address` and `time_zone` fields.\r\n\r\n### Changed\r\n\r\n#### Collapse Region and Site Models into Location ([#2517](https://github.com/nautobot/nautobot/issues/2517))\r\n\r\n##### Initial Data Migration\r\n\r\nThe `Site` and `Region` models have been removed in v2.0 and have been replaced with `Location` of specific `LocationType`. As a result, the existing `Site` and `Region` data will be migrated to corresponding `LocationType` and `Location` objects. Here is what to expect:\r\n\r\n1. If you do not have any `Site` and `Region` instances in your existing database, running this data migration will do nothing.\r\n2. If you only have `Region` instances in your existing database, a `LocationType` named **Region** will be created and for each legacy `Region` instance, a corresponding `Location` instance with the same attributes (`name`, `description`, etc.) and hierarchy will be created.\r\n3. If you only have `Site` instances in your existing database:\r\n\r\n    - A `LocationType` named **Site** will be created and every preexisting root level `LocationType` in your database will be updated to have the new **Site** `LocationType` as their parent.\r\n\r\n    - For each legacy `Site` instance, a corresponding `Location` instance with the same attributes (`name`, `description`, `tenant`, `facility`, `asn`, `latitude`, `longitude`, etc.) will be created, and any preexisting `Locations` in your database will be updated to have the appropriate \"site\" `Locations` as their parents.\r\n\r\n    - Model instances that had a `site` field (`CircuitTermination`, `Device`, `PowerPanel`, `RackGroup`, `Rack`, `Prefix`, `VLANGroup`, `VLAN`, `Cluster`) assigned and *did not* have a `location` attribute assigned will be updated to have their `location` point to the new `Location` corresponding to that `Site`. All other attributes on these models will remain unchanged.\r\n\r\n    For Example:\r\n\r\n    - We will start with a `Site` instance with name **AMS01** as the base `Site` for two top-level `Location` objects with names **root-01** and **root-02** respectively.\r\n\r\n    - During the data migration, a `LocationType` named **Site** will be created, and a `Location` of **Site** `LocationType` named **AMS01** with all the information (`asn`, `latitude`, etc.) from the base `Site` will be created.\r\n\r\n    - The `Location` objects named **root-01** and **root-02** will have this **AMS01** `Location` set as their `parent`.\r\n\r\n4. If you have both `Site` and `Region` instances in your existing database:\r\n\r\n    - A `LocationType` named **Region** will be created.\r\n\r\n    - For each legacy `Region` instance, a corresponding `Location` instance with the same attributes (`name`, `description`, etc.) will be created.\r\n\r\n    - A `LocationType` named **Site** will be created with the new `LocationType` named **Region** set as its `parent`.\r\n\r\n    - Every pre-existing root-level `LocationType` in your database will be updated to have the new `LocationType` named **Site** as its `parent`.\r\n\r\n    - For each legacy `Site` instance, a corresponding \"site\" `Location` instance with the same attributes (`name`, `description`, `tenant`, `facility`, `asn`, `latitude`, `longitude`, etc.) will be created with its parent set to the corresponding \"region\" `Location` if any.\r\n\r\n        - If you have `Site` instances in your database without a `Region` assigned to them, one additional `Location` named **Global Region** of `LocationType` **Region** will be created and each `Location` of `LocationType` **Site** created from the legacy region-less `Site` instances will have the **Global Region** `Location` as their parent.\r\n\r\n    - Model instances that had a `site` attribute (`CircuitTermination`, `Device`, `PowerPanel`, `RackGroup`, `Rack`, `Prefix`, `VLANGroup`, `VLAN`, `Cluster`) assigned and *did not* have a `location` attribute assigned will be updated to have their `location` point to the new `Location` of `LocationType` **Site**. All other attributes on these models will remain unchanged.\r\n\r\n    For Example:\r\n\r\n    - There are two `Site` instances and one `Region` instance in your existing database. The `Region` with name **America** has one child `Site` instance named **AMS01**. And the other `Site` instance named **AUS01** is not associated with any `Region` (`region` attribute is set to `None`).\r\n\r\n    - The `Site` **AMS01** is the base `Site` for two top-level `Location` objects with names **root-01** and **root-02** respectively.\r\n\r\n    - During the data migration, a `LocationType` named **Region** and a `Location` of this `LocationType` named **America** with all the same information will be created.\r\n\r\n    - The `LocationType` named **Site** with its `parent` set as the new `LocationType` **Region** and a `Location` of `LocationType` named **AMS01** with all the same information (`asn`, `latitude`, etc.) will be created. The `Location` **AMS01** will have `Location` **America** as its `parent` and each - `Location` **root-01** and **root-02** will have `Location` **AMS01** as its `parent`.\r\n\r\n    - Finally, the `Site` instance **AUS01**, since it does not have a `Region` instance associated with it, its corresponding `Location` **AUS01** will have a new `Location` named **Global Region** of `LocationType` **Region** as its `parent`.\r\n\r\n    - In addition, legacy `Site` instance with name **AMS01** also has three `Device` instances associated with it named **ams01-edge-01**, **ams01-edge-02**,  and **ams01-edge-03**.\r\n\r\n    - However, **ams01-edge-01** only has its `site` attribute set as `Site` **AMS01** whereas **ams01-edge-02** and **ams01-edge-03** have both its `site` and `location` attributes set `Site` **AMS01** and `Location` **root-01** respectively.\r\n\r\n    - During the data migration, **ams01-edge-01**'s `location` attribute will point to the new `Location` of `LocationType` **Site** with name **AMS01** while devices **ams01-edge-02** and **ams01-edge-03** will remain unchanged.\r\n\r\n#### Collapsed `nautobot.utilities` into `nautobot.core` ([#2721](https://github.com/nautobot/nautobot/issues/2721))\r\n\r\n`nautobot.utilities` no longer exists as a separate Python module or Django app. Its functionality has been collapsed into the `nautobot.core` app. See details at [Python Code Location Changes](../installation/upgrading-from-nautobot-v1.md#python-code-location-changes).\r\n\r\n#### Renamed Database Foreign Keys and Related Names ([#2520](https://github.com/nautobot/nautobot/issues/2520))\r\n\r\nSome Foreign Key fields have been renamed to follow a more self-consistent pattern across the Nautobot app. This change is aimed to offer more clarity and predictability when it comes to related object database operations:\r\n\r\nFor example in v1.x to create a circuit object with `type` \"circuit-type-1\", you would do:\r\n\r\n```python\r\nCircuit.objects.create(\r\n    cid=\"Circuit 1\",\r\n    provider=\"provider-1\",\r\n    type=\"circuit-type-1\",\r\n    status=\"active\",\r\n)\r\n```\r\n\r\nand to filter `Circuit` objects of `type` \"circuit-type-2\", you would do:\r\n\r\n```python\r\nCircuit.objects.filter(type=\"circuit-type-2\")\r\n```\r\n\r\nNow in v2.x, we have renamed the Foreign Key field `type` on Circuit Model to `circuit_type`, because this naming convention made it clearer that this Foregin Key field is pointing to the model `CircuitType`. The same operations would look like:\r\n\r\n```python\r\nCircuit.objects.create(\r\n    cid=\"Circuit 1\",\r\n    provider=\"provider-1\",\r\n    circuit_type=\"circuit-type-1\",\r\n    status=\"active\",\r\n)\r\n```\r\n\r\n```python\r\nCircuit.objects.filter(circuit_type=\"circuit-type-2\")\r\n```\r\n\r\nCheck out more Foreign Key related changes documented in the table [Renamed Database Fields](../installation/upgrading-from-nautobot-v1.md#renamed-database-fields)\r\n\r\nIn addition to the changes made to Foreign Key fields' own names, some of their `related_names` are also renamed:\r\n\r\nFor example in v1.x, to query `Circuit` objects with `CircuitTermination` instances located in sites [\"ams01\", \"ams02\", \"atl03\"], you would do:\r\n\r\n```python\r\nCircuit.objects.filter(terminations__site__in=[\"ams01\", \"ams02\", \"atl03\"])\r\n```\r\n\r\nNow in v2.x, we have renamed the Foreign Key field `circuit`'s `related_name` attribute `terminations` on `CircuitTermination` Model to `circuit_terminations`, the same operations would look like:\r\n\r\n```python\r\nCircuit.objects.filter(circuit_terminations__site__in=[\"ams01\", \"ams02\", \"atl03\"])\r\n```\r\n\r\nCheck out more `related-name` changes documented in the table [Renamed Database Fields](../installation/upgrading-from-nautobot-v1.md#renamed-database-fields)\r\n\r\n#### Renamed Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\nSome filter fields have been renamed to reflect their functionalities better.\r\n\r\nFor example in v1.X, to filter `FrontPorts` that has a cable attached in the UI or make changes to them via Rest API, you would use the `cabled` filter:\r\n\r\n`/dcim/front-ports/?cabled=True`\r\n\r\nNow in v2.x, you would instead use the `has_cable` filter which has a more user-friendly name:\r\n\r\n`/dcim/front-ports/?has_cable=True`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](../installation/upgrading-from-nautobot-v1.md#renamed-filter-fields)\r\n\r\n#### Enhanced Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\nMany filter fields have been enhanced to enable filtering by both slugs and UUID primary keys.\r\n\r\nFor example in v1.X, to filter `Regions` with a specific `parent` value in the UI or make changes to them via Rest API, you are only able to input slugs as the filter values:\r\n\r\n`/dcim/regions/?parent=<slug>`\r\n\r\nNow in v2.x, you are able to filter those `Regions` by slugs or UUID primary keys:\r\n\r\n`/dcim/regions/?parent=<slug>` or `/dcim/regions/?parent=<uuid>`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](../installation/upgrading-from-nautobot-v1.md#enhanced-filter-fields)\r\n\r\n#### Corrected Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\nThere were also instances where a foreign-key related field (e.g. `console_ports`) was incorrectly mapped to a boolean membership filter (e.g. `has_console_ports`), making it impossible to filter based on specific values of the foreign key:\r\n\r\nFor example in v1.x:\r\n\r\n`/dcim/devices/?console_ports=True` and `/dcim/devices/?has_console_ports=True` are functionally the same and this behavior is **incorrect**.\r\n\r\nThis has been addressed in v2.x as follows:\r\n\r\n`console_ports` and similar filters are taking foreign key UUIDs as input values and can be used in this format: `/dcim/devices/?console_ports=<uuid>` whereas `has_console_ports` and similar filters remain the same.\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](../installation/upgrading-from-nautobot-v1.md#corrected-filter-fields)\r\n\r\n#### Generic Role Model ([#1063](https://github.com/nautobot/nautobot/issues/1063))\r\n\r\nThe `DeviceRole`, `RackRole`, `ipam.Role`, and `IPAddressRoleChoices` have all been removed and replaced with a `extras.Role` model, This means that all references to any of the replaced models and choices now points to this generic role model.\r\n\r\nIn addition, the `role` field of the `IPAddress` model has also been changed from a choice field to a foreign key related field to the `extras.Role` model.\r\n\r\n### Removed\r\n\r\n#### Removed Redundant Filter Fields ([#2804](https://github.com/nautobot/nautobot/pull/2804))\r\n\r\nAs a part of breaking changes made in v2.X, shadowed filter/filterset fields are being removed throughout Nautobot.\r\n\r\nIn Nautobot 1.x, for some of the foreign-key related fields:\r\n    - The field was shadowed for the purpose of replacing the PK filter with a lookup-based on a more human-readable value (typically `slug`, if available).\r\n    - A PK-based filter was available as well, generally with a name suffixed by `_id`\r\n\r\nNow these two filter fields will be replaced by a single filter field that can support both slugs and UUID primary keys as inputs; As a result, PK-based filters suffixed by `_id` will no longer be supported in v2.0.\r\n\r\nFor example in v1.X, to filter `Devices` with a specific `site` value in the UI or make changes to them via Rest API with a UUID primary key, you will use:\r\n\r\n`/dcim/devices/?site_id=<uuid>`\r\n\r\nNow in v2.x, that format is no longer supported. Instead, you would use:\r\n\r\n`/dcim/devices/?site=<uuid>`\r\n\r\nCheck out the specific changes documented in the table at [UI and REST API Filter Changes](../installation/upgrading-from-nautobot-v1.md#removed-redundant-filter-fields)\r\n\r\n#### Removed RQ support ([#2523](https://github.com/nautobot/nautobot/issue/2523))\r\n\r\nSupport for RQ and `django-rq`, deprecated since Nautobot 1.1.0, has been fully removed from Nautobot 2.0.\r\n\r\n<!-- towncrier release notes start -->\r\n## v2.0.0-alpha.1 (2023-01-31)\r\n\r\n### Added\r\n\r\n- [#204](https://github.com/nautobot/nautobot/issues/204) - Added style guide documentation for importing python modules in Nautobot.\r\n- [#1731](https://github.com/nautobot/nautobot/issues/1731) - Added missing filters to `circuits` app.\r\n- [#1733](https://github.com/nautobot/nautobot/issues/1733) - Added support for filtering on many more fields to the `Tenant` and `TenantGroup` filtersets.\r\n- [#2954](https://github.com/nautobot/nautobot/issues/2954) - Added fields (`contact_name`, `latitude`, etc.) from `Site` model to `Location` model to prepare for merging all sites into locations.\r\n- [#2955](https://github.com/nautobot/nautobot/issues/2955) - Added \"Region\" and \"Site\" `LocationTypes` and their respective locations based on existing `Site` and `Region` instances.\r\n- [#3132](https://github.com/nautobot/nautobot/issues/3132) - Added the ability for apps to register their models for inclusion in the global Nautobot search.\r\n\r\n### Changed\r\n\r\n- [#204](https://github.com/nautobot/nautobot/issues/204) - Changed imports to use module namespaces in `utilities/filters.py`.\r\n- [#510](https://github.com/nautobot/nautobot/issues/510) - The `Region`, `RackGroup`, `TenantGroup`, and `InventoryItem` models are now based on `django-tree-queries` instead of `django-mptt`. This does change the API for certain tree operations on these models, for example `get_ancestors()` is now `ancestors()` and `get_descendants()` is now `descendants()`.\r\n- [#510](https://github.com/nautobot/nautobot/issues/510) - The UI and REST API for `Region`, `RackGroup`, and `TenantGroup` now provide only the related count of objects (e.g. `site_count` for `Region`) that are directly related to each instance. Formerly they provided a cumulative total including objects related to its descendants as well.\r\n- [#510](https://github.com/nautobot/nautobot/issues/510) - Renamed field `_depth` to `tree_depth` in the REST API for `Region`, `RackGroup`, `TenantGroup`, and `InventoryItem`.\r\n- [#510](https://github.com/nautobot/nautobot/issues/510) - Renamed InventoryItem database relation `child_items` and filter fields `child_items` and `has_child_items` to `children` and `has_children` respectively.\r\n- [#2163](https://github.com/nautobot/nautobot/issues/2163) - `JobLogEntry.log_object`, `JobLogEntry.absolute_url`, `ScheduledJob.queue`, and `WebHook.ca_file_path` no longer permit null database values; use `\"\"` instead if needed.\r\n- [#2822](https://github.com/nautobot/nautobot/issues/2822) - Collapsed `DeviceRole`, `RackRole`, IPAM `Role` model and `IPAddressRoleChoices` into a single generic `Role` model.\r\n- [#2674](https://github.com/nautobot/nautobot/issues/2674) - Updated development dependency `black` to `~22.10.0`.\r\n- [#2721](https://github.com/nautobot/nautobot/issues/2721) - Collapsed `nautobot.utilities` into `nautobot.core`. Refer to the 2.0 migration guide for details.\r\n- [#2771](https://github.com/nautobot/nautobot/issues/2771) - Updated `jsonschema` version to `~4.17.0`.\r\n- [#2788](https://github.com/nautobot/nautobot/issues/2788) - Changed REST framework allowed versions logic to support 1.2-1.5 and 2.0+.\r\n- [#2803](https://github.com/nautobot/nautobot/issues/2803) - Updated `mkdocs-include-markdown-plugin` to `3.9.1`.\r\n- [#2809](https://github.com/nautobot/nautobot/issues/2809) - Renamed `tag` filter on `TenantFilterSet` to `tags` same as elsewhere.\r\n- [#2844](https://github.com/nautobot/nautobot/issues/2844) - Updated development dependency `mkdocstrings-python` to 0.8.0.\r\n- [#2872](https://github.com/nautobot/nautobot/issues/2872) - Refactored imports in `utilities` app to follow new code style.\r\n- [#2883](https://github.com/nautobot/nautobot/issues/2883) - Updated `django-taggit` to `3.1.0`.\r\n- [#2942](https://github.com/nautobot/nautobot/issues/2942) - Updated `django-tree-queries` to `0.13.0`.\r\n- [#2943](https://github.com/nautobot/nautobot/issues/2943) - Updated dependency `rich` to `~12.6.0`.\r\n- [#2955](https://github.com/nautobot/nautobot/issues/2955) - Changed `CircuitTermination`, `Device`, `PowerPanel`, `RackGroup`, `Rack`, `Prefix`, `VLANGroup`, `VLAN`, `Cluster` instances associated with existing `Site` model instances to use the newly created corresponding `Locations` of `LocationType` \"Site\".\r\n- [#2993](https://github.com/nautobot/nautobot/issues/2993) - Implemented initial database backend for Celery task results.\r\n- [#3027](https://github.com/nautobot/nautobot/issues/3027) - Updated dependencies `prometheus-client`, `django-storages`, `drf-spectacular`, `black`, `django-debug-toolbar`, `mkdocstrings`, `mkdocstrings-python`, `pylint`, `requests`, `selenium`, `watchdog`.\r\n- [#3068](https://github.com/nautobot/nautobot/issues/3068) - Renamed fields on `Circuit` model: `type` to `circuit_type`, `terminations` to `circuit_terminations`, `termination_a` to `circuit_termination_a`, and `termination_z` to `circuit_termination_z`.\r\n- [#3068](https://github.com/nautobot/nautobot/issues/3068) - Renamed reverse-relation `circuittermination` to `circuit_terminations` on the `CablePath` model.\r\n- [#3068](https://github.com/nautobot/nautobot/issues/3068) - Renamed `group` field to `vlan_group` on VLAN model, renamed `ipaddresses` to `ip_addresses` on `Service` model.\r\n- [#3068](https://github.com/nautobot/nautobot/issues/3068) - Renamed `group` field to `tenant_group` on `Tenant` model.\r\n- [#3069](https://github.com/nautobot/nautobot/issues/3069) - Renamed foreign key fields and related names in Virtualization and DCIM apps to follow a common naming convention. See v2 upgrade guide for full list of changes.\r\n- [#3177](https://github.com/nautobot/nautobot/issues/3177) - Updated `VLANFactory` to generate longer and more \"realistic\" `VLAN` names.\r\n\r\n### Fixed\r\n\r\n- [#1982](https://github.com/nautobot/nautobot/issues/1982) - Fixed a UI presentation/validation issue with dynamic-groups using foreign-key filters that aren't explicitly defined in the corresponding FilterForm.\r\n- [#2808](https://github.com/nautobot/nautobot/issues/2808) - Fixed incorrectly named filters in `circuits` app.\r\n- [#3126](https://github.com/nautobot/nautobot/issues/3126) - Fixed `Interface` not raising exception when adding a `VLAN` from a different `Site` in `tagged_vlans`.\r\n- [#3153](https://github.com/nautobot/nautobot/issues/3153) - Made integration test `CableConnectFormTestCase.test_js_functionality` more resilient and less prone to erroneous failures.\r\n- [#3167](https://github.com/nautobot/nautobot/issues/3167) - Fixed `ObjectChange` records not being migrated and `legacy_role__name` not being a property in `Role` migrations.\r\n- [#3177](https://github.com/nautobot/nautobot/issues/3177) - Fixed a spurious failure in `BulkEditObjectsViewTestCase.test_bulk_edit_objects_with_constrained_permission`.\r\n\r\n### Removed\r\n\r\n- [#510](https://github.com/nautobot/nautobot/issues/510) - Removed dependency on `django-mptt`. Models (`Region`, `RackGroup`, `TenantGroup`, `InventoryItem`) that previously were based on MPTT are now implemented using `django-tree-queries` instead.\r\n- [#1731](https://github.com/nautobot/nautobot/issues/1731) - Removed redundant filters from `circuits` app.\r\n- [#2163](https://github.com/nautobot/nautobot/issues/2163) - Removed unused `NullableCharField`, `NullableCharFieldFilter` and `MACAddressField` (not to be confused with `MACAddressCharField`, which remains) classes.\r\n- [#2523](https://github.com/nautobot/nautobot/issues/2523) - Removed `django-rq` dependency and support for RQ workers.\r\n- [#2815](https://github.com/nautobot/nautobot/issues/2815) - Removed `pycryptodome` dependency as it is no longer used.\r\n- [#2993](https://github.com/nautobot/nautobot/issues/2993) - Removed `NAUTOBOT_CELERY_RESULT_BACKEND` environment variable used to customize where Celery stores task results.\r\n- [#2993](https://github.com/nautobot/nautobot/issues/2993) - Removed optional settings documentation for `CELERY_RESULT_BACKEND` as it is no longer user-serviceable.\r\n- [#2993](https://github.com/nautobot/nautobot/issues/2993) - Removed optional settings documentation for `CELERY_RESULT_BACKEND_TRANSPORT_OPTIONS` as it is no longer user-serviceable.\r\n- [#3130](https://github.com/nautobot/nautobot/issues/3130) - Removed `CSS_CLASSES` definitions from legacy `ChoiceSets`.\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @HanlinMiao\r\n* @glennmatthews\r\n* @jathanism\r\n* @timizuoebideri1\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.9...v2.0.0-alpha.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3202",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/90368362",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/90368362/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/90368362/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.9",
        "id": 90368362,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FYulq",
        "tag_name": "v1.5.9",
        "target_commitish": "main",
        "name": "v1.5.9 - 2023-01-26",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-01-27T00:18:17Z",
        "updated_at": "2023-01-27T01:18:42Z",
        "published_at": "2023-01-27T00:23:21Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/93190234",
                "id": 93190234,
                "node_id": "RA_kwDOFEucDc4Fjfha",
                "name": "nautobot-1.5.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88963198,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-01-27T01:18:37Z",
                "updated_at": "2023-01-27T01:18:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.9/nautobot-1.5.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/93190240",
                "id": 93190240,
                "node_id": "RA_kwDOFEucDc4Fjfhg",
                "name": "nautobot-1.5.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88163158,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-01-27T01:18:40Z",
                "updated_at": "2023-01-27T01:18:42Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.9/nautobot-1.5.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.9",
        "body": "## What's Changed\r\n\r\n### Changed\r\n\r\n- [#3117](https://github.com/nautobot/nautobot/issues/3117) - Update Renovate config to batch lockfile updates to next.\r\n- [#3144](https://github.com/nautobot/nautobot/issues/3144) - Updated `netutils` to `~1.4.0`\r\n- [#3171](https://github.com/nautobot/nautobot/issues/3171) - Increased maximum VLAN name length from 64 characters to 255 characters.\r\n\r\n### Fixed\r\n\r\n- [#3114](https://github.com/nautobot/nautobot/issues/3114) - Fixed Navbar scroll through top-level menu in low resolution desktop screens.\r\n- [#3155](https://github.com/nautobot/nautobot/issues/3155) - Aligned buttons on device component create page.\r\n- [#3169](https://github.com/nautobot/nautobot/issues/3169) - Fixed data mismatch in `ScheduledJob` causing celery workers to fail when running scheduled jobs created in versions prior to `v1.5.8`. \u26a0 **NOTE**: If your celery workers are failing on startup after upgrading to `v1.5.8`, you may need to purge the celery queue with `nautobot-server celery purge` or `nautobot-server celery purge -Q <queues>` to purge custom queues.\r\n\r\n## Contributors\r\n- @bryanculver\r\n- @glennmatthews\r\n- @HanlinMiao \r\n- @jlixfeld\r\n- @jathanism \r\n- @timizuoebideri1\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.8...v1.5.9",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3176",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/89977128",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/89977128/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/89977128/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.8",
        "id": 89977128,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FXPEo",
        "tag_name": "v1.5.8",
        "target_commitish": "develop",
        "name": "v1.5.8 - 2023-01-23",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-01-23T22:34:25Z",
        "updated_at": "2023-01-23T23:47:38Z",
        "published_at": "2023-01-23T22:37:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/92783827",
                "id": 92783827,
                "node_id": "RA_kwDOFEucDc4Fh8TT",
                "name": "nautobot-1.5.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88960435,
                "digest": null,
                "download_count": 9,
                "created_at": "2023-01-23T23:46:28Z",
                "updated_at": "2023-01-23T23:46:33Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.8/nautobot-1.5.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/92783844",
                "id": 92783844,
                "node_id": "RA_kwDOFEucDc4Fh8Tk",
                "name": "nautobot-1.5.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88162355,
                "digest": null,
                "download_count": 8,
                "created_at": "2023-01-23T23:46:33Z",
                "updated_at": "2023-01-23T23:47:38Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.8/nautobot-1.5.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.8",
        "body": "### Added\r\n\r\n- [#3103](https://github.com/nautobot/nautobot/issues/3103) - Added Redis troubleshooting section to installation docs.\r\n\r\n### Changed\r\n\r\n- [#3072](https://github.com/nautobot/nautobot/issues/3072) - In Nautobot's unit tests, all HTTP requests are now sent with SERVER_NAME set to `nautobot.example.com` instead of `testserver` (Django's default) and the test configuration for Nautobot itself sets `ALLOWED_HOSTS` to expect `nautobot.example.com`. This is intended to protect against issues such as #3065.\r\n- [#3077](https://github.com/nautobot/nautobot/issues/3077) - Updated Nautobot release checklist to reflect current branching and pull request process.\r\n- [#3112](https://github.com/nautobot/nautobot/issues/3112) - Converted eligible `prefetch_related()` to `select_related()` queries. Users should note a performance gain from this change, but note that cacheops is no longer recommended in v1.5 and this change will likely result in invalid data responses if cacheops remains enabled in your environment. Cacheops will be removed entirely in a future release.\r\n- [#3121](https://github.com/nautobot/nautobot/issues/3121) - Updated Config Contexts documentation to denote support for associating by Device Redundancy Group membership.\r\n\r\n### Fixed\r\n\r\n- [#2244](https://github.com/nautobot/nautobot/issues/2244) - Fixed an unnecessary and sometimes problematic database access from the Celery worker before it forks off to execute an individual job.\r\n- [#3097](https://github.com/nautobot/nautobot/issues/3097) - Fixed scrolling past select dropdown in modals.\r\n- [#3104](https://github.com/nautobot/nautobot/issues/3104) - Fixed bug preventing filters from being removed from list views.\r\n\r\n### Security\r\n\r\n- [#3055](https://github.com/nautobot/nautobot/issues/3055) - Updated `setuptools` to `65.5.1` to address `CVE-2022-40897`. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#3082](https://github.com/nautobot/nautobot/issues/3082) - Updated `gitpython` to `~3.1.30` to address `CVE-2022-24439`.\r\n- [#3119](https://github.com/nautobot/nautobot/issues/3119) - Updated `future` to `0.18.3` due to `CVE-2022-40899`. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @glennmatthews\r\n* @bryanculver\r\n* @lampwins\r\n* @itdependsnetworks\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.7...v1.5.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3147",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/87947116",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/87947116/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/87947116/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.7",
        "id": 87947116,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FPfds",
        "tag_name": "v1.5.7",
        "target_commitish": "main",
        "name": "v1.5.7 - 2023-01-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2023-01-04T22:07:18Z",
        "updated_at": "2023-01-04T23:14:01Z",
        "published_at": "2023-01-04T22:13:14Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/90530401",
                "id": 90530401,
                "node_id": "RA_kwDOFEucDc4FZWJh",
                "name": "nautobot-1.5.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88955035,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-01-04T23:13:52Z",
                "updated_at": "2023-01-04T23:13:56Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.7/nautobot-1.5.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/90530402",
                "id": 90530402,
                "node_id": "RA_kwDOFEucDc4FZWJi",
                "name": "nautobot-1.5.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88159249,
                "digest": null,
                "download_count": 7,
                "created_at": "2023-01-04T23:13:56Z",
                "updated_at": "2023-01-04T23:14:01Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.7/nautobot-1.5.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.7",
        "body": "### Fixed\r\n\r\n- [#3065](https://github.com/nautobot/nautobot/issues/3065) - Rolled back the changes made in 1.5.6 by #3016 to fix a breaking issue with `ALLOWED_HOSTS` and change-logging.\r\n\r\n### Security\r\n\r\n- [#3074](https://github.com/nautobot/nautobot/issues/3074) - Sandboxed rendering of Jinja2 templates is now enforced by default in keeping with [Jinja2 best practices](https://jinja.palletsprojects.com/en/3.0.x/sandbox/#sandbox). To enable template sandboxing in a Nautobot instance without needing to upgrade, add the following value to your `nautobot_config.py` and restart your Nautobot services: `TEMPLATES[1][\"OPTIONS\"][\"environment\"] = \"jinja2.sandbox.SandboxedEnvironment\"`\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @jathanism\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.6...v1.5.7",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/87245423",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/87245423/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/87245423/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.6",
        "id": 87245423,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FM0Jv",
        "tag_name": "v1.5.6",
        "target_commitish": "develop",
        "name": "v1.5.6 - 2022-12-26",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-12-26T13:42:26Z",
        "updated_at": "2022-12-26T15:04:08Z",
        "published_at": "2022-12-26T14:08:35Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/89543492",
                "id": 89543492,
                "node_id": "RA_kwDOFEucDc4FVlNE",
                "name": "nautobot-1.5.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88955449,
                "digest": null,
                "download_count": 11,
                "created_at": "2022-12-26T15:04:03Z",
                "updated_at": "2022-12-26T15:04:06Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.6/nautobot-1.5.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/89543496",
                "id": 89543496,
                "node_id": "RA_kwDOFEucDc4FVlNI",
                "name": "nautobot-1.5.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 88159407,
                "digest": null,
                "download_count": 32,
                "created_at": "2022-12-26T15:04:06Z",
                "updated_at": "2022-12-26T15:04:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.6/nautobot-1.5.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.6",
        "body": "### Added\r\n\r\n- [#1768](https://github.com/nautobot/nautobot/issues/1768) - Added the display of half-depth rack items from the rear face.\r\n- [#2481](https://github.com/nautobot/nautobot/issues/2481) - Added `clone_fields` definition to Custom Field class.\r\n- [#2511](https://github.com/nautobot/nautobot/issues/2511) - Added mouseover help text for cable connect buttons on DeviceConsolePortTable, DeviceConsoleServerPortTable, DevicePowerPortTable, DeviceInterfaceTable, DeviceFrontPortTable, DeviceRearPortTable.\r\n- [#2951](https://github.com/nautobot/nautobot/issues/2951) - Added change logging when relationships are changed.\r\n- [#2966](https://github.com/nautobot/nautobot/issues/2966) - Added device name to rack elevation with images.\r\n- [#3014](https://github.com/nautobot/nautobot/issues/3014) - Added support for Git repositories to provide config contexts filtered by Location.\r\n- [#3025](https://github.com/nautobot/nautobot/issues/3025) - Added plugin banner test back to ListObjectsViewTestCase and ensured `example_plugin` installation before running it.\r\n\r\n### Changed\r\n\r\n- [#2589](https://github.com/nautobot/nautobot/issues/2589) - Updated all screenshots on the README.md to gifs.\r\n- [#2970](https://github.com/nautobot/nautobot/issues/2970) - Updated `certifi` to `2022.12.7` for `CVE-2022-23491`. This is a nested dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#2994](https://github.com/nautobot/nautobot/issues/2994) - Updated `mkdocs-material` to `8.5.11`.\r\n- [#2995](https://github.com/nautobot/nautobot/issues/2995) - Updated `Poetry` lockfile to use new v2 version format (requiring `Poetry>=1.3`).\r\n- [#2995](https://github.com/nautobot/nautobot/issues/2995) - Updated included `poetry` version in `nautobot-dev` container to `1.3.1`.\r\n\r\n### Fixed\r\n\r\n- [#2898](https://github.com/nautobot/nautobot/issues/2898) - Disabled sorting on Computed Field column.\r\n- [#2967](https://github.com/nautobot/nautobot/issues/2967) - Fixed inverted device images in dark mode.\r\n- [#2989](https://github.com/nautobot/nautobot/issues/2989) - Fixed legacy filters displaying UUIDs instead of user-friendly display names.\r\n- [#2999](https://github.com/nautobot/nautobot/issues/2999) - Fixed several missing fields in the UI when bulk-adding components to a list of devices.\r\n- [#3018](https://github.com/nautobot/nautobot/issues/3018) - Fixed rendering of Select2 widgets in modal dialogs.\r\n- [#3028](https://github.com/nautobot/nautobot/issues/3028) - Fixed filter fields on advanced filter form not being alpha-sorted.\r\n- [#3036](https://github.com/nautobot/nautobot/issues/3036) - Fixed MultiValueUUIDFilter's value input field in ObjectListView Advanced FilterSet Form.\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @zackt25\r\n* @bryanculver\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @lschweiss\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.5...v1.5.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/3053",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/85779124",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/85779124/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/85779124/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.5",
        "id": 85779124,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FHOK0",
        "tag_name": "v1.5.5",
        "target_commitish": "develop",
        "name": "v1.5.5 - 2022-12-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-12-12T19:07:21Z",
        "updated_at": "2022-12-12T20:17:50Z",
        "published_at": "2022-12-12T19:18:56Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/87941082",
                "id": 87941082,
                "node_id": "RA_kwDOFEucDc4FPd_a",
                "name": "nautobot-1.5.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 52638013,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-12-12T20:17:47Z",
                "updated_at": "2022-12-12T20:17:48Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.5/nautobot-1.5.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/87941085",
                "id": 87941085,
                "node_id": "RA_kwDOFEucDc4FPd_d",
                "name": "nautobot-1.5.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 51849316,
                "digest": null,
                "download_count": 17,
                "created_at": "2022-12-12T20:17:49Z",
                "updated_at": "2022-12-12T20:17:50Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.5/nautobot-1.5.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.5",
        "body": "### Changed\r\n\r\n- [#2663](https://github.com/nautobot/nautobot/issues/2663) - Changed `tags` field in ConfigContextForm to `DynamicModelMultipleChoiceField`.\r\n\r\n### Fixed\r\n\r\n- [#2948](https://github.com/nautobot/nautobot/issues/2948) - Fixed incorrect assumption in test base that `example_plugin` would always be installed.\r\n- [#2962](https://github.com/nautobot/nautobot/issues/2962) - Fixed an error raised when logging errors about a `Secret` with an invalid `provider`.\r\n- [#2963](https://github.com/nautobot/nautobot/issues/2963) - Fixed 500 error when combining filtering on relationships with concrete fields.\r\n\r\n## Contributors\r\n* @bryanculver\r\n* @HanlinMiao\r\n* @glennmatthews\r\n* @jathanism\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.4...v1.5.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2984",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/84870333",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/84870333/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/84870333/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.4",
        "id": 84870333,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FDwS9",
        "tag_name": "v1.5.4",
        "target_commitish": "develop",
        "name": "v1.5.4 - 2022-12-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-12-02T23:53:03Z",
        "updated_at": "2022-12-03T01:00:10Z",
        "published_at": "2022-12-02T23:57:08Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/86817456",
                "id": 86817456,
                "node_id": "RA_kwDOFEucDc4FLLqw",
                "name": "nautobot-1.5.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 52637183,
                "digest": null,
                "download_count": 18,
                "created_at": "2022-12-03T01:00:06Z",
                "updated_at": "2022-12-03T01:00:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.4/nautobot-1.5.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/86817461",
                "id": 86817461,
                "node_id": "RA_kwDOFEucDc4FLLq1",
                "name": "nautobot-1.5.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 51849543,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-12-03T01:00:08Z",
                "updated_at": "2022-12-03T01:00:10Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.4/nautobot-1.5.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.4",
        "body": "### Added\r\n\r\n- [#86](https://github.com/nautobot/nautobot/issues/86) - Added user-guide for relationships and S3 storage backends.\r\n\r\n### Fixed\r\n\r\n- [#2154](https://github.com/nautobot/nautobot/issues/2154) - Fixed SwaggerUI use of Authorization Token, API calls in SwaggerUI now use appropriate token pattern and curl command match the correct pattern.\r\n- [#2931](https://github.com/nautobot/nautobot/issues/2931) - Fixed title and breadcrumb rendering in NautobotUIViewSet list views.\r\n- [#2936](https://github.com/nautobot/nautobot/issues/2936) - Fixed NautobotUIViewSet views not being able to delete objects.\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @whitej6\r\n* @jeffkala\r\n* @bryanculver\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.3...v1.5.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2940",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/84506757",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/84506757/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/84506757/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.3",
        "id": 84506757,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FCXiF",
        "tag_name": "v1.5.3",
        "target_commitish": "develop",
        "name": "v1.5.3 - 2022-11-29",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-11-29T21:45:25Z",
        "updated_at": "2022-11-29T22:54:31Z",
        "published_at": "2022-11-29T21:46:41Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/86422812",
                "id": 86422812,
                "node_id": "RA_kwDOFEucDc4FJrUc",
                "name": "nautobot-1.5.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 50443471,
                "digest": null,
                "download_count": 15,
                "created_at": "2022-11-29T22:54:27Z",
                "updated_at": "2022-11-29T22:54:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.3/nautobot-1.5.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/86422818",
                "id": 86422818,
                "node_id": "RA_kwDOFEucDc4FJrUi",
                "name": "nautobot-1.5.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49670041,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-11-29T22:54:29Z",
                "updated_at": "2022-11-29T22:54:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.3/nautobot-1.5.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.3",
        "body": "### Fixed\r\n\r\n - [#2924](https://github.com/nautobot/nautobot/issues/2924) - Fix deprecation warning flag check throwing error on startup with plugins installed.\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.2...v1.5.3",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2927"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/84379460",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/84379460/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/84379460/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.2",
        "id": 84379460,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4FB4dE",
        "tag_name": "v1.5.2",
        "target_commitish": "develop",
        "name": "v1.5.2 - 2022-11-23",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-11-28T21:03:24Z",
        "updated_at": "2022-11-28T22:05:57Z",
        "published_at": "2022-11-28T21:07:08Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/86279285",
                "id": 86279285,
                "node_id": "RA_kwDOFEucDc4FJIR1",
                "name": "nautobot-1.5.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 50442776,
                "digest": null,
                "download_count": 18,
                "created_at": "2022-11-28T22:05:53Z",
                "updated_at": "2022-11-28T22:05:55Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.2/nautobot-1.5.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/86279291",
                "id": 86279291,
                "node_id": "RA_kwDOFEucDc4FJIR7",
                "name": "nautobot-1.5.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49668543,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-11-28T22:05:56Z",
                "updated_at": "2022-11-28T22:05:57Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.2/nautobot-1.5.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.2",
        "body": "### Added\r\n\r\n- [#1273](https://github.com/nautobot/nautobot/issues/1273) - Added section \"VS Code Remote Debugging Configuration\" to development chapter in documentation.\r\n- [#2473](https://github.com/nautobot/nautobot/issues/2473) - Added `multipart/form-data` support to Job run API.\r\n- [#2723](https://github.com/nautobot/nautobot/issues/2723) - Added `nautobot.apps` module to provide a central location for code that is recommended for use by Nautobot apps (plugins).\r\n- [#2723](https://github.com/nautobot/nautobot/issues/2723) - Added code reference documentation for the `nautobot.apps` module.\r\n- [#2759](https://github.com/nautobot/nautobot/issues/2759) - Add prometheus metrics for health check results\r\n- [#2798](https://github.com/nautobot/nautobot/issues/2798) - Added `LOG_DEPRECATION_WARNINGS` configuration variable and corresponding environment-variable support.\r\n\r\n### Changed\r\n\r\n- [#2644](https://github.com/nautobot/nautobot/issues/2644) - Changed published accepted content types for REST API to remove unsupported types.\r\n- [#2723](https://github.com/nautobot/nautobot/issues/2723) - Moved app (plugin) development documentation into its own section.\r\n- [#2723](https://github.com/nautobot/nautobot/issues/2723) - Revised \"plugin\" development documentation to refer to \"apps\" instead where appropriate.\r\n- [#2779](https://github.com/nautobot/nautobot/issues/2779) - Renamed many mixin classes for clarity and consistency. Aliases remain but will raise `DeprecationWarning`.\r\n- [#2779](https://github.com/nautobot/nautobot/issues/2779) - Reorganized filterset code and created `nautobot.dcim.filters.mixins`, `nautobot.extras.filters.mixins`, and `nautobot.tenancy.filters.mixins` submodules.\r\n- [#2798](https://github.com/nautobot/nautobot/issues/2798) - Changed logging of Nautobot deprecation warnings to be silent by default (can be enabled with `DEBUG` or `LOG_DEPRECATION_WARNINGS` settings).\r\n- [#2814](https://github.com/nautobot/nautobot/issues/2814) - Update dependency `netutils` to `~1.3.0`.\r\n- [#2817](https://github.com/nautobot/nautobot/issues/2817) - Update docs to not indicate prompt, makes for better use of copy code snippet feature of MkDocs\r\n- [#2838](https://github.com/nautobot/nautobot/issues/2838) - Fixed filter selection box colors in dark mode.\r\n- [#2878](https://github.com/nautobot/nautobot/issues/2878) - Changed Upstream Workflow Job to continue on error for group, not each specific job.\r\n\r\n### Fixed\r\n\r\n- [#1519](https://github.com/nautobot/nautobot/issues/1519) - Extending the model table columns that need to display copy button when hovered over.\r\n- [#2477](https://github.com/nautobot/nautobot/issues/2477) - Fixed last login time being updated during maintenance mode when remote user authentication is used.\r\n- [#2744](https://github.com/nautobot/nautobot/issues/2744) - Enforced required Relationships when bulk editing or creating objects that have required relationships. Bulk edit via API or UI. Bulk create via API.\r\n- [#2774](https://github.com/nautobot/nautobot/issues/2774) - Fixed SiteFactory time_zone attribute to use only `pytz.common_timezones`.\r\n- [#2795](https://github.com/nautobot/nautobot/issues/2795) - Fixed changelog diff data to fall back to `object_data` when `object_data_v2` is not present for both `ObjectChange` instances.\r\n- [#2816](https://github.com/nautobot/nautobot/issues/2816) - Fixed issue where changing the interface mode first required removing tagged_vlans in a different request.\r\n- [#2819](https://github.com/nautobot/nautobot/issues/2819) - Adds appropriate invoke task for running docs locally and adds how to run manually.\r\n- [#2833](https://github.com/nautobot/nautobot/issues/2833) - Fixed plugin banner issue and breadcrumb rendering issue in NautobotHTMLRenderer.\r\n- [#2837](https://github.com/nautobot/nautobot/issues/2837) - Fixed incorrect logic in `nautobot.utilities.utils.is_single_choice_field` that was causing valid filters to report as invalid.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @jifox\r\n* @matt852\r\n* @timizuoebideri1\r\n* @briddo\r\n* @christhant\r\n* @bryanculver\r\n* @joaopsys\r\n* @Kircheneer\r\n* @jvanderaa\r\n\r\n## New Contributors\r\n* @joaopsys made their first contribution in https://github.com/nautobot/nautobot/pull/2656\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.5.1...v1.5.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2918",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/83053702",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/83053702/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/83053702/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.1",
        "id": 83053702,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4E80yG",
        "tag_name": "v1.5.1",
        "target_commitish": "main",
        "name": "v1.5.1 (2022-11-14)",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-11-14T23:04:26Z",
        "updated_at": "2022-11-15T00:17:28Z",
        "published_at": "2022-11-14T23:19:51Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/84626519",
                "id": 84626519,
                "node_id": "RA_kwDOFEucDc4FC0xX",
                "name": "nautobot-1.5.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49808936,
                "digest": null,
                "download_count": 14,
                "created_at": "2022-11-15T00:17:24Z",
                "updated_at": "2022-11-15T00:17:26Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.1/nautobot-1.5.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/84626525",
                "id": 84626525,
                "node_id": "RA_kwDOFEucDc4FC0xd",
                "name": "nautobot-1.5.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49071054,
                "digest": null,
                "download_count": 11,
                "created_at": "2022-11-15T00:17:27Z",
                "updated_at": "2022-11-15T00:17:28Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.1/nautobot-1.5.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.1",
        "body": "### Added\r\n\r\n- [#2500](https://github.com/nautobot/nautobot/issues/2500) - Added `try/except` block to catch `NoReverseMatch` exception in NotesSerializerMixin and return helpful message.\r\n- [#2556](https://github.com/nautobot/nautobot/issues/2556) - Revised TODO/FIXME comments for more clarity.\r\n- [#2740](https://github.com/nautobot/nautobot/issues/2740) - Added ObjectChangeLogView and ObjectNotesView Viewset mixins and routes.\r\n\r\n### Changed\r\n\r\n- [#1813](https://github.com/nautobot/nautobot/issues/1813) - Updated Example_Plugin to use NautobotUIViewSet.\r\n\r\n### Fixed\r\n\r\n- [#2470](https://github.com/nautobot/nautobot/issues/2470) - Fixed incorrect automatic generation of Location slugs in the UI.\r\n- [#2757](https://github.com/nautobot/nautobot/issues/2757) - Fixed filters on default filter form replaces filters on dynamic filter form on submit\r\n- [#2761](https://github.com/nautobot/nautobot/issues/2761) - Fixed failover strategy not being displayed on Device Redundancy Group page.\r\n- [#2789](https://github.com/nautobot/nautobot/issues/2789) - Fixed web UI footer margin and swagger UI authorization box size.\r\n- [#2824](https://github.com/nautobot/nautobot/issues/2824) - Fixed an issue when filtering on nested related fields for Dynamic Groups.\r\n\r\n## Contributors\r\n\r\n- @glennmatthews\r\n- @HanlinMiao\r\n- @jathanism\r\n- @smk4664\r\n- @timizuoebideri1\r\n- @gsnider2195 \r\n\r\n**Full Changelog:** https://github.com/nautobot/nautobot/compare/v1.5.0...v1.5.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2829",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/82436965",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/82436965/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/82436965/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.0",
        "id": 82436965,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4E6eNl",
        "tag_name": "v1.5.0",
        "target_commitish": "develop",
        "name": "v1.5.0 - 2022-11-08",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-11-08T20:20:46Z",
        "updated_at": "2022-11-08T21:23:10Z",
        "published_at": "2022-11-08T20:23:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/83925441",
                "id": 83925441,
                "node_id": "RA_kwDOFEucDc4FAJnB",
                "name": "nautobot-1.5.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49804494,
                "digest": null,
                "download_count": 12,
                "created_at": "2022-11-08T21:23:06Z",
                "updated_at": "2022-11-08T21:23:08Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.0/nautobot-1.5.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/83925452",
                "id": 83925452,
                "node_id": "RA_kwDOFEucDc4FAJnM",
                "name": "nautobot-1.5.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49066688,
                "digest": null,
                "download_count": 11,
                "created_at": "2022-11-08T21:23:08Z",
                "updated_at": "2022-11-08T21:23:10Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.0/nautobot-1.5.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.0",
        "body": "## Release Overview\r\n\r\n### Added\r\n\r\n#### Custom Field Grouping ([#899](https://github.com/nautobot/nautobot/issues/899))\r\n\r\nCustom fields can now be assigned to a free-text \"grouping\" to improve usability when a large number of custom fields are defined on a given model. In the UI, fields in the same grouping will be grouped together, and groupings can be expanded/collapsed for display purposes.\r\n\r\n#### Device Redundancy Groups ([#1892](https://github.com/nautobot/nautobot/issues/1892))\r\n\r\nDevice Redundancy Groups have been added to model groups of distinct devices that perform device clustering or failover high availability functions. This may be used to model whole device redundancy strategies across devices with separate control planes (ex: ASA failover), not devices that share a control plane (ex: stackwise switch stacks), or interface specific redundancy strategies (ex: hsrp). Device Redundancy Groups support grouping an arbitrary number of devices and may be assigned an optional secrets group and one or more optional failover strategies.\r\n\r\n#### Custom Celery Task Queues ([#2421](https://github.com/nautobot/nautobot/pull/2421))\r\n\r\nA new optional job property `task_queues` has been introduced to allow Nautobot to leverage custom celery queues for jobs. This will allow you to send jobs to specific workers based on which queue is selected. This property can be set on the job class and overridden in the job model, similar to other overridable job fields. If `task_queues` is not defined on the job class or job model, the job will only be able to use the default queue. A new field has been added to the job run form to allow you to select a queue when you run the job and  an optional field `task_queue` has been added to the REST API [job run endpoint](../additional-features/jobs.md#via-the-api) for the same purpose.\r\n\r\n> The default celery queue name has been changed from `celery` to `default`. If you have any workers or tasks hard coded to use `celery` you will need to update those workers/tasks or change the [`CELERY_TASK_DEFAULT_QUEUE`](../configuration/optional-settings.md#celery_task_default_queue) setting in your `nautobot_config.py`.\r\n\r\n#### Added `nautobot-server generate_test_data` command ([#2536](https://github.com/nautobot/nautobot/issues/2536))\r\n\r\nA new management command, [`nautobot-server generate_test_data`](../administration/nautobot-server.md#generate_test_data), has been added that can be used to populate the Nautobot database with various data as a baseline for manual or automated testing. This is now used internally by Nautobot's unit testing suite to create a synthetic data set that looks and feels like real data with randomly-generated values. Most importantly, the objects are created with all of the fields fully and correctly populated, to assert that each object in the database is properly exercising all features.\r\n\r\n> Be very cautious about running this command on your server instance. It is not intended to be used in production environments and will result in data loss.\r\n\r\n#### Nestable LocationTypes ([#2608](https://github.com/nautobot/nautobot/issues/2608))\r\n\r\n`LocationType` definitions can now be flagged as `nestable`. When this flag is set, Locations of this type may nest within one another, similar to how Regions work at present. This allows you to have a variable-depth hierarchy of Locations, for example:\r\n\r\n- Main Campus (\"Building Group\" location type)\r\n    - West Campus (Building Group)\r\n        - Building A (\"Building\" location type)\r\n        - Building B (Building)\r\n    - East Campus (Building Group)\r\n        - Building C (Building)\r\n        - Building D (Building)\r\n    - South Campus (Building Group)\r\n        - Western South Campus (Building Group)\r\n            - Building G (Building)\r\n- Satellite Campus (Building Group)\r\n    - Building Z (Building)\r\n\r\nIn the above example, only two LocationTypes are defined (\"Building Group\" and \"Building\") but the \"Building Group\" type is flagged as nestable, so one Building Group may contain another Building Group.\r\n\r\n#### Required Relationships ([#873](https://github.com/nautobot/nautobot/issues/873))\r\n\r\nRelationships can be marked as being required. By default, relationships are not marked as being required.\r\n\r\nTo mark a relationship as being required, select \"Source objects MUST implement this relationship\" or conversely \"\r\nDestination objects MUST implement this relationship\" from the \"Required on\" field when editing or creating a\r\nrelationship:\r\n\r\n- If \"Destination objects MUST implement this relationship\" is selected, objects of the type selected in \"Destination Type\" will enforce this relationship when they are created or edited.\r\n- If \"Source objects MUST implement this relationship\" is selected, objects of the type selected in \"Source Type\" will enforce this relationship when they are created or edited.\r\n\r\n### Changed\r\n\r\n#### Database Query Caching is now Disabled by Default ([#1721](https://github.com/nautobot/nautobot/issues/1721))\r\n\r\nIn prior versions of Nautobot, database query caching using the [`django-cacheops`](https://github.com/Suor/django-cacheops) application (aka Cacheops) was enabled by default. This is determined by the default value of the [`CACHEOPS_ENABLED`](../configuration/optional-settings.md#cacheops_enabled) setting being set to `True`.\r\n\r\nThrough much trial and error we ultimately decided that this feature is more trouble than it is worth and we have begun to put more emphasis on improving performance of complex database queries over continuing to rely upon the various benefits and pitfalls of utilizing Cacheops.\r\n\r\nAs a result, the value of this setting now defaults to `False`, disabling database query caching entirely for new deployments. Cacheops will be removed entirely in a future release.\r\n\r\n> Users with existing `nautobot_config.py` files generated from earlier versions of Nautobot will still have `CACHEOPS_ENABLED = True` unless they modify or regenerate their configuration. If users no longer desire caching, please be sure to explicitly toggle the value of this setting to `False` and restart your Nautobot services.\r\n\r\n#### Redesigned List Filtering UI ([#1998](https://github.com/nautobot/nautobot/issues/1998))\r\n\r\nAdded a dynamic filter form that allows users to filter object tables/lists by any field and lookup expression combination supported by the corresponding FilterSet and API.\r\n\r\n---\r\n\r\n> v1.5.0 is unchanged from v1.5.0-beta.1\r\n\r\n### Added\r\n\r\n- [#270](https://github.com/nautobot/nautobot/issues/270) - Added custom fields user guide to documentation.\r\n- [#873](https://github.com/nautobot/nautobot/issues/873) - Made it possible to require Relationships to be included when editing or creating the related models.\r\n- [#899](https://github.com/nautobot/nautobot/issues/899) - Added support for grouping of Custom Fields.\r\n- [#1468](https://github.com/nautobot/nautobot/issues/1468) - Added relationship columns to ObjectListTableView and disabled sorting.\r\n- [#1892](https://github.com/nautobot/nautobot/issues/1892) - Added `DeviceRedundancyGroup` model for representing a logical grouping of physical hardware for the purposes of high-availability.\r\n- [#2063](https://github.com/nautobot/nautobot/issues/2063) - Added documentation and initial support for custom celery queues.\r\n- [#2064](https://github.com/nautobot/nautobot/issues/2064) - Added `task_queues` job property to support custom celery queues.\r\n- [#2227](https://github.com/nautobot/nautobot/issues/2227) - Added generating performance report options to 'invoke unittest'.\r\n- [#2227](https://github.com/nautobot/nautobot/issues/2227) - Added `invoke performance-test` to `tasks.py`.\r\n- [#2281](https://github.com/nautobot/nautobot/issues/2281) - Added test database fixtures for Tag and Status models.\r\n- [#2282](https://github.com/nautobot/nautobot/issues/2282) - Added fixture factory for Region, Site, Location, LocationType.\r\n- [#2283](https://github.com/nautobot/nautobot/issues/2283) - Added test fixture factories for Prefix and IPAddress models.\r\n- [#2460](https://github.com/nautobot/nautobot/issues/2460) - Added search box filter form to generic list views.\r\n- [#2479](https://github.com/nautobot/nautobot/issues/2479) - Added `factory-boy` as development dependency. Added factories for Tenant, TenantGroup, RIR, and Aggregate models. Updated test runner global setup to use these factories to pre-populate baseline data.\r\n- [#2514](https://github.com/nautobot/nautobot/issues/2514) - Added test factories for RouteTarget, VRF, Role, VLANGroup, and VLAN models.\r\n- [#2514](https://github.com/nautobot/nautobot/issues/2514) - Added `OrganizationalModelFactory` and `PrimaryModelFactory` base classes.\r\n- [#2514](https://github.com/nautobot/nautobot/issues/2514) - Added `TenancyFilterTestCaseMixin` class.\r\n- [#2518](https://github.com/nautobot/nautobot/issues/2518) - Added `base_site` and `subtree` filters to `LocationFilterSet`, allowing for filtering Locations by their root ancestor or its Site.\r\n- [#2536](https://github.com/nautobot/nautobot/issues/2536) - Added `nautobot-server generate_test_data` command.\r\n- [#2536](https://github.com/nautobot/nautobot/issues/2536) - Added `TEST_USE_FACTORIES` and `TEST_FACTORY_SEED` optional settings.\r\n- [#2593](https://github.com/nautobot/nautobot/issues/2593) - Added StatusFactory and TagFactory classes.\r\n- [#2594](https://github.com/nautobot/nautobot/issues/2594) - Added factories for DCIM `DeviceRole`, `DeviceType`, `Manufacturer`, and `Platform`.\r\n- [#2608](https://github.com/nautobot/nautobot/issues/2608) - Added the option for certain LocationTypes to be nestable (similar to Regions).\r\n- [#2617](https://github.com/nautobot/nautobot/issues/2617) - Added dynamic filter form support to specialized list views.\r\n- [#2686](https://github.com/nautobot/nautobot/issues/2686) - Added test helper method to `FilterTestCases` to find values suitable for testing multiple choice filters.\r\n\r\n### Changed\r\n\r\n- [#1892](https://github.com/nautobot/nautobot/issues/1892) - Updated `Device` to have `device_redundancy_group` relationship, `device_redundancy_group_priority` numeric property.\r\n- [#1892](https://github.com/nautobot/nautobot/issues/1892) - Updated `ConfigContext` to have `ManyToManyField` to `dcim.DeviceRedundancyGroup` for the purposes of applying a `ConfigContext` based upon a `Device`s `DeviceRedundancyGroup` membership.\r\n- [#1983](https://github.com/nautobot/nautobot/issues/1983) - Updated `django-taggit` dependency to 3.0.0.\r\n- [#1998](https://github.com/nautobot/nautobot/issues/1998) - Added DynamicFilterForm to list views.\r\n- [#2064](https://github.com/nautobot/nautobot/issues/2064) - Changed default celery queue name from `celery` to `default`.\r\n- [#2170](https://github.com/nautobot/nautobot/issues/2170) - Updated `django-constance` dependency to 2.9.1; updated `Jinja2` dependency to 3.1.2; updated `black` development dependency to 22.8.0.\r\n- [#2282](https://github.com/nautobot/nautobot/issues/2282) - Changed unittests to use Site, Region, Location, LocationType fixtures.\r\n- [#2320](https://github.com/nautobot/nautobot/issues/2320) - Removed PKs from Tag test database fixture.\r\n- [#2482](https://github.com/nautobot/nautobot/issues/2482) - Updated `djangorestframework` to `~3.14.0`, `drf-spectacular` to `0.24.2`.\r\n- [#2483](https://github.com/nautobot/nautobot/issues/2483) - Updated `mkdocs` to 1.4.2 and `mkdocs-material` to 8.5.8.\r\n- [#2484](https://github.com/nautobot/nautobot/issues/2484) - Updated `django-debug-toolbar` to `~3.7.0`\r\n- [#2551](https://github.com/nautobot/nautobot/issues/2551) - Updated development dependency on `coverage` to version 6.5.0.\r\n- [#2562](https://github.com/nautobot/nautobot/issues/2562) - Updated `django-mptt` dependency to 0.14.0.\r\n- [#2597](https://github.com/nautobot/nautobot/issues/2597) - Updated `GitPython` dependency from 3.1.27 to 3.1.29.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Changed `ConfigContextFilterForm`s `schema` filter form field to support added filter field on `ConfigContextFilterSet`.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Changed `BaseNetworkQuerySet` and `IPAddressQuerySet` to search both IPv6 and IPv4 when given search string is ambiguous.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Changed `test_slug_not_modified` to ensure no collision on new slug source value as well as changing lookup expression from `__contains` to `__exact`.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Changed `DeleteObjectViewTestCase.get_deletable_object` to throw a helpful failure message when deletable object not found.\r\n- [#2645](https://github.com/nautobot/nautobot/issues/2645) - Updated `psycopg2-binary` dependency from 2.9.3 to 2.9.5.\r\n- [#2710](https://github.com/nautobot/nautobot/issues/2710) - Updated `pyuwsgi` minimum version from 2.0.20 to 2.0.21.\r\n- [#2711](https://github.com/nautobot/nautobot/issues/2711) - Updated `Pillow` package dependency from 9.2.0 to 9.3.0.\r\n- [#2746](https://github.com/nautobot/nautobot/issues/2746) - Changed `LocationType` test case to not attempt to re-parent a `LocationType` with descendant `Locations`.\r\n\r\n### Fixed\r\n\r\n- [#192](https://github.com/nautobot/nautobot/issues/192) - Eliminated Unit Test noisy output.\r\n- [#2266](https://github.com/nautobot/nautobot/issues/2266) - Fixed navbar floating over main viewport scrollbar.\r\n- [#2388](https://github.com/nautobot/nautobot/issues/2388) - Return \"\u2014\" instead of \"None\" when relationship column is empty.\r\n- [#2536](https://github.com/nautobot/nautobot/issues/2536) - Made use of test factories optional when using Nautobot test runner.\r\n- [#2555](https://github.com/nautobot/nautobot/issues/2555) - Fixed broken accordion for Job list view.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `ConfigContextFilterSet` missing `schema` filter but existed on form.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `Device(Form)TestCase` flaky test setup possibly not finding a `DeviceType` with a `Manufacturer` with associated `Platform`s that is full depth and 1U height.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `Location(View)TestCase`, `RouteTarget(View)TestCase` flaky test setup possibly finding names for `csv_data` that might include commas but not escaped.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `PrefixFactory` may randomly decide to create a child of `2.2.2.2/32`.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `BaseNetworkQuerySet` and `IPAddressQuerySet` only searching non-abbreviated first hextet IPv6 addresses.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `DynamicFilterLookupExpressionTest`, `VirtualChassis(Filter)TestCase`, `Cluster(Filter)TestCase`, `VirtualMachine(Filter)TestCase` had too narrow of a region lookup for supported tests.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `RackGroup(Model)Test`, `Prefix(Model)Test`, `VLANGroup(Model)Test` may randomly choose to update to the same site.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `Tenant(View)TestCase`, `RIR(View)TestCase` may not find deletable objects.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `VLAN(View)TestCase` may not find enough `Site`s with `Location`s.\r\n- [#2691](https://github.com/nautobot/nautobot/issues/2691) - Fixed hard coded tests that were failing after factory fixtures were integrated.\r\n- [#2746](https://github.com/nautobot/nautobot/issues/2746) - Fixed Site `latitude`, `longitude` clean method for when valid string value entered.\r\n\r\n### Removed\r\n\r\n- [#2593](https://github.com/nautobot/nautobot/issues/2593) - Removed static test fixtures since we're using factories now instead.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @jathanism\r\n* @timizuoebideri1\r\n* @bryanculver\r\n* @briddo\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.10...v1.5.0",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2775",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/82318641",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/82318641/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/82318641/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.5.0-beta.1",
        "id": 82318641,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4E6BUx",
        "tag_name": "v1.5.0-beta.1",
        "target_commitish": "develop",
        "name": "v1.5.0-beta.1 - 2022-11-07",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2022-11-07T21:17:33Z",
        "updated_at": "2022-11-07T23:08:33Z",
        "published_at": "2022-11-07T21:25:31Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/83805662",
                "id": 83805662,
                "node_id": "RA_kwDOFEucDc4E_sXe",
                "name": "nautobot-1.5.0b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49804428,
                "digest": null,
                "download_count": 11,
                "created_at": "2022-11-07T23:08:29Z",
                "updated_at": "2022-11-07T23:08:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.0-beta.1/nautobot-1.5.0b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/83805664",
                "id": 83805664,
                "node_id": "RA_kwDOFEucDc4E_sXg",
                "name": "nautobot-1.5.0b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49067760,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-11-07T23:08:31Z",
                "updated_at": "2022-11-07T23:08:33Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.5.0-beta.1/nautobot-1.5.0b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.5.0-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.5.0-beta.1",
        "body": "## Release Overview\r\n\r\n### Added\r\n\r\n#### Custom Field Grouping ([#899](https://github.com/nautobot/nautobot/issues/899))\r\n\r\nCustom fields can now be assigned to a free-text \"grouping\" to improve usability when a large number of custom fields are defined on a given model. In the UI, fields in the same grouping will be grouped together, and groupings can be expanded/collapsed for display purposes.\r\n\r\n#### Device Redundancy Groups ([#1892](https://github.com/nautobot/nautobot/issues/1892))\r\n\r\nDevice Redundancy Groups have been added to model groups of distinct devices that perform device clustering or failover high availability functions. This may be used to model whole device redundancy strategies across devices with separate control planes (ex: ASA failover), not devices that share a control plane (ex: stackwise switch stacks), or interface specific redundancy strategies (ex: hsrp). Device Redundancy Groups support grouping an arbitrary number of devices and may be assigned an optional secrets group and one or more optional failover strategies.\r\n\r\n#### Custom Celery Task Queues ([#2421](https://github.com/nautobot/nautobot/pull/2421))\r\n\r\nA new optional job property `task_queues` has been introduced to allow Nautobot to leverage custom celery queues for jobs. This will allow you to send jobs to specific workers based on which queue is selected. This property can be set on the job class and overridden in the job model, similar to other overridable job fields. If `task_queues` is not defined on the job class or job model, the job will only be able to use the default queue. A new field has been added to the job run form to allow you to select a queue when you run the job and  an optional field `task_queue` has been added to the REST API [job run endpoint](../additional-features/jobs.md#via-the-api) for the same purpose.\r\n\r\n> The default celery queue name has been changed from `celery` to `default`. If you have any workers or tasks hard coded to use `celery` you will need to update those workers/tasks or change the [`CELERY_TASK_DEFAULT_QUEUE`](../configuration/optional-settings.md#celery_task_default_queue) setting in your `nautobot_config.py`.\r\n\r\n#### Added `nautobot-server generate_test_data` command ([#2536](https://github.com/nautobot/nautobot/issues/2536))\r\n\r\nA new management command, [`nautobot-server generate_test_data`](../administration/nautobot-server.md#generate_test_data), has been added that can be used to populate the Nautobot database with various data as a baseline for manual or automated testing. This is now used internally by Nautobot's unit testing suite to create a synthetic data set that looks and feels like real data with randomly-generated values. Most importantly, the objects are created with all of the fields fully and correctly populated, to assert that each object in the database is properly exercising all features.\r\n\r\n> Be very cautious about running this command on your server instance. It is not intended to be used in production environments and will result in data loss.\r\n\r\n#### Nestable LocationTypes ([#2608](https://github.com/nautobot/nautobot/issues/2608))\r\n\r\n`LocationType` definitions can now be flagged as `nestable`. When this flag is set, Locations of this type may nest within one another, similar to how Regions work at present. This allows you to have a variable-depth hierarchy of Locations, for example:\r\n\r\n- Main Campus (\"Building Group\" location type)\r\n    - West Campus (Building Group)\r\n        - Building A (\"Building\" location type)\r\n        - Building B (Building)\r\n    - East Campus (Building Group)\r\n        - Building C (Building)\r\n        - Building D (Building)\r\n    - South Campus (Building Group)\r\n        - Western South Campus (Building Group)\r\n            - Building G (Building)\r\n- Satellite Campus (Building Group)\r\n    - Building Z (Building)\r\n\r\nIn the above example, only two LocationTypes are defined (\"Building Group\" and \"Building\") but the \"Building Group\" type is flagged as nestable, so one Building Group may contain another Building Group.\r\n\r\n#### Required Relationships ([#873](https://github.com/nautobot/nautobot/issues/873))\r\n\r\nRelationships can be marked as being required. By default, relationships are not marked as being required.\r\n\r\nTo mark a relationship as being required, select \"Source objects MUST implement this relationship\" or conversely \"\r\nDestination objects MUST implement this relationship\" from the \"Required on\" field when editing or creating a\r\nrelationship:\r\n\r\n- If \"Destination objects MUST implement this relationship\" is selected, objects of the type selected in \"Destination Type\" will enforce this relationship when they are created or edited.\r\n- If \"Source objects MUST implement this relationship\" is selected, objects of the type selected in \"Source Type\" will enforce this relationship when they are created or edited.\r\n\r\n### Changed\r\n\r\n#### Database Query Caching is now Disabled by Default ([#1721](https://github.com/nautobot/nautobot/issues/1721))\r\n\r\nIn prior versions of Nautobot, database query caching using the [`django-cacheops`](https://github.com/Suor/django-cacheops) application (aka Cacheops) was enabled by default. This is determined by the default value of the [`CACHEOPS_ENABLED`](../configuration/optional-settings.md#cacheops_enabled) setting being set to `True`.\r\n\r\nThrough much trial and error we ultimately decided that this feature is more trouble than it is worth and we have begun to put more emphasis on improving performance of complex database queries over continuing to rely upon the various benefits and pitfalls of utilizing Cacheops.\r\n\r\nAs a result, the value of this setting now defaults to `False`, disabling database query caching entirely for new deployments. Cacheops will be removed entirely in a future release.\r\n\r\n> Users with existing `nautobot_config.py` files generated from earlier versions of Nautobot will still have `CACHEOPS_ENABLED = True` unless they modify or regenerate their configuration. If users no longer desire caching, please be sure to explicitly toggle the value of this setting to `False` and restart your Nautobot services.\r\n\r\n#### Redesigned List Filtering UI ([#1998](https://github.com/nautobot/nautobot/issues/1998))\r\n\r\nAdded a dynamic filter form that allows users to filter object tables/lists by any field and lookup expression combination supported by the corresponding FilterSet and API.\r\n\r\n---\r\n\r\n## v1.5.0-beta.1\r\n### Added\r\n\r\n- [#270](https://github.com/nautobot/nautobot/issues/270) - Added custom fields user guide to documentation.\r\n- [#873](https://github.com/nautobot/nautobot/issues/873) - Made it possible to require Relationships to be included when editing or creating the related models.\r\n- [#899](https://github.com/nautobot/nautobot/issues/899) - Added support for grouping of Custom Fields.\r\n- [#1468](https://github.com/nautobot/nautobot/issues/1468) - Added relationship columns to ObjectListTableView and disabled sorting.\r\n- [#1892](https://github.com/nautobot/nautobot/issues/1892) - Added `DeviceRedundancyGroup` model for representing a logical grouping of physical hardware for the purposes of high-availability.\r\n- [#2063](https://github.com/nautobot/nautobot/issues/2063) - Added documentation and initial support for custom celery queues.\r\n- [#2064](https://github.com/nautobot/nautobot/issues/2064) - Added `task_queues` job property to support custom celery queues.\r\n- [#2227](https://github.com/nautobot/nautobot/issues/2227) - Added generating performance report options to 'invoke unittest'.\r\n- [#2227](https://github.com/nautobot/nautobot/issues/2227) - Added `invoke performance-test` to `tasks.py`.\r\n- [#2281](https://github.com/nautobot/nautobot/issues/2281) - Added test database fixtures for Tag and Status models.\r\n- [#2282](https://github.com/nautobot/nautobot/issues/2282) - Added fixture factory for Region, Site, Location, LocationType.\r\n- [#2283](https://github.com/nautobot/nautobot/issues/2283) - Added test fixture factories for Prefix and IPAddress models.\r\n- [#2460](https://github.com/nautobot/nautobot/issues/2460) - Added search box filter form to generic list views.\r\n- [#2479](https://github.com/nautobot/nautobot/issues/2479) - Added `factory-boy` as development dependency. Added factories for Tenant, TenantGroup, RIR, and Aggregate models. Updated test runner global setup to use these factories to pre-populate baseline data.\r\n- [#2514](https://github.com/nautobot/nautobot/issues/2514) - Added test factories for RouteTarget, VRF, Role, VLANGroup, and VLAN models.\r\n- [#2514](https://github.com/nautobot/nautobot/issues/2514) - Added `OrganizationalModelFactory` and `PrimaryModelFactory` base classes.\r\n- [#2514](https://github.com/nautobot/nautobot/issues/2514) - Added `TenancyFilterTestCaseMixin` class.\r\n- [#2518](https://github.com/nautobot/nautobot/issues/2518) - Added `base_site` and `subtree` filters to `LocationFilterSet`, allowing for filtering Locations by their root ancestor or its Site.\r\n- [#2536](https://github.com/nautobot/nautobot/issues/2536) - Added `nautobot-server generate_test_data` command.\r\n- [#2536](https://github.com/nautobot/nautobot/issues/2536) - Added `TEST_USE_FACTORIES` and `TEST_FACTORY_SEED` optional settings.\r\n- [#2593](https://github.com/nautobot/nautobot/issues/2593) - Added StatusFactory and TagFactory classes.\r\n- [#2594](https://github.com/nautobot/nautobot/issues/2594) - Added factories for DCIM `DeviceRole`, `DeviceType`, `Manufacturer`, and `Platform`.\r\n- [#2608](https://github.com/nautobot/nautobot/issues/2608) - Added the option for certain LocationTypes to be nestable (similar to Regions).\r\n- [#2617](https://github.com/nautobot/nautobot/issues/2617) - Added dynamic filter form support to specialized list views.\r\n- [#2686](https://github.com/nautobot/nautobot/issues/2686) - Added test helper method to `FilterTestCases` to find values suitable for testing multiple choice filters.\r\n\r\n### Changed\r\n\r\n- [#1892](https://github.com/nautobot/nautobot/issues/1892) - Updated `Device` to have `device_redundancy_group` relationship, `device_redundancy_group_priority` numeric property.\r\n- [#1892](https://github.com/nautobot/nautobot/issues/1892) - Updated `ConfigContext` to have `ManyToManyField` to `dcim.DeviceRedundancyGroup` for the purposes of applying a `ConfigContext` based upon a `Device`s `DeviceRedundancyGroup` membership.\r\n- [#1983](https://github.com/nautobot/nautobot/issues/1983) - Updated `django-taggit` dependency to 3.0.0.\r\n- [#1998](https://github.com/nautobot/nautobot/issues/1998) - Added DynamicFilterForm to list views.\r\n- [#2064](https://github.com/nautobot/nautobot/issues/2064) - Changed default celery queue name from `celery` to `default`.\r\n- [#2170](https://github.com/nautobot/nautobot/issues/2170) - Updated `django-constance` dependency to 2.9.1; updated `Jinja2` dependency to 3.1.2; updated `black` development dependency to 22.8.0.\r\n- [#2282](https://github.com/nautobot/nautobot/issues/2282) - Changed unittests to use Site, Region, Location, LocationType fixtures.\r\n- [#2320](https://github.com/nautobot/nautobot/issues/2320) - Removed PKs from Tag test database fixture.\r\n- [#2482](https://github.com/nautobot/nautobot/issues/2482) - Updated `djangorestframework` to `~3.14.0`, `drf-spectacular` to `0.24.2`.\r\n- [#2483](https://github.com/nautobot/nautobot/issues/2483) - Updated `mkdocs` to 1.4.2 and `mkdocs-material` to 8.5.8.\r\n- [#2484](https://github.com/nautobot/nautobot/issues/2484) - Updated `django-debug-toolbar` to `~3.7.0`\r\n- [#2551](https://github.com/nautobot/nautobot/issues/2551) - Updated development dependency on `coverage` to version 6.5.0.\r\n- [#2562](https://github.com/nautobot/nautobot/issues/2562) - Updated `django-mptt` dependency to 0.14.0.\r\n- [#2597](https://github.com/nautobot/nautobot/issues/2597) - Updated `GitPython` dependency from 3.1.27 to 3.1.29.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Changed `ConfigContextFilterForm`s `schema` filter form field to support added filter field on `ConfigContextFilterSet`.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Changed `BaseNetworkQuerySet` and `IPAddressQuerySet` to search both IPv6 and IPv4 when given search string is ambiguous.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Changed `test_slug_not_modified` to ensure no collision on new slug source value as well as changing lookup expression from `__contains` to `__exact`.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Changed `DeleteObjectViewTestCase.get_deletable_object` to throw a helpful failure message when deletable object not found.\r\n- [#2645](https://github.com/nautobot/nautobot/issues/2645) - Updated `psycopg2-binary` dependency from 2.9.3 to 2.9.5.\r\n- [#2710](https://github.com/nautobot/nautobot/issues/2710) - Updated `pyuwsgi` minimum version from 2.0.20 to 2.0.21.\r\n- [#2711](https://github.com/nautobot/nautobot/issues/2711) - Updated `Pillow` package dependency from 9.2.0 to 9.3.0.\r\n- [#2746](https://github.com/nautobot/nautobot/issues/2746) - Changed `LocationType` test case to not attempt to re-parent a `LocationType` with descendant `Locations`.\r\n\r\n### Fixed\r\n\r\n- [#192](https://github.com/nautobot/nautobot/issues/192) - Eliminated Unit Test noisy output.\r\n- [#2266](https://github.com/nautobot/nautobot/issues/2266) - Fixed navbar floating over main viewport scrollbar.\r\n- [#2388](https://github.com/nautobot/nautobot/issues/2388) - Return \"\u2014\" instead of \"None\" when relationship column is empty.\r\n- [#2536](https://github.com/nautobot/nautobot/issues/2536) - Made use of test factories optional when using Nautobot test runner.\r\n- [#2555](https://github.com/nautobot/nautobot/issues/2555) - Fixed broken accordion for Job list view.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `ConfigContextFilterSet` missing `schema` filter but existed on form.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `Device(Form)TestCase` flaky test setup possibly not finding a `DeviceType` with a `Manufacturer` with associated `Platform`s that is full depth and 1U height.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `Location(View)TestCase`, `RouteTarget(View)TestCase` flaky test setup possibly finding names for `csv_data` that might include commas but not escaped.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `PrefixFactory` may randomly decide to create a child of `2.2.2.2/32`.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `BaseNetworkQuerySet` and `IPAddressQuerySet` only searching non-abbreviated first hextet IPv6 addresses.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `DynamicFilterLookupExpressionTest`, `VirtualChassis(Filter)TestCase`, `Cluster(Filter)TestCase`, `VirtualMachine(Filter)TestCase` had too narrow of a region lookup for supported tests.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `RackGroup(Model)Test`, `Prefix(Model)Test`, `VLANGroup(Model)Test` may randomly choose to update to the same site.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `Tenant(View)TestCase`, `RIR(View)TestCase` may not find deletable objects.\r\n- [#2615](https://github.com/nautobot/nautobot/issues/2615) - Fixed `VLAN(View)TestCase` may not find enough `Site`s with `Location`s.\r\n- [#2691](https://github.com/nautobot/nautobot/issues/2691) - Fixed hard coded tests that were failing after factory fixtures were integrated.\r\n- [#2746](https://github.com/nautobot/nautobot/issues/2746) - Fixed Site `latitude`, `longitude` clean method for when valid string value entered.\r\n\r\n### Removed\r\n\r\n- [#2593](https://github.com/nautobot/nautobot/issues/2593) - Removed static test fixtures since we're using factories now instead.\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @jathanism\r\n* @timizuoebideri1\r\n* @bryanculver\r\n* @briddo\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.10...v1.5.0-beta.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2768",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/82307719",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/82307719/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/82307719/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.10",
        "id": 82307719,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4E5-qH",
        "tag_name": "v1.4.10",
        "target_commitish": "develop",
        "name": "v1.4.10 - 2022-11-07",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-11-07T19:21:26Z",
        "updated_at": "2022-11-07T20:13:53Z",
        "published_at": "2022-11-07T19:23:11Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/83788917",
                "id": 83788917,
                "node_id": "RA_kwDOFEucDc4E_oR1",
                "name": "nautobot-1.4.10-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49464137,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-11-07T20:13:44Z",
                "updated_at": "2022-11-07T20:13:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.10/nautobot-1.4.10-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/83788932",
                "id": 83788932,
                "node_id": "RA_kwDOFEucDc4E_oSE",
                "name": "nautobot-1.4.10.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48745234,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-11-07T20:13:48Z",
                "updated_at": "2022-11-07T20:13:53Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.10/nautobot-1.4.10.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.10",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.10",
        "body": "### Changed\r\n\r\n - [#2758](https://github.com/nautobot/nautobot/issues/2758) - Changed console logging back to disabled by default when running `nautobot-server test ...`.\r\n\r\n ### Fixed\r\n\r\n - [#2755](https://github.com/nautobot/nautobot/issues/2755) - Fixed incorrect file permissions on `/opt/nautobot/nautobot_config.py` in `final` Docker images.\r\n\r\n\r\n## Contributors\r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.9...v1.4.10",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2765",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/82307719/reactions",
            "total_count": 1,
            "+1": 1,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 1
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/82128790",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/82128790/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/82128790/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.9",
        "id": 82128790,
        "author": {
            "login": "HanlinMiao",
            "id": 46973263,
            "node_id": "MDQ6VXNlcjQ2OTczMjYz",
            "avatar_url": "https://avatars.githubusercontent.com/u/46973263?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/HanlinMiao",
            "html_url": "https://github.com/HanlinMiao",
            "followers_url": "https://api.github.com/users/HanlinMiao/followers",
            "following_url": "https://api.github.com/users/HanlinMiao/following{/other_user}",
            "gists_url": "https://api.github.com/users/HanlinMiao/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/HanlinMiao/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/HanlinMiao/subscriptions",
            "organizations_url": "https://api.github.com/users/HanlinMiao/orgs",
            "repos_url": "https://api.github.com/users/HanlinMiao/repos",
            "events_url": "https://api.github.com/users/HanlinMiao/events{/privacy}",
            "received_events_url": "https://api.github.com/users/HanlinMiao/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4E5S-W",
        "tag_name": "v1.4.9",
        "target_commitish": "develop",
        "name": "v1.4.9 - 2022-11-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-11-04T20:22:49Z",
        "updated_at": "2022-11-04T21:30:53Z",
        "published_at": "2022-11-04T20:31:13Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/83483200",
                "id": 83483200,
                "node_id": "RA_kwDOFEucDc4E-dpA",
                "name": "nautobot-1.4.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49463344,
                "digest": null,
                "download_count": 11,
                "created_at": "2022-11-04T21:30:48Z",
                "updated_at": "2022-11-04T21:30:50Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.9/nautobot-1.4.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/83483206",
                "id": 83483206,
                "node_id": "RA_kwDOFEucDc4E-dpG",
                "name": "nautobot-1.4.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48743998,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-11-04T21:30:51Z",
                "updated_at": "2022-11-04T21:30:53Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.9/nautobot-1.4.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.9",
        "body": "### Added\r\n\r\n- [#1720](https://github.com/nautobot/nautobot/issues/1720) - Added NullableDateField to enable Date Type CustomField to filter on null value.\r\n- [#2685](https://github.com/nautobot/nautobot/issues/2685) - Added watchdog dev-dependency explicitly.\r\n- [#2685](https://github.com/nautobot/nautobot/issues/2685) - Added watchmedo command to worker container to allow container to restart on file change and documented.\r\n\r\n### Changed\r\n\r\n- [#2658](https://github.com/nautobot/nautobot/issues/2658) - Updated plugin development documentation to introduce `NautobotUIViewSet` as the first approach for the `Adding Web UI Views` section.\r\n- [#2669](https://github.com/nautobot/nautobot/issues/2669) - Blocked changing the parent of a LocationType when it already has Locations using it.\r\n- [#2671](https://github.com/nautobot/nautobot/issues/2671) - Changed the published `nautobot-dev` images to use the same default `nautobot_config.py` as the published `nautobot` images, instead of using the Nautobot core development `nautobot_config.py` file.\r\n- [#2671](https://github.com/nautobot/nautobot/issues/2671) - Renamed `development/docker-compose.build.yml` to `development/docker-compose.final.yml` to better reflect its meaning.\r\n- [#2671](https://github.com/nautobot/nautobot/issues/2671) - Changed the image labels used in the docker-compose development workflow to reduce ambiguity.\r\n\r\n### Fixed\r\n\r\n- [#2406](https://github.com/nautobot/nautobot/issues/2406) - Fixed missing HTML element ID for hyperlinks.\r\n- [#2419](https://github.com/nautobot/nautobot/issues/2419) - Fixed the null device interface status when a device is created with a device_role associated to an InterfaceTemplate.\r\n- [#2552](https://github.com/nautobot/nautobot/issues/2552) - Updated CSS to better account for footer resizing.\r\n- [#2601](https://github.com/nautobot/nautobot/issues/2601) - Fixed an issue where a Git repository could provide Jobs even if not marked as a provider of Jobs.\r\n- [#2682](https://github.com/nautobot/nautobot/issues/2682) - Fixed test failing when version number contains alpha characters.\r\n- [#2683](https://github.com/nautobot/nautobot/issues/2683) - Fixed so that unauthenticated users don't see the version number for Nautobot in the footer.\r\n- [#2684](https://github.com/nautobot/nautobot/issues/2684) - Fixed \"The results could not be loaded\" when filtering `ContentTypes` in the UI.\r\n- [#2688](https://github.com/nautobot/nautobot/issues/2688) - Fixed exception not raised when the interface contains a tagged vlan but mode is not set to tagged.\r\n- [#2702](https://github.com/nautobot/nautobot/issues/2702) - Fixed NautobotUIViewSet BulkCreateViewMixin validation error handling and .csv file import issue.\r\n- [#2706](https://github.com/nautobot/nautobot/issues/2706) - Fixed a ValidationError that could occur when specifying Site latitude/longitude as a float.\r\n- [#2712](https://github.com/nautobot/nautobot/issues/2712) - Updated docs links to include the `/projects/core` in the url path to link correctly.\r\n- [#2717](https://github.com/nautobot/nautobot/issues/2717) - Fixed backwards-compatibility with changes made to `TreeNodeMultipleChoiceFilter`.\r\n- [#2733](https://github.com/nautobot/nautobot/issues/2733) - Fixed bug in run_job_for_testing when no request is provided.\r\n- [#2736](https://github.com/nautobot/nautobot/issues/2736) - Fixed incorrect `site_url` setting for MkDocs.\r\n\r\n## Contributors\r\n* @Jonher937\r\n* @david-kn\r\n* @gsnider2195\r\n* @itdependsnetworks\r\n* @timizuoebideri1\r\n* @glennmatthews\r\n* @jathanism\r\n* @HanlinMiao\r\n* @michizhou \r\n* @whitej6\r\n\r\n## New Contributors\r\n* @Jonher937 made their first contribution in https://github.com/nautobot/nautobot/pull/2683\r\n* @david-kn made their first contribution in https://github.com/nautobot/nautobot/pull/2626\r\n* @michizhou made their first contribution in https://github.com/nautobot/nautobot/pull/2696\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.8...v1.4.9",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2745",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/81611723",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/81611723/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/81611723/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.8",
        "id": 81611723,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4E3UvL",
        "tag_name": "v1.4.8",
        "target_commitish": "develop",
        "name": "v1.4.8 - 2022-10-31",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-11-01T01:03:42Z",
        "updated_at": "2022-11-01T01:55:43Z",
        "published_at": "2022-11-01T01:07:49Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/82984031",
                "id": 82984031,
                "node_id": "RA_kwDOFEucDc4E8jxf",
                "name": "nautobot-1.4.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49451582,
                "digest": null,
                "download_count": 16,
                "created_at": "2022-11-01T01:55:39Z",
                "updated_at": "2022-11-01T01:55:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.8/nautobot-1.4.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/82984036",
                "id": 82984036,
                "node_id": "RA_kwDOFEucDc4E8jxk",
                "name": "nautobot-1.4.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48734434,
                "digest": null,
                "download_count": 12,
                "created_at": "2022-11-01T01:55:41Z",
                "updated_at": "2022-11-01T01:55:43Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.8/nautobot-1.4.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.8",
        "body": "### Added\r\n\r\n- [#2086](https://github.com/nautobot/nautobot/issues/2086) - Added JobResult export feature.\r\n- [#2578](https://github.com/nautobot/nautobot/issues/2578) - Added support for the documented environment variables in Nautobot's base `settings.py`, so that they will be recognized even when using a minimal `nautobot_config.py` or one that was not generated by `nautobot-server init`.\r\n- [#2578](https://github.com/nautobot/nautobot/issues/2578) - Added documentation of more configuration options in the configuration that is generated by `nautobot-server init`.\r\n- [#2578](https://github.com/nautobot/nautobot/issues/2578) - Added a warning in the documentation about django-cryptography and changing `SECRET_KEY`.\r\n- [#2590](https://github.com/nautobot/nautobot/issues/2590) - Added unit tests for bulk-editing and bulk-deleting all instances of a model.\r\n- [#2619](https://github.com/nautobot/nautobot/issues/2619) - Added notes about restarting the Nautobot server after creating relationships, custom fields, and computed fields to show them in GraphQL.\r\n- [#2675](https://github.com/nautobot/nautobot/issues/2675) - Added the ability to configure Redis Unix socket connections.\r\n- [#2681](https://github.com/nautobot/nautobot/issues/2681) - Added multiple assert failure messages to `UpdateObjectViewTestCase`.\r\n\r\n### Changed\r\n\r\n- [#2578](https://github.com/nautobot/nautobot/issues/2578) - Updated defaults in `settings.py` to more closely align to the documentation. If you're using a configuration file generated by `nautobot-server init`, these changes should have no impact, but if you have a manually crafted configuration file, please verify that the configuration of your system is still as expected after upgrading, with a particular focus on the database configuration, `SECRET_KEY`, and `LOGGING`.\r\n- [#2578](https://github.com/nautobot/nautobot/issues/2578) - Changed the default `LOGGING` configuration for virtualenv installs to be the same as it is for Nautobot's published Docker images.\r\n- [#2578](https://github.com/nautobot/nautobot/issues/2578) - Revised the template for new configurations generated by `nautobot-server init` to have less redundancy with Nautobot's built-in `settings.py`.\r\n- [#2585](https://github.com/nautobot/nautobot/issues/2585) - Updated dependency `django-health-check` from 3.16.5 to 3.16.7.\r\n- [#2585](https://github.com/nautobot/nautobot/issues/2585) - Updated dependency `psycopg2-binary` from 2.9.3 to 2.9.4.\r\n- [#2585](https://github.com/nautobot/nautobot/issues/2585) - Updated development dependency `coverage` from 6.4.2 to 6.4.4.\r\n- [#2585](https://github.com/nautobot/nautobot/issues/2585) - Updated development dependency `invoke` from 1.7.1 to 1.7.3.\r\n- [#2585](https://github.com/nautobot/nautobot/issues/2585) - Updated development dependency `mkdocs-material` from 8.4.2 to 8.4.4.\r\n- [#2591](https://github.com/nautobot/nautobot/issues/2591) - Updated README.md to include additional information about the Nautobot project.\r\n\r\n### Fixed\r\n\r\n- [#2099](https://github.com/nautobot/nautobot/issues/2099) - Fixed PowerFeed Utilization on Rack View not displaying correctly.\r\n- [#2099](https://github.com/nautobot/nautobot/issues/2099) - Fixed Total Power Utilization on Rack View not taking into account direct-connected devices.\r\n- [#2099](https://github.com/nautobot/nautobot/issues/2099) - Fixed created_updated template adding the end small tag twice.\r\n- [#2146](https://github.com/nautobot/nautobot/issues/2146) - Added signals to log when a user logs in and logs out to fix a bug where SSO logins were not being logged.\r\n- [#2426](https://github.com/nautobot/nautobot/issues/2426) - Fixed weekly scheduled job executing a day early.\r\n- [#2489](https://github.com/nautobot/nautobot/issues/2489) - Fixed custom field regex validation always anchored to beginning of string.\r\n- [#2494](https://github.com/nautobot/nautobot/issues/2494) - Fixed custom field regex validation not being enforced on URL custom fields.\r\n- [#2513](https://github.com/nautobot/nautobot/issues/2513) - Fixed an issue with `DynamicGroup` not properly filtering by `Region` or `Location`.\r\n- [#2578](https://github.com/nautobot/nautobot/issues/2578) - Fixed issue where the documented environment variables for various configuration settings would not be supported if using a minimal `nautobot_config.py` that was not generated from `nautobot-server init`.\r\n- [#2632](https://github.com/nautobot/nautobot/issues/2632) - Fixed incorrect link from Circuit Type detail view to filtered Circuits table.\r\n- [#2652](https://github.com/nautobot/nautobot/issues/2652) - Fixed the issue with Job ObjectChange and Notes not displaying the page header.\r\n- [#2655](https://github.com/nautobot/nautobot/issues/2655) - Fixed error when selecting a \"related path\" from the Cable Trace view.\r\n- [#2661](https://github.com/nautobot/nautobot/issues/2661) - Fixed default tagging of Docker images built with `invoke buildx`.\r\n- [#2677](https://github.com/nautobot/nautobot/issues/2677) - Fixed a documentation error by adding an import statement to a code example in `nautobot/docs/plugins/development.md`.\r\n- [#2690](https://github.com/nautobot/nautobot/issues/2690) - Fixed test settings to disable logging when running tests.\r\n- [#2693](https://github.com/nautobot/nautobot/issues/2693) - Fixed filtering by tree node objects in nested Dynamic Groups.\r\n\r\n### Security\r\n\r\n- [#2651](https://github.com/nautobot/nautobot/issues/2651) - Updated `Django` minimum version to 3.2.16 due to CVE-2022-41323.\r\n\r\n---\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @timizuoebideri1 \r\n* @jathanism\r\n* @Dav-C\r\n* @gsnider2195\r\n* @jake2184\r\n* @Kircheneer\r\n* @smk4664\r\n* @itdependsnetworks\r\n* @qduk\r\n* @Santhusha-bit\r\n\r\n## New Contributors\r\n* @Dav-C made their first contribution in https://github.com/nautobot/nautobot/pull/2678\r\n* @jake2184 made their first contribution in https://github.com/nautobot/nautobot/pull/2676\r\n* @qduk made their first contribution in https://github.com/nautobot/nautobot/pull/2643\r\n* @Santhusha-bit made their first contribution in https://github.com/nautobot/nautobot/pull/2599\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.7...v1.4.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2704",
        "mentions_count": 12
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/80243763",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/80243763/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/80243763/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.7",
        "id": 80243763,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EyGwz",
        "tag_name": "v1.4.7",
        "target_commitish": "develop",
        "name": "v1.4.7 - 2022-10-18",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-10-18T18:42:09Z",
        "updated_at": "2022-10-18T21:16:31Z",
        "published_at": "2022-10-18T18:47:38Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/81461351",
                "id": 81461351,
                "node_id": "RA_kwDOFEucDc4E2wBn",
                "name": "nautobot-1.4.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49446888,
                "digest": null,
                "download_count": 15,
                "created_at": "2022-10-18T21:16:27Z",
                "updated_at": "2022-10-18T21:16:29Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.7/nautobot-1.4.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/81461355",
                "id": 81461355,
                "node_id": "RA_kwDOFEucDc4E2wBr",
                "name": "nautobot-1.4.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48725181,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-10-18T21:16:30Z",
                "updated_at": "2022-10-18T21:16:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.7/nautobot-1.4.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.7",
        "body": "\u2139\ufe0f **NOTE:** This release is functionally identical to [v1.4.6](https://github.com/nautobot/nautobot/releases/tag/v1.4.6), just fixing the advertised version.\r\n### Fixed\r\n\r\n- [#2636](https://github.com/nautobot/nautobot/issues/2636) - Fixed `pyproject.toml` to be a proper full release.\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.6...v1.4.7\r\n\r\n---\r\n_v1.4.6 Changelog for those that might have missed it._\r\n\r\n### Added\r\n\r\n- [#2437](https://github.com/nautobot/nautobot/issues/2437) - Added Nautobot-themed error page for handling 403 CSRF errors.\r\n- [#2512](https://github.com/nautobot/nautobot/issues/2512) - Added link to `nautobot-plugin-nornir` in the Apps section of the documentation.\r\n- [#2588](https://github.com/nautobot/nautobot/issues/2588) - Added a danger admonition to developer docs about never using `pip` to install Poetry into Nautobot dev environment.\r\n\r\n### Changed\r\n\r\n- [#2434](https://github.com/nautobot/nautobot/issues/2434) - Updated `oauthlib` to `3.2.1` for `CVE-2022-36087`. This is a dependency of `social-auth-core` so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#2530](https://github.com/nautobot/nautobot/issues/2530) - Updated development documentation to include LTM, additional release schedule information.\r\n- [#2565](https://github.com/nautobot/nautobot/issues/2565) - Updated version to 1.4.6-beta.1.\r\n- [#2602](https://github.com/nautobot/nautobot/issues/2602) - Increased size of `ObjectChange.change_context_detail` field from 100 to 400 chars, and add truncation to it. Also adding truncation to `ObjectChange.object_repr`.\r\n\r\n### Fixed\r\n\r\n- [#2075](https://github.com/nautobot/nautobot/issues/2075) - Fixed white screen flash in dark mode.\r\n- [#2546](https://github.com/nautobot/nautobot/issues/2546) - Applied a hotfix for multiple jobs executing from a single scheduled job.\r\n- [#2560](https://github.com/nautobot/nautobot/issues/2560) - Fixed NautobotHTMLRenderer incorrectly overrides selected pk_list for bulk_destroy and bulk_update.\r\n- [#2566](https://github.com/nautobot/nautobot/issues/2566) - Clarified documentation on superusers needing staff permission to access admin UI.\r\n- [#2573](https://github.com/nautobot/nautobot/issues/2573) - Fixed link from VLAN group detail view to filtered VLAN list.\r\n- [#2574](https://github.com/nautobot/nautobot/issues/2574) - Updated `nautobot.core.settings` to match expected behavior on `NAPALM_USERNAME`, `NAPALM_PASSWORD`, and `NAPALM_TIMEOUT` based on documentation.\r\n- [#2595](https://github.com/nautobot/nautobot/issues/2595) - Fixed NautobotUIViewSet handling of unauthenticated users.\r\n- [#2614](https://github.com/nautobot/nautobot/issues/2614) - Fixed CONTRIBUTING.md link to actual Nautobot documentation.\r\n\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @jathanism\r\n* @cmsirbu\r\n* @matt852\r\n* @whitej6\r\n* @johannwagner \r\n* @scetron\r\n* @chadell \r\n* @glennmatthews\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.5...v1.4.7",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2641",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/80142024",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/80142024/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/80142024/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.6",
        "id": 80142024,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Ext7I",
        "tag_name": "v1.4.6",
        "target_commitish": "develop",
        "name": "v1.4.6 - 2022-10-17",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-10-17T23:22:48Z",
        "updated_at": "2022-10-18T00:12:47Z",
        "published_at": "2022-10-17T23:27:00Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/81351362",
                "id": 81351362,
                "node_id": "RA_kwDOFEucDc4E2VLC",
                "name": "nautobot-1.4.6b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 49446512,
                "digest": null,
                "download_count": 16,
                "created_at": "2022-10-18T00:12:44Z",
                "updated_at": "2022-10-18T00:12:45Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.6/nautobot-1.4.6b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/81351364",
                "id": 81351364,
                "node_id": "RA_kwDOFEucDc4E2VLE",
                "name": "nautobot-1.4.6b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48725738,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-10-18T00:12:46Z",
                "updated_at": "2022-10-18T00:12:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.6/nautobot-1.4.6b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.6",
        "body": "### Added\r\n\r\n- [#2437](https://github.com/nautobot/nautobot/issues/2437) - Added Nautobot-themed error page for handling 403 CSRF errors.\r\n- [#2512](https://github.com/nautobot/nautobot/issues/2512) - Added link to `nautobot-plugin-nornir` in the Apps section of the documentation.\r\n- [#2588](https://github.com/nautobot/nautobot/issues/2588) - Added a danger admonition to developer docs about never using `pip` to install Poetry into Nautobot dev environment.\r\n\r\n### Changed\r\n\r\n- [#2434](https://github.com/nautobot/nautobot/issues/2434) - Updated `oauthlib` to `3.2.1` for `CVE-2022-36087`. This is a dependency of `social-auth-core` so will not auto-update when upgrading. Please be sure to upgrade your local environment.\r\n- [#2530](https://github.com/nautobot/nautobot/issues/2530) - Updated development documentation to include LTM, additional release schedule information.\r\n- [#2565](https://github.com/nautobot/nautobot/issues/2565) - Updated version to 1.4.6-beta.1.\r\n- [#2602](https://github.com/nautobot/nautobot/issues/2602) - Increased size of `ObjectChange.change_context_detail` field from 100 to 400 chars, and add truncation to it. Also adding truncation to `ObjectChange.object_repr`.\r\n\r\n### Fixed\r\n\r\n- [#2075](https://github.com/nautobot/nautobot/issues/2075) - Fixed white screen flash in dark mode.\r\n- [#2546](https://github.com/nautobot/nautobot/issues/2546) - Applied a hotfix for multiple jobs executing from a single scheduled job.\r\n- [#2560](https://github.com/nautobot/nautobot/issues/2560) - Fixed NautobotHTMLRenderer incorrectly overrides selected pk_list for bulk_destroy and bulk_update.\r\n- [#2566](https://github.com/nautobot/nautobot/issues/2566) - Clarified documentation on superusers needing staff permission to access admin UI.\r\n- [#2573](https://github.com/nautobot/nautobot/issues/2573) - Fixed link from VLAN group detail view to filtered VLAN list.\r\n- [#2574](https://github.com/nautobot/nautobot/issues/2574) - Updated `nautobot.core.settings` to match expected behavior on `NAPALM_USERNAME`, `NAPALM_PASSWORD`, and `NAPALM_TIMEOUT` based on documentation.\r\n- [#2595](https://github.com/nautobot/nautobot/issues/2595) - Fixed NautobotUIViewSet handling of unauthenticated users.\r\n- [#2614](https://github.com/nautobot/nautobot/issues/2614) - Fixed CONTRIBUTING.md link to actual Nautobot documentation.\r\n\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @jathanism\r\n* @cmsirbu\r\n* @matt852\r\n* @whitej6\r\n* @johannwagner \r\n* @scetron\r\n* @chadell \r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.5...v1.4.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2627",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/78902432",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/78902432/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/78902432/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.5",
        "id": 78902432,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Es_Sg",
        "tag_name": "v1.4.5",
        "target_commitish": "develop",
        "name": "v1.4.5 - 2022-10-03",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-10-04T01:41:05Z",
        "updated_at": "2022-10-04T11:14:01Z",
        "published_at": "2022-10-04T02:22:50Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/79871528",
                "id": 79871528,
                "node_id": "RA_kwDOFEucDc4Ewr4o",
                "name": "nautobot-1.4.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48960760,
                "digest": null,
                "download_count": 18,
                "created_at": "2022-10-04T03:06:47Z",
                "updated_at": "2022-10-04T03:06:57Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.5/nautobot-1.4.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/79871539",
                "id": 79871539,
                "node_id": "RA_kwDOFEucDc4Ewr4z",
                "name": "nautobot-1.4.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48245713,
                "digest": null,
                "download_count": 11,
                "created_at": "2022-10-04T03:06:58Z",
                "updated_at": "2022-10-04T03:07:01Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.5/nautobot-1.4.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.5",
        "body": "### Added\r\n\r\n- [#2330](https://github.com/nautobot/nautobot/issues/2330) - Added `created` and `last_updated` fields to Device `Component` and `ComponentTemplate` models.\r\n\r\n### Changed\r\n\r\n- [#2490](https://github.com/nautobot/nautobot/issues/2490) - Added change log fragment checkbox to Github pull request template.\r\n- [#2508](https://github.com/nautobot/nautobot/issues/2508) - Updated dark mode theme to be less...dark.\r\n- [#2537](https://github.com/nautobot/nautobot/issues/2537) - Updated `django-extensions` to `3.2.1`, `drf-spectacular` to `0.24.2`, `drf-yasg` to `1.21.4`.\r\n- [#2544](https://github.com/nautobot/nautobot/issues/2544) - Updated towncrier template to convert multi-line change fragments into multiple release notes entries.\r\n\r\n### Fixed\r\n\r\n- [#2326](https://github.com/nautobot/nautobot/issues/2326) - Fixed 500 error in Circuit Termination swap.\r\n- [#2330](https://github.com/nautobot/nautobot/issues/2330) - Fixed missing Change Log tab on device component detail views.\r\n- [#2445](https://github.com/nautobot/nautobot/issues/2445) - Fixed invalid Renovate config.\r\n- [#2466](https://github.com/nautobot/nautobot/issues/2466) - Fixed Jobs misleading sensitive variables or requiring approval error message.\r\n- [#2509](https://github.com/nautobot/nautobot/issues/2509) - Fixed template lookup logic in ObjectNotesView, ObjectDynamicGroupsView and ObjectChangeLogView.\r\n- [#2526](https://github.com/nautobot/nautobot/issues/2526) - Fixed error in rendering the example plugin's `AnotherExampleModel` list view by adding a `get_absolute_url()` method to the `AnotherExampleModel` class and adding an `AnotherExampleModel` detail view template.\r\n- [#2533](https://github.com/nautobot/nautobot/issues/2533) - Fixed `test_list_objects_unknown_filter_no_strict_filtering` failure if a filterset couldn't be found for a given model.\r\n- [#2539](https://github.com/nautobot/nautobot/issues/2539) - Updated links from nautobot.readthedocs.io to docs.nautobot.com.\r\n\r\n\r\n## Contributors\r\n* @jathanism\r\n* @HanlinMiao\r\n* @itdependsnetworks\r\n* @timizuoebideri1\r\n* @Kircheneer\r\n* @matt852 \r\n* @gsnider2195\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.4...v1.4.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2563",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/78262959",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/78262959/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/78262959/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.4",
        "id": 78262959,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EqjKv",
        "tag_name": "v1.4.4",
        "target_commitish": "develop",
        "name": "v1.4.4 - 2022-09-26",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-09-27T09:15:41Z",
        "updated_at": "2022-09-27T10:00:04Z",
        "published_at": "2022-09-27T09:20:25Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/79156291",
                "id": 79156291,
                "node_id": "RA_kwDOFEucDc4Et9RD",
                "name": "nautobot-1.4.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48954373,
                "digest": null,
                "download_count": 12,
                "created_at": "2022-09-27T09:59:56Z",
                "updated_at": "2022-09-27T09:59:59Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.4/nautobot-1.4.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/79156294",
                "id": 79156294,
                "node_id": "RA_kwDOFEucDc4Et9RG",
                "name": "nautobot-1.4.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48239402,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-09-27T10:00:00Z",
                "updated_at": "2022-09-27T10:00:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.4/nautobot-1.4.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.4",
        "body": "### Added\r\n\r\n- [#2023](https://github.com/nautobot/nautobot/issues/2023) - Added reusable GitHub Action workflow for use by plugins to test against `next`, `develop` routinely.\r\n\r\n### Changed\r\n\r\n- [#2153](https://github.com/nautobot/nautobot/issues/2153) - Updated optional settings documentation to provide clarity on Nautobot vs Django settings.\r\n- [#2235](https://github.com/nautobot/nautobot/issues/2235) - Added ancestor information to Location and LocationType display names to provide additional context in the UI.\r\n- [#2457](https://github.com/nautobot/nautobot/issues/2457) - Moved `towncrier_template.j2` from root to develop directory.\r\n- [#2468](https://github.com/nautobot/nautobot/issues/2468) - Upgraded CI gh-action-setup-poetry-environment action to v3\r\n\r\n### Fixed\r\n\r\n- [#2353](https://github.com/nautobot/nautobot/issues/2353) - Fixed MultiSelect CustomField being emptied unintentionally after bulk update.\r\n- [#2375](https://github.com/nautobot/nautobot/issues/2375) - Fixed error in Cable list view filtering when `color` and `type` filters are not set.\r\n- [#2461](https://github.com/nautobot/nautobot/issues/2461) - Fixed an exception during OpenAPI schema generation when certain Nautobot apps (including `nautobot-firewall-models`) were installed.\r\n- [#2496](https://github.com/nautobot/nautobot/pull/2496) - Fixed failing CI due to #2468\r\n\r\n\r\n## Contributors\r\n* @glennmatthews\r\n* @gsnider2195\r\n* @christhant\r\n* @HanlinMiao\r\n* @itdependsnetworks\r\n* @nniehoff\r\n* @bryanculver\r\n\r\n## New Contributors\r\n* @christhant made their first contribution in https://github.com/nautobot/nautobot/pull/2359\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.3...v1.4.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2497",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/77606502",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/77606502/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/77606502/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.3",
        "id": 77606502,
        "author": {
            "login": "gsnider2195",
            "id": 75227981,
            "node_id": "MDQ6VXNlcjc1MjI3OTgx",
            "avatar_url": "https://avatars.githubusercontent.com/u/75227981?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gsnider2195",
            "html_url": "https://github.com/gsnider2195",
            "followers_url": "https://api.github.com/users/gsnider2195/followers",
            "following_url": "https://api.github.com/users/gsnider2195/following{/other_user}",
            "gists_url": "https://api.github.com/users/gsnider2195/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/gsnider2195/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/gsnider2195/subscriptions",
            "organizations_url": "https://api.github.com/users/gsnider2195/orgs",
            "repos_url": "https://api.github.com/users/gsnider2195/repos",
            "events_url": "https://api.github.com/users/gsnider2195/events{/privacy}",
            "received_events_url": "https://api.github.com/users/gsnider2195/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EoC5m",
        "tag_name": "v1.4.3",
        "target_commitish": "main",
        "name": "v1.4.3 - 2022-09-19",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-09-20T01:51:51Z",
        "updated_at": "2022-09-20T02:45:51Z",
        "published_at": "2022-09-20T02:01:22Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/78402478",
                "id": 78402478,
                "node_id": "RA_kwDOFEucDc4ErFOu",
                "name": "nautobot-1.4.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48951938,
                "digest": null,
                "download_count": 14,
                "created_at": "2022-09-20T02:45:48Z",
                "updated_at": "2022-09-20T02:45:49Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.3/nautobot-1.4.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/78402481",
                "id": 78402481,
                "node_id": "RA_kwDOFEucDc4ErFOx",
                "name": "nautobot-1.4.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48234432,
                "digest": null,
                "download_count": 15,
                "created_at": "2022-09-20T02:45:49Z",
                "updated_at": "2022-09-20T02:45:51Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.3/nautobot-1.4.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.3",
        "body": "### Added\r\n\r\n- [#2327](https://github.com/nautobot/nautobot/issues/2327) - Added help text to the Job scheduling datetime picker to indicate the applicable time zone.\r\n- [#2362](https://github.com/nautobot/nautobot/issues/2362) - Added documentation and automation for Nautobot Github project to use `towncrier` for changelog fragments.\r\n- [#2431](https://github.com/nautobot/nautobot/issues/2431) - Add section to the custom field documentation on ORM filtering.\r\n\r\n### Changed\r\n\r\n- [#1619](https://github.com/nautobot/nautobot/issues/1619) - Updated `drf-spectacular` dependency to version 0.24.\r\n- [#2223](https://github.com/nautobot/nautobot/issues/2223) - Augment `get_route_for_model()` to support REST API routes.\r\n- [#2340](https://github.com/nautobot/nautobot/issues/2340) - Improved rendering of badges, labels, buttons, and color selection menus in dark mode.\r\n- [#2383](https://github.com/nautobot/nautobot/issues/2383) - Updated documentation link for Nautobot ChatOps plugin.\r\n- [#2392](https://github.com/nautobot/nautobot/issues/2392) - Un-group Renovate `next` updates to address code changes per package.\r\n- [#2400](https://github.com/nautobot/nautobot/issues/2400) - Improved formatting of version changes in the documentation.\r\n- [#2417](https://github.com/nautobot/nautobot/issues/2417) - Reworked Docker builds in CI to publish an intermediate \"dependencies-only\" image to speed up rebuild times.\r\n- [#2447](https://github.com/nautobot/nautobot/issues/2447) - Moved Dynamic Groups tab on object detail view to it's own view as a generic `ObjectDynamicGroupsView`.\r\n\r\n### Fixed\r\n\r\n- [#138](https://github.com/nautobot/nautobot/issues/138) - Fixed lack of user-facing message when an exception occurs while discovering Jobs from a Git repository.\r\n- [#950](https://github.com/nautobot/nautobot/issues/950) - Fixed database concurrency issues with uWSGI pre-forking.\r\n- [#1619](https://github.com/nautobot/nautobot/issues/1619) - Improved accuracy of OpenAPI schema for bulk REST API operations.\r\n- [#2299](https://github.com/nautobot/nautobot/issues/2299) - Remove `render_filter()` method and `filter` field from table columns\r\n- [#2309](https://github.com/nautobot/nautobot/issues/2309) - Fixed 404 on ScheduledJobView, `job_class` no longer found behavior.\r\n- [#2324](https://github.com/nautobot/nautobot/issues/2324) - Fixed errors encountered when a job model is deleted while a job is running.\r\n- [#2338](https://github.com/nautobot/nautobot/issues/2338) - Fixed whitespace issue with Text File secrets and they are now stripped of leading/trailing whitespace and newlines.\r\n- [#2364](https://github.com/nautobot/nautobot/issues/2364) - Allow `invoke` tasks to be run even if `rich` is not installed.\r\n- [#2378](https://github.com/nautobot/nautobot/issues/2378) - Fix Job Result redirection on submit.\r\n- [#2382](https://github.com/nautobot/nautobot/issues/2382) - Removed extraneous cache and temporary files from the `dev` and `final-dev` Docker images to reduce image size.\r\n- [#2389](https://github.com/nautobot/nautobot/issues/2389) - Removed extraneous `inspect.getsource()` call from Job class.\r\n- [#2407](https://github.com/nautobot/nautobot/issues/2407) - Corrected SSO Backend reference for Azure AD Tenant.\r\n- [#2449](https://github.com/nautobot/nautobot/issues/2449) - CI: Moved dependency build to be a job, not a step.\r\n\r\n## Contributors\r\n- @HanlinMiao\r\n- @Kircheneer\r\n- @abates\r\n- @bryanculver\r\n- @glennmatthews\r\n- @gsnider2195\r\n- @jathanism\r\n- @smk4664\r\n- @timizuoebideri1\r\n- @whitej6\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.2...v1.4.3",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/76300369",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/76300369/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/76300369/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.2",
        "id": 76300369,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EjEBR",
        "tag_name": "v1.4.2",
        "target_commitish": "develop",
        "name": "v1.4.2 - 2022-09-05",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-09-05T14:47:31Z",
        "updated_at": "2022-09-05T15:46:42Z",
        "published_at": "2022-09-05T14:51:16Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/76936939",
                "id": 76936939,
                "node_id": "RA_kwDOFEucDc4Elfbr",
                "name": "nautobot-1.4.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48935337,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-09-05T15:46:36Z",
                "updated_at": "2022-09-05T15:46:38Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.2/nautobot-1.4.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/76936943",
                "id": 76936943,
                "node_id": "RA_kwDOFEucDc4Elfbv",
                "name": "nautobot-1.4.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 48217658,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-09-05T15:46:39Z",
                "updated_at": "2022-09-05T15:46:42Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.2/nautobot-1.4.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.2",
        "body": "### Added\r\n\r\n- [#983](https://github.com/nautobot/nautobot/issues/983) - Added functionalities to specify `args` and `kwargs` to `NavMenuItem`.\r\n- [#2250](https://github.com/nautobot/nautobot/issues/2250) - Added \"Stats\" and \"Rack Groups\" to Location detail view, added \"Locations\" to Site detail view.\r\n- [#2273](https://github.com/nautobot/nautobot/issues/2273) - Added custom markdownlint rule to check for invalid relative links in the documentation.\r\n- [#2307](https://github.com/nautobot/nautobot/issues/2307) - Added `dynamic_groups` field in GraphQL on objects that can belong to dynamic groups.\r\n- [#2314](https://github.com/nautobot/nautobot/pull/2314) - Added `pylint` to linting suite and CI.\r\n- [#2339](https://github.com/nautobot/nautobot/pull/2339) - Enabled and addressed additional `pylint` checkers.\r\n- [#2360](https://github.com/nautobot/nautobot/pull/2360) - Added Django natural key to `extras.Tag`.\r\n\r\n### Changed\r\n\r\n- [#2011](https://github.com/nautobot/nautobot/issues/2011) - replaced all .format() strings and C format strings with fstrings.\r\n- [#2293](https://github.com/nautobot/nautobot/pull/2293) - Updated GitHub bug report template.\r\n- [#2296](https://github.com/nautobot/nautobot/pull/2296) - Updated `netutils` dependency from 1.1.x to 1.2.x.\r\n- [#2347](https://github.com/nautobot/nautobot/pull/2347) - Revamped documentation look and feel.\r\n- [#2349](https://github.com/nautobot/nautobot/pull/2349) - Docker images are now built with Poetry 1.2.0.\r\n- [#2360](https://github.com/nautobot/nautobot/pull/2360) - Django natural key for Status is now `name` rather than `slug`.\r\n- [#2363](https://github.com/nautobot/nautobot/pull/2363) - Update app icons for consistency\r\n- [#2365](https://github.com/nautobot/nautobot/pull/2365) - Update Network to Code branding name\r\n- [#2367](https://github.com/nautobot/nautobot/pull/2367) - Remove coming soon from projects that exists\r\n\r\n### Fixed\r\n\r\n- [#449](https://github.com/nautobot/nautobot/issues/449) - Improved error checking and reporting when syncing Git repositories.\r\n- [#1227](https://github.com/nautobot/nautobot/issues/1227) - The NAUTOBOT_DOCKER_SKIP_INIT environment variable can now be set to \"false\" (case-insensitive),\r\n- [#1807](https://github.com/nautobot/nautobot/issues/1807) - Fixed post_run method fails to add exceptions to job log.\r\n- [#2085](https://github.com/nautobot/nautobot/issues/2085) - The log entries table on a job result page can now be filtered by log level or message and hitting the return key has no effect.\r\n- [#2107](https://github.com/nautobot/nautobot/issues/2107) - Fixed a TypeError when a view defines `action_buttons = None`.\r\n- [#2237](https://github.com/nautobot/nautobot/issues/2237) - Fixed several issues with permissions enforcement for Note creation and viewing.\r\n- [#2268](https://github.com/nautobot/nautobot/pull/2268) - Fixed broken links in documentation.\r\n- [#2269](https://github.com/nautobot/nautobot/issues/2269) - Fixed missing JS code causing rendering errors on GraphQL Query and Rack Reservation detail views.\r\n- [#2278](https://github.com/nautobot/nautobot/issues/2278) - Fixed incorrect permissions check on \"Installed Plugins\" menu item.\r\n- [#2290](https://github.com/nautobot/nautobot/issues/2290) - Fixed inheritance of ObjectListViewMixin for CircuitTypeUIViewSet.\r\n- [#2311](https://github.com/nautobot/nautobot/issues/2311) - Fixed autopopulation of \"Parent\" selection when editing an existing Location.\r\n- [#2341](https://github.com/nautobot/nautobot/issues/2341) - Fixed omission of docs from published Python packages.\r\n- [#2342](https://github.com/nautobot/nautobot/issues/2342) - Reduced file size of `nautobot-dev` Docker images by clearing Poetry cache\r\n- [#2350](https://github.com/nautobot/nautobot/issues/2350) - Fixed potential Redis deadlock if Nautobot server restarts at an unfortunate time.\r\n\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @glennmatthews\r\n* @whitej6\r\n* @jvanderaa\r\n* @smk4664\r\n* @briddo\r\n* @Kircheneer\r\n* @cmsirbu\r\n* @itdependsnetworks\r\n\r\n## New Contributors\r\n* @cmsirbu made their first contribution in https://github.com/nautobot/nautobot/pull/2347\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.1...v1.4.2",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2370",
        "mentions_count": 10
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/75024952",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/75024952/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/75024952/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.1",
        "id": 75024952,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EeMo4",
        "tag_name": "v1.4.1",
        "target_commitish": "develop",
        "name": "v1.4.1 - 2022-08-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-08-22T19:12:42Z",
        "updated_at": "2022-08-22T20:05:15Z",
        "published_at": "2022-08-22T19:15:37Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/75517345",
                "id": 75517345,
                "node_id": "RA_kwDOFEucDc4EgE2h",
                "name": "nautobot-1.4.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 25299090,
                "digest": null,
                "download_count": 15,
                "created_at": "2022-08-22T20:05:11Z",
                "updated_at": "2022-08-22T20:05:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.1/nautobot-1.4.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/75517347",
                "id": 75517347,
                "node_id": "RA_kwDOFEucDc4EgE2j",
                "name": "nautobot-1.4.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 24784797,
                "digest": null,
                "download_count": 16,
                "created_at": "2022-08-22T20:05:13Z",
                "updated_at": "2022-08-22T20:05:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.1/nautobot-1.4.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.1",
        "body": "### Added\r\n\r\n- [#1809](https://github.com/nautobot/nautobot/issues/1809) - Added Django natural key to `extras.Status` to simplify exporting and importing of database dumps for `Status` objects.\r\n- [#2202](https://github.com/nautobot/nautobot/pull/2202) - Added `validate_models` management command to validate each instance in the database.\r\n- [#2213](https://github.com/nautobot/nautobot/issues/2213) - Added a new `--pull` parameter for `invoke build` to tell Docker to pull images when building containers.\r\n\r\n### Changed\r\n\r\n- [#2206](https://github.com/nautobot/nautobot/issues/2206) - Changed Run button on Job Result to always be displayed, \"Re-Run\" if available.\r\n- [#2252](https://github.com/nautobot/nautobot/pull/2252) - Updated Poetry install command for Development Getting Started guide.\r\n\r\n### Fixed\r\n\r\n- [#2209](https://github.com/nautobot/nautobot/issues/2209) - Fixed lack of dark-mode support in GraphiQL page.\r\n- [#2215](https://github.com/nautobot/nautobot/issues/2215) - Fixed error seen in migration from 1.3.x if certain default Statuses had been modified.\r\n- [#2218](https://github.com/nautobot/nautobot/pull/2218) - Fixed typos/links in release notes and Dynamic Groups docs.\r\n- [#2219](https://github.com/nautobot/nautobot/pull/2219) - Fixed broken pagination in Dynamic Group detail \"Members\" tab.\r\n- [#2220](https://github.com/nautobot/nautobot/pull/2220) - Narrowed scope of auto-formatting in VSCode to only apply to Python files.\r\n- [#2222](https://github.com/nautobot/nautobot/issues/2222) - Fixed missing app headings in Swagger UI.\r\n- [#2229](https://github.com/nautobot/nautobot/issues/2229) - Fixed `render_form.html` include template to not render a duplicate `object_note` field.\r\n- [#2232](https://github.com/nautobot/nautobot/issues/2232) - Fixed incorrect API URLs and incorrect inclusion of Circuits UI URLs in Swagger UI.\r\n- [#2241](https://github.com/nautobot/nautobot/issues/2241) - Fixed `DynamicGroup.objects.get_for_model()` to support nested Dynamic Groups.\r\n- [#2259](https://github.com/nautobot/nautobot/issues/2259) - Fixed footer not bound to bottom of Device View.\r\n\r\n## Contributors\r\n* @jathanism\r\n* @glennmatthews\r\n* @HanlinMiao\r\n* @jifox\r\n* @nlgotz\r\n* @whitej6\r\n* @briddo\r\n* @itdependsnetworks\r\n\r\n## New Contributors\r\n* @nlgotz made their first contribution in https://github.com/nautobot/nautobot/pull/2230\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.0...v1.4.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2280",
        "mentions_count": 8
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/74470608",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/74470608/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/74470608/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.0",
        "id": 74470608,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EcFTQ",
        "tag_name": "v1.4.0",
        "target_commitish": "develop",
        "name": "v1.4.0 - 2022-08-15",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-08-16T01:03:41Z",
        "updated_at": "2022-08-16T01:54:31Z",
        "published_at": "2022-08-16T01:11:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/74821808",
                "id": 74821808,
                "node_id": "RA_kwDOFEucDc4EdbCw",
                "name": "nautobot-1.4.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 25294679,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-08-16T01:54:29Z",
                "updated_at": "2022-08-16T01:54:30Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0/nautobot-1.4.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/74821809",
                "id": 74821809,
                "node_id": "RA_kwDOFEucDc4EdbCx",
                "name": "nautobot-1.4.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 24782292,
                "digest": null,
                "download_count": 12,
                "created_at": "2022-08-16T01:54:31Z",
                "updated_at": "2022-08-16T01:54:31Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0/nautobot-1.4.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.0",
        "body": "## Release Overview\r\n\r\n### Added\r\n\r\n#### Custom Field Extended Filtering ([#1498](https://github.com/nautobot/nautobot/issues/1498))\r\n\r\nObjects with custom fields now support [filter lookup expressions](../rest-api/filtering/#lookup-expressions) for filtering by custom field values, such as `cf_date_field__gte=2022-08-11` to select objects whose `date_field` custom field has a date of 2022-08-11 or later.\r\n\r\n#### Custom Field Slugs ([#1962](https://github.com/nautobot/nautobot/issues/1962))\r\n\r\nCustom fields now have a distinct `slug` field. The custom field `name` attribute should be considered deprecated, and will be removed in a future major release (see also [#824](https://github.com/nautobot/nautobot/issues/824).) Additionally, the `label` attribute, while currently optional in the database, will become mandatory in that same future release as a consequence. When migrating from an earlier Nautobot release to version 1.4 or later, the `slug` and `label` for all existing custom fields will be automatically populated if not previously defined.\r\n\r\nA new version of the `/api/extras/custom-fields/` REST API endpoints has been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior (`name` required, `slug` and `label` optional; if unspecified, the `slug` and `label` will receive default values based on the provided `name`). A REST API client can request API version 1.4, in which case the updated API will require `slug` and `label` parameters in place of `name`.\r\n\r\nAdditionally, REST API serialization of custom field data is itself now versioned. For _all_ object endpoints that include custom field data under the `custom_fields` key, REST API versions 1.3 and earlier will continue the previous behavior of indexing the `custom_fields` dictionary by fields' `name` values, but when REST API version 1.4 or later is requested, the `custom_fields` data will be indexed by `slug` instead.\r\n\r\nFor technical reasons of backwards-compatibility, the database (ORM) and GraphQL interfaces continue to access and store object custom field data exclusively under the `name` key; this will change to use the `slug` in a future major release. Again, watch [#824](https://github.com/nautobot/nautobot/issues/824) for plans in that regard.\r\n\r\n#### Custom Tabs in Object Detail Views ([#1000](https://github.com/nautobot/nautobot/issues/1000))\r\n\r\nA plugin may now define extra tabs which will be appended to the object view's list of tabs.\r\n\r\nYou can refer to the [plugin development guide](../plugins/development.md#adding-extra-tabs) on how to add tabs to existing object detail views.\r\n\r\n#### Custom Template (CSS, HTML, JavaScript) on Job Forms ([#1865](https://github.com/nautobot/nautobot/issues/1865))\r\n\r\nJobs can now specify a `template_name` property and provide a custom template with additional JavaScript and CSS to help with user input on the Job submission form.\r\n\r\nYou can refer to the [Job class metadata attribute documentation](../additional-features/jobs.md#template_name) on how to build and define this template.\r\n\r\n#### Dynamic Groups Support Additional Models ([#2200](https://github.com/nautobot/nautobot/pull/2200))\r\n\r\nCluster, IP Address, Prefix, and Rack models can now be filtered on in Dynamic Groups and can also support nested or groups of Dynamic Groups. Some fields have been excluded from filtering until a sensible widget can be provided.\r\n\r\n#### Dark Mode UI ([#729](https://github.com/nautobot/nautobot/issues/729))\r\n\r\nNautobot's UI now supports dark mode, both explicitly and via browser preference selection.\r\n\r\nThe \"Theme\" link in the footer provides a modal popup to select the preferred theme. This preference is saved per browser via `localStorage`.\r\n\r\n#### Improved Filter Coverage for DCIM and Virtualization Models\r\n\r\n- DCIM: [#1729](https://github.com/nautobot/nautobot/issues/1729)\r\n- Virtualization: [#1735](https://github.com/nautobot/nautobot/issues/1735)\r\n\r\nThe DCIM, Virtualization FilterSets have been updated with over 150 new filters, including hybrid filters that support filtering on both `pk` and `slug` (or `pk` and `name` where `slug` is not available). A new filter class `NaturalKeyOrPKMultipleChoiceFilter` was added to `nautobot.utilities.filters` to support filtering on multiple fields of a related object. See the [Best Practices](../development/best-practices/#mapping-model-fields-to-filters) documentation for more information.\r\n\r\n#### Job Hooks ([#1878](https://github.com/nautobot/nautobot/issues/1878))\r\n\r\nJobs can now be configured to run automatically when a change event occurs on a Nautobot object. Job hooks associate jobs to content types and actions to run jobs when a create, update or delete action occurs on the selected content type. A new job base class `JobHookReceiver` was introduced that jobs must subclass to be associated with a job hook. See the [Job Hooks](../additional-features/job-hooks/) documentation for more information.\r\n\r\n#### Job Re-Runs ([#1875](https://github.com/nautobot/nautobot/issues/1875))\r\n\r\nJobResult records now save the arguments with which the Job was called, allowing for easy re-execution of the Job with the same arguments as before. A \"re-run\" button has been added to the JobResult list view and detail view.\r\n\r\n#### Location Data Model ([#1052](https://github.com/nautobot/nautobot/issues/1052))\r\n\r\nTo locate network information more precisely than a Site defines, you can now define a hierarchy of Location Types (for example, `Building` \u2190 `Floor` \u2190 `Room`) and then create Locations corresponding to these types within each Site. Data objects such as devices, prefixes, VLAN groups, etc. can thus be mapped or assigned to Location representing a specific building, wing, floor, room, etc. as appropriate to your needs.\r\n\r\n\r\n>**Info:** At present, Locations fill the conceptual space between the more abstract Region and Site models and the more concrete Rack Group model. In a future Nautobot release, some or all of these other models may be collapsed into Locations. That is to say, in the future you might not deal with Regions and Sites as distinct models, but instead your Location Type hierarchy might include these higher-level categories, becoming something like Country \u2190 City \u2190 Site \u2190 Building \u2190 Floor \u2190 Room.\r\n\r\n#### Parent Interfaces and Bridge Interfaces ([#1455](https://github.com/nautobot/nautobot/issues/1455))\r\n\r\nInterface and VMInterface models now have `parent_interface` and `bridge` keys. An interface of type `Virtual` can now associate to a parent physical interface on the same device, virtual chassis, or virtual machine, and an interface of any type can specify another interface as its associated bridge interface. (A new `Bridge` interface type has also been added, but the `bridge` interface property is not restricted to interfaces of this type.)\r\n\r\n#### Rackview UI - Add Option to Truncate Device Name ([#1119](https://github.com/nautobot/nautobot/issues/1119))\r\n\r\nUsers can now toggle device full name and truncated name in the rack elevation view. The truncating function is customizable in `nautobot_config.py` via defining `UI_RACK_VIEW_TRUNCATE_FUNCTION`. Default behavior is to split on `.` and return the first item in the list.\r\n\r\n\"Save SVG\" link presents the same view as what is currently displayed on screen\r\n\r\nCurrent preferred toggle state is preserved across tabs (requires refresh) and persists in-browser until local storage is cleared. This presents a consistent behavior when browsing between multiple racks.\r\n\r\n#### REST API Enhancements ([#1463](https://github.com/nautobot/nautobot/issues/1463))\r\n\r\n- For all models that support Relationships, their corresponding list and detail REST API endpoints now include the option to include data on their associated Relationships and related objects by specifying `include=relationships` as a query parameter.\r\n- Relationship associations on a model can be edited by a PATCH to the appropriate nested value, such as `\"relationships\" -> <relationship-slug> -> \"source\"` or `\"relationships\" -> <relationship-slug> -> \"destination\"`.\r\n- For implementers of REST API serializers (core and/or plugins), a new `nautobot.extras.api.serializers.NautobotModelSerializer` base class has been added. Using this class guarantees support for relationships, custom fields, and computed fields on the serializer, and provides for a streamlined developer experience.\r\n\r\n#### Status Field on Interface, VMInterface Models ([#984](https://github.com/nautobot/nautobot/issues/984))\r\n\r\nInterface and VMInterface models now support a status. Default statuses that are available to be set are: Active, Planned, Maintenance, Failed, and Decommissioned. During migration all existing interfaces will be set to the status of \"Active\".\r\n\r\nA new version of the `/dcim/interfaces/*` REST API endpoints have been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior unless the REST API client explicitly requests API version=1.4. If you continue to use the pre-1.4 API endpoints, status is defaulted to \"Active\".\r\n\r\nVisit the documentation on [REST API versioning](../rest-api/overview/#versioning) for more information on using the versioned APIs.\r\n\r\n#### NautobotUIViewSet ([#1812](https://github.com/nautobot/nautobot/issues/1812))\r\n\r\nNew in Nautobot 1.4 is the debut of `NautobotUIViewSet`: A powerful plugin development tool that can save plugin developer hundreds of lines of code compared to using legacy `generic.views`. Using it to gain access to default functionalities previous provided by `generic.views` such as `create()`, `bulk_create()`, `update()`, `partial_update()`, `bulk_update()`, `destroy()`, `bulk_destroy()`, `retrieve()` and `list()` actions.\r\n\r\nNote that this ViewSet is catered specifically to the UI, not the API.\r\n\r\nConcrete examples on how to use `NautobotUIViewSet` resides in `nautobot.circuits.views`.\r\n\r\nVisit the documentation on [plugins/development.md](/docs/plugins/development.md) for more information on how to use `NautobotUIViewSet`.\r\n\r\n#### Notes ([#767](https://github.com/nautobot/nautobot/issues/767))\r\n\r\nPrimary and Organizational models now support notes. A notes tab has been added to the Object Detail view for all models that inherit the Primary or Organizational base abstract models.\r\n\r\n>**Warning:** Any plugin that inherits from one of these two models and uses the `ViewTestCases.PrimaryObjectViewTestCase` or `ViewTestCases.OrganizationalObjectViewTestCase` for their test will need to add the `NotesObjectView` to the objects URLs. See [Plugin Development](../plugins/development.md#note-url-endpoint) for more details.\r\n\r\nNotes can also be used via the REST API at endpoint `/api/extras/notes` or per object at the object's `/notes` endpoint.\r\n\r\n>**Info:** For implementers of REST API views (core and/or plugins), a new `nautobot.extras.api.views.NautobotModelViewSet` base class has been added. Use of this class ensures that all features from `PrimaryModel` or `OrganizationalModel` are accessible through the API. This includes custom fields and notes.\r\n\r\n### Changed\r\n\r\n#### Dynamic Groups of Dynamic Groups ([#1614](https://github.com/nautobot/nautobot/issues/1614))\r\n\r\nDynamic Groups may now be nested in parent/child relationships. The Dynamic Group edit view now has a \"Child Groups\" tab that allows one to make other Dynamic Groups of the same content type children of the parent group. Any filters provided by the child groups are used to filter the members from the parent group using one of three operators: \"Restrict (AND)\", \"Include (OR)\", or \"Exclude (NOT)\". This allows for logical parenthetical grouping of nested groups by the operator you choose for that child group association to the parent.\r\n\r\n>**Warning:** The default behavior of Dynamic Groups with an empty filter (`{}`) has been inverted to include all objects matching the content type by default instead of matching no objects. This was necessary to implement the progressive layering of child filters similarly to how we use filters to reduce desired objects from basic list view filters.\r\n\r\n#### Renamed Mixin Classes ([#2135](https://github.com/nautobot/nautobot/issues/2135))\r\n\r\nA number of mixin classes have been renamed for improved self-consistency and clarity of usage. The former names of these mixins are still available for now as aliases, but inheriting from these mixins will raise a `DeprecationWarning`, and these aliases will be removed in a future major release.\r\n\r\n| Former Name                 | New Name                            |\r\n| --------------------------- | ----------------------------------- |\r\n| `AddRemoveTagsForm`         | `TagsBulkEditFormMixin`             |\r\n| `CustomFieldBulkCreateForm` | `CustomFieldModelBulkEditFormMixin` |\r\n| `CustomFieldBulkEditForm`   | `CustomFieldModelBulkEditFormMixin` |\r\n| `CustomFieldFilterForm`     | `CustomFieldModelFilterFormMixin`   |\r\n| `CustomFieldModelForm`      | `CustomFieldModelFormMixin`         |\r\n| `RelationshipModelForm`     | `RelationshipModelFormMixin`        |\r\n| `StatusBulkEditFormMixin`   | `StatusModelBulkEditFormMixin`      |\r\n| `StatusFilterFormMixin`     | `StatusModelFilterFormMixin`        |\r\n\r\n#### Strict Filter Validation by Default ([#1736](https://github.com/nautobot/nautobot/issues/1736))\r\n\r\nFiltering of object lists in the UI and in the REST API will now report an error if an unknown or unrecognized filter parameter is specified. _This is a behavior change from previous Nautobot releases, in which unknown filter parameters would be silently discarded and ignored._\r\n\r\nA new configuration setting, [`STRICT_FILTERING`](../configuration/optional-settings.md#strict_filtering) has been added. It defaults to `True`, enabling strict validation of filter parameters, but can be set to `False` to disable this validation.\r\n\r\n>**Warning:** Setting `STRICT_FILTERING` to `False` can result in unexpected filtering results in the case of user error, for example a request to `/api/dcim/devices/?has_primry_ip=false` (note the typo `primry`) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.\r\n\r\n#### Moved Registry Template Context ([#1945](https://github.com/nautobot/nautobot/issues/1945))\r\n\r\nThe `settings_and_registry` default context processor was changed to purely `settings` - the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a new `registry` template tag that can be invoked by specific templates to provide this variable where needed.\r\n\r\n---\r\n\r\n## v1.4.0 (2022-08-15)\r\n\r\n### Added\r\n\r\n- [#1812](https://github.com/nautobot/nautobot/issues/1812) - Added `NautobotViewSet` and accompanying helper methods, documentation.\r\n- [#2173](https://github.com/nautobot/nautobot/pull/2173) - Added flake8 linting and black formatting settings to vscode workspace settings.\r\n- [#2105](https://github.com/nautobot/nautobot/issues/2105) - Added support for Notes in NautobotBulkEditForm and NautobotEditForm.\r\n- [#2200](https://github.com/nautobot/nautobot/pull/2200) - Added Dynamic Groups support for Cluster, IP Address, Prefix, and Rack.\r\n\r\n### Changed\r\n\r\n- [#1812](https://github.com/nautobot/nautobot/issues/1812) - Changed Circuit app models to use `NautobotViewSet`s.\r\n- [#2029](https://github.com/nautobot/nautobot/pull/2029) - Updated optional settings docs to call out environment variable only settings.\r\n- [#2176](https://github.com/nautobot/nautobot/pull/2176) - Update invoke task output to use rich formatting, print full Docker Compose commands.\r\n- [#2183](https://github.com/nautobot/nautobot/pull/2183) - Update dependency django to ~3.2.15.\r\n- [#2193](https://github.com/nautobot/nautobot/issues/2193) - Updated Postgres/MySQL `dumpdata` docs to exclude `django_rq` exports.\r\n- [#2200](https://github.com/nautobot/nautobot/pull/2200) - Group of dynamic group membership links now link to the group's membership table view.\r\n\r\n### Fixed\r\n\r\n- [#1304](https://github.com/nautobot/nautobot/issues/1304) - Fixed incorrect display of connection counts on home page.\r\n- [#1845](https://github.com/nautobot/nautobot/issues/1845) - Fixed not being able to schedule job with 'immediate' schedule via API.\r\n- [#1996](https://github.com/nautobot/nautobot/issues/1996) - Fixed Menu Item `link_text` render on top of buttons.\r\n- [#2178](https://github.com/nautobot/nautobot/issues/2178) - Fixed \"invalid filter\" error when filtering JobResults in the UI.\r\n- [#2184](https://github.com/nautobot/nautobot/issues/2184) - Fixed job re-run not honoring `has_sensitive_variables`.\r\n- [#2190](https://github.com/nautobot/nautobot/pull/2190) - Fixed tags missing from Location forms.\r\n- [#2191](https://github.com/nautobot/nautobot/pull/2191) - Fix widget for boolean filters fields when generating filter form for a Dynamic Group\r\n- [#2192](https://github.com/nautobot/nautobot/issues/2178) - Fixed job.request removed from job instance in `v1.4.0b1`.\r\n- [#2197](https://github.com/nautobot/nautobot/pull/2197) - Fixed some display issues in the Dynamic Groups detail view.\r\n\r\n## v1.4.0rc1 (2022-08-10)\r\n\r\n### Added\r\n\r\n- [#767](https://github.com/nautobot/nautobot/issues/767) - Added notes field to Primary and Organizational models.\r\n- [#1498](https://github.com/nautobot/nautobot/issues/1498) - Added extended lookup expression filters to custom fields.\r\n- [#1962](https://github.com/nautobot/nautobot/issues/1962) - Added `slug` field to Custom Field model, added 1.4 REST API version of the `api/extras/custom-fields/` endpoints.\r\n- [#2106](https://github.com/nautobot/nautobot/issues/2106) - Added support for listing/creating Notes via REST API.\r\n\r\n### Changed\r\n\r\n- [#2156](https://github.com/nautobot/nautobot/pull/2156) - Update network automation apps listed on overview of docs.\r\n- [#2168](https://github.com/nautobot/nautobot/pull/2168) - Added model toggle to skip adding missing Dynamic Group filter fields for use in easing integration of new models into Dynamic Groups.\r\n\r\n### Fixed\r\n\r\n- [#2090](https://github.com/nautobot/nautobot/issues/2090) - Fixed an issue where a REST API PATCH of a Tag could inadvertently reset its associated content-types.\r\n- [#2150](https://github.com/nautobot/nautobot/issues/2150) - Fixed unit tests performance degradation.\r\n- [#2132](https://github.com/nautobot/nautobot/pull/2132) - Updated job hooks to use slugs in urls instead of pk.\r\n- [#2133](https://github.com/nautobot/nautobot/pull/2133) - Update documentation for job hooks, make it reachable from the Nautobot UI.\r\n- [#2135](https://github.com/nautobot/nautobot/issues/2135) - Fixed ImportError on `RelationshipModelForm`, renamed other mixins and added aliases for backwards compatibility.\r\n- [#2137](https://github.com/nautobot/nautobot/issues/2137) - Fixed incorrect parameter name in `NaturalKeyOrPKMultipleChoiceFilter` documentation.\r\n- [#2142](https://github.com/nautobot/nautobot/pull/2142) - Fixed incorrect URL field in REST API nested relationship representation.\r\n- [#2165](https://github.com/nautobot/nautobot/pull/2165) - Fix up relationship-association API test issue.\r\n\r\n## v1.4.0b1 (2022-07-30)\r\n\r\n### Added\r\n\r\n- [#1463](https://github.com/nautobot/nautobot/issues/1463) - Added REST API support for opt-in `relationships` data on model endpoints; added `NautobotModelSerializer` base class.\r\n- [#1614](https://github.com/nautobot/nautobot/issues/1614) - Added support for nesting of Dynamic Groups, allowing inclusion/exclusion rules of sub-group members.\r\n- [#1735](https://github.com/nautobot/nautobot/issues/1735) - Added missing filters to model FilterSets for Virtualization models.\r\n- [#1865](https://github.com/nautobot/nautobot/issues/1865) - Added support for a custom template on Job forms.\r\n- [#1875](https://github.com/nautobot/nautobot/issues/1875) - Add ability to quickly re-submit a previously run `Job` with the same parameters.\r\n- [#1877](https://github.com/nautobot/nautobot/issues/1877) - Add new job base class JobHookReceiver to support triggering job execution from change events.\r\n- [#1878](https://github.com/nautobot/nautobot/issues/1878) - Add job hooks feature.\r\n- [#1883](https://github.com/nautobot/nautobot/issues/1883) - Add ability to filter objects by their relationships into the existing FilterSet.\r\n- [#1884](https://github.com/nautobot/nautobot/issues/1884) - Add ability to set the relationship filter via the filter form.\r\n- [#2035](https://github.com/nautobot/nautobot/pull/2035) - Added change source context to object change context manager.\r\n- [#2051](https://github.com/nautobot/nautobot/issues/2051) - Add changelog url for Relationships.\r\n- [#2061](https://github.com/nautobot/nautobot/pull/2061) - Add draggable child groups to Dynamic Groups edit view in UI, recompute and hide weights.\r\n- [#2072](https://github.com/nautobot/nautobot/pull/2072) - Expand on `query_params` for `ObjectVar` in Jobs documentation.\r\n\r\n### Changed\r\n\r\n- [#2049](https://github.com/nautobot/nautobot/pull/2049) - Moved `get_changelog_url` to a method on objects that support changelogs, updated template context.\r\n- [#2116](https://github.com/nautobot/nautobot/pull/2116) - Updated package dependencies: Pillow `~9.1.1` -> `~9.2.0`, black `~22.3.0` -> `~22.6.0`, coverage `6.4.1` -> `6.4.2`, django-cacheops `6.0` -> `6.1`, django-cryptography `1.0` -> `1.1`, django-debug-toolbar `~3.4.0` -> `~3.5.0`, django-extensions `~3.1.5` -> `~3.2.0`, drf-yasg `~1.20.0` -> `^1.20.0`, importlib-metadata `~4.4` -> `^4.4.0`, jsonschema `~4.4.0` -> `~4.8.0`, mkdocs `1.3.0` -> `1.3.1`, mkdocs `==1.3.0` -> `==1.3.1`, mkdocs-include-markdown-plugin `~3.2.3` -> `~3.6.0`, mkdocs-include-markdown-plugin `==3.2.3` -> `==3.6.1`, social-auth-core `~4.2.0` -> `~4.3.0`, svgwrite `1.4.2` -> `1.4.3`\r\n\r\n### Fixed\r\n\r\n- [#1710](https://github.com/nautobot/nautobot/issues/1710) - Fixed invalid CSS when clicking \"Add another\" row buttons for formsets on Secrets Groups, Dynamic Groups edit view in the UI.\r\n- [#2069](https://github.com/nautobot/nautobot/issues/2069) - Addressed numerous UX improvements for Dynamic Groups of Dynamic Groups feature to ease usability of this feature.\r\n- [#2109](https://github.com/nautobot/nautobot/issues/2109) - Fixed Relationship Filters are not Applied with \"And\" Operator.\r\n- [#2111](https://github.com/nautobot/nautobot/issues/2111) - Fixed Invalid filter error thrown for `__source` with message: \"\" is not a valid UUID.\r\n\r\n## v1.4.0a2 (2022-07-11)\r\n\r\n!!! attention\r\n`next` and `develop` introduced conflicting migration numbers during the release cycle. This necessitates reordering the migration in `next`. If you installed `v1.4.0a1`, you will need to roll back a migration before upgrading/installing `v1.4.0a2` and newer. If you have not installed `v1.4.0a` this will not be an issue.\r\n\r\n    Before upgrading, run: `nautobot-server migrate extras 0033_add__optimized_indexing`. This will revert the reordered migration `0034_configcontextschema__remove_name_unique__create_constraint_unique_name_owner`, which is now number `0035`.\r\n\r\n    Perform the Nautobot upgrade as usual and proceed with post-installation migration.\r\n\r\n    No data loss is expected as the reordered migration only modified indexing on existing fields.\r\n\r\n### Added\r\n\r\n- [#1000](https://github.com/nautobot/nautobot/issues/1000) - Object detail views can now have extra UI tabs which are defined by a plugin.\r\n- [#1052](https://github.com/nautobot/nautobot/issues/1052) - Initial prototype implementation of Location data model.\r\n- [#1318](https://github.com/nautobot/nautobot/issues/1318) - Added `nautobot.extras.forms.NautobotBulkEditForm` base class. All bulk-edit forms for models that support both custom fields and relationships now inherit from this class.\r\n- [#1466](https://github.com/nautobot/nautobot/issues/1466) - Plugins can now override views.\r\n- [#1729](https://github.com/nautobot/nautobot/issues/1729) - Add new filter class `NaturalKeyOrPKMultipleChoiceFilter` to `nautobot.utilities.filters`.\r\n- [#1729](https://github.com/nautobot/nautobot/issues/1729) - Add 137 new filters to `nautobot.dcim.filters` FilterSets.\r\n- [#1729](https://github.com/nautobot/nautobot/issues/1729) - Add `cable_terminations` to the `model_features` registry.\r\n- [#1893](https://github.com/nautobot/nautobot/issues/1893) - Added an object detail view for Relationships.\r\n- [#1949](https://github.com/nautobot/nautobot/issues/1949) - Added TestCaseMixin for Helper Functions across all test case bases.\r\n\r\n### Changed\r\n\r\n- [#1908](https://github.com/nautobot/nautobot/pull/1908) - Update dependency Markdown to ~3.3.7\r\n- [#1909](https://github.com/nautobot/nautobot/pull/1909) - Update dependency MarkupSafe to ~2.1.1\r\n- [#1912](https://github.com/nautobot/nautobot/pull/1912) - Update dependency celery to ~5.2.7\r\n- [#1913](https://github.com/nautobot/nautobot/pull/1913) - Update dependency django-jinja to ~2.10.2\r\n- [#1915](https://github.com/nautobot/nautobot/pull/1915) - Update dependency invoke to ~1.7.1\r\n- [#1917](https://github.com/nautobot/nautobot/pull/1917) - Update dependency svgwrite to ~1.4.2\r\n- [#1919](https://github.com/nautobot/nautobot/pull/1919) - Update dependency Pillow to ~9.1.1\r\n- [#1920](https://github.com/nautobot/nautobot/pull/1920) - Update dependency coverage to ~6.4.1\r\n- [#1921](https://github.com/nautobot/nautobot/pull/1921) - Update dependency django-auth-ldap to ~4.1.0\r\n- [#1924](https://github.com/nautobot/nautobot/pull/1924) - Update dependency django-cors-headers to ~3.13.0\r\n- [#1925](https://github.com/nautobot/nautobot/pull/1925) - Update dependency django-debug-toolbar to ~3.4.0\r\n- [#1928](https://github.com/nautobot/nautobot/pull/1928) - Update dependency napalm to ~3.4.1\r\n- [#1929](https://github.com/nautobot/nautobot/pull/1929) - Update dependency selenium to ~4.2.0\r\n- [#1945](https://github.com/nautobot/nautobot/issues/1945) - Change the `settings_and_registry` default context processor to purely `settings`, moving registry dictionary to be accessible via `registry` template tag.\r\n\r\n### Fixed\r\n\r\n- [#1898](https://github.com/nautobot/nautobot/issues/1898) - Browsable API is now properly styled as the rest of the app.\r\n\r\n### Removed\r\n\r\n- [#1462](https://github.com/nautobot/nautobot/issues/1462) - Removed job source tab from Job and Job Result view.\r\n- [#2002](https://github.com/nautobot/nautobot/issues/2002) - Removed rqworker container from default Docker development environment.\r\n\r\n## v1.4.0a1 (2022-06-13)\r\n\r\n### Added\r\n\r\n- [#729](https://github.com/nautobot/nautobot/issues/729) - Added UI dark mode.\r\n- [#984](https://github.com/nautobot/nautobot/issues/984) - Added status field to Interface, VMInterface models.\r\n- [#1119](https://github.com/nautobot/nautobot/issues/1119) - Added truncated device name functionality to Rackview UI.\r\n- [#1455](https://github.com/nautobot/nautobot/issues/1455) - Added `parent_interface` and `bridge` fields to Interface and VMInterface models.\r\n- [#1833](https://github.com/nautobot/nautobot/pull/1833) - Added `hyperlinked_object` template filter to consistently reference objects in templates.\r\n\r\n### Changed\r\n\r\n- [#1736](https://github.com/nautobot/nautobot/issues/1736) - `STRICT_FILTERING` setting is added and enabled by default.\r\n- [#1793](https://github.com/nautobot/nautobot/pull/1793) - Added index notes to fields from analysis, relaxed ConfigContextSchema constraint (unique on `name`, `owner_content_type`, `owner_object_id` instead of just `name`).\r\n\r\n### Fixed\r\n\r\n- [#1815](https://github.com/nautobot/nautobot/issues/1815) - Fix theme link style in footer.\r\n- [#1831](https://github.com/nautobot/nautobot/issues/1831) - Fixed missing `parent_interface` and `bridge` from 1.4 serializer of Interfaces.\r\n\r\n\r\n## Contributors\r\n* @timizuoebideri1 \r\n* @matt852\r\n* @glennmatthews\r\n* @bryanculver\r\n* @briddo\r\n* @HanlinMiao\r\n* @whitej6 \r\n* @gsnider2195\r\n* @jathanism\r\n* @smk4664\r\n* @tbotnz\r\n* @itdependsnetworks\r\n* @sirtux\r\n* @mzbroch\r\n\r\n\r\n\r\n## New Contributors\r\n* @tbotnz made their first contribution in https://github.com/nautobot/nautobot/pull/1866\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.10...v1.4.0",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2212",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/74470608/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 1,
            "rocket": 0,
            "eyes": 0
        },
        "mentions_count": 14
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/74137466",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/74137466/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/74137466/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.0-rc.1",
        "id": 74137466,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Eaz96",
        "tag_name": "v1.4.0-rc.1",
        "target_commitish": "develop",
        "name": "v1.4.0-rc.1 - 2022-08-10",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2022-08-10T19:17:51Z",
        "updated_at": "2022-08-10T20:53:04Z",
        "published_at": "2022-08-10T19:23:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/74325602",
                "id": 74325602,
                "node_id": "RA_kwDOFEucDc4Ebh5i",
                "name": "nautobot-1.4.0rc1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23993960,
                "digest": null,
                "download_count": 12,
                "created_at": "2022-08-10T20:53:01Z",
                "updated_at": "2022-08-10T20:53:02Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0-rc.1/nautobot-1.4.0rc1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/74325603",
                "id": 74325603,
                "node_id": "RA_kwDOFEucDc4Ebh5j",
                "name": "nautobot-1.4.0rc1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23491741,
                "digest": null,
                "download_count": 10,
                "created_at": "2022-08-10T20:53:03Z",
                "updated_at": "2022-08-10T20:53:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0-rc.1/nautobot-1.4.0rc1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.0-rc.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.0-rc.1",
        "body": "## Release Overview\r\n\r\n### Added\r\n\r\n#### Custom Field Slugs ([#1962](https://github.com/nautobot/nautobot/issues/1962))\r\n\r\nCustom fields now have a distinct `slug` field. The custom field `name` attribute should be considered deprecated, and will be removed in a future major release (see also [#824](https://github.com/nautobot/nautobot/issues/824).) Additionally, the `label` attribute, while currently optional in the database, will become mandatory in that same future release as a consequence. When migrating from an earlier Nautobot release to version 1.4 or later, the `slug` and `label` for all existing custom fields will be automatically populated if not previously defined.\r\n\r\nA new version of the `/api/extras/custom-fields/` REST API endpoints has been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior (`name` required, `slug` and `label` optional; if unspecified, the `slug` and `label` will receive default values based on the provided `name`). A REST API client can request API version 1.4, in which case the updated API will require `slug` and `label` parameters in place of `name`.\r\n\r\nAdditionally, REST API serialization of custom field data is itself now versioned. For _all_ object endpoints that include custom field data under the `custom_fields` key, REST API versions 1.3 and earlier will continue the previous behavior of indexing the `custom_fields` dictionary by fields' `name` values, but when REST API version 1.4 or later is requested, the `custom_fields` data will be indexed by `slug` instead.\r\n\r\nFor technical reasons of backwards-compatibility, the database (ORM) and GraphQL interfaces continue to access and store object custom field data exclusively under the `name` key; this will change to use the `slug` in a future major release. Again, watch [#824](https://github.com/nautobot/nautobot/issues/824) for plans in that regard.\r\n\r\n#### Custom Template (CSS, HTML, JavaScript) on Job Forms ([#1865](https://github.com/nautobot/nautobot/issues/1865))\r\n\r\nJobs can now specify a `template_name` property and provide a custom template with additional JavaScript and CSS to help with user input on the Job submission form.\r\n\r\nYou can refer to the [Job class metadata attribute documentation](../additional-features/jobs.md#template_name) on how to build and define this template.\r\n\r\n#### Dark Mode UI ([#729](https://github.com/nautobot/nautobot/issues/729))\r\n\r\nNautobot's UI now supports dark mode, both explicitly and via browser preference selection.\r\n\r\nThe \"Theme\" link in the footer provides a modal popup to select the preferred theme. This preference is saved per browser via `localStorage`.\r\n\r\n#### Improved Filter Coverage for DCIM, Virtualization Models\r\n\r\n- DCIM: [#1729](https://github.com/nautobot/nautobot/issues/1729)\r\n- Virtualization: [#1735](https://github.com/nautobot/nautobot/issues/1735)\r\n\r\nThe DCIM, Virtualization FilterSets have been updated with over 150 new filters, including hybrid filters that support filtering on both `pk` and `slug` (or `pk` and `name` where `slug` is not available). A new filter class `NaturalKeyOrPKMultipleChoiceFilter` was added to `nautobot.utilities.filters` to support filtering on multiple fields of a related object. See the [Best Practices](../development/best-practices/#mapping-model-fields-to-filters) documentation for more information.\r\n\r\n#### Job Hooks ([#2103](https://github.com/nautobot/nautobot/pull/2103))\r\n\r\nJobs can now be configured to run automatically when a change event occurs on a Nautobot object. Job hooks associate jobs to content types and actions to run jobs when a create, update or delete action occurs on the selected content type. A new job base class `JobHookReceiver` was introduced that jobs must subclass to be associated with a job hook. See the [Job Hooks](../additional-features/job-hooks/) documentation for more information.\r\n\r\n#### Job Re-Runs ([#1875](https://github.com/nautobot/nautobot/issues/1875))\r\n\r\nJobResult records now save the arguments with which the Job was called, allowing for easy re-execution of the Job with the same arguments as before. A \"re-run\" button has been added to the JobResult list view and detail view.\r\n\r\n#### Location Data Model ([#1052](https://github.com/nautobot/nautobot/issues/1052))\r\n\r\nTo locate network information more precisely than a Site defines, you can now define a hierarchy of Location Types (for example, `Building` \u2190 `Floor` \u2190 `Room`) and then create Locations corresponding to these types within each Site. Data objects such as devices, prefixes, VLAN groups, etc. can thus be mapped or assigned to Location representing a specific building, wing, floor, room, etc. as appropriate to your needs.\r\n\r\n> **Info:**\r\n> At present, Locations fill the conceptual space between the more abstract Region and Site models and the more concrete Rack Group model. In a future Nautobot release, some or all of these other models may be collapsed into Locations. That is to say, in the future you might not deal with Regions and Sites as distinct models, but instead your Location Type hierarchy might include these higher-level categories, becoming something like Country \u2190 City \u2190 Site \u2190 Building \u2190 Floor \u2190 Room.\r\n\r\n#### Object Detail Tabs ([#1000](https://github.com/nautobot/nautobot/issues/1000))\r\n\r\nA plugin may now define extra tabs which will be appended to the object view's list of tabs.\r\n\r\nYou can refer to the [plugin development guide](../plugins/development.md##adding-extra-tabs) on how to add tabs to existing object detail views.\r\n\r\n#### Parent Interfaces and Bridge Interfaces ([#1455](https://github.com/nautobot/nautobot/issues/1455))\r\n\r\nInterface and VMInterface models now have `parent_interface` and `bridge` keys. An interface of type `Virtual` can now associate to a parent physical interface on the same device, virtual chassis, or virtual machine, and an interface of any type can specify another interface as its associated bridge interface. (A new `Bridge` interface type has also been added, but the `bridge` interface property is not restricted to interfaces of this type.)\r\n\r\n#### Rackview UI - Add Option to Truncate Device Name ([#1119](https://github.com/nautobot/nautobot/issues/1119))\r\n\r\nUsers can now toggle device full name and truncated name in the rack elevation view. The truncating function is customizable in `nautobot_config.py` via defining `UI_RACK_VIEW_TRUNCATE_FUNCTION`. Default behavior is to split on `.` and return the first item in the list.\r\n\r\n\"Save SVG\" link presents the same view as what is currently displayed on screen\r\n\r\nCurrent preferred toggle state is preserved across tabs (requires refresh) and persists in-browser until local storage is cleared. This presents a consistent behavior when browsing between multiple racks.\r\n\r\n#### REST API Enhancements ([#1463](https://github.com/nautobot/nautobot/issues/1463))\r\n\r\n- For all models that support Relationships, their corresponding list and detail REST API endpoints now include the option to include data on their associated Relationships and related objects by specifying `include=relationships` as a query parameter.\r\n- Relationship associations on a model can be edited by a PATCH to the appropriate nested value, such as `\"relationships\" -> <relationship-slug> -> \"source\"` or `\"relationships\" -> <relationship-slug> -> \"destination\"`.\r\n- For implementers of REST API serializers (core and/or plugins), a new `nautobot.extras.api.serializers.NautobotModelSerializer` base class has been added. Using this class guarantees support for relationships, custom fields, and computed fields on the serializer, and provides for a streamlined developer experience.\r\n\r\n#### Status Field on Interface, VMInterface Models ([#984](https://github.com/nautobot/nautobot/issues/984))\r\n\r\nInterface and VMInterface models now support a status. Default statuses that are available to be set are: Active, Planned, Maintenance, Failed, and Decommissioned. During migration all existing interfaces will be set to the status of \"Active\".\r\n\r\nA new version of the `/dcim/interfaces/*` REST API endpoints have been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior unless the REST API client explicitly requests API version=1.4. If you continue to use the pre-1.4 API endpoints, status is defaulted to \"Active\".\r\n\r\nVisit the documentation on [REST API versioning](../rest-api/overview/#versioning) for more information on using the versioned APIs.\r\n\r\n#### Notes ([#767](https://github.com/nautobot/nautobot/issues/767))\r\n\r\nPrimary and Organizational models now support notes. A notes tab has been added to the Object Detail view for all models that inherit the Primary or Organizational base abstract models.\r\n\r\n> **Warning:**\r\n> Any plugin that inherits from one of these two models and uses the `ViewTestCases.PrimaryObjectViewTestCase` or `ViewTestCases.OrganizationalObjectViewTestCase` for their test will need to add the `NotesObjectView` to the objects URLs. See [Plugin Development](../plugins/development.md#note-url-endpoint) for more details.\r\n\r\nNotes can also be used via the REST API at endpoint `/api/extras/notes` or per object at the object's `/notes` endpoint.\r\n\r\n> **Info:**\r\n> For implementers of REST API views (core and/or plugins), a new `nautobot.extras.api.views.NautobotModelViewSet` base class has been added. Use of this class ensures that all features from `PrimaryModel` or `OrganizationalModel` are accessible through the API. This includes custom fields and notes.\r\n\r\n### Changed\r\n\r\n#### Dynamic Groups of Dynamic Groups ([#1614](https://github.com/nautobot/nautobot/issues/1614))\r\n\r\nDynamic Groups may now be nested in parent/child relationships. The Dynamic Group edit view now has a \"Child Groups\" tab that allows one to make other Dynamic Groups of the same content type children of the parent group. Any filters provided by the child groups are used to filter the members from the parent group using one of three operators: \"Restrict (AND)\", \"Include (OR)\", or \"Exclude (NOT)\". This allows for logical parenthetical grouping of nested groups by the operator you choose for that child group association to the parent.\r\n\r\n> **Warning:**\r\n> The default behavior of Dynamic Groups with an empty filter (`{}`) has been inverted to include all objects matching the content type by default instead of matching no objects. This was necessary to implement the progressive layering of child filters similarly to how we use filters to reduce desired objects from basic list view filters.\r\n\r\n#### Renamed Mixin Classes ([#2135](https://github.com/nautobot/nautobot/issues/2135))\r\n\r\nA number of mixin classes have been renamed for improved self-consistency and clarity of usage. The former names of these mixins are still available for now as aliases, but inheriting from these mixins will raise a `DeprecationWarning`, and these aliases will be removed in a future major release.\r\n\r\n| Former Name                 | New Name                            |\r\n| --------------------------- | ----------------------------------- |\r\n| `AddRemoveTagsForm`         | `TagsBulkEditFormMixin`             |\r\n| `CustomFieldBulkCreateForm` | `CustomFieldModelBulkEditFormMixin` |\r\n| `CustomFieldBulkEditForm`   | `CustomFieldModelBulkEditFormMixin` |\r\n| `CustomFieldFilterForm`     | `CustomFieldModelFilterFormMixin`   |\r\n| `CustomFieldModelForm`      | `CustomFieldModelFormMixin`         |\r\n| `RelationshipModelForm`     | `RelationshipModelFormMixin`        |\r\n| `StatusBulkEditFormMixin`   | `StatusModelBulkEditFormMixin`      |\r\n| `StatusFilterFormMixin`     | `StatusModelFilterFormMixin`        |\r\n\r\n#### Strict Filter Validation by Default ([#1736](https://github.com/nautobot/nautobot/issues/1736))\r\n\r\nFiltering of object lists in the UI and in the REST API will now report an error if an unknown or unrecognized filter parameter is specified. _This is a behavior change from previous Nautobot releases, in which unknown filter parameters would be silently discarded and ignored._\r\n\r\nA new configuration setting, [`STRICT_FILTERING`](../configuration/optional-settings.md#strict_filtering) has been added. It defaults to `True`, enabling strict validation of filter parameters, but can be set to `False` to disable this validation.\r\n\r\n> **Warning:**\r\n> Setting `STRICT_FILTERING` to `False` can result in unexpected filtering results in the case of user error, for example a request to `/api/dcim/devices/?has_primry_ip=false` (note the typo `primry`) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.\r\n\r\n#### Moved Registry Template Context ([#1945](https://github.com/nautobot/nautobot/issues/1945))\r\n\r\nThe `settings_and_registry` default context processor was changed to purely `settings` - the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a new `registry` template tag that can be invoked by specific templates to provide this variable where needed.\r\n\r\n---\r\n\r\n## v1.4.0rc1 (2022-08-10)\r\n\r\n### Added\r\n\r\n- [#1962](https://github.com/nautobot/nautobot/issues/1962) - Added `slug` field to Custom Field model, added 1.4 REST API version of the `api/extras/custom-fields/` endpoints.\r\n- [#2106](https://github.com/nautobot/nautobot/issues/2106) - Added support for listing/creating Notes via REST API.\r\n\r\n### Changed\r\n\r\n- [#2156](https://github.com/nautobot/nautobot/pull/2156) - Update network automation apps listed on overview of docs.\r\n- [#2168](https://github.com/nautobot/nautobot/pull/2168) - Added model toggle to skip adding missing Dynamic Group filter fields for use in easing integration of new models into Dynamic Groups.\r\n\r\n### Fixed\r\n\r\n- [#2090](https://github.com/nautobot/nautobot/issues/2090) - Fixed an issue where a REST API PATCH of a Tag could inadvertently reset its associated content-types.\r\n- [#2150](https://github.com/nautobot/nautobot/issues/2150) - Fixed unit tests performance degradation.\r\n- [#2132](https://github.com/nautobot/nautobot/pull/2132) - Updated job hooks to use slugs in urls instead of pk.\r\n- [#2133](https://github.com/nautobot/nautobot/pull/2133) - Update documentation for job hooks, make it reachable from the Nautobot UI.\r\n- [#2135](https://github.com/nautobot/nautobot/issues/2135) - Fixed ImportError on `RelationshipModelForm`, renamed other mixins and added aliases for backwards compatibility.\r\n- [#2137](https://github.com/nautobot/nautobot/issues/2137) - Fixed incorrect parameter name in `NaturalKeyOrPKMultipleChoiceFilter` documentation.\r\n- [#2142](https://github.com/nautobot/nautobot/pull/2142) - Fixed incorrect URL field in REST API nested relationship representation.\r\n- [#2165](https://github.com/nautobot/nautobot/pull/2165) - Fix up relationship-association API test issue.\r\n\r\n\r\n## Contributors\r\n* @gsnider2195\r\n* @smk4664\r\n* @glennmatthews\r\n* @yoonthegoon \r\n* @itdependsnetworks\r\n* @jathanism \r\n* @briddo\r\n* @nniehoff \r\n* @timizuoebideri1\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.0-beta.1...v1.4.0-rc.1",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/73939870",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/73939870/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/73939870/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.10",
        "id": 73939870,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EaDue",
        "tag_name": "v1.3.10",
        "target_commitish": "develop",
        "name": "v1.3.10 - 2022-08-08",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-08-09T00:31:47Z",
        "updated_at": "2022-08-09T01:19:15Z",
        "published_at": "2022-08-09T00:35:57Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/74110532",
                "id": 74110532,
                "node_id": "RA_kwDOFEucDc4EatZE",
                "name": "nautobot-1.3.10-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23775605,
                "digest": null,
                "download_count": 15,
                "created_at": "2022-08-09T01:19:08Z",
                "updated_at": "2022-08-09T01:19:10Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.10/nautobot-1.3.10-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/74110537",
                "id": 74110537,
                "node_id": "RA_kwDOFEucDc4EatZJ",
                "name": "nautobot-1.3.10.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23302354,
                "digest": null,
                "download_count": 12,
                "created_at": "2022-08-09T01:19:11Z",
                "updated_at": "2022-08-09T01:19:15Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.10/nautobot-1.3.10.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.10",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.10",
        "body": "### Added\r\n\r\n- [#1226](https://github.com/nautobot/nautobot/issues/1226) - Added custom job intervals package management.\r\n- [#2091](https://github.com/nautobot/nautobot/issues/2091) - Added `remove_stale_scheduled_jobs` management command which removes all stale scheduled jobs and also added `has_sensitive_variables` field to Job model which prevents the job's input parameters from being saved to the database.\r\n- [#2073](https://github.com/nautobot/nautobot/pull/2073) - Added `--local` option to `nautobot-server runjob` command.\r\n- [#2080](https://github.com/nautobot/nautobot/pull/2080) - Added `--data` parameter to `nautobot-server runjob` command.\r\n- [#2143](https://github.com/nautobot/nautobot/pull/2143) - Scheduled Job detail view now includes details of any custom interval.\r\n\r\n### Changed\r\n\r\n- [#2025](https://github.com/nautobot/nautobot/pull/2025) - Tweak Renovate config for automated package management.\r\n- [#2114](https://github.com/nautobot/nautobot/issues/2114) - Home page now redirects to the login page when `HIDE_RESTRICTED_UI` is enabled and user is not authenticated.\r\n- [#2115](https://github.com/nautobot/nautobot/pull/2115) - Patch updates to `mkdocs`, `svgwrite`.\r\n\r\n### Fixed\r\n\r\n- [#1739](https://github.com/nautobot/nautobot/issues/1739) - Fixed paginator not enforcing max_page_size setting in web ui views.\r\n- [#2060](https://github.com/nautobot/nautobot/issues/2060) - Fixed relationship peer_id filter non-existent error on relationship association page.\r\n- [#2095](https://github.com/nautobot/nautobot/issues/2095) - Fixed health check failing with Redis Sentinel, TLS configuration.\r\n- [#2119](https://github.com/nautobot/nautobot/pull/2119) - Fixed flaky integration test for cable connection UI.\r\n\r\n### Security\r\n\r\n> _**IMPORTANT**_\r\n> With introducing the `has_sensitive_variables` flag on Job classes and model (see: [#2091](https://github.com/nautobot/nautobot/issues/2091)), jobs can be prevented from storing their inputs in the database. Due to the nature of queuing or scheduling jobs, the desired inputs must be stored for future use.\r\n> \r\n> New safe-default behavior will only permit jobs to be executed immediately, as `has_sensitive_variables` defaults to `True`. This value can be overridden by the Job class itself or the Job model edit page. Values entered for jobs executing immediately go straight to the Celery message bus and are cleaned up on completion of execution.\r\n>     \r\n> Scheduling jobs or requiring approval necessitates those values to be stored in the database until they have been sent to the Celery message bus for execution.\r\n> \r\n> During installation of `v1.3.10`, a migration is applied to set the `has_sensitive_variables` value to `True` to all existing Jobs. However to maintain backwards-compatibility, past scheduled jobs are permitted to keep their schedule. New schedules cannot be made until an administrator has overridden the `has_sensitive_variables` for the desired Job.\r\n> \r\n> A new management command exists (`remove_stale_scheduled_jobs`) which will aid in cleaning up schedules to past jobs which may still have sensitive data stored in the database. This command is not exhaustive nor intended to clean up sensitive values stored in the database. You should review the `extras_scheduledjob` table for any further cleanup.\r\n> \r\n> **Note:** Leveraging the Secrets and Secret Groups features in Jobs does not need to be considered a sensitive variable. Secrets are retrieved by reference at run time, which means no secret value is stored directly in the database.\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @gsnider2195\r\n* @yoonthegoon\r\n* @itdependsnetworks\r\n* @nniehoff\r\n*  @timizuoebideri1\r\n\r\n## New Contributors\r\n* @yoonthegoon made their first contribution in https://github.com/nautobot/nautobot/pull/2084\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.9...v1.3.10",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2161",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/73256747",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/73256747/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/73256747/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.0-beta.1",
        "id": 73256747,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EXc8r",
        "tag_name": "v1.4.0-beta.1",
        "target_commitish": "develop",
        "name": "v1.4.0-beta.1 - 2022-07-30",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2022-07-30T17:40:09Z",
        "updated_at": "2022-07-30T19:01:20Z",
        "published_at": "2022-07-30T17:55:25Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/73184585",
                "id": 73184585,
                "node_id": "RA_kwDOFEucDc4EXLVJ",
                "name": "nautobot-1.4.0b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23968196,
                "digest": null,
                "download_count": 12,
                "created_at": "2022-07-30T19:01:17Z",
                "updated_at": "2022-07-30T19:01:18Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0-beta.1/nautobot-1.4.0b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/73184589",
                "id": 73184589,
                "node_id": "RA_kwDOFEucDc4EXLVN",
                "name": "nautobot-1.4.0b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23470954,
                "digest": null,
                "download_count": 10,
                "created_at": "2022-07-30T19:01:18Z",
                "updated_at": "2022-07-30T19:01:20Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0-beta.1/nautobot-1.4.0b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.0-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.0-beta.1",
        "body": "## Release Overview\r\n\r\n### Added\r\n\r\n#### Custom Template (CSS, HTML, JavaScript) on Job Forms ([#1865](https://github.com/nautobot/nautobot/issues/1865))\r\n\r\n_New in Beta 1_\r\n\r\nJobs can now specify a `template_name` property and provide a custom template with additional JavaScript and CSS to help with user input on the Job submission form.\r\n\r\nYou can refer to the [Job class metadata attribute documentation](../additional-features/jobs.md#template_name) on how to build and define this template.\r\n\r\n#### Dark Mode UI ([#729](https://github.com/nautobot/nautobot/issues/729))\r\n\r\nNautobot's UI now supports dark mode, both explicitly and via browser preference selection.\r\n\r\nThe \"Theme\" link in the footer provides a modal popup to select the preferred theme. This preference is saved per browser via `localStorage`.\r\n\r\n#### Improved Filter Coverage for DCIM, Virtualization Models\r\n\r\n_New in Beta 1_\r\n\r\n- DCIM: [#1729](https://github.com/nautobot/nautobot/issues/1729)\r\n- Virtualization: [#1735](https://github.com/nautobot/nautobot/issues/1735)\r\n\r\nThe DCIM, Virtualization FilterSets have been updated with over 150 new filters, including hybrid filters that support filtering on both `pk` and `slug` (or `pk` and `name` where `slug` is not available). A new filter class `NaturalKeyOrPKMultipleChoiceFilter` was added to `nautobot.utilities.filters` to support filtering on multiple fields of a related object. See the [Best Practices](../development/best-practices/#mapping-model-fields-to-filters) documentation for more information.\r\n\r\n#### Job Hooks ([#2103](https://github.com/nautobot/nautobot/pull/2103))\r\n\r\n_New in Beta 1_\r\n\r\nJobs can now be configured to run automatically when a change event occurs on a Nautobot object. Job hooks associate jobs to content types and actions to run jobs when a create, update or delete action occurs on the selected content type. A new job base class `JobHookReceiver` was introduced that jobs must subclass to be associated with a job hook. See the [Job Hooks](../additional-features/job-hooks/) documentation for more information.\r\n\r\n#### Job Re-Runs ([#1875](https://github.com/nautobot/nautobot/issues/1875))\r\n\r\n_New in Beta 1_\r\n\r\nJobResult records now save the arguments with which the Job was called, allowing for easy re-execution of the Job with the same arguments as before. A \"re-run\" button has been added to the JobResult list view and detail view.\r\n\r\n#### Location Data Model ([#1052](https://github.com/nautobot/nautobot/issues/1052))\r\n\r\nTo locate network information more precisely than a Site defines, you can now define a hierarchy of Location Types (for example, `Building` \u2190 `Floor` \u2190 `Room`) and then create Locations corresponding to these types within each Site. Data objects such as devices, prefixes, VLAN groups, etc. can thus be mapped or assigned to Location representing a specific building, wing, floor, room, etc. as appropriate to your needs.\r\n\r\n> \u2139\ufe0f At present, Locations fill the conceptual space between the more abstract Region and Site models and the more concrete Rack Group model. In a future Nautobot release, some or all of these other models may be collapsed into Locations. That is to say, in the future you might not deal with Regions and Sites as distinct models, but instead your Location Type hierarchy might include these higher-level categories, becoming something like Country \u2190 City \u2190 Site \u2190 Building \u2190 Floor \u2190 Room.\r\n\r\n#### Object Detail Tabs ([#1000](https://github.com/nautobot/nautobot/issues/1000))\r\n\r\nA plugin may now define extra tabs which will be appended to the object view's list of tabs.\r\n\r\nYou can refer to the [plugin development guide](../plugins/development.md##adding-extra-tabs) on how to add tabs to existing object detail views.\r\n\r\n#### Parent Interfaces and Bridge Interfaces ([#1455](https://github.com/nautobot/nautobot/issues/1455))\r\n\r\nInterface and VMInterface models now have `parent_interface` and `bridge` keys. An interface of type `Virtual` can now associate to a parent physical interface on the same device, virtual chassis, or virtual machine, and an interface of any type can specify another interface as its associated bridge interface. (A new `Bridge` interface type has also been added, but the `bridge` interface property is not restricted to interfaces of this type.)\r\n\r\n#### Rackview UI - Add Option to Truncate Device Name ([#1119](https://github.com/nautobot/nautobot/issues/1119))\r\n\r\nUsers can now toggle device full name and truncated name in the rack elevation view. The truncating function is customizable in `nautobot_config.py` via defining `UI_RACK_VIEW_TRUNCATE_FUNCTION`. Default behavior is to split on `.` and return the first item in the list.\r\n\r\n\"Save SVG\" link presents the same view as what is currently displayed on screen\r\n\r\nCurrent preferred toggle state is preserved across tabs (requires refresh) and persists in-browser until local storage is cleared. This presents a consistent behavior when browsing between multiple racks.\r\n\r\n#### REST API Enhancements ([#1463](https://github.com/nautobot/nautobot/issues/1463))\r\n\r\n_New in Beta 1_\r\n\r\n- For all models that support Relationships, their corresponding list and detail REST API endpoints now include the option to include data on their associated Relationships and related objects by specifying `include=relationships` as a query parameter.\r\n- Relationship associations on a model can be edited by a PATCH to the appropriate nested value, such as `\"relationships\" -> <relationship-slug> -> \"source\"` or `\"relationships\" -> <relationship-slug> -> \"destination\"`.\r\n- For implementers of REST API serializers (core and/or plugins), a new `nautobot.extras.api.serializers.NautobotModelSerializer` base class has been added. Using this class guarantees support for relationships, custom fields, and computed fields on the serializer, and provides for a streamlined developer experience.\r\n\r\n#### Status Field on Interface, VMInterface Models ([#984](https://github.com/nautobot/nautobot/issues/984))\r\n\r\nInterface and VMInterface models now support a status. Default statuses that are available to be set are: Active, Planned, Maintenance, Failed, and Decommissioned. During migration all existing interfaces will be set to the status of \"Active\".\r\n\r\nA new version of the `/dcim/interfaces/*` REST API endpoints have been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior unless the REST API client explicitly requests API version=1.4. If you continue to use the pre-1.4 API endpoints, status is defaulted to \"Active\".\r\n\r\nVisit the documentation on [REST API versioning](../rest-api/overview/#versioning) for more information on using the versioned APIs.\r\n\r\n#### Notes ([#767](https://github.com/nautobot/nautobot/issues/767))\r\n\r\n_New in Beta 1_\r\n\r\nPrimary and Organizational models now support notes. A notes tab has been added to the Object Detail view for all models that inherit the Primary or Organizational base abstract models.\r\n\r\n> \u26a0\ufe0f Any plugin that inherits from one of these two models and uses the `ViewTestCases.PrimaryObjectViewTestCase` or `ViewTestCases.OrganizationalObjectViewTestCase` for their test will need to add the `NotesObjectView` to the objects URLs. See [Plugin Development](../plugins/development.md#note-url-endpoint) for more details.\r\n\r\n### Changed\r\n\r\n#### Dynamic Groups of Dynamic Groups ([#1614](https://github.com/nautobot/nautobot/issues/1614))\r\n\r\n_New in Beta 1_\r\n\r\nDynamic Groups may now be nested in parent/child relationships. The Dynamic Group edit view now has a \"Child Groups\" tab that allows one to make other Dynamic Groups of the same content type children of the parent group. Any filters provided by the child groups are used to filter the members from the parent group using one of three operators: \"Restrict (AND)\", \"Include (OR)\", or \"Exclude (NOT)\". This allows for logical parenthetical grouping of nested groups by the operator you choose for that child group association to the parent.\r\n\r\n> \u26a0\ufe0f The default behavior of Dynamic Groups with an empty filter (`{}`) has been inverted to include all objects matching the content type by default instead of matching no objects. This was necessary to implement the progressive layering of child filters similarly to how we use filters to reduce desired objects from basic list view filters.\r\n\r\n#### Strict Filter Validation by Default ([#1736](https://github.com/nautobot/nautobot/issues/1736))\r\n\r\nFiltering of object lists in the UI and in the REST API will now report an error if an unknown or unrecognized filter parameter is specified. _This is a behavior change from previous Nautobot releases, in which unknown filter parameters would be silently discarded and ignored._\r\n\r\nA new configuration setting, [`STRICT_FILTERING`](../configuration/optional-settings.md#strict_filtering) has been added. It defaults to `True`, enabling strict validation of filter parameters, but can be set to `False` to disable this validation.\r\n\r\n> \u26a0\ufe0f Setting `STRICT_FILTERING` to `False` can result in unexpected filtering results in the case of user error, for example a request to `/api/dcim/devices/?has_primry_ip=false` (note the typo `primry`) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.\r\n\r\n#### Moved Registry Template Context ([#1945](https://github.com/nautobot/nautobot/issues/1945))\r\n\r\nThe `settings_and_registry` default context processor was changed to purely `settings` - the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a new `registry` template tag that can be invoked by specific templates to provide this variable where needed.\r\n\r\n## v1.4.0b1 (2022-07-30)\r\n\r\n**Attention:**\r\n> `next` and `develop` introduced conflicting migration numbers during the release cycle. This necessitates reordering the migration in `next`. If you installed `v1.4.0a1` or `v1.4.0a2`, you will need to roll back a migration before upgrading/installing `v1.4.0b1`. If you have not installed either `v1.4.0a1` or `v1.4.0a2` this will not be an issue.\r\n> \r\n> Before upgrading, run: `nautobot-server migrate extras 0033_add__optimized_indexing`. This will revert to migrations prior to those introduced in 1.4.\r\n> \r\n> Perform the Nautobot upgrade as usual and proceed with post-installation migration.\r\n> \r\n> _**Data loss may occur from features in earlier alphas!**_\r\n\r\n\r\n### Added\r\n\r\n- [#1463](https://github.com/nautobot/nautobot/issues/1463) - Added REST API support for opt-in `relationships` data on model endpoints; added `NautobotModelSerializer` base class.\r\n- [#1614](https://github.com/nautobot/nautobot/issues/1614) - Added support for nesting of Dynamic Groupsallowing inclusion/exclusion rules of sub-group members\r\n- [#1735](https://github.com/nautobot/nautobot/issues/1735) - Added missing filters to model FilterSets for Virtualization models.\r\n- [#1865](https://github.com/nautobot/nautobot/issues/1865) - Added support for a custom template on Job forms.\r\n- [#1877](https://github.com/nautobot/nautobot/issues/1877) - Add new job base class JobHookReceiver to support triggering job execution from change events.\r\n- [#1883](https://github.com/nautobot/nautobot/issues/1883) - Add ability to filter objects by their relationships into the existing FilterSet.\r\n- [#1884](https://github.com/nautobot/nautobot/issues/1884) - Add ability to set the relationship filter via the filter form.\r\n- [#2035](https://github.com/nautobot/nautobot/pull/2035) - Added change source context to object change context manager.\r\n- [#2051](https://github.com/nautobot/nautobot/issues/2051) - Add changelog url for Relationships.\r\n- [#2061](https://github.com/nautobot/nautobot/pulls/2061) - Add draggable child groups to Dynamic Groups edit view in UI, recompute and hide weights.\r\n- [#2103](https://github.com/nautobot/nautobot/pull/2103) - Add job hooks feature.\r\n\r\n### Changed\r\n\r\n- [#2049](https://github.com/nautobot/nautobot/pull/2049) - Moved get_changelog_url to a method on objects that support changelogs, updated template context.\r\n- [#2116](https://github.com/nautobot/nautobot/pull/2116) - Updated package dependencies: Pillow `~9.1.1` -> `~9.2.0`, black `~22.3.0` -> `~22.6.0`, coverage `6.4.1` -> `6.4.2`, django-cacheops `6.0` -> `6.1`, django-cryptography `1.0` -> `1.1`, django-debug-toolbar `~3.4.0` -> `~3.5.0`, django-extensions `~3.1.5` -> `~3.2.0`, drf-yasg `~1.20.0` -> `^1.20.0`, importlib-metadata `~4.4` -> `^4.4.0`, jsonschema `~4.4.0` -> `~4.8.0`, mkdocs `1.3.0` -> `1.3.1`, mkdocs `==1.3.0` -> `==1.3.1`, mkdocs-include-markdown-plugin `~3.2.3` -> `~3.6.0`, mkdocs-include-markdown-plugin `==3.2.3` -> `==3.6.1`, social-auth-core `~4.2.0` -> `~4.3.0`, svgwrite `1.4.2` -> `1.4.3`\r\n\r\n### Fixed\r\n\r\n- [#1710](https://github.com/nautobot/nautobot/issues/1710) - Fixed invalid CSS when clicking \"Add another\" row buttons for formsets on Secrets Groups, Dynamic Groups edit view in the UI.\r\n- [#2069](https://github.com/nautobot/nautobot/issues/2069) - Addressed numerous UX improvements for Dynamic Groups of Dynamic Groups feature to ease usability of this feature.\r\n- [#2109](https://github.com/nautobot/nautobot/issues/2109) - Fixed Relationship Filters are not Applied with \"And\" Operator.\r\n- [#2111](https://github.com/nautobot/nautobot/issues/2111) - Fixed Invalid filter error thrown for __source with message: \u201c\u201d is not a valid UUID.\r\n\r\n\r\n## Contributors\r\n* @briddo\r\n* @HanlinMiao\r\n* @Kircheneer\r\n* @gsnider2195\r\n* @jathanism\r\n* @timizuoebideri1\r\n* @glennmatthews\r\n* @smk4664\r\n* @tbotnz\r\n* @yoonthegoon\r\n* @jeffkala\r\n* @itdependsnetworks\r\n* @bryanculver\r\n\r\n## New Contributors\r\n* @tbotnz made their first contribution in https://github.com/nautobot/nautobot/pull/1866\r\n* @yoonthegoon made their first contribution in https://github.com/nautobot/nautobot/pull/2084\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.0-alpha.2...v1.4.0-beta.1",
        "mentions_count": 13
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/72800253",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/72800253/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/72800253/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.9",
        "id": 72800253,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EVtf9",
        "tag_name": "v1.3.9",
        "target_commitish": "develop",
        "name": "v1.3.9 - 2022-07-25",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-07-25T21:10:49Z",
        "updated_at": "2022-07-25T21:57:42Z",
        "published_at": "2022-07-25T21:14:04Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/72664176",
                "id": 72664176,
                "node_id": "RA_kwDOFEucDc4EVMRw",
                "name": "nautobot-1.3.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23766157,
                "digest": null,
                "download_count": 15,
                "created_at": "2022-07-25T21:57:40Z",
                "updated_at": "2022-07-25T21:57:41Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.9/nautobot-1.3.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/72664179",
                "id": 72664179,
                "node_id": "RA_kwDOFEucDc4EVMRz",
                "name": "nautobot-1.3.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23295075,
                "digest": null,
                "download_count": 15,
                "created_at": "2022-07-25T21:57:41Z",
                "updated_at": "2022-07-25T21:57:42Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.9/nautobot-1.3.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.9",
        "body": "### Added\r\n\r\n- [#860](https://github.com/nautobot/nautobot/issues/860) - Added documentation that adding device component to device type does not modify existing device instances\r\n- [#1595](https://github.com/nautobot/nautobot/issues/1595) - Add ability to specify uWSGI buffer size via environment variable.\r\n- [#1757](https://github.com/nautobot/nautobot/issues/1757) - Added nullable face, position to Device bulk edit form to provided desired behavior to bulk assigning to a new rack.\r\n\r\n### Changed\r\n\r\n- [#386](https://github.com/nautobot/nautobot/issues/386) - Clarified messaging in API for rack position occupied.\r\n- [#1356](https://github.com/nautobot/nautobot/issues/1356) - Virtual chassis master device interface list is less confusing.\r\n- [#2045](https://github.com/nautobot/nautobot/pull/2045) - Clarified Job authoring around proper class inheritance.\r\n\r\n### Fixed\r\n\r\n- [#1035](https://github.com/nautobot/nautobot/issues/1035) - Fix assertion raised if SLAAC Status is missing when creating `IPAddress` objects\r\n- [#1694](https://github.com/nautobot/nautobot/issues/1694) - Fixed CablePath not found error when disconnects/delete action performed on a cable\r\n- [#1795](https://github.com/nautobot/nautobot/issues/1795) - Corrected relationship source/destination filter help text from queryset Filter to filterset Filter and updated documentations.\r\n- [#1839](https://github.com/nautobot/nautobot/issues/1795) - Fixed staff users with auth > group permissions unable to view groups in admin UI.\r\n- [#1937](https://github.com/nautobot/nautobot/issues/1937) - Solved _custom_field_data do not fully delete when using CustomFieldBulkDeleteView.\r\n- [#1947](https://github.com/nautobot/nautobot/issues/1947) - Fixed unbound local error by initializing template variable before conditional logic statements.\r\n- [#2036](https://github.com/nautobot/nautobot/pull/2036) - Fixed outdated UI navigation references in documentation.\r\n- [#2039](https://github.com/nautobot/nautobot/issues/2039) - Fixed IntegerVar with default set to 0 on Job evaluating to False.\r\n- [#2057](https://github.com/nautobot/nautobot/issues/2057) - Fixed RIR changelog route being in VRF name prefix.\r\n- [#2077](https://github.com/nautobot/nautobot/issues/2077) - Fixed an error when viewing object detail pages after uninstalling a plugin but still having RelationshipAssociations involving the plugin's models.\r\n- [#2081](https://github.com/nautobot/nautobot/issues/2081) - Fixed error raised if status connected not found when creating a cable\r\n\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @timizuoebideri1\r\n* @itdependsnetworks\r\n* @bryanculver\r\n* @Kircheneer\r\n* @jeffkala\r\n* @smk4664\r\n* @briddo\r\n* @glennmatthews\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.8...v1.3.9",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2098",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/71799044",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/71799044/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/71799044/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.0-alpha.2",
        "id": 71799044,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4ER5EE",
        "tag_name": "v1.4.0-alpha.2",
        "target_commitish": "develop",
        "name": "v1.4.0-alpha.2 - 2022-07-12",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2022-07-12T08:56:15Z",
        "updated_at": "2022-07-12T14:02:37Z",
        "published_at": "2022-07-12T12:53:10Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/71343661",
                "id": 71343661,
                "node_id": "RA_kwDOFEucDc4EQJ4t",
                "name": "nautobot-1.4.0a2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23908958,
                "digest": null,
                "download_count": 11,
                "created_at": "2022-07-12T14:02:34Z",
                "updated_at": "2022-07-12T14:02:36Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0-alpha.2/nautobot-1.4.0a2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/71343662",
                "id": 71343662,
                "node_id": "RA_kwDOFEucDc4EQJ4u",
                "name": "nautobot-1.4.0a2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23423092,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-07-12T14:02:36Z",
                "updated_at": "2022-07-12T14:02:37Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0-alpha.2/nautobot-1.4.0a2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.0-alpha.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.0-alpha.2",
        "body": "## Release Overview\r\n\r\n### Added\r\n\r\n#### Dark Mode UI ([#729](https://github.com/nautobot/nautobot/issues/729))\r\n\r\nNautobot's UI now supports dark mode, both explicitly and via browser preference selection.\r\n\r\nThe \"Theme\" link in the footer provides a modal popup to select the preferred theme. This preference is saved per browser via `localStorage`.\r\n\r\n#### Location Data Model ([#1052](https://github.com/nautobot/nautobot/issues/1052))\r\n\r\n_New in Alpha 2_\r\n\r\nTo locate network information more precisely than a Site defines, you can now define a hierarchy of Location Types (for example, `Building` \u2190 `Floor` \u2190 `Room`) and then create Locations corresponding to these types within each Site. Data objects such as devices, prefixes, VLAN groups, etc. can thus be mapped or assigned to Location representing a specific building, wing, floor, room, etc. as appropriate to your needs.\r\n\r\n> At present, Locations fill the conceptual space between the more abstract Region and Site models and the more concrete Rack Group model. In a future Nautobot release, some or all of these other models may be collapsed into Locations. That is to say, in the future you might not deal with Regions and Sites as distinct models, but instead your Location Type hierarchy might include these higher-level categories, becoming something like Country \u2190 City \u2190 Site \u2190 Building \u2190 Floor \u2190 Room.\r\n\r\n#### Parent Interfaces and Bridge Interfaces ([#1455](https://github.com/nautobot/nautobot/issues/1455))\r\n\r\nInterface and VMInterface models now have `parent_interface` and `bridge` keys. An interface of type `Virtual` can now associate to a parent physical interface on the same device, virtual chassis, or virtual machine, and an interface of any type can specify another interface as its associated bridge interface. (A new `Bridge` interface type has also been added, but the `bridge` interface property is not restricted to interfaces of this type.)\r\n\r\n#### Rackview UI - Add Option to Truncate Device Name ([#1119](https://github.com/nautobot/nautobot/issues/1119))\r\n\r\nUsers can now toggle device full name and truncated name in the rack elevation view. The truncating function is customizable in `nautobot_config.py` via defining `UI_RACK_VIEW_TRUNCATE_FUNCTION`. Default behavior is to split on `.` and return the first item in the list.\r\n\r\n\"Save SVG\" link presents the same view as what is currently displayed on screen\r\n\r\nCurrent preferred toggle state is preserved across tabs (requires refresh) and persists in-browser until local storage is cleared. This presents a consistent behavior when browsing between multiple racks.\r\n\r\n#### Status Field on Interface, VMInterface Models ([#984](https://github.com/nautobot/nautobot/issues/984))\r\n\r\nInterface and VMInterface models now support a status. Default statuses that are available to be set are: Active, Planned, Maintenance, Failed, and Decommissioned. During migration all existing interfaces will be set to the status of \"Active\".\r\n\r\nA new version of the `/dcim/interfaces/*` REST API endpoints have been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior unless the REST API client explicitly requests API version=1.4. If you continue to use the pre-1.4 API endpoints, status is defaulted to \"Active\".\r\n\r\nVisit the documentation on [REST API versioning](../rest-api/overview/#versioning) for more information on using the versioned APIs.\r\n\r\n#### Object Detail Tabs ([#1000](https://github.com/nautobot/nautobot/issues/1000))\r\n\r\n_New in Alpha 2_\r\n\r\nA plugin may now define extra tabs which will be appended to the object view's list of tabs.\r\n\r\nYou can refer to the [plugin development guide](../plugins/development.md##adding-extra-tabs) on how to add tabs to existing object detail views.\r\n\r\n#### Improved Filter Coverage for DCIM models ([#1729](https://github.com/nautobot/nautobot/issues/1729))\r\n\r\n_New in Alpha 2_\r\n\r\nThe DCIM FilterSets have been updated with 137 new filters, including hybrid filters that support filtering on both `pk` and `slug` (or `pk` and `name` where `slug` is not available). A new filter class `NaturalKeyOrPKMultipleChoiceFilter` was added to `nautobot.utilities.filters` to support filtering on multiple fields of a related object. See the [Best Practices](../development/best-practices/#mapping-model-fields-to-filters) documentation for more information.\r\n\r\n### Changed\r\n\r\n#### Strict Filter Validation by Default ([#1736](https://github.com/nautobot/nautobot/issues/1736))\r\n\r\nFiltering of object lists in the UI and in the REST API will now report an error if an unknown or unrecognized filter parameter is specified. _This is a behavior change from previous Nautobot releases, in which unknown filter parameters would be silently discarded and ignored._\r\n\r\nA new configuration setting, [`STRICT_FILTERING`](../configuration/optional-settings.md#strict_filtering) has been added. It defaults to `True`, enabling strict validation of filter parameters, but can be set to `False` to disable this validation.\r\n\r\n> Setting `STRICT_FILTERING` to `False` can result in unexpected filtering results in the case of user error, for example a request to `/api/dcim/devices/?has_primry_ip=false` (note the typo `primry`) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.\r\n\r\n#### Moved Registry Template Context ([#1945](https://github.com/nautobot/nautobot/issues/1945))\r\n\r\n_New in Alpha 2_\r\n\r\nThe `settings_and_registry` default context processor was changed to purely `settings` - the (large) Nautobot application registry dictionary is no longer provided as part of the render context for all templates by default. Added a new `registry` template tag that can be invoked by specific templates to provide this variable where needed.\r\n\r\n## v1.4.0a2 (2022-07-11)\r\n\r\n**Attention:**\r\n> `next` and `develop` introduced conflicting migration numbers during the release cycle. This necessitates reordering the migration in `next`. If you installed `v1.4.0a1`, you will need to roll back a migration before upgrading/installing `v1.4.0a2` and newer. If you have not installed `v1.4.0a` this will not be an issue.\r\n> \r\n> Before upgrading, run: `nautobot-server migrate extras 0033_add__optimized_indexing`. This will revert the reordered migration `0034_configcontextschema__remove_name_unique__create_constraint_unique_name_owner`, which is now number `0035`.\r\n> \r\n> Perform the Nautobot upgrade as usual and proceed with post-installation migration.\r\n> \r\n> No data loss is expected as the reordered migration only modified indexing on existing fields.\r\n\r\n### Added\r\n\r\n- [#1000](https://github.com/nautobot/nautobot/issues/1000) - Object detail views can now have extra UI tabs which are defined by a plugin.\r\n- [#1052](https://github.com/nautobot/nautobot/issues/1052) - Initial prototype implementation of Location data model\r\n- [#1318](https://github.com/nautobot/nautobot/issues/1318) - Added `nautobot.extras.forms.NautobotBulkEditForm` base class. All bulk-edit forms for models that support both custom fields and relationships now inherit from this class.\r\n- [#1466](https://github.com/nautobot/nautobot/issues/1466) - Plugins can now override views.\r\n- [#1729](https://github.com/nautobot/nautobot/issues/1729) - Add new filter class `NaturalKeyOrPKMultipleChoiceFilter` to `nautobot.utilities.filters`.\r\n- [#1729](https://github.com/nautobot/nautobot/issues/1729) - Add 137 new filters to `nautobot.dcim.filters` FilterSets.\r\n- [#1729](https://github.com/nautobot/nautobot/issues/1729) - Add `cable_terminations` to the `model_features` registry.\r\n- [#1893](https://github.com/nautobot/nautobot/issues/1893) - Added an object detail view for Relationships.\r\n- [#1949](https://github.com/nautobot/nautobot/issues/1949) - Added TestCaseMixin for Helper Functions across all test case bases.\r\n\r\n### Changed\r\n\r\n- [#1908](https://github.com/nautobot/nautobot/pull/1908) - Update dependency Markdown to ~3.3.7\r\n- [#1909](https://github.com/nautobot/nautobot/pull/1909) - Update dependency MarkupSafe to ~2.1.1\r\n- [#1912](https://github.com/nautobot/nautobot/pull/1912) - Update dependency celery to ~5.2.7\r\n- [#1913](https://github.com/nautobot/nautobot/pull/1913) - Update dependency django-jinja to ~2.10.2\r\n- [#1915](https://github.com/nautobot/nautobot/pull/1915) - Update dependency invoke to ~1.7.1\r\n- [#1917](https://github.com/nautobot/nautobot/pull/1917) - Update dependency svgwrite to ~1.4.2\r\n- [#1919](https://github.com/nautobot/nautobot/pull/1919) - Update dependency Pillow to ~9.1.1\r\n- [#1920](https://github.com/nautobot/nautobot/pull/1920) - Update dependency coverage to ~6.4.1\r\n- [#1921](https://github.com/nautobot/nautobot/pull/1921) - Update dependency django-auth-ldap to ~4.1.0\r\n- [#1924](https://github.com/nautobot/nautobot/pull/1924) - Update dependency django-cors-headers to ~3.13.0\r\n- [#1925](https://github.com/nautobot/nautobot/pull/1925) - Update dependency django-debug-toolbar to ~3.4.0\r\n- [#1928](https://github.com/nautobot/nautobot/pull/1928) - Update dependency napalm to ~3.4.1\r\n- [#1929](https://github.com/nautobot/nautobot/pull/1929) - Update dependency selenium to ~4.2.0\r\n- [#1945](https://github.com/nautobot/nautobot/issues/1945) - Change the `settings_and_registry` default context processor to purely `settings`, moving registry dictionary to be accessible via `registry` template tag.\r\n\r\n### Fixed\r\n\r\n- [#1898](https://github.com/nautobot/nautobot/issues/1898) - Browsable API is now properly styled as the rest of the app.\r\n\r\n### Removed\r\n\r\n- [#1462](https://github.com/nautobot/nautobot/issues/1462) - Removed job source tab from Job and Job Result view.\r\n- [#2002](https://github.com/nautobot/nautobot/issues/2002) - Removed rqworker container from default Docker development environment.\r\n\r\n## Contributors\r\n* @briddo\r\n* @HanlinMiao\r\n* @whitej6\r\n* @gsnider2195\r\n* @jathanism\r\n* @glennmatthews\r\n* @smk4664\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.4.0-alpha.1...v1.4.0-alpha.2",
        "mentions_count": 7
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/71711198",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/71711198/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/71711198/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.8",
        "id": 71711198,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4ERjne",
        "tag_name": "v1.3.8",
        "target_commitish": "develop",
        "name": "v1.3.8 - 2022-07-11",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-07-11T14:53:11Z",
        "updated_at": "2022-07-11T15:33:29Z",
        "published_at": "2022-07-11T14:57:43Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/71245944",
                "id": 71245944,
                "node_id": "RA_kwDOFEucDc4EPyB4",
                "name": "nautobot-1.3.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23759114,
                "digest": null,
                "download_count": 14,
                "created_at": "2022-07-11T15:33:26Z",
                "updated_at": "2022-07-11T15:33:27Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.8/nautobot-1.3.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/71245947",
                "id": 71245947,
                "node_id": "RA_kwDOFEucDc4EPyB7",
                "name": "nautobot-1.3.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23285665,
                "digest": null,
                "download_count": 10,
                "created_at": "2022-07-11T15:33:28Z",
                "updated_at": "2022-07-11T15:33:29Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.8/nautobot-1.3.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.8",
        "body": "### Added\r\n\r\n- [#1464](https://github.com/nautobot/nautobot/issues/1464) - Added \"Continue with SSO\" link on login page.\r\n\r\n### Changed\r\n\r\n- [#1407](https://github.com/nautobot/nautobot/issues/1407) - Changed custom field export column headings to prefix with `cf_`.\r\n- [#1603](https://github.com/nautobot/nautobot/issues/1603) - Changed GraphQL schema generation to call time for GraphQL API.\r\n- [#1977](https://github.com/nautobot/nautobot/pull/1977) - Updated Renovate config to batch updates (additional PRs included to further refine config).\r\n- [#2020](https://github.com/nautobot/nautobot/pull/2020) - Updated `celery >= 5.2.7`, `django-jinja  >= 2.10.2`, and `mysqlclient >= 2.1.1` versions in lock file (patch updates).\r\n\r\n### Fixed\r\n\r\n- [#1838](https://github.com/nautobot/nautobot/issues/1838) - Fixed job result to show latest not oldest.\r\n- [#1874](https://github.com/nautobot/nautobot/issues/1874) - Fixed Git repo sync issue with Sentinel with deprecated rq_count check.\r\n\r\n### Security\r\n\r\n<img width=\"698\" alt=\"CVE in Django versions >= 3.2, < 3.2.14. This update upgrades Django to 3.2.14.\" src=\"https://user-images.githubusercontent.com/31187/178294054-c2ed847c-4692-422c-9607-b940627afd4f.png\">\r\n\r\n- [#2004](https://github.com/nautobot/nautobot/pull/2004) - Bump Django from 3.2.13 to 3.2.14 for for [CVE-2022-34265](https://github.com/advisories/GHSA-p64x-8rxx-wf6q).\r\n\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @timizuoebideri1\r\n\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.7...v1.3.8",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/2033",
        "mentions_count": 2
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/70677794",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/70677794/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/70677794/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.7",
        "id": 70677794,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4ENnUi",
        "tag_name": "v1.3.7",
        "target_commitish": "develop",
        "name": "v1.3.7 - 2022-06-27",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-06-27T19:46:13Z",
        "updated_at": "2022-06-27T20:27:40Z",
        "published_at": "2022-06-27T19:51:56Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/69823223",
                "id": 69823223,
                "node_id": "RA_kwDOFEucDc4EKWr3",
                "name": "nautobot-1.3.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23757900,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-06-27T20:27:36Z",
                "updated_at": "2022-06-27T20:27:37Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.7/nautobot-1.3.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/69823232",
                "id": 69823232,
                "node_id": "RA_kwDOFEucDc4EKWsA",
                "name": "nautobot-1.3.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23283533,
                "digest": null,
                "download_count": 12,
                "created_at": "2022-06-27T20:27:38Z",
                "updated_at": "2022-06-27T20:27:40Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.7/nautobot-1.3.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.7",
        "body": "### Added\r\n\r\n- [#1896](https://github.com/nautobot/nautobot/pull/1856) - Added Renovate Bot configuration, targeting `next`.\r\n- [#1900](https://github.com/nautobot/nautobot/issues/1900) - Added ability to filter Git repository table based on provided contents.\r\n\r\n### Changed\r\n\r\n- [#1645](https://github.com/nautobot/nautobot/issues/1645) - Hide search bar for unauthenticated users if `HIDE_RESTRICTED_UI` is True\r\n- [#1946](https://github.com/nautobot/nautobot/pull/1946) - Increase character limit on `FileAttachment.mimetype` to 255 to allow for all mime types to be used.\r\n- [#1948](https://github.com/nautobot/nautobot/issues/1948) - Switched Renovate Bot configuration to bump lock-file only on patch releases instead of bumping in `pyproject.toml`.\r\n\r\n### Fixed\r\n\r\n- [#1677](https://github.com/nautobot/nautobot/issues/1677) - Fixed default values of custom fields on device components (such as Interface) not being applied upon Device creation.\r\n- [#1769](https://github.com/nautobot/nautobot/issues/1769) - Resolve missing menu 'General / Installed Plugins' in navbar if `HIDE_RESTRICTED_UI` is activated\r\n- [#1836](https://github.com/nautobot/nautobot/issues/1836) - Fixed incorrect pre-population of custom field filters in table views.\r\n- [#1870](https://github.com/nautobot/nautobot/issues/1870) - Fixed cable `_abs_length` validation error.\r\n- [#1941](https://github.com/nautobot/nautobot/pull/1941) - Fixes uWSGI config example, development environment links in Docker section of docs.\r\n\r\n## Contributors\r\n* @HanlinMiao\r\n* @timizuoebideri1\r\n* @whitej6\r\n* @joewesch\r\n* @Kircheneer\r\n\r\n## New Contributors\r\n* @joewesch made their first contribution in https://github.com/nautobot/nautobot/pull/1941\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.6...v1.3.7",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1967",
        "mentions_count": 5
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/69337254",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/69337254/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/69337254/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.4.0-alpha.1",
        "id": 69337254,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EIgCm",
        "tag_name": "v1.4.0-alpha.1",
        "target_commitish": "develop",
        "name": "v1.4.0-alpha.1 - 2022-06-13",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2022-06-13T20:12:08Z",
        "updated_at": "2022-06-13T21:14:53Z",
        "published_at": "2022-06-13T20:20:16Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/68379847",
                "id": 68379847,
                "node_id": "RA_kwDOFEucDc4EE2TH",
                "name": "nautobot-1.4.0a1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23856064,
                "digest": null,
                "download_count": 14,
                "created_at": "2022-06-13T21:14:49Z",
                "updated_at": "2022-06-13T21:14:51Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0-alpha.1/nautobot-1.4.0a1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/68379848",
                "id": 68379848,
                "node_id": "RA_kwDOFEucDc4EE2TI",
                "name": "nautobot-1.4.0a1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23379862,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-06-13T21:14:51Z",
                "updated_at": "2022-06-13T21:14:53Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.4.0-alpha.1/nautobot-1.4.0a1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.4.0-alpha.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.4.0-alpha.1",
        "body": "## Release Overview\r\n\r\n### Added\r\n\r\n#### Dark Mode UI ([#729](https://github.com/nautobot/nautobot/issues/729))\r\n\r\nNautobot's UI now supports dark mode, both explicitly and via browser preference selection.\r\n\r\nThe \"Theme\" link in the footer provides a modal popup to select the preferred theme. This preference is saved per browser via `localStorage`.\r\n\r\n#### Parent Interfaces and Bridge Interfaces ([#1455](https://github.com/nautobot/nautobot/issues/1455))\r\n\r\nInterface and VMInterface models now have `parent_interface` and `bridge` keys. An interface of type `Virtual` can now associate to a parent physical interface on the same device, virtual chassis, or virtual machine, and an interface of any type can specify another interface as its associated bridge interface. (A new `Bridge` interface type has also been added, but the `bridge` interface property is not restricted to interfaces of this type.)\r\n\r\n#### Rackview UI - Add Option to Truncate Device Name ([#1119](https://github.com/nautobot/nautobot/issues/1119))\r\n\r\nUsers can now toggle device full name and truncated name in the rack elevation view. The truncating function is customizable in `nautobot_config.py` via defining `UI_RACK_VIEW_TRUNCATE_FUNCTION`. Default behavior is to split on `.` and return the first item in the list.\r\n\r\n\"Save SVG\" link presents the same view as what is currently displayed on screen\r\n\r\nCurrent preferred toggle state is preserved across tabs (requires refresh) and persists in-browser until local storage is cleared. This presents a consistent behavior when browsing between multiple racks.\r\n\r\n_**Currently missing in changelog in release `v1.4.0-alpha.1`._\r\n\r\n\r\n#### Status Field on Interface, VMInterface Models ([#984](https://github.com/nautobot/nautobot/issues/984))\r\n\r\nInterface and VMInterface models now support a status. Default statuses that are available to be set are: Active, Planned, Maintenance, Failed, and Decommissioned. During migration all existing interfaces will be set to the status of \"Active\".\r\n\r\nA new version of the `/dcim/interfaces/*` REST API endpoints have been implemented. By default this endpoint continues to demonstrate the pre-1.4 behavior unless the REST API client explicitly requests API version=1.4. If you continue to use the pre-1.4 API endpoints, status is defaulted to \"Active\".\r\n\r\nVisit the documentation on [REST API versioning](../rest-api/overview/#versioning) for more information on using the versioned APIs.\r\n\r\n### Changed\r\n\r\n#### Strict Filter Validation by Default ([#1736](https://github.com/nautobot/nautobot/issues/1736))\r\n\r\nFiltering of object lists in the UI and in the REST API will now report an error if an unknown or unrecognized filter parameter is specified. _This is a behavior change from previous Nautobot releases, in which unknown filter parameters would be silently discarded and ignored._\r\n\r\nA new configuration setting, [`STRICT_FILTERING`](../configuration/optional-settings.md#strict_filtering) has been added. It defaults to `True`, enabling strict validation of filter parameters, but can be set to `False` to disable this validation.\r\n\r\n**Warning:**\r\n> Setting `STRICT_FILTERING` to `False` can result in unexpected filtering results in the case of user error, for example a request to `/api/dcim/devices/?has_primry_ip=false` (note the typo `primry`) will result in a list of all devices, rather than the intended list of only devices that lack a primary IP address. In the case of Jobs or external automation making use of such a filter, this could have wide-ranging consequences.\r\n\r\n## v1.4.0a1 (2022-06-13)\r\n\r\n### Added\r\n\r\n- [#729](https://github.com/nautobot/nautobot/issues/729) - Added UI dark mode.\r\n- [#984](https://github.com/nautobot/nautobot/issues/984) - Added status field to Interface, VMInterface models.\r\n- [#1119](https://github.com/nautobot/nautobot/issues/1119) - Added truncated device name functionality to Rackview UI. _**Missing in changelog for this release._\r\n- [#1455](https://github.com/nautobot/nautobot/issues/1455) - Added `parent_interface` and `bridge` fields to Interface and VMInterface models.\r\n\r\n### Changed\r\n\r\n- [#1736](https://github.com/nautobot/nautobot/issues/1736) - `STRICT_FILTERING` setting is added and enabled by default.\r\n- [#1793](https://github.com/nautobot/nautobot/pull/1793) - Added index notes to fields from analysis, relaxed ConfigContextSchema constraint (unique on name, owner_content_type, owner_object_id instead of just name).\r\n\r\n### Fixed\r\n\r\n- [#1815](https://github.com/nautobot/nautobot/issues/1815) - Fix theme link style in footer.\r\n- [#1831](https://github.com/nautobot/nautobot/issues/1831) - Fixed missing `parent_interface` and `bridge` from 1.4 serializer of Interfaces.\r\n\r\n## Contributors\r\n* @timizuoebideri1\r\n* @matt852\r\n* @glennmatthews\r\n* @briddo\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.6...v1.4.0-alpha.1",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1880",
        "mentions_count": 4
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/69336055",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/69336055/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/69336055/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.6",
        "id": 69336055,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4EIfv3",
        "tag_name": "v1.3.6",
        "target_commitish": "develop",
        "name": "v1.3.6 - 2022-06-13",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-06-13T19:59:15Z",
        "updated_at": "2022-06-13T23:25:02Z",
        "published_at": "2022-06-13T20:03:16Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/68378815",
                "id": 68378815,
                "node_id": "RA_kwDOFEucDc4EE2C_",
                "name": "nautobot-1.3.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23755121,
                "digest": null,
                "download_count": 17,
                "created_at": "2022-06-13T20:54:53Z",
                "updated_at": "2022-06-13T20:54:54Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.6/nautobot-1.3.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/68378819",
                "id": 68378819,
                "node_id": "RA_kwDOFEucDc4EE2DD",
                "name": "nautobot-1.3.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23280915,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-06-13T20:54:55Z",
                "updated_at": "2022-06-13T20:54:56Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.6/nautobot-1.3.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.6",
        "body": "### Changed\r\n\r\n- [#207](https://github.com/nautobot/nautobot/issues/207) - Update permissions documentation to add assigning permissions section.\r\n- [#1763](https://github.com/nautobot/nautobot/issues/1763) - Job testing documentation updated to include details around enabling jobs. Job logs database added to `TransactionTestCase`.\r\n- [#1829](https://github.com/nautobot/nautobot/pull/1829) - Change Docker build GitHub Action to cache with matrix awareness.\r\n- [#1856](https://github.com/nautobot/nautobot/pull/1856) - Updated links to Slack community.\r\n\r\n### Fixed\r\n\r\n- [#1409](https://github.com/nautobot/nautobot/issues/1409) - Fixed page title on device status (NAPALM) page template.\r\n- [#1524](https://github.com/nautobot/nautobot/issues/1524) - Fixed valid \"None\" option removed from search field upon display.\r\n- [#1649](https://github.com/nautobot/nautobot/issues/1649) - Changed the incorrect view permission (circuits.view_vrf to ipam.view_vrf)\r\n- [#1750](https://github.com/nautobot/nautobot/issues/1750) - Fixed incorrect display of boolean value in Virtual Chassis display.\r\n- [#1759](https://github.com/nautobot/nautobot/issues/1759) - Fixed TypeError on webhook REST API PATCH.\r\n- [#1787](https://github.com/nautobot/nautobot/issues/1787) - Fix scheduled jobs failing when scheduled from REST API.\r\n- [#1841](https://github.com/nautobot/nautobot/issues/1841) - Fixed incorrect display of boolean values in Git Repository view.\r\n- [#1848](https://github.com/nautobot/nautobot/pull/1848) - Fix Poetry cache issue in CI causing version tests to fail in `next`.\r\n- [#1850](https://github.com/nautobot/nautobot/pull/1850) - Added {{block.super}} to negate the override from the js block in rack.html. This change fixed the issue of unable to navigate away from rack changelog tab.\r\n- [#1868](https://github.com/nautobot/nautobot/pull/1868) - Updated link to advanced Docker compose use in getting started guide.\r\n\r\n\r\n## Contributors\r\n\r\n* @u1735067\r\n* @timizuoebideri1\r\n* @Kircheneer\r\n* @gsnider2195\r\n* @itdependsnetworks\r\n\r\n## New Contributors\r\n* @HanlinMiao made their first contribution in https://github.com/nautobot/nautobot/pull/1864\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.5...v1.3.6",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1879",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/68150774",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/68150774/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/68150774/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.5",
        "id": 68150774,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4ED-X2",
        "tag_name": "v1.3.5",
        "target_commitish": "develop",
        "name": "v1.3.5 - 2022-05-30",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-05-30T11:42:22Z",
        "updated_at": "2022-05-30T12:28:36Z",
        "published_at": "2022-05-30T11:51:55Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/67034501",
                "id": 67034501,
                "node_id": "RA_kwDOFEucDc4D_t2F",
                "name": "nautobot-1.3.5-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23752133,
                "digest": null,
                "download_count": 14,
                "created_at": "2022-05-30T12:28:34Z",
                "updated_at": "2022-05-30T12:28:35Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.5/nautobot-1.3.5-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/67034506",
                "id": 67034506,
                "node_id": "RA_kwDOFEucDc4D_t2K",
                "name": "nautobot-1.3.5.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23278414,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-05-30T12:28:35Z",
                "updated_at": "2022-05-30T12:28:36Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.5/nautobot-1.3.5.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.5",
        "body": "### Added\r\n\r\n- [#1606](https://github.com/nautobot/nautobot/issues/1606) - Added best practices for working with FilterSet classes to developer documentation.\r\n- [#1796](https://github.com/nautobot/nautobot/issues/1796) - Added documentation for using Git Repositories behind/via proxies.\r\n- [#1811](https://github.com/nautobot/nautobot/pull/1811) - Added developer Docker container for running mkdocs instead of locally.\r\n\r\n### Changed\r\n\r\n- [#1818](https://github.com/nautobot/nautobot/pull/1818) - Changed README.md to link to correct build status workflows.\r\n\r\n### Fixed\r\n\r\n- [#895](https://github.com/nautobot/nautobot/issues/895) - Fixed validation when creating `Interface` and `VMInterface` objects via the REST API while specifying `untagged_vlan` without `mode` also set in the payload. A 400 error will now be raised as expected.\r\n- [#1289](https://github.com/nautobot/nautobot/issues/1289) - Fixed issue where job result live pagination would reset to page 1 on refresh. The currently selected page will now persist until the job run completes.\r\n- [#1290](https://github.com/nautobot/nautobot/issues/1290) - Fix NAPALM enable password argument for devices using the eos NAPALM driver.\r\n- [#1427](https://github.com/nautobot/nautobot/issues/1427) - Fix NoReverseMatch exception when related views for action_buttons don't exist.\r\n- [#1428](https://github.com/nautobot/nautobot/issues/1428) - Fix IPAM prefix utilization sometimes showing greater than 100 percent for IPv4 prefixes.\r\n- [#1604](https://github.com/nautobot/nautobot/issues/1604) - Fix missing filter restriction enforcement on relationship association.\r\n- [#1771](https://github.com/nautobot/nautobot/issues/1771) - Fix exception raised for RelationshipAssociation when updating source.\r\n- [#1772](https://github.com/nautobot/nautobot/issues/1772) - Fix RelationshipAssociationSerializer not triggering model clean method.\r\n- [#1784](https://github.com/nautobot/nautobot/issues/1784) - Fix `nautobot-server dumpdata` not working due to `django_rq` update. Updated documentation.\r\n- [#1805](https://github.com/nautobot/nautobot/pull/1805) - Fix git pre-commit hook incompatibility with dash shell and add warning on skipped tests.\r\n\r\n### Security\r\n\r\n<img width=\"704\" alt=\"image\" src=\"https://user-images.githubusercontent.com/31187/170986131-34c66bbc-01b9-4c0d-8428-098662368120.png\">\r\n\r\n- [#1808](https://github.com/nautobot/nautobot/pull/1808) - Bump PyJWT from 2.3.0 to 2.4.0\r\n\r\n## Contributors\r\n* @briddo\r\n* @jathanism\r\n* @timizuoebideri1\r\n* @gsnider2195\r\n* @TheRealBecks\r\n* @glennmatthews\r\n\r\n## New Contributors\r\n* @gsnider2195 made their first contribution in https://github.com/nautobot/nautobot/pull/1802\r\n* @TheRealBecks made their first contribution in https://github.com/nautobot/nautobot/pull/1801\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.4...v1.3.5",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1826",
        "mentions_count": 6
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/67012382",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/67012382/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/67012382/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.4",
        "id": 67012382,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4D_oce",
        "tag_name": "v1.3.4",
        "target_commitish": "develop",
        "name": "v1.3.4 - 2022-05-16",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-05-16T20:42:01Z",
        "updated_at": "2022-05-23T19:10:27Z",
        "published_at": "2022-05-16T20:46:53Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/65717130",
                "id": 65717130,
                "node_id": "RA_kwDOFEucDc4D6sOK",
                "name": "nautobot-1.3.4-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23743334,
                "digest": null,
                "download_count": 15,
                "created_at": "2022-05-16T21:22:21Z",
                "updated_at": "2022-05-16T21:22:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.4/nautobot-1.3.4-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/65717132",
                "id": 65717132,
                "node_id": "RA_kwDOFEucDc4D6sOM",
                "name": "nautobot-1.3.4.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23272593,
                "digest": null,
                "download_count": 11,
                "created_at": "2022-05-16T21:22:22Z",
                "updated_at": "2022-05-16T21:22:23Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.4/nautobot-1.3.4.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.4",
        "body": "### Added\r\n\r\n- [#923](https://github.com/nautobot/nautobot/issues/923) - Added ability to search by UUID (via #1752, #1765)\r\n- [#1766](https://github.com/nautobot/nautobot/pull/1766) - Added configuration for downloaded filename branding.\r\n- [#1752](https://github.com/nautobot/nautobot/pull/1752) - Added a new `SearchFilter` that is now used on all core filtersets to provide the `q=` search parameter for basic searching in list view of objects.\r\n\r\n### Changed\r\n\r\n- [#1744](https://github.com/nautobot/nautobot/issues/1744) - Updated REST API token provisioning docs to include added in version.\r\n- [#1751](https://github.com/nautobot/nautobot/pull/1751) - Updated secrets documentation advisory notes.\r\n\r\n### Fixed\r\n\r\n- [#1263](https://github.com/nautobot/nautobot/issues/1263) - Rack device image toggle added back to detail UI.\r\n- [#1449](https://github.com/nautobot/nautobot/issues/1449) - Fixed a performance bug in `/api/dcim/devices/` and `/api/virtualization/virtual-machines/` relating to configuration contexts.\r\n- [#1652](https://github.com/nautobot/nautobot/issues/1652) - Unicode now renders correctly on uses of json.dumps and yaml.dump throughout the code base.\r\n- [#1712](https://github.com/nautobot/nautobot/issues/1712) - Fixed circuit termination detail view getting 500 response when it's a provider network.\r\n- [#1755](https://github.com/nautobot/nautobot/issues/1755) - Fixed \"Select All\" helper widget from taking full UI height.\r\n- [#1761](https://github.com/nautobot/nautobot/pull/1761) - Fixed typo in upgrading documentation.\r\n\r\n### Security\r\n\r\n- [#1715](https://github.com/nautobot/nautobot/issues/1715) - Add [`SANITIZER_PATTERNS` optional setting](https://nautobot.readthedocs.io/en/v1.3.4/configuration/optional-settings/#sanitizer_patterns) and `nautobot.utilities.logging.sanitize` function and use it for redaction of Job log entries.\r\n\r\n### Contributors\r\n* @briddo\r\n* @timizuoebideri1\r\n* @whitej6\r\n* @Kircheneer\r\n* @matt852\r\n* @abates\r\n* @glennmatthews \r\n* @jathanism\r\n* @zackt25\r\n\r\n### New Contributors\r\n* @abates made their first contribution in https://github.com/nautobot/nautobot/pull/1760\r\n\r\n**Full Changelog**: https://github.com/nautobot/nautobot/compare/v1.3.3...v1.3.4",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1779",
        "mentions_count": 9
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/65840742",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/65840742/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/65840742/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.3",
        "id": 65840742,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4D7KZm",
        "tag_name": "v1.3.3",
        "target_commitish": "develop",
        "name": "v1.3.3 - 2022-05-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-05-02T19:51:10Z",
        "updated_at": "2022-05-02T20:31:04Z",
        "published_at": "2022-05-02T19:52:48Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/64285860",
                "id": 64285860,
                "node_id": "RA_kwDOFEucDc4D1Oyk",
                "name": "nautobot-1.3.3-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23734839,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-05-02T20:31:01Z",
                "updated_at": "2022-05-02T20:31:03Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.3/nautobot-1.3.3-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/64285867",
                "id": 64285867,
                "node_id": "RA_kwDOFEucDc4D1Oyr",
                "name": "nautobot-1.3.3.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23265706,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-05-02T20:31:03Z",
                "updated_at": "2022-05-02T20:31:04Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.3/nautobot-1.3.3.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.3",
        "body": "### Added\r\n\r\n- [#1481](https://github.com/nautobot/nautobot/issues/1481) - Pre-Generate Docs, Add Support for Plugin-Provided Docs\r\n- [#1617](https://github.com/nautobot/nautobot/pull/1617) - Added `run_job_for_testing` helper method for testing Jobs in plugins, internally.\r\n\r\n### Changed\r\n\r\n- [#1481](https://github.com/nautobot/nautobot/issues/1481) - Docs link in footer now opens link to bundled documentation instead of Read the Docs.\r\n- [#1680](https://github.com/nautobot/nautobot/pull/1680) - Bump netutils dependency to 1.1.0.\r\n- [#1700](https://github.com/nautobot/nautobot/pull/1700) - Revert vendoring `drf-spectacular`.\r\n\r\n### Fixed\r\n\r\n- [#473](https://github.com/nautobot/nautobot/issues/473) - Fix `get_return_url` for plugin reverse URLs.\r\n- [#1430](https://github.com/nautobot/nautobot/issues/1430) - Fix not being able to print Job results, related IPs.\r\n- [#1503](https://github.com/nautobot/nautobot/issues/1503) - SSO users can no longer interact with or see the change password form.\r\n- [#1515](https://github.com/nautobot/nautobot/issues/1515) - Further fixes for slow/unresponsive jobs results display.\r\n- [#1538](https://github.com/nautobot/nautobot/issues/1538) - Fix incorrect page title alignment on the \"Device Type Import\" page.\r\n- [#1678](https://github.com/nautobot/nautobot/issues/1678) - Custom fields with 'json' type no longer raise TypeError when filtering on an object list URL\r\n- [#1679](https://github.com/nautobot/nautobot/issues/1679) - Fix a data migration error when upgrading to 1.3.x with pre-existing JobResults that reference Jobs with names exceeding 100 characters in length.\r\n- [#1685](https://github.com/nautobot/nautobot/issues/1685) - Fix Hadolint issue of `docker/Dockerfile`.\r\n- [#1692](https://github.com/nautobot/nautobot/issues/1692) - Fix duplicate tags in search list results.\r\n- [#1697](https://github.com/nautobot/nautobot/pull/1697) - Fix docs incorrectly stating Celerey Redis URLs defaulting from CACHES.\r\n- [#1701](https://github.com/nautobot/nautobot/pull/1701) - Fix static file serving of drf-spectacular-sidecar assets when using alternative `STATICFILES_STORAGE` settings.\r\n- [#1705](https://github.com/nautobot/nautobot/pull/1705) - Fix `NestedVMInterfaceSerializer` referencing the wrong model.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1722"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/65134968",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/65134968/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/65134968/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.2",
        "id": 65134968,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4D4eF4",
        "tag_name": "v1.3.2",
        "target_commitish": "develop",
        "name": "v1.3.2 - 2022-04-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-04-23T02:44:06Z",
        "updated_at": "2022-04-23T03:17:25Z",
        "published_at": "2022-04-23T02:46:43Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/63394418",
                "id": 63394418,
                "node_id": "RA_kwDOFEucDc4Dx1Jy",
                "name": "nautobot-1.3.2-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23812886,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-04-23T03:17:22Z",
                "updated_at": "2022-04-23T03:17:23Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.2/nautobot-1.3.2-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/63394423",
                "id": 63394423,
                "node_id": "RA_kwDOFEucDc4Dx1J3",
                "name": "nautobot-1.3.2.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23330388,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-04-23T03:17:24Z",
                "updated_at": "2022-04-23T03:17:25Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.2/nautobot-1.3.2.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.2",
        "body": "## v1.3.2 (2022-04-22)\r\n\r\n### Added\r\n\r\n- [#1219](https://github.com/nautobot/nautobot/pull/1219) - Add ARM64 support (alpha).\r\n- [#1426](https://github.com/nautobot/nautobot/issues/1426) - Added plugin development documentation around using ObjectListView.\r\n- [#1674](https://github.com/nautobot/nautobot/pull/1674) - Added flag in Dockerfile, tasks.py to enable Poetry install parallelization.\r\n\r\n### Changed\r\n\r\n- [#1667](https://github.com/nautobot/nautobot/issues/1667) - Updated README.md screenshots.\r\n- [#1670](https://github.com/nautobot/nautobot/pull/1670) - Configure drf-spectacular schema to more closely match drf-yasg (related to: [nautobot-ansible#135](https://github.com/nautobot/nautobot-ansible/pull/135)).\r\n\r\n### Fixed\r\n\r\n- [#1659](https://github.com/nautobot/nautobot/pull/1659) - Added some missing test/lint commands to the [development getting-started](../development/getting-started.md) documentation, and made `invoke cli` parameters match `invoke start/stop`.\r\n- [#1666](https://github.com/nautobot/nautobot/pull/1666) - Fixed errors in documentation with incomplete import statements.\r\n- [#1682](https://github.com/nautobot/nautobot/issues/1682) - Fixed Nautobot health checks failing if Redis Sentinel password is required.\r\n\r\n### Security\r\n<img width=\"704\" alt=\"Screen Shot 2022-04-22 at 21 26 13\" src=\"https://user-images.githubusercontent.com/31187/164869008-9a31b3f8-451c-4f8d-bbd3-ea0c7cbd1369.png\">\r\n\r\n- [#1686](https://github.com/nautobot/nautobot/pull/1686) - Implemented fixes for [CVE-2022-28347](https://github.com/advisories/GHSA-w24h-v9qh-8gxj) and [CVE-2022-28346](https://github.com/advisories/GHSA-2gwj-7jmv-h26r) to require Django >=3.2.13.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1689",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/65134968/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 1,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        }
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/64792819",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/64792819/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/64792819/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.1",
        "id": 64792819,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4D3Kjz",
        "tag_name": "v1.3.1",
        "target_commitish": "develop",
        "name": "v1.3.1 - 2022-04-19",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-04-19T22:47:14Z",
        "updated_at": "2022-04-19T23:29:35Z",
        "published_at": "2022-04-19T22:48:39Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/63050619",
                "id": 63050619,
                "node_id": "RA_kwDOFEucDc4DwhN7",
                "name": "nautobot-1.3.1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23347237,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-04-19T23:29:32Z",
                "updated_at": "2022-04-19T23:29:33Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.1/nautobot-1.3.1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/63050621",
                "id": 63050621,
                "node_id": "RA_kwDOFEucDc4DwhN9",
                "name": "nautobot-1.3.1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 22863594,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-04-19T23:29:34Z",
                "updated_at": "2022-04-19T23:29:35Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.1/nautobot-1.3.1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.1",
        "body": "## v1.3.1 (2022-04-19)\r\n\r\n### Changed\r\n\r\n- [#1647](https://github.com/nautobot/nautobot/pull/1647) - Changed class inheritance of JobViewSet to be simpler and more self-consistent.\r\n\r\n### Fixed\r\n\r\n- [#1278](https://github.com/nautobot/nautobot/issues/1278) - Fixed several different errors that could be raised when working with RelationshipAssociations.\r\n- [#1662](https://github.com/nautobot/nautobot/issues/1662) - Fixed nat_outside prefetch on Device API view, and displaying multiple nat_outside entries on VM detail view.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1665"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/64681395",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/64681395/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/64681395/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.0",
        "id": 64681395,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4D2vWz",
        "tag_name": "v1.3.0",
        "target_commitish": "develop",
        "name": "v1.3.0 - 2022-04-18",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-04-18T22:10:58Z",
        "updated_at": "2022-04-18T22:44:39Z",
        "published_at": "2022-04-18T22:13:03Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/62940483",
                "id": 62940483,
                "node_id": "RA_kwDOFEucDc4DwGVD",
                "name": "nautobot-1.3.0-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23344996,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-04-18T22:44:37Z",
                "updated_at": "2022-04-18T22:44:38Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.0/nautobot-1.3.0-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/62940489",
                "id": 62940489,
                "node_id": "RA_kwDOFEucDc4DwGVJ",
                "name": "nautobot-1.3.0.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 22861840,
                "digest": null,
                "download_count": 7,
                "created_at": "2022-04-18T22:44:38Z",
                "updated_at": "2022-04-18T22:44:39Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.0/nautobot-1.3.0.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.0",
        "body": "# Nautobot v1.3\r\n\r\nThis document describes all new features and changes in Nautobot 1.3.\r\n\r\nIf you are a user migrating from NetBox to Nautobot, please refer to the [\"Migrating from NetBox\"](../installation/migrating-from-netbox.md) documentation.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Dynamic Group Model ([#896](https://github.com/nautobot/nautobot/issues/896))\r\n\r\nA new data model for representing [dynamic groups](../models/extras/dynamicgroup.md) of objects has been implemented. Dynamic groups can be used to organize objects together by matching criteria such as their site location or region, for example, and are dynamically updated whenever new matching objects are created, or existing objects are updated.\r\n\r\nFor the initial release only dynamic groups of `Device` and `VirtualMachine` objects are supported.\r\n\r\n#### Extend FilterSets and Filter Forms via Plugins ([#1470](https://github.com/nautobot/nautobot/issues/1470))\r\n\r\nPlugins can now extend existing FilterSets and Filter Forms. This allows plugins to provide alternative lookup methods or custom queries in the UI or API that may not already exist today.\r\n\r\nYou can refer to the [plugin development guide](../plugins/development.md#extending-filters) on how to create new filters and fields.\r\n\r\n#### GraphQL Pagination ([#1109](https://github.com/nautobot/nautobot/issues/1109))\r\n\r\nGraphQL list queries can now be paginated by specifying the filter parameters `limit` and `offset`. Refer to the [GraphQL user guide](../user-guides/graphql.md#filtering-queries) for examples.\r\n\r\n#### Job Database Model ([#1001](https://github.com/nautobot/nautobot/issues/1001))\r\n\r\nInstalled Jobs are now represented by a data model in the Nautobot database. This allows for new functionality including:\r\n\r\n- The Jobs listing UI view can now be filtered and searched like most other Nautobot table/list views.\r\n- Job attributes (name, description, approval requirements, etc.) can now be managed via the Nautobot UI by an administrator or user with appropriate permissions to customize or override the attributes defined in the Job source code.\r\n- Jobs can now be identified by a `slug` as well as by their `class_path`.\r\n- A new set of REST API endpoints have been added to `/api/extras/jobs/<uuid>/`. The existing `/api/extras/jobs/<class_path>/` REST API endpoints continue to work but should be considered as deprecated.\r\n    - A new version of the REST API `/api/extras/jobs/` list endpoint has been implemented as well, but by default this endpoint continues to demonstrate the pre-1.3 behavior unless the REST API client explicitly requests API `version=1.3`. See the section on REST API versioning, below, for more details.\r\n- As a minor security measure, newly installed Jobs default to `enabled = False`, preventing them from being run until an administrator or user with appropriate permissions updates them to be enabled for running.\r\n\r\n!!! note\r\n    As a convenience measure, when initially upgrading to Nautobot 1.3.x, any existing Jobs that have been run or scheduled previously (i.e., have at least one associated JobResult and/or ScheduledJob record) will instead default to `enabled = True` so that they may continue to be run without requiring changes.\r\n\r\nFor more details please refer to the [Jobs feature documentation](../additional-features/jobs.md) as well as the [Job data model documentation](../models/extras/job.md).\r\n\r\n#### JSON Type for Custom Fields ([#897](https://github.com/nautobot/nautobot/issues/897))\r\n\r\nCustom fields can now have a type of \"json\". Fields of this type can be used to store arbitrary JSON data.\r\n\r\n#### Natural Indexing for Common Lookups ([#1638](https://github.com/nautobot/nautobot/issues/1638))\r\n\r\nMany fields have had indexing added to them as well as index togethers on `ObjectChange` fields. This should provide a noticeable performance improvement when filtering and doing lookups.\r\n\r\n!!! note\r\n    This is going to perform several migrations to add all of the indexes. On MySQL databases and tables with 1M+ records this can take a few minutes. Every environment is different but it should be expected for this upgrade to take some time.\r\n\r\n#### Overlapping/Multiple NAT Support ([#630](https://github.com/nautobot/nautobot/issues/630))\r\n\r\nIP addresses can now be associated with multiple outside NAT IP addresses. To do this, set more than one IP Address to have the same NAT inside IP address.\r\n\r\nA new version of the REST API `/api/ipam/ip-addresses/*` endpoints have been implemented as well, but by default this endpoint continues to demonstrate the pre-1.3 behavior unless the REST API client explicitly requests API `version=1.3`. See the section on REST API versioning, below, for more details.\r\n\r\n!!! note\r\n    There are some guardrails on this feature to support backwards compatibility. If you consume the REST API without specifying the version header or query argument and start associating multiple IPs to have the same NAT inside IP address, an error will be reported, because the existing REST API schema returns `nat_outside` as a single object, where as 1.3 and beyond will return this as a list.\r\n\r\n#### Provider Network Model ([#724](https://github.com/nautobot/nautobot/issues/724))\r\n\r\nA [data model](../models/circuits/providernetwork.md) has been added to support representing the termination of a circuit to an external provider's network.\r\n\r\n#### Python 3.10 Support ([#1255](https://github.com/nautobot/nautobot/pull/1255))\r\n\r\nPython 3.10 is officially supported by Nautobot now, and we are building and publishing Docker images with Python 3.10 now.\r\n\r\n#### Regular Expression Support in API Filtering ([#1525](https://github.com/nautobot/nautobot/issues/1525))\r\n\r\n[New lookup expressions for using regular expressions](../rest-api/filtering.md#string-fields) to filter objects by string (char) fields in the API have been added to all core filters.\r\n\r\nThe expressions `re` (regex), `nre` (negated regex), `ire` (case-insensitive regex), and `nire` (negated case-insensitive regex) lookup expressions are now dynamically-generated for filter fields inherited by subclasses of `nautobot.utilities.filters.BaseFilterSet`.\r\n\r\n#### REST API Token Provisioning ([#1374](https://github.com/nautobot/nautobot/issues/1374))\r\n\r\nNautobot now has an `/api/users/tokens/` REST API endpoint where a user can provision a new REST API token. This allows a user to gain REST API access without needing to first create a token via the web UI.\r\n\r\n```bash\r\n$ curl -X POST \\\r\n-H \"Accept: application/json; indent=4\" \\\r\n-u \"hankhill:I<3C3H8\" \\\r\nhttps://nautobot/api/users/tokens/\r\n```\r\n\r\nThis endpoint specifically supports Basic Authentication in addition to the other REST API authentication methods.\r\n\r\n#### REST API Versioning ([#1465](https://github.com/nautobot/nautobot/issues/1465))\r\n\r\nNautobot's REST API now supports multiple versions, which may be requested by modifying the HTTP Accept header on any requests sent by a REST API client. Details are in the [REST API documentation](../rest-api/overview.md#versioning), but in brief:\r\n\r\n- The REST API endpoints that are versioned in the 1.3.0 release are\r\n    - `/api/extras/jobs/` listing endpoint\r\n    - `/api/extras/tags/` create/put/patch endpoints\r\n    - all `/api/ipam/ip-addresses/` endpoints\r\n- All other REST API endpoints are currently non-versioned. However, over time more versioned REST APIs will be developed, so this is important to understand for all REST API consumers.\r\n- If a REST API client does not request a specific REST API version (in other words, requests `Accept: application/json` rather than `Accept: application/json; version=1.3`) the API behavior will be compatible with Nautobot 1.2, at a minimum for the remainder of the Nautobot 1.x release cycle.\r\n- The API behavior may change to a newer default version in a Nautobot major release (such as 2.0).\r\n- To request an updated (non-backwards-compatible) API endpoint, an API version must be requested corresponding at a minimum to the Nautobot `major.minor` version where the updated API endpoint was introduced (so to interact with the updated REST API endpoints mentioned above, `Accept: application/json; version=1.3`).\r\n\r\n!!! tip\r\n    As a best practice, when developing a Nautobot REST API integration, your client should _always_ request the current API version it is being developed against, rather than relying on the default API behavior (which may change with a new Nautobot major release, as noted, and which also may not include the latest and greatest API endpoints already available but not yet made default in the current release).\r\n\r\n#### Webhook Pre/Post-change Data Added to Request Body ([#330](https://github.com/nautobot/nautobot/issues/330))\r\n\r\nWebhooks now provide a snapshot of data before and after a change, as well as the differences between the old and new data. See the default request body section in the [webhook docs](../models/extras/webhook.md#default-request-body).\r\n\r\n### Changed\r\n\r\n#### Docker Images Now Default to Python 3.7 ([#1252](https://github.com/nautobot/nautobot/pull/1252))\r\n\r\nAs Python 3.6 has reached end-of-life, the default Docker images published for this release (i.e. `1.3.0`, `stable`, `latest`) have been updated to use Python 3.7 instead.\r\n\r\n#### Job Approval Now Controlled By `extras.approve_job` Permission ([#1490](https://github.com/nautobot/nautobot/pull/1490))\r\n\r\nSimilar to the existing `extras.run_job` permission, a new `extras.approve_job` permission is now enforced by the UI and the REST API when approving scheduled jobs. Only users with this permission can approve or deny approval requests; additionally such users also now require the `extras.view_scheduledjob`, `extras.change_scheduledjob`, and `extras.delete_scheduledjob` permissions as well.\r\n\r\n#### OpenAPI 3.0 REST API documentation ([#595](https://github.com/nautobot/nautobot/issues/595))\r\n\r\nThe online REST API Swagger documentation (`/api/docs/`) has been updated from OpenAPI 2.0 format to OpenAPI 3.0 format and now supports Nautobot's [REST API versioning](#rest-api-versioning-1465) as described above. Try `/api/docs/?api_version=1.3` as an example.\r\n\r\n#### Tag restriction by content-type ([#872](https://github.com/nautobot/nautobot/issues/872))\r\n\r\nWhen created, a `Tag` can be associated to one or more model content-types using a many-to-many relationship. The tag will then apply only to models belonging to those associated content-types.\r\n\r\nFor users migrating from an earlier Nautobot release, any existing tags will default to being enabled for all content-types for compatibility purposes. Individual tags may subsequently edited to remove any content-types that they do not need to apply to.\r\n\r\nNote that a Tag created programmatically via the ORM without assigning any `content_types` will not be applicable to any model until content-types are assigned to it.\r\n\r\n#### Update Jinja2 to 3.x ([#1474](https://github.com/nautobot/nautobot/pull/1474))\r\n\r\nWe've updated the Jinja2 dependency from version 2.11 to version 3.0.3. This may affect the syntax of any `nautobot.extras.models.ComputedField` objects in your database... Specifically, the `template` attribute, which is parsed as a Jinja2 template. Please refer to [Jinja2 3.0.x's release notes](https://jinja.palletsprojects.com/en/3.0.x/changes/) to check if any changes might be required in your computed fields' templates.\r\n\r\n### Removed\r\n\r\n#### Python 3.6 No Longer Supported ([#1268](https://github.com/nautobot/nautobot/issues/1268))\r\n\r\nAs Python 3.6 has reached end-of-life, and many of Nautobot's dependencies have already dropped support for Python 3.6 as a consequence, Nautobot 1.3 and later do not support installation under Python 3.6.\r\n\r\n## v1.3.0 (2022-04-18)\r\n\r\n### Added\r\n\r\n- [#630](https://github.com/nautobot/nautobot/issues/630) - Added support for multiple NAT outside IP addresses.\r\n- [#872](https://github.com/nautobot/nautobot/issues/872) - Added ability to scope tags to content types.\r\n- [#896](https://github.com/nautobot/nautobot/issues/896) - Implemented support for Dynamic Groups objects.\r\n- [#897](https://github.com/nautobot/nautobot/issues/897) - Added JSON type for custom fields.\r\n- [#1374](https://github.com/nautobot/nautobot/issues/1374) - Added REST API Token Provisioning. (Port of [NetBox #6592](https://github.com/netbox-community/netbox/pull/6592) and subsequent fixes)\r\n- [#1385](https://github.com/nautobot/nautobot/issues/1385) - Added MarkdownLint validation and enforcement to CI.\r\n- [#1465](https://github.com/nautobot/nautobot/issues/1465) - Implemented REST API versioning.\r\n- [#1525](https://github.com/nautobot/nautobot/issues/1525) - Implemented support for regex lookup expressions for `BaseFilterSet` filter fields in the API.\r\n- [#1638](https://github.com/nautobot/nautobot/issues/1638) - Implemented numerous indexes on models natural lookup fields as well as some index togethers for `ObjectChange`.\r\n\r\n### Changed\r\n\r\n- [#595](https://github.com/nautobot/nautobot/issues/595) - Migrated from `drf-yasg` (OpenAPI 2.0) to `drf-spectacular` (OpenAPI 3.0) for REST API interactive Swagger documentation.\r\n- [#792](https://github.com/nautobot/nautobot/issues/792) - Poetry-installed dependencies are now identical between `dev` and `final` images.\r\n- [#814](https://github.com/nautobot/nautobot/issues/814) - Extended documentation for configuring Celery for use Redis Sentinel clustering.\r\n- [#1225](https://github.com/nautobot/nautobot/issues/1225) - Relaxed uniqueness constraint on Webhook creation, allowing multiple webhooks to send to the same target address so long as their content-type(s) and action(s) do not overlap.\r\n- [#1417](https://github.com/nautobot/nautobot/issues/1417) - CI scope improvements for streamlined performance.\r\n- [#1478](https://github.com/nautobot/nautobot/issues/1478) - ScheduledJob REST API endpoints now enforce `extras.approve_job` permissions as appropriate.\r\n- [#1479](https://github.com/nautobot/nautobot/issues/1479) - Updated Jobs documentation regarding the concrete Job database model.\r\n- [#1502](https://github.com/nautobot/nautobot/issues/1502) Finalized Dynamic Groups implementation for 1.3 release (including documentation and integration tests).\r\n- [#1521](https://github.com/nautobot/nautobot/pull/1521) - Consolidated Job REST API endpoints, taking advantage of REST API versioning.\r\n- [#1556](https://github.com/nautobot/nautobot/issues/1556) - Cleaned up typos and formatting issues across docs, few code spots.\r\n\r\n### Fixed\r\n\r\n- [#794](https://github.com/nautobot/nautobot/issues/794) - Fixed health check issue when using Redis Sentinel for caching with Cacheops. The Redis health check backend is now aware of Redis Sentinel.\r\n- [#1311](https://github.com/nautobot/nautobot/issues/1311) - Fixed a where it was not possible to set the rack height to `0` when performing a bulk edit of device types.\r\n- [#1476](https://github.com/nautobot/nautobot/issues/1476) - Fixed a bug wherein a Job run via the REST API with a missing `schedule` would allow `approval_required` to be bypassed.\r\n- [#1504](https://github.com/nautobot/nautobot/issues/1504) - Fixed an error that could be encountered when migrating from Nautobot 1.1 or earlier with JobResults with very long log entries.\r\n- [#1515](https://github.com/nautobot/nautobot/issues/1515) - Fix Job Result rendering performance issue causing Bad Gateway errors.\r\n- [#1516](https://github.com/nautobot/nautobot/issues/1516) - Fixed MySQL unit tests running in Docker environment and revised recommended MySQL encoding settings\r\n- [#1562](https://github.com/nautobot/nautobot/issues/1562) - Fixed JobResult filter form UI pointing to the wrong endpoint.\r\n- [#1563](https://github.com/nautobot/nautobot/issues/1563) - Fixed UI crash when trying to execute Jobs provided by disabled plugins. A friendly error message will now be displayed.\r\n- [#1582](https://github.com/nautobot/nautobot/issues/1582) - Fixed a timing issue with editing a record while its custom field(s) are in the process of being cleaned up by a background task.\r\n- [#1632](https://github.com/nautobot/nautobot/pull/1632) - Fixed issue accessing request attributes when request may be None.\r\n- [#1637](https://github.com/nautobot/nautobot/pull/1637) - Fixed warnings logged during REST API schema generation.\r\n\r\n## v1.3.0b1 (2022-03-11)\r\n\r\n### Added\r\n\r\n- [#5](https://github.com/nautobot/nautobot/issues/5) - Added the option to perform a \"dry run\" of Git repository syncing.\r\n- [#330](https://github.com/nautobot/nautobot/issues/330) - Added pre-/post-change data to WebHooks leveraging snapshots.\r\n- [#498](https://github.com/nautobot/nautobot/issues/498) - Added custom-validator support to the RelationshipAssociation model.\r\n- [#724](https://github.com/nautobot/nautobot/issues/724) - Added Provider Network data model. (Partially based on [NetBox #5986](https://github.com/netbox-community/netbox/issues/5986).)\r\n- [#795](https://github.com/nautobot/nautobot/issues/795) - Added ability to filter objects missing custom field values by using `null`.\r\n- [#803](https://github.com/nautobot/nautobot/issues/803) - Added a `render_boolean` template filter, which renders computed boolean values as HTML in a consistent manner.\r\n- [#863](https://github.com/nautobot/nautobot/issues/863) - Added the ability to hide a job in the UI by setting `hidden = True` in the Job's inner `Meta` class.\r\n- [#881](https://github.com/nautobot/nautobot/issues/881) - Improved the UX of the main Jobs list by adding accordion style interface that can collapse/expand jobs provided by each module.\r\n- [#885](https://github.com/nautobot/nautobot/issues/885) - Added the ability to define a `soft_time_limit` and `time_limit` in seconds as attributes of a Job's `Meta`.\r\n- [#894](https://github.com/nautobot/nautobot/issues/894) - Added the ability to view computed fields in an object list.\r\n- [#898](https://github.com/nautobot/nautobot/issues/898) - Added support for moving a CustomField, Relationship or ComputedField from the main tab of an object's detail page in the UI to the \"Advanced\" tab.\r\n- [#1001](https://github.com/nautobot/nautobot/issues/1001) - Added Job database model and associated functionality.\r\n- [#1109](https://github.com/nautobot/nautobot/issues/1109) - Added pagination support for GraphQL list queries.\r\n- [#1255](https://github.com/nautobot/nautobot/pull/1255) - Added Python 3.10 support.\r\n- [#1350](https://github.com/nautobot/nautobot/issues/1350) - Added missing methods on Circuit Termination detail view.\r\n- [#1411](https://github.com/nautobot/nautobot/pull/1411) - Added concrete Job database model; added database signals to populate Job records in the database; added detail, edit, and delete views for Job records.\r\n- [#1457](https://github.com/nautobot/nautobot/pull/1457) - Added new Jobs REST API, added control logic to use JobModel rather than JobClass where appropriate; improved permissions enforcement for Jobs.\r\n- [#1470](https://github.com/nautobot/nautobot/issues/1470) - Added plugin framework for extending FilterSets and Filter Forms.\r\n\r\n### Changed\r\n\r\n- [#368](https://github.com/nautobot/nautobot/issues/368) - Added `nautobot.extras.forms.NautobotModelForm` and `nautobot.extras.filters.NautobotFilterSet` base classes. All form classes which inherited from all three of (`BootstrapMixin`, `CustomFieldModelForm`, and `RelationshipModelForm`) now inherit from `NautobotModelForm` as their base class. All filterset classes which inherited from all three of (`BaseFilterSet`, `CreatedUpdatedFilterSet`, and `CustomFieldModelFilterSet`) now inherit from `NautobotFilterSet` as their base class.\r\n- [#443](https://github.com/nautobot/nautobot/issues/443) - The provided \"Dummy Plugin\" has been renamed to \"Example Plugin\".\r\n- [#591](https://github.com/nautobot/nautobot/issues/591) - All uses of `type()` are now refactored to use `isinstance()` where applicable.\r\n- [#880](https://github.com/nautobot/nautobot/issues/880) - Jobs menu items now form their own top-level menu instead of a sub-section under the Extensibility menu.\r\n- [#909](https://github.com/nautobot/nautobot/issues/909) - Device, InventoryItem, and Rack serial numbers can now be up to 255 characters in length.\r\n- [#916](https://github.com/nautobot/nautobot/issues/916) - A `Job.Meta.description` can now contain markdown-formatted multi-line text.\r\n- [#1107](https://github.com/nautobot/nautobot/issues/1107) - Circuit Provider account numbers can now be up to 100 characters in length.\r\n- [#1252](https://github.com/nautobot/nautobot/pull/1252) - As Python 3.6 has reached end-of-life, the default Docker images published for this release (i.e. `1.3.0`, `stable`, `latest`) have been updated to use Python 3.7 instead.\r\n- [#1277](https://github.com/nautobot/nautobot/issues/1277) - Updated Django dependency to 3.2.X LTS.\r\n- [#1307](https://github.com/nautobot/nautobot/pull/1307) - Updated various Python package dependencies to their latest compatible versions.\r\n- [#1314](https://github.com/nautobot/nautobot/pull/1314) - Updated various development-only Python package dependencies to their latest compatible versions.\r\n- [#1321](https://github.com/nautobot/nautobot/pull/1321) - Updates to various browser package dependencies. This includes updating from Material Design Icons 5.x to 6.x, which has a potential impact on plugins: a [small number of icons have been removed or renamed](https://dev.materialdesignicons.com/upgrade#5.9.55-to-6.1.95) as a result of this change.\r\n- [#1367](https://github.com/nautobot/nautobot/pull/1367) - Extracted Job-related models to submodule `nautobot.extras.models.jobs`; refined Job testing best practices.\r\n- [#1391](https://github.com/nautobot/nautobot/issues/1391) - Updated Jinja2 dependency to 3.0.X.\r\n- [#1435](https://github.com/nautobot/nautobot/issues/1435) - Update to Selenium 4.X.\r\n\r\n### Fixed\r\n\r\n- [#1440](https://github.com/nautobot/nautobot/issues/1440) - Handle models missing serializer methods, dependent from adding pre-/post-change data to WebHooks.\r\n\r\n### Removed\r\n\r\n- [#1268](https://github.com/nautobot/nautobot/issues/1268) - Drop Support for Python 3.6.\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1658",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/64681395/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 1,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        }
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/63566465",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/63566465/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/63566465/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.11",
        "id": 63566465,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DyfKB",
        "tag_name": "v1.2.11",
        "target_commitish": "develop",
        "name": "v1.2.11 - 2022-04-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-04-04T20:39:10Z",
        "updated_at": "2022-04-04T21:19:59Z",
        "published_at": "2022-04-04T20:43:20Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/61544221",
                "id": 61544221,
                "node_id": "RA_kwDOFEucDc4Dqxcd",
                "name": "nautobot-1.2.11-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 26201425,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-04-04T21:19:57Z",
                "updated_at": "2022-04-04T21:19:58Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.11/nautobot-1.2.11-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/61544225",
                "id": 61544225,
                "node_id": "RA_kwDOFEucDc4Dqxch",
                "name": "nautobot-1.2.11.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 25521657,
                "digest": null,
                "download_count": 10,
                "created_at": "2022-04-04T21:19:58Z",
                "updated_at": "2022-04-04T21:19:59Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.11/nautobot-1.2.11.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.11",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.11",
        "body": "## v1.2.11 (2022-04-04)\r\n\r\n### Added\r\n\r\n- [#1123](https://github.com/nautobot/nautobot/issues/1123) - Add validation for IPAddress assigned_object_type and assigned_object_id.\r\n- [#1146](https://github.com/nautobot/nautobot/issues/1146) - Added change date filtering lookup expressions to GraphQL.\r\n- [#1495](https://github.com/nautobot/nautobot/issues/1495) - Added full coverage of cable termination types to Graphene.\r\n- [#1501](https://github.com/nautobot/nautobot/issues/1501) - Add IP field to CSV export of device.\r\n- [#1529](https://github.com/nautobot/nautobot/pull/1529) - Added list of standard hex colors to the Tags documentation.\r\n\r\n### Changed\r\n\r\n- [#1536](https://github.com/nautobot/nautobot/pull/1536) - Removed the ServiceUnavailable exception when no `primary_ip` is available for a device, but other connection options are available.\r\n- [#1581](https://github.com/nautobot/nautobot/issues/1581) - Changed MultipleChoiceJSONField to accept choices as a callable, fixing Datasource Contents provided by plugins are not accepted as valid choice by REST API.\r\n- [#1584](https://github.com/nautobot/nautobot/issues/1584) - Replaced links in docs to celeryproject.org with celeryq.dev\r\n\r\n### Fixed\r\n\r\n- [#1313](https://github.com/nautobot/nautobot/issues/1313) - Fixed GraphQL query error on OneToOneFields such as `IPAddress.primary_ip4_for`\r\n- [#1408](https://github.com/nautobot/nautobot/issues/1408) - Fixed incorrect HTML in the Devices detail views.\r\n- [#1467](https://github.com/nautobot/nautobot/issues/1467) - Fixed an issue where at certain browser widths the nav bar would cover the top of the page content.\r\n- [#1523](https://github.com/nautobot/nautobot/issues/1523) - Fixed primary IP being unset after creating/updating different interface\r\n- [#1548](https://github.com/nautobot/nautobot/issues/1548) - Pin Jinja2 version for mkdocs requirements to fix RTD docs builds related to API deprecation in Jinja2 >= 3.1.0\r\n- [#1583](https://github.com/nautobot/nautobot/issues/1583) - Fixed Nautobot service definition in PostgreSQL-backed development environment.\r\n- [#1599](https://github.com/nautobot/nautobot/pull/1599) - Bump mkdocs version for Snyk report.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1612"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/62372443",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/62372443/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/62372443/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.10",
        "id": 62372443,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Dt7pb",
        "tag_name": "v1.2.10",
        "target_commitish": "develop",
        "name": "v1.2.10 - 2022-03-21",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-03-21T20:40:51Z",
        "updated_at": "2022-03-21T21:22:56Z",
        "published_at": "2022-03-21T20:42:38Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/60171734",
                "id": 60171734,
                "node_id": "RA_kwDOFEucDc4DliXW",
                "name": "nautobot-1.2.10-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 26195461,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-03-21T21:22:53Z",
                "updated_at": "2022-03-21T21:22:54Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.10/nautobot-1.2.10-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/60171735",
                "id": 60171735,
                "node_id": "RA_kwDOFEucDc4DliXX",
                "name": "nautobot-1.2.10.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 25510286,
                "digest": null,
                "download_count": 7,
                "created_at": "2022-03-21T21:22:55Z",
                "updated_at": "2022-03-21T21:22:56Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.10/nautobot-1.2.10.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.10",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.10",
        "body": "## v1.2.10 (2022-03-21)\r\n\r\n### Added\r\n\r\n- [#1492](https://github.com/nautobot/nautobot/pull/1492) - Added note in the Jobs documentation about the use of `AbortTransaction` to end the job and force rollback.\r\n- [#1517](https://github.com/nautobot/nautobot/pull/1517) - Added password filtering example to advanced logging section in docs.\r\n\r\n### Changed\r\n\r\n- [#1514](https://github.com/nautobot/nautobot/pull/1514) - Simplified switching between PostgreSQL and MySQL database backends in the developer environment.\r\n- [#1518](https://github.com/nautobot/nautobot/pull/1518) - Updated GitHub Pull Request template to include detail section, todo list.\r\n\r\n### Fixed\r\n\r\n- [#1511](https://github.com/nautobot/nautobot/issues/1511) - Fixed left column of Read The Docs being cut off.\r\n- [#1522](https://github.com/nautobot/nautobot/pull/1522) - Fixed link name attribute name in developer docs.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1531"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/61802391",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/61802391/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/61802391/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.3.0-beta.1",
        "id": 61802391,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DrweX",
        "tag_name": "v1.3.0-beta.1",
        "target_commitish": "develop",
        "name": "v1.3.0-beta.1 (2022-03-14)",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2022-03-14T19:33:46Z",
        "updated_at": "2022-03-14T20:28:03Z",
        "published_at": "2022-03-14T19:52:16Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/59488545",
                "id": 59488545,
                "node_id": "RA_kwDOFEucDc4Di7kh",
                "name": "nautobot-1.3.0b1-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 23212869,
                "digest": null,
                "download_count": 7,
                "created_at": "2022-03-14T20:28:00Z",
                "updated_at": "2022-03-14T20:28:01Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.0-beta.1/nautobot-1.3.0b1-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/59488547",
                "id": 59488547,
                "node_id": "RA_kwDOFEucDc4Di7kj",
                "name": "nautobot-1.3.0b1.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 22751952,
                "digest": null,
                "download_count": 7,
                "created_at": "2022-03-14T20:28:02Z",
                "updated_at": "2022-03-14T20:28:03Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.3.0-beta.1/nautobot-1.3.0b1.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.3.0-beta.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.3.0-beta.1",
        "body": "## Release Overview\r\n\r\n### Added\r\n\r\n#### Dynamic Group Model ([#896](https://github.com/nautobot/nautobot/issues/896))\r\n\r\nA new data model for representing [dynamic groups](../models/extras/dynamicgroup.md) of objects has been implemented. Dynamic groups can be used to organize objects together by matching criteria such as their site location or region, for example, and are dynamically updated whenever new matching objects are created, or existing objects are updated.\r\n\r\nFor the initial release only dynamic groups of `Device` and `VirtualMachine` objects are supported. \r\n\r\n!!! note\r\n  For this first 1.3 beta release, this feature is not yet documented. Dynamic Groups be found by navigating to **Organization** > **Dynamic Groups** in the web interface.\r\n\r\n#### GraphQL Pagination ([#1109](https://github.com/nautobot/nautobot/issues/1109))\r\n\r\nGraphQL list queries can now be paginated by specifying the filter parameters `limit` and `offset`. Refer to the [user guide](../user-guides/graphql.md#filtering-queries) for examples.\r\n\r\n#### Job Database Model ([#1001](https://github.com/nautobot/nautobot/issues/1001))\r\n\r\nInstalled Jobs are now represented by a data model in the Nautobot database. This allows for new functionality including:\r\n\r\n- The Jobs listing UI view can now be filtered and searched like most other Nautobot table/list views.\r\n- Job attributes (name, description, approval requirements, etc.) can now be managed via the Nautobot UI by an administrator or user with appropriate permissions to customize or override the attributes defined in the Job source code.\r\n- Jobs can now be identified by a `slug` as well as by their `class_path`.\r\n- A new set of REST API endpoints have been added at `api/extras/job-models`. The existing `api/extras/jobs` REST API continues to work but should be considered as deprecated.\r\n\r\n!!! warning\r\n    The new Jobs REST API endpoint URL is likely to change before the final release of Nautobot 1.3.\r\n\r\n- As a minor security measure, newly installed Jobs default to `enabled = False`, preventing them from being run until an administrator or user with appropriate permissions updates them to be enabled for running.\r\n\r\n!!! note\r\n    As a convenience measure, when initially upgrading to Nautobot 1.3.x, any existing Jobs that have been run or scheduled previously (i.e., have at least one associated JobResult and/or ScheduledJob record) will instead default to `enabled = True` so that they may continue to be run without requiring changes.\r\n\r\nFor more details please refer to the [Jobs feature documentation](../additional-features/jobs.md) as well as the [Job data model documentation](../models/extras/job.md).\r\n\r\n#### Provider Network Model ([#724](https://github.com/nautobot/nautobot/issues/724))\r\n\r\nA [data model](../models/circuits/providernetwork.md) has been added to support representing the termination of a circuit to an external provider's network.\r\n\r\n#### Python 3.10 Support ([#1255](https://github.com/nautobot/nautobot/pull/1255))\r\n\r\nPython 3.10 is officially supported by Nautobot now, and we are building and publishing Docker images with Python 3.10 now.\r\n\r\n### Changed\r\n\r\n#### Update Jinja2 to 3.x ([#1474](https://github.com/nautobot/nautobot/pull/1474))\r\n\r\nWe've updated the Jinja2 dependency from version 2.11 to version 3.0.3. This may affect the syntax of any `nautobot.extras.models.ComputedField` objects in your database... Specifically, the `template` attribute, which is parsed as a Jinja2 template. Please refer to [Jinja2 3.0.x's release notes](https://jinja.palletsprojects.com/en/3.0.x/changes/) to check if any changes might be required in your computed fields' templates.\r\n\r\n#### Docker Images Now Default to Python 3.7 ([#1252](https://github.com/nautobot/nautobot/pull/1252))\r\n\r\nAs Python 3.6 has reached end-of-life, the default Docker images published for this release (i.e. `1.3.0`, `stable`, `latest`) have been updated to use Python 3.7 instead.\r\n\r\n### Removed\r\n\r\n#### Python 3.6 No Longer Supported ([#1268](https://github.com/nautobot/nautobot/issues/1268))\r\n\r\nAs Python 3.6 has reached end-of-life, and many of Nautobot's dependencies have already dropped support for Python 3.6 as a consequence, Nautobot 1.3 and later do not support installation under Python 3.6.\r\n\r\n## v1.3.0b1 (2022-03-11)\r\n\r\n### Added\r\n\r\n- [#5](https://github.com/nautobot/nautobot/issues/5) - Added the option to perform a \"dry run\" of Git repository syncing.\r\n- [#330](https://github.com/nautobot/nautobot/issues/330) - Added pre-/post-change data to WebHooks leveraging snapshots\r\n- [#498](https://github.com/nautobot/nautobot/issues/498) - Added custom-validator support to the RelationshipAssociation model.\r\n- [#724](https://github.com/nautobot/nautobot/issues/724) - Added Provider Network data model. (Partially based on [NetBox #5986](https://github.com/netbox-community/netbox/issues/5986).)\r\n- [#795](https://github.com/nautobot/nautobot/issues/795) - Added ability to filter objects missing custom field values by using `null`.\r\n- [#803](https://github.com/nautobot/nautobot/issues/803) - Added a `render_boolean` template filter, which renders computed boolean values as HTML in a consistent manner.\r\n- [#863](https://github.com/nautobot/nautobot/issues/863) - Added the ability to hide a job in the UI by setting `hidden = True` in the Job's inner `Meta` class\r\n- [#881](https://github.com/nautobot/nautobot/issues/881) - Improved the UX of the main Jobs list by adding accordion style interface that can collapse/expand jobs provided by each module\r\n- [#885](https://github.com/nautobot/nautobot/issues/885) - Added the ability to define a `soft_time_limit` and `time_limit` in seconds as attributes of a Job's `Meta`.\r\n- [#894](https://github.com/nautobot/nautobot/issues/894) - Added the ability to view computed fields in an object list.\r\n- [#898](https://github.com/nautobot/nautobot/issues/898) - Added support for moving a CustomField, Relationship or ComputedField from the main tab of an object's detail page in the UI to the \"Advanced\" tab.\r\n- [#1001](https://github.com/nautobot/nautobot/issues/1001) - Added Job database model and associated functionality.\r\n- [#1109](https://github.com/nautobot/nautobot/issues/1109) - Added pagination support for GraphQL list queries.\r\n- [#1255](https://github.com/nautobot/nautobot/pull/1255) - Added Python 3.10 support.\r\n- [#1350](https://github.com/nautobot/nautobot/issues/1350) - Added missing methods on Circuit Termination detail view.\r\n- [#1411](https://github.com/nautobot/nautobot/pull/1411) - Added concrete Job database model; added database signals to populate Job records in the database; added detail, edit, and delete views for Job records.\r\n- [#1457](https://github.com/nautobot/nautobot/pull/1457) - Added new Jobs REST API, added control logic to use JobModel rather than JobClass where appropriate; improved permissions enforcement for Jobs\r\n\r\n### Changed\r\n\r\n- [#368](https://github.com/nautobot/nautobot/issues/368) - Added `nautobot.extras.forms.NautobotModelForm` and `nautobot.extras.filters.NautobotFilterSet` base classes. All form classes which inherited from all three of (`BootstrapMixin`, `CustomFieldModelForm`, and `RelationshipModelForm`) now inherit from `NautobotModelForm` as their base class. All filterset classes which inherited from all three of (`BaseFilterSet`, `CreatedUpdatedFilterSet`, and `CustomFieldModelFilterSet`) now inherit from `NautobotFilterSet` as their base class.\r\n- [#443](https://github.com/nautobot/nautobot/issues/443) - The provided \"Dummy Plugin\" has been renamed to \"Example Plugin\".\r\n- [#591](https://github.com/nautobot/nautobot/issues/591) - All uses of `type()` are now refactored to use `isinstance()` where applicable.\r\n- [#880](https://github.com/nautobot/nautobot/issues/880) - Jobs menu items now form their own top-level menu instead of a sub-section under the Extensibility menu.\r\n- [#909](https://github.com/nautobot/nautobot/issues/909) - Device, InventoryItem, and Rack serial numbers can now be up to 255 characters in length.\r\n- [#916](https://github.com/nautobot/nautobot/issues/916) - A `Job.Meta.description` can now contain markdown-formatted multi-line text.\r\n- [#1107](https://github.com/nautobot/nautobot/issues/1107) - Circuit Provider account numbers can now be up to 100 characters in length.\r\n- [#1252](https://github.com/nautobot/nautobot/pull/1252) - As Python 3.6 has reached end-of-life, the default Docker images published for this release (i.e. `1.3.0`, `stable`, `latest`) have been updated to use Python 3.7 instead.\r\n- [#1277](https://github.com/nautobot/nautobot/issues/1277) - Updated Django dependency to 3.2.X LTS.\r\n- [#1307](https://github.com/nautobot/nautobot/pull/1307) - Updated various Python package dependencies to their latest compatible versions.\r\n- [#1314](https://github.com/nautobot/nautobot/pull/1314) - Updated various development-only Python package dependencies to their latest compatible versions.\r\n- [#1321](https://github.com/nautobot/nautobot/pull/1321) - Updates to various browser package dependencies. This includes updating from Material Design Icons 5.x to 6.x, which has a potential impact on plugins: a [small number of icons have been removed or renamed](https://dev.materialdesignicons.com/upgrade#5.9.55-to-6.1.95) as a result of this change.\r\n- [#1367](https://github.com/nautobot/nautobot/pull/1367) - Extracted Job-related models to submodule `nautobot.extras.models.jobs`; refined Job testing best practices.\r\n- [#1391](https://github.com/nautobot/nautobot/issues/1391) - Updated Jinja2 dependency to 3.0.X.\r\n- [#1435](https://github.com/nautobot/nautobot/issues/1435) - Update to Selenium 4.X\r\n\r\n### Fixed\r\n\r\n- [#1440](https://github.com/nautobot/nautobot/issues/1440) - Handle models missing serializer methods, dependent from adding pre-/post-change data to WebHooks.\r\n\r\n### Removed\r\n\r\n- [#1268](https://github.com/nautobot/nautobot/issues/1268) - Drop Support for Python 3.6.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1494"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/61792116",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/61792116/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/61792116/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.9",
        "id": 61792116,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Drt90",
        "tag_name": "v1.2.9",
        "target_commitish": "develop",
        "name": "v1.2.9 - 2022-03-14",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-03-14T18:00:18Z",
        "updated_at": "2022-03-14T18:39:22Z",
        "published_at": "2022-03-14T18:04:16Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/59481589",
                "id": 59481589,
                "node_id": "RA_kwDOFEucDc4Di531",
                "name": "nautobot-1.2.9-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 26195184,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-03-14T18:39:18Z",
                "updated_at": "2022-03-14T18:39:20Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.9/nautobot-1.2.9-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/59481590",
                "id": 59481590,
                "node_id": "RA_kwDOFEucDc4Di532",
                "name": "nautobot-1.2.9.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 25509524,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-03-14T18:39:20Z",
                "updated_at": "2022-03-14T18:39:22Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.9/nautobot-1.2.9.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.9",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.9",
        "body": "## v1.2.9 (2022-03-14)\r\n\r\n### Fixed\r\n\r\n- [#1431](https://github.com/nautobot/nautobot/issues/1431) - Fixed potential failure of `extras.0017_joblog_data_migration` migration when the job logs contain messages mistakenly logged as object references.\r\n- [#1459](https://github.com/nautobot/nautobot/issues/1459) - Fixed incorrect display of related devices and VMs in the Cluster Type and Cluster Group detail views.\r\n- [#1469](https://github.com/nautobot/nautobot/issues/1469) - Fixed incorrect CSV export for devices\r\n\r\n### Security\r\n\r\nIt is highly recommended that users of Python 3.6 prioritize upgrading to a newer version of Python. **Nautobot will be removing support for Python 3.6 in a future update.**\r\n\r\nFor users remaining on Python 3.6, please know that upgrading to Nautobot v1.2.9 **will not resolve these CVEs for your installation**. The only remedy at this time is to upgrade your systems to utilize Python 3.7 or later.\r\n\r\n- [#1487](https://github.com/nautobot/nautobot/issues/1487) - Implemented fixes for [CVE-2022-22817](https://github.com/advisories/GHSA-8vj2-vxx3-667w), [CVE-2022-24303](https://github.com/advisories/GHSA-9j59-75qj-795w), and [potential infinite loop](https://github.com/advisories/GHSA-4fx9-vc88-q2xc) by requiring Pillow >=9.0.1 for Python version >=3.7. For Python version <3.7 (e.g. 3.6), it is recommended that you prioritize upgrading your environment to use Python 3.7 or higher. Support for Python 3.6 will be removed in a future update.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1493"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/61206930",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/61206930/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/61206930/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.8",
        "id": 61206930,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DpfGS",
        "tag_name": "v1.2.8",
        "target_commitish": "develop",
        "name": "v1.2.8 - 2022-03-07",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-03-07T21:38:34Z",
        "updated_at": "2022-03-07T22:27:50Z",
        "published_at": "2022-03-07T21:40:53Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/58839701",
                "id": 58839701,
                "node_id": "RA_kwDOFEucDc4DgdKV",
                "name": "nautobot-1.2.8-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 26194702,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-03-07T22:27:45Z",
                "updated_at": "2022-03-07T22:27:47Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.8/nautobot-1.2.8-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/58839708",
                "id": 58839708,
                "node_id": "RA_kwDOFEucDc4DgdKc",
                "name": "nautobot-1.2.8.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 25508755,
                "digest": null,
                "download_count": 9,
                "created_at": "2022-03-07T22:27:48Z",
                "updated_at": "2022-03-07T22:27:50Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.8/nautobot-1.2.8.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.8",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.8",
        "body": "## v1.2.8 (2022-03-07)\r\n\r\n### Added\r\n\r\n- [#839](https://github.com/nautobot/nautobot/issues/839) - Add CODE_OF_CONDUCT.md to repository.\r\n- [#1242](https://github.com/nautobot/nautobot/issues/1242) - Add MAJOR.MINOR tags to Docker images upon release.\r\n- [#1299](https://github.com/nautobot/nautobot/pull/1299) - Add SECURITY.md to repository.\r\n- [#1388](https://github.com/nautobot/nautobot/pull/1388) - Added beta version of GitHub Issue Form style for feature request.\r\n- [#1419](https://github.com/nautobot/nautobot/pull/1419) - Add documentation for specifying a CA cert file for LDAP authentication backend.\r\n- [#1446](https://github.com/nautobot/nautobot/pull/1446) - Apply title labels to Docker images.\r\n\r\n### Changed\r\n\r\n- [#1348](https://github.com/nautobot/nautobot/pull/1348) - Pin Selenium Grid container version to match Python Client version.\r\n- [#1432](https://github.com/nautobot/nautobot/issues/1432) - Update django-redis to `5.2.x` to address `5.1.x` blocking redis `4.x` versions.\r\n- [#1447](https://github.com/nautobot/nautobot/pull/1447) - Minor `nit` on Github Issue Form styling.\r\n- [#1452](https://github.com/nautobot/nautobot/pull/1452) - Changed GitHub release workflow to not run on prerelease releases.\r\n- [#1453](https://github.com/nautobot/nautobot/pull/1453) - Changed feature request to use GitHub Issue Form.\r\n\r\n### Fixed\r\n\r\n- [#1301](https://github.com/nautobot/nautobot/issues/1301) - Fixed window history handling for views with tabs in Safari/Firefox.\r\n- [#1302](https://github.com/nautobot/nautobot/issues/1302) - Fixed missing Advanced tab on Virtual Machine detail view.\r\n- [#1398](https://github.com/nautobot/nautobot/issues/1398) - Fixed missing safeguard for removing master from Virtual Chassis via API.\r\n- [#1399](https://github.com/nautobot/nautobot/issues/1399) - Fixed not being able to set master to `null` on Virtual Chassis API.\r\n- [#1405](https://github.com/nautobot/nautobot/issues/1405) - Fixed incorrect import in 'startplugin' template code.\r\n- [#1412](https://github.com/nautobot/nautobot/issues/1412) - Fixed not being able to query for prefix family via GraphQL.\r\n- [#1442](https://github.com/nautobot/nautobot/issues/1442) - Fixed missing Advanced tab on Job Result, Git Repository, and Config Context Schema detail views.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1458"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/60173051",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/60173051/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/60173051/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.7",
        "id": 60173051,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Dlir7",
        "tag_name": "v1.2.7",
        "target_commitish": "develop",
        "name": "v1.2.7 - 2022-02-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-02-22T21:52:10Z",
        "updated_at": "2022-02-22T22:31:03Z",
        "published_at": "2022-02-22T21:56:36Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/57638933",
                "id": 57638933,
                "node_id": "RA_kwDOFEucDc4Db4AV",
                "name": "nautobot-1.2.7-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 26192260,
                "digest": null,
                "download_count": 7,
                "created_at": "2022-02-22T22:30:52Z",
                "updated_at": "2022-02-22T22:30:54Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.7/nautobot-1.2.7-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/57638937",
                "id": 57638937,
                "node_id": "RA_kwDOFEucDc4Db4AZ",
                "name": "nautobot-1.2.7.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 25503721,
                "digest": null,
                "download_count": 13,
                "created_at": "2022-02-22T22:30:55Z",
                "updated_at": "2022-02-22T22:31:03Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.7/nautobot-1.2.7.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.7",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.7",
        "body": "## v1.2.7 (2022-02-22)\r\n\r\n**!! NOTE: This release is functionally equivalent to [v1.2.6](https://github.com/nautobot/nautobot/releases/tag/v1.2.6), but due to an issue in our GitHub Action, a Python package was published to PyPI but Docker images were not published. Instead of pulling the package and retagging, we are pushing a new version.** \r\n\r\n### Changed\r\n\r\n- [#1403](https://github.com/nautobot/nautobot/issues/1403) - Changes the GitHub Action on Release version template variable name.\r\n"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/60165728",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/60165728/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/60165728/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.6",
        "id": 60165728,
        "author": {
            "login": "bryanculver",
            "id": 31187,
            "node_id": "MDQ6VXNlcjMxMTg3",
            "avatar_url": "https://avatars.githubusercontent.com/u/31187?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bryanculver",
            "html_url": "https://github.com/bryanculver",
            "followers_url": "https://api.github.com/users/bryanculver/followers",
            "following_url": "https://api.github.com/users/bryanculver/following{/other_user}",
            "gists_url": "https://api.github.com/users/bryanculver/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/bryanculver/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/bryanculver/subscriptions",
            "organizations_url": "https://api.github.com/users/bryanculver/orgs",
            "repos_url": "https://api.github.com/users/bryanculver/repos",
            "events_url": "https://api.github.com/users/bryanculver/events{/privacy}",
            "received_events_url": "https://api.github.com/users/bryanculver/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4Dlg5g",
        "tag_name": "v1.2.6",
        "target_commitish": "develop",
        "name": "v1.2.6 - 2022-02-22",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-02-22T19:28:44Z",
        "updated_at": "2022-02-22T20:49:13Z",
        "published_at": "2022-02-22T20:01:49Z",
        "assets": [
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/57630047",
                "id": 57630047,
                "node_id": "RA_kwDOFEucDc4Db11f",
                "name": "nautobot-1.2.6-py3-none-any.whl",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 26192227,
                "digest": null,
                "download_count": 8,
                "created_at": "2022-02-22T20:49:10Z",
                "updated_at": "2022-02-22T20:49:11Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.6/nautobot-1.2.6-py3-none-any.whl"
            },
            {
                "url": "https://api.github.com/repos/nautobot/nautobot/releases/assets/57630049",
                "id": 57630049,
                "node_id": "RA_kwDOFEucDc4Db11h",
                "name": "nautobot-1.2.6.tar.gz",
                "label": "",
                "uploader": {
                    "login": "github-actions[bot]",
                    "id": 41898282,
                    "node_id": "MDM6Qm90NDE4OTgyODI=",
                    "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
                    "gravatar_id": "",
                    "url": "https://api.github.com/users/github-actions%5Bbot%5D",
                    "html_url": "https://github.com/apps/github-actions",
                    "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
                    "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
                    "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
                    "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
                    "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
                    "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
                    "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
                    "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
                    "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
                    "type": "Bot",
                    "user_view_type": "public",
                    "site_admin": false
                },
                "content_type": "binary/octet-stream",
                "state": "uploaded",
                "size": 25503304,
                "digest": null,
                "download_count": 7,
                "created_at": "2022-02-22T20:49:11Z",
                "updated_at": "2022-02-22T20:49:13Z",
                "browser_download_url": "https://github.com/nautobot/nautobot/releases/download/v1.2.6/nautobot-1.2.6.tar.gz"
            }
        ],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.6",
        "body": "## v1.2.6 (2022-02-22)\r\n\r\n### Added\r\n\r\n- [#1279](https://github.com/nautobot/nautobot/issues/1279) - Circuit terminations now render custom relationships on the circuit detail page.\r\n- [#1353](https://github.com/nautobot/nautobot/issues/1353) - Added UI for deleting previously uploaded images when editing a DeviceType.\r\n\r\n### Changed\r\n\r\n- [#1386](https://github.com/nautobot/nautobot/issues/1386) - Updated release schedule in docs for patch releases, now every two weeks.\r\n\r\n### Fixed\r\n\r\n- [#1249](https://github.com/nautobot/nautobot/issues/1249) - Fixed a timing issue where after creating a custom field with a default value and immediately assigning values to this custom field on individual objects, the custom field values could be automatically reverted to the default value.\r\n- [#1280](https://github.com/nautobot/nautobot/pull/1280) - Added missing `get_absolute_url` method to the `CircuitTermination` model, fixing a UI error that could occur when relationships involve CircuitTerminations.\r\n- [#1283](https://github.com/nautobot/nautobot/pull/1283) - Update Sentinel docs to have 3 hosts (minimum per Redis docs), and change `CELERY_BROKER_URL` to a multiline string instead of a Tuple (tuple is invalid, and raises an exception when job completes).\r\n- [#1312](https://github.com/nautobot/nautobot/issues/1312) - Fixed a bug where a Prefix filter matching zero records would instead show all records in the UI.\r\n- [#1327](https://github.com/nautobot/nautobot/pull/1327) - Fixes the broken dependencies from the Release action.\r\n- [#1328](https://github.com/nautobot/nautobot/pull/1328) - Fixed an error in the [Job class-path documentation](../additional-features/jobs.md#jobs-and-class_path).\r\n- [#1332](https://github.com/nautobot/nautobot/pull/1332) - Fixed a regression in which the REST API did not default to pagination based on the configured `PAGINATE_COUNT` setting but instead defaulted to full unpaginated results.\r\n- [#1335](https://github.com/nautobot/nautobot/issues/1335) - Fixed an issue with the Secret create/edit form that caused problems when defining AWS secrets using the `nautobot-secrets-providers` plugin.\r\n- [#1346](https://github.com/nautobot/nautobot/issues/1346) - Fixed an error in the periodic execution of Celery's built-in `celery.backend_cleanup` task.\r\n- [#1360](https://github.com/nautobot/nautobot/issues/1360) - Fixed an issue in the development environment that could cause Selenium integration tests to error out.\r\n- [#1390](https://github.com/nautobot/nautobot/issues/1390) - Pinned transitive dependency `MarkupSafe` to version 2.0.1 as later versions are incompatible with Nautobot's current `Jinja2` dependency.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1401"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/58558864",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/58558864/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/58558864/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.5",
        "id": 58558864,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DfYmQ",
        "tag_name": "v1.2.5",
        "target_commitish": "main",
        "name": "v1.2.5 - 2022-02-02",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-02-02T23:48:07Z",
        "updated_at": "2022-02-02T23:48:42Z",
        "published_at": "2022-02-02T23:48:42Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.5",
        "body": "## v1.2.5 (2022-02-02)\r\n\r\n### Changed\r\n\r\n- [#1293](https://github.com/nautobot/nautobot/pull/1293) - Reorganized the developer documents somewhat to reduce duplication of information, added diagrams for issue intake process.\r\n\r\n### Fixed\r\n\r\n- [#371](https://github.com/nautobot/nautobot/issues/371) - Fixed a server error that could occur when importing cables via CSV.\r\n- [#1161](https://github.com/nautobot/nautobot/issues/1161) - The `description` field for device component templates is now correctly propagated to device components created from these templates.\r\n- [#1233](https://github.com/nautobot/nautobot/issues/1233) - Prevented a job aborting when an optional ObjectVar is provided with a value of None\r\n- [#1272](https://github.com/nautobot/nautobot/pull/1272) - Fixed GitHub Actions syntax and Slack payload for `release` CI workflow\r\n- [#1282](https://github.com/nautobot/nautobot/issues/1282) - Fixed a server error when editing User accounts.\r\n- [#1308](https://github.com/nautobot/nautobot/pull/1308) - Fixed another server error that could occur when importing cables via CSV.\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1326"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/57051842",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/57051842/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/57051842/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.4",
        "id": 57051842,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DZorC",
        "tag_name": "v1.2.4",
        "target_commitish": "main",
        "name": "v1.2.4 - 2022-01-13",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-01-13T20:19:10Z",
        "updated_at": "2022-01-13T20:23:44Z",
        "published_at": "2022-01-13T20:23:44Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.4",
        "body": "## v1.2.4 (2022-01-13)\r\n\r\n### Added\r\n\r\n- [#1113](https://github.com/nautobot/nautobot/issues/1113) - Added [documentation](../additional-features/caching.md#high-availability-caching) about using Redis Sentinel with Nautobot.\r\n- [#1251](https://github.com/nautobot/nautobot/pull/1251) - Added `workflow_call` to the GitHub Actions CI workflow so that it may be called by other GHA workflows.\r\n\r\n### Changed\r\n\r\n- [#616](https://github.com/nautobot/nautobot/issues/616) - The REST API now no longer permits setting non-string values for text-type custom fields.\r\n- [#1243](https://github.com/nautobot/nautobot/pull/1243) - Github CI action no longer runs for pull requests that don't impact Nautobot code, such as documentation, examples, etc.\r\n\r\n### Fixed\r\n\r\n- [#1053](https://github.com/nautobot/nautobot/issues/1053) - Fixed error when removing an IP address from an interface when it was previously the parent device's primary IP.\r\n- [#1140](https://github.com/nautobot/nautobot/issues/1140) - Fixed incorrect UI widgets in the updated Admin UI.\r\n- [#1253](https://github.com/nautobot/nautobot/issues/1253) - Fixed missing code that prevented switching between tabs in the device-type detail view.\r\n\r\n### Security\r\n![It is highly recommended that users of Python 3.6 prioritize upgrading to a newer version of Python. Nautobot will be removing support for Python 3.6 in a future update.](https://user-images.githubusercontent.com/138052/149403465-b481050f-c4d5-418b-9f38-61a82bd48c09.png)\r\n\r\n- [#1267](https://github.com/nautobot/nautobot/issues/1267) - Implemented fixes for [CVE-2022-22815](https://github.com/advisories/GHSA-xrcv-f9gm-v42c), [CVE-2022-22816](https://github.com/advisories/GHSA-xrcv-f9gm-v42c), and [CVE-2022-22817](https://github.com/advisories/GHSA-8vj2-vxx3-667w) to require Pillow >=9.0.0 for Python version >=3.7. For Python version <3.7 (e.g. 3.6), it is recommended that you prioritize upgrading your environment to use Python 3.7 or higher. Support for Python 3.6 will be removed in a future update.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1271"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/56644383",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/56644383/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/56644383/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.3",
        "id": 56644383,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DYFMf",
        "tag_name": "v1.2.3",
        "target_commitish": "main",
        "name": "v1.2.3 - 2022-01-07",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2022-01-07T22:20:17Z",
        "updated_at": "2022-01-07T22:27:31Z",
        "published_at": "2022-01-07T22:27:07Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.3",
        "body": "## v1.2.3 (2022-01-07)\r\n\r\n### Added\r\n\r\n- [#1037](https://github.com/nautobot/nautobot/issues/1037) - Added documentation about how to successfully use the `nautobot-server dumpdata` and `nautobot-server loaddata` commands.\r\n\r\n### Fixed\r\n\r\n- [#313](https://github.com/nautobot/nautobot/issues/313) - REST API documentation now correctly shows that `status` is a required field.\r\n- [#477](https://github.com/nautobot/nautobot/issues/477) - Fixed `nautobot.utilities.filters.BaseFilterSet.FILTER_DEFAULTS` does not allow `models.TextField` to use multi-value filtering. Models using `TextField`s will now be able to `MultiValCharFilter` in filter classes on those fields.\r\n- [#734](https://github.com/nautobot/nautobot/issues/734) - Requests to nonexistent `/api/` URLs now correctly return a JSON 404 response rather than an HTML 404 response.\r\n- [#1127](https://github.com/nautobot/nautobot/issues/1127) - Fixed incorrect rendering of the navbar at certain browser window sizes.\r\n- [#1203](https://github.com/nautobot/nautobot/issues/1203) - Fixed maximum recursion depth error when filtering GraphQL queries by `device_types`.\r\n- [#1220](https://github.com/nautobot/nautobot/issues/1220) - Fixed an inconsistency in the breadcrumbs seen in various Admin pages.\r\n- [#1228](https://github.com/nautobot/nautobot/issues/1228) - Fixed a case where a GraphQL query for objects associated by Relationships could potentially throw an exception.\r\n- [#1229](https://github.com/nautobot/nautobot/pull/1229) - Fixed a template rendering error in the login page.\r\n- [#1234](https://github.com/nautobot/nautobot/issues/1234) - Fixed missing changelog support for Custom Fields.\r\n\r\n### Security\r\n\r\n![Notification_Center](https://user-images.githubusercontent.com/138052/148615075-02cb82e6-ff50-4cf3-83ad-1eae693cfd2d.png)\r\n\r\n- [#1238](https://github.com/nautobot/nautobot/issues/1238) - Implemented fix for [CVE-2021-23727](https://github.com/advisories/GHSA-q4xr-rc97-m4xx) to require Celery >=5.2.2 for Python version >=3.7. For Python version <3.7 (e.g. 3.6), it is recommended that you prioritize upgrading your environment to use Python 3.7 or higher. Support for Python 3.6 will be removed in a future update.\r\n"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/56042001",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/56042001/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/56042001/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.2",
        "id": 56042001,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DVyIR",
        "tag_name": "v1.2.2",
        "target_commitish": "main",
        "name": "v1.2.2 - 2021-12-27",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-12-27T16:24:05Z",
        "updated_at": "2021-12-27T16:28:08Z",
        "published_at": "2021-12-27T16:28:08Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.2",
        "body": "## v1.2.2 (2021-12-27)\r\n\r\n### Added\r\n\r\n- [#1152](https://github.com/nautobot/nautobot/pull/1152) - Added REST API and GraphQL for `JobLogEntry` objects.\r\n\r\n### Changed\r\n\r\n- [#650](https://github.com/nautobot/nautobot/issues/650) - Job Results UI now render job log messages immediately\r\n\r\n### Fixed\r\n\r\n- [#1181](https://github.com/nautobot/nautobot/pull/1181) - Avoid throwing a 500 error in the case where users have deleted a required Status value. (Preventing the user from doing this will need to be a later fix.)\r\n- [#1186](https://github.com/nautobot/nautobot/pull/1186) - Corrected an error in the docs regarding developing secrets providers in plugins.\r\n- [#1188](https://github.com/nautobot/nautobot/pull/1188) - Corrected some errors in the developer documentation about our branch management approach.\r\n- [#1193](https://github.com/nautobot/nautobot/issues/1193) - Fixed `JobResult` page may fail to list `JobLogEntries` in chronological order\r\n- [#1195](https://github.com/nautobot/nautobot/issues/1195) - Job log entries now again correctly render inline Markdown formatting.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1211"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/55581087",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/55581087/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/55581087/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.1",
        "id": 55581087,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DUBmf",
        "tag_name": "v1.2.1",
        "target_commitish": "main",
        "name": "v1.2.1 - 2021-12-16",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-12-17T23:12:13Z",
        "updated_at": "2021-12-17T23:15:08Z",
        "published_at": "2021-12-17T23:15:08Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.1",
        "body": "## v1.2.1 (2021-12-16)\r\n\r\n### Added\r\n\r\n- [#1110](https://github.com/nautobot/nautobot/issues/1110) - Added GraphQL support for the `ObjectChange` model.\r\n\r\n### Changed\r\n\r\n- [#1106](https://github.com/nautobot/nautobot/issues/1106) - Updating Docker health checks to be more robust and greatly reduce performance impact.\r\n\r\n### Fixed\r\n\r\n- [#1170](https://github.com/nautobot/nautobot/pull/1170) - Fixed bug in renamed column of `JobResultTable` where rename was not made to the `Meta`.\r\n- [#1173](https://github.com/nautobot/nautobot/issues/1173) - Fixed official Docker image: v1.2.0 tagged images fail to load with `ImportError: libxml2.so.2`.\r\n\r\n### Security\r\n\r\n- [#1077](https://github.com/nautobot/nautobot/issues/1077) - Updated `graphiql` to 1.5.16 as well as updating the associated Javascript libraries used in the GraphiQL UI to address a reported security flaw in older versions of GraphiQL. To the best of our understanding, the Nautobot implementation of GraphiQL was not vulnerable to said flaw.\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1183"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/55410772",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/55410772/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/55410772/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.0",
        "id": 55410772,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DTYBU",
        "tag_name": "v1.2.0",
        "target_commitish": "main",
        "name": "v1.2.0 - 2021-12-15",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-12-15T23:53:14Z",
        "updated_at": "2021-12-16T00:00:21Z",
        "published_at": "2021-12-16T00:00:21Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.0",
        "body": "# Nautobot v1.2\r\n\r\nThis document describes all new features and changes in Nautobot 1.2.\r\n\r\nIf you are a user migrating from NetBox to Nautobot, please refer to the [\"Migrating from NetBox\"](https://nautobot.readthedocs.io/en/latest/installation/migrating-from-netbox/) documentation.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Admin Configuration UI ([#370](https://github.com/nautobot/nautobot/issues/370))\r\n\r\nThe Nautobot Admin UI now includes a \"Configuration\" page that can be used to dynamically customize a number of [optional settings](https://nautobot.readthedocs.io/en/latest/configuration/optional-settings/#administratively-configurable-settings) as an alternative to editing `nautobot_config.py` and restarting the Nautobot processes.\r\n\r\nIf upgrading from a previous Nautobot version where these settings were defined in your `nautobot_config.py`, you must remove those definitions in order to use this feature, as explicit configuration in `nautobot_config.py` takes precedence over values configured in the Admin UI.\r\n\r\n#### Common Base Template for Object Detail Views ([#479](https://github.com/nautobot/nautobot/issues/479), [#585](https://github.com/nautobot/nautobot/issues/585))\r\n\r\nAll \"object detail\" views (pages displaying details of a single Nautobot record) now inherit from a common base template, providing improved UI consistency, reducing the amount of boilerplate code needed to create a new detail view, and fixing a number of bugs in various views. Plugin developers are encouraged to make use of this new template (`generic/object_detail.html`) to take advantage of these improvements.\r\n\r\nViews based on this template now include a new \"Advanced\" tab - currently this tab includes the UUID and slug (if any) of the object being viewed, but may be extended in the future to include additional information not relevant to the basic object detail view.\r\n\r\n#### Custom Fields are now User Configurable ([#229](https://github.com/nautobot/nautobot/issues/229))\r\n\r\nCreation and management of Custom Field definitions can now be performed by any user with appropriate permissions. (Previously, only admin users were able to manage Custom Fields.)\r\n\r\n#### Custom Field Webhooks ([#519](https://github.com/nautobot/nautobot/issues/519))\r\n\r\nWebhooks can now be triggered when creating/updating/deleting `CustomField` and `CustomFieldChoice` definition records.\r\n\r\n#### Database Ready Signal ([#13](https://github.com/nautobot/nautobot/issues/13))\r\n\r\nAfter running `nautobot-server migrate` or `nautobot-server post_upgrade`, Nautobot now emits a custom signal, `nautobot_database_ready`. This signal is designed for plugins to connect to in order to perform automatic database population (such as defining custom fields, relationships, webhooks, etc.) at install/upgrade time. For more details, refer to [the plugin development documentation](https://nautobot.readthedocs.io/en/latest/plugins/development/#populating-extensibility-features).\r\n\r\n#### GraphQL Filters at All Levels ([#248](https://github.com/nautobot/nautobot/issues/248))\r\n\r\nThe GraphQL API now supports query filter parameters at any level of a query. For example:\r\n\r\n```graphql\r\nquery {\r\n  sites(name: \"ams\") {\r\n    devices(role: \"edge\") {\r\n      name\r\n      interfaces(type: \"virtual\") {\r\n        name\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n#### GraphQL Query Optimizations ([#171](https://github.com/nautobot/nautobot/issues/171))\r\n\r\nComplex GraphQL queries have been greatly optimized thanks to integration of \r\n[`graphene-django-optimizer`](https://github.com/tfoxy/graphene-django-optimizer) into Nautobot! \r\n\r\nIn our internal testing and benchmarking the number of SQL queries generated per GraphQL query have been drastically reduced, resulting in much quicker response times and less strain on the database.\r\n\r\nFor in depth details on our benchmarks, please see the [comment thread on the issue](https://github.com/nautobot/nautobot/issues/171#issuecomment-907483759).\r\n\r\n#### Installed Plugins List and Detail Views, Plugin Config and Home Views ([#935](https://github.com/nautobot/nautobot/pull/935))\r\n\r\nThe `Plugins` menu now includes an \"Installed Plugins\" menu item which provides a list view of information about all installed and enabled plugins, similar to a formerly administrator-only view.\r\n\r\nAdditionally, when viewing this list, each plugin can now be clicked on for a detail view, which provides an in-depth look at the capabilities of the plugin, including whether it makes use of each or all of the various Nautobot features available to be used by plugins.\r\n\r\nAdditionally, plugins now have the option of registering specific \"home\" and/or \"configuration\" views, which will be linked and accessible directly from the installed-plugins list and detail views.\r\n\r\nPlease refer to the [plugin development documentation](https://nautobot.readthedocs.io/en/latest/plugins/development/) for more details about this functionality.\r\n\r\n#### IPAM custom lookups for filtering ([#982](https://github.com/nautobot/nautobot/issues/982))\r\n\r\nNautobot now again supports custom lookup filters on the `IPAddress`, `Prefix`, and `Aggregate` models, such as `address__net_contained`, `network__net_contains_or_equals`, etc. Refer to the [REST API filtering documentation](https://nautobot.readthedocs.io/en/latest/rest-api/filtering/#network-and-host-fields) for more specifics and examples.\r\n\r\n#### Job Approval ([#125](https://github.com/nautobot/nautobot/issues/125))\r\n\r\nJobs can now be optionally defined as `approval_required = True`, in which case the Job will not be executed immediately upon submission, but will instead be placed into an approval queue; any user *other than the submitter* can approve or deny a queued Job, at which point it will then be executed as normal.\r\n\r\n#### Job Scheduling ([#374](https://github.com/nautobot/nautobot/issues/374))\r\n\r\nJobs can now be scheduled for execution at a future date and time (such as during a planned maintenance window), and can also be scheduled for repeated execution on an hourly, daily, or weekly recurring cadence.\r\n\r\n!!! note\r\n    Execution of scheduled jobs is dependent on [Celery Beat](https://docs.celeryproject.org/en/stable/userguide/periodic-tasks.html); enablement of this system service is a new requirement in Nautobot 1.2.\r\n\r\nPlease see the documentation on enabling the [Celery Beat scheduler service](https://nautobot.readthedocs.io/en/latest/installation/services/#celery-beat-scheduler) to get started!\r\n\r\n#### Networking Template Filters ([#1082](https://github.com/nautobot/nautobot/issues/1082))\r\n\r\nTemplate rendering with Django and/or Jinja2 now supports by default all filters provided by the [`netutils`](https://netutils.readthedocs.io/en/latest/index.html) library. These filters can be used in page templates, computed fields, custom links, export templates, etc. For details, please refer to the [template filters](https://nautobot.readthedocs.io/en/latest/additional-features/template-filters/) documentation.\r\n\r\n#### Organizational Branding ([#859](https://github.com/nautobot/nautobot/issues/859))\r\n\r\nOrganizations may provide custom branding assets to change the logo, icons, and footer URLs to help Nautobot fit within their environments and user communities. Please see the [configuration documenation](https://nautobot.readthedocs.io/en/latest/configuration/optional-settings/#BRANDING_FILEPATHS) for details on how to specify the location and usage of custom branding assets.\r\n\r\n#### Plugin Banners ([#534](https://github.com/nautobot/nautobot/issues/534))\r\n\r\nEach plugin is now able to optionally inject a custom banner into any of the Nautobot core views.\r\n\r\nPlease refer to the [plugin development documentation](https://nautobot.readthedocs.io/en/latest/plugins/development/) for more details about this functionality.\r\n\r\n#### Same-Type and Symmetric Relationships ([#157](https://github.com/nautobot/nautobot/issues/157))\r\n\r\nThe [Relationships](https://nautobot.readthedocs.io/en/latest/models/extras/relationship/) feature has been extended in two ways:\r\n\r\n1. Relationships between the same object type (e.g. device-to-device) are now permitted and supported.\r\n2. For same-object-type relationships specifically, *symmetric* (peer-to-peer rather than source-to-destination) relationships are now an option.\r\n\r\nFor more details, refer to the [Relationships](https://nautobot.readthedocs.io/en/latest/models/extras/relationship/) documentation.\r\n\r\n#### Secrets Integration ([#541](https://github.com/nautobot/nautobot/issues/541))\r\n\r\nNautobot can now read secret values (such as device or Git repository access credentials) on demand from a variety of external sources, including environment variables and text files, and extensible via plugins to support additional secrets providers such as Hashicorp Vault and AWS Secrets Manager. Both the [NAPALM device integration](https://nautobot.readthedocs.io/en/latest/additional-features/napalm/) and the [Git repository integration](https://nautobot.readthedocs.io/en/latest/models/extras/gitrepository/) can now make use of these secrets, and plugins and jobs can do so as well.\r\n\r\nFor more details, please refer to the [Secrets](https://nautobot.readthedocs.io/en/latest/core-functionality/secrets/) documentation.\r\n\r\n#### Software-Defined Home Page ([#674](https://github.com/nautobot/nautobot/pull/674), [#716](https://github.com/nautobot/nautobot/pull/716))\r\n\r\nNautobot core applications and plugins can now both define panels, groups, and items to populate the Nautobot home page. The home page now dynamically reflows to accommodate available content. Plugin developers can add to existing panels or groups or define entirely new panels as needed. For more details, see [Populating the Home Page](https://nautobot.readthedocs.io/en/latest/development/homepage/).\r\n\r\n### Changed\r\n\r\n#### Admin Site Changes ([#900](https://github.com/nautobot/nautobot/pull/900))\r\n\r\nThe Admin sub-site within Nautobot (`/admin/` and its child pages) has been revamped in appearance and functionality. It has been re-skinned to resemble the rest of the Nautobot UI, and has been slimmed down to only include those models and features that are still exclusive to admin users, such as user/group/permission management.\r\n\r\n#### JobLogEntry Data Model ([#1030](https://github.com/nautobot/nautobot/pull/1030))\r\n\r\nJob log messages are now stored in a separate database table as a separate `JobLogEntry` data model, instead of being stored as JSON on the `JobResult` model/table. This provides faster and more robust rendering of `JobResult`-related views and lays groundwork for future enhancements of the Jobs feature.\r\n\r\n!!! note\r\n    If you use Jobs inside tests, your TestCase class(es) should have `@mock.patch(\"nautobot.extras.models.models.JOB_LOGS\", None)`. This will allow the tests and the `JobLogEntry` objects to use the `default` database.\r\n\r\n!!! note\r\n    Because `JobLogEntry` records reference their associated `JobResult`, the pattern `job.job_result = JobResult()` (creating only an in-memory `JobResult` object, rather than a database entry) will no longer work. Instead you will need to create a proper JobResult database object `job.job_result = JobResult.objects.create(...)`.\r\n\r\n#### Slug fields are now Optional in CSV import, REST API and ORM ([#493](https://github.com/nautobot/nautobot/issues/493))\r\n\r\nAll models that have `slug` fields now use `AutoSlugField` from the `django-extensions` package. This means that when creating a record via the REST API, CSV import, or direct ORM Python calls, the `slug` field is now fully optional; if unspecified, it will be automatically assigned a unique value, just as how a `slug` is auto-populated in the UI when creating a new record.\r\n\r\nJust as with the UI, the `slug` can still always be explicitly set if desired.\r\n\r\n## v1.2.0 (2021-12-15)\r\n\r\n### Added\r\n\r\n- [#843](https://github.com/nautobot/nautobot/issues/843) - Added more information about Celery in the Upgrading Nautobot docs.\r\n- [#876](https://github.com/nautobot/nautobot/issues/876) - Added option to apply a validation regex when defining CustomFieldChoices.\r\n- [#965](https://github.com/nautobot/nautobot/pull/965) - Added example script for performing group sync from AzureAD.\r\n- [#982](https://github.com/nautobot/nautobot/issues/982) - Added IPAM custom lookup database functions.\r\n- [#1002](https://github.com/nautobot/nautobot/pull/1002) - Added `URM-P2`, `URM-P4`, and `URM-P8` port types.\r\n- [#1041](https://github.com/nautobot/nautobot/pull/1041) - Add passing of `**kwargs` to Celery tasks when using `JobResult.enqueue_job()` to execute a `Job`.\r\n- [#1080](https://github.com/nautobot/nautobot/pull/1080) - Added documentation around using LDAP with multiple search groups.\r\n- [#1082](https://github.com/nautobot/nautobot/issues/1082) - Added `netutils` template filters for both Django and Jinja2 template rendering.\r\n- [#1104](https://github.com/nautobot/nautobot/issues/1104) - Added documentation and context on filtering execution of unit tests using labels\r\n- [#1124](https://github.com/nautobot/nautobot/issues/1124) - Added documentation on generating `SECRET_KEY` before Nautobot is configured.\r\n- [#1143](https://github.com/nautobot/nautobot/pull/1143) - Added documentation on using LDAP with multiple LDAP servers.\r\n- [#1159](https://github.com/nautobot/nautobot/pull/1159) - Add `family` field to `IPAddressType` for GraphQL API enable filtering of `IPAddress` objects by `family`.\r\n\r\n### Changed\r\n\r\n- [#1068](https://github.com/nautobot/nautobot/issues/1068) - Docker images now include optional Nautobot dependencies by default.\r\n- [#1095](https://github.com/nautobot/nautobot/issues/1095) - Refined Admin Configuration UI.\r\n- [#1105](https://github.com/nautobot/nautobot/pull/1105) - Reverted minimum Python 3.6 version to 3.6.0 rather than 3.6.2.\r\n\r\n### Fixed\r\n\r\n- [#453](https://github.com/nautobot/nautobot/issues/453) - Fixed potential `ValueError` when rendering `JobResult` detail view with non-standard `JobResult.data` contents.\r\n- [#864](https://github.com/nautobot/nautobot/issues/864) - Fixed inconsistent `JobResult` detail view page templates.\r\n- [#888](https://github.com/nautobot/nautobot/issues/888) - Addressed FIXME comment in LDAP documentation.\r\n- [#926](https://github.com/nautobot/nautobot/issues/926) - Fixed inability to pass multiple values for a MultiObjectVar as query parameters.\r\n- [#958](https://github.com/nautobot/nautobot/issues/958) - Fixed Job REST API handling of ObjectVars specified by query parameters.\r\n- [#992](https://github.com/nautobot/nautobot/issues/992) - Improved loading/rendering time of the `JobResult` table/list view.\r\n- [#1043](https://github.com/nautobot/nautobot/issues/1043) - Fixed `AttributeError` when bulk-adding interfaces to virtual machines.\r\n- [#1078](https://github.com/nautobot/nautobot/issues/1078) - Fixed missing support for filtering several models by their custom fields and/or created/updated stamps.\r\n- [#1093](https://github.com/nautobot/nautobot/pull/1093) - Improved REST API performance by adding caching of serializer \"opt-in fields\".\r\n- [#1098](https://github.com/nautobot/nautobot/issues/1098) - Fixed 404 error when creating a circuit termination for circuit and other edge cases resulting in 404 errors\r\n- [#1112](https://github.com/nautobot/nautobot/issues/1112) - Fixed broken single-object GraphQL query endpoints.\r\n- [#1116](https://github.com/nautobot/nautobot/issues/1116) - Fixed UnboundLocalError when using device NAPALM integration\r\n- [#1121](https://github.com/nautobot/nautobot/pull/1121) - Fixed issue with handling of relationships referencing no-longer-present model classes.\r\n- [#1133](https://github.com/nautobot/nautobot/pull/1133) - Fixed some incorrect documentation about the Docker image build/publish process.\r\n- [#1141](https://github.com/nautobot/nautobot/issues/1141) - Improved reloading of changed Job files. (Port of [NetBox #7820](https://github.com/netbox-community/netbox/pull/7820))\r\n- [#1154](https://github.com/nautobot/nautobot/issues/1154) - Fixed inability to save changes in Admin Configuration UI.\r\n- [#1162](https://github.com/nautobot/nautobot/issues/1162) - Fixed error when creating a `NavMenuItem` without specifying the `buttons` argument.\r\n\r\n### Removed\r\n\r\n- [#1094](https://github.com/nautobot/nautobot/issues/1094) - Removed leftover custom field management views from Admin UI\r\n\r\n## v1.2.0b1 (2021-11-19)\r\n\r\n### Added\r\n\r\n- [#13](https://github.com/nautobot/nautobot/issues/13) - Added `nautobot_database_ready` signal\r\n- [#125](https://github.com/nautobot/nautobot/issues/125) - Added support for `approval_required = True` on Jobs\r\n- [#157](https://github.com/nautobot/nautobot/issues/157) - Added support for same-object-type and symmetric Relationships\r\n- [#171](https://github.com/nautobot/nautobot/issues/171) - GraphQL queries have been greatly optimized by integration with `graphene-django-optimizer`\r\n- [#229](https://github.com/nautobot/nautobot/issues/229) - Added user-facing views for Custom Field management\r\n- [#248](https://github.com/nautobot/nautobot/issues/248) - Added support for filtering GraphQL queries at all levels\r\n- [#370](https://github.com/nautobot/nautobot/issues/370) - Added support for server configuration via the Admin UI.\r\n- [#374](https://github.com/nautobot/nautobot/issues/374) - Added ability to schedule Jobs for future and/or recurring execution\r\n- [#478](https://github.com/nautobot/nautobot/issues/478) - CustomFieldChoice model now supports GraphQL.\r\n- [#479](https://github.com/nautobot/nautobot/issues/479) - Added shared generic template for all object detail views\r\n- [#519](https://github.com/nautobot/nautobot/issues/519) - Added webhook support for `CustomField` and `CustomFieldChoice` models.\r\n- [#534](https://github.com/nautobot/nautobot/issues/534) - Added ability to inject a banner from a plugin\r\n- [#541](https://github.com/nautobot/nautobot/issues/541) - Added Secrets integration\r\n- [#580](https://github.com/nautobot/nautobot/issues/580) - Added ability for plugins to register \"home\" and \"configuration\" views.\r\n- [#585](https://github.com/nautobot/nautobot/issues/585) - Added \"Advanced\" tab to object detail views including UUID and slug information.\r\n- [#642](https://github.com/nautobot/nautobot/issues/642) - Added documentation of the `GIT_SSL_NO_VERIFY` environment variable for using self-signed Git repositories\r\n- [#674](https://github.com/nautobot/nautobot/pull/674) - Plugins can now add items to the Nautobot home page\r\n- [#716](https://github.com/nautobot/nautobot/pull/716) - Nautobot home page content is now dynamically populated based on installed apps and plugins.\r\n- [#866](https://github.com/nautobot/nautobot/pull/859) - Added support for organizational custom branding for the logo and icons\r\n- [#866](https://github.com/nautobot/nautobot/pull/866) - Added documentation for job scheduling and approvals\r\n- [#879](https://github.com/nautobot/nautobot/pull/879) - Added API testing for job scheduling and approvals\r\n- [#908](https://github.com/nautobot/nautobot/pull/908) - Added UI testing for job scheduling and approvals\r\n- [#935](https://github.com/nautobot/nautobot/pull/935) - Added Installed Plugins list view and detail view\r\n- [#937](https://github.com/nautobot/nautobot/issues/937) - Added bulk-delete option for scheduled jobs\r\n- [#938](https://github.com/nautobot/nautobot/issues/938) - Added titles to job approval UI buttons\r\n- [#947](https://github.com/nautobot/nautobot/pull/947) - Added `DISABLE_PREFIX_LIST_HIERARCHY` setting to render IPAM Prefix list view as a flat list\r\n- [#953](https://github.com/nautobot/nautobot/pull/953) - Added option to use MySQL in docker-compose development environment\r\n\r\n### Changed\r\n\r\n- [#222](https://github.com/nautobot/nautobot/issues/222) - Changed wildcard imports to explicitly enumerated imports and enabled associated Flake8 linter rules.\r\n- [#472](https://github.com/nautobot/nautobot/issues/472) - `JobResult` lists now show the associated Job's name (if available) instead of the Job's `class_path`.\r\n- [#493](https://github.com/nautobot/nautobot/issues/493) - All `slug` fields are now optional when creating records via the REST API, ORM, or CSV import. Slugs will be automatically assigned if unspecified.\r\n- [#877](https://github.com/nautobot/nautobot/pull/877) - Hid unused \"Social Auth\" section from Django admin page.\r\n- [#900](https://github.com/nautobot/nautobot/pull/900) - Admin site has been revised and re-skinned to more closely match the core Nautobot UI.\r\n\r\n### Fixed\r\n\r\n- [#852](https://github.com/nautobot/nautobot/issues/852) - Fixed missing \"Change Log\" tab on certain object detail views\r\n- [#853](https://github.com/nautobot/nautobot/issues/853) - Fixed `AttributeError` on certain object detail views\r\n- [#891](https://github.com/nautobot/nautobot/issues/891) - Fixed custom field select/multiselect not handled by new UI and added integration tests\r\n- [#966](https://github.com/nautobot/nautobot/issues/966) - Fixed missing \"Advanced\" tab on Device detail views\r\n- [#1060](https://github.com/nautobot/nautobot/issues/1060) - Fixed documentation incorrectly indicating that the Admin UI was the only way to manage custom field definitions.\r\n\r\n### Security\r\n\r\n- [#1017](https://github.com/nautobot/nautobot/issues/1017) - Custom field descriptions no longer potentially render as arbitrary HTML in object edit forms; Markdown format is now supported as a less dangerous option.\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1166",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/55410772/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 1,
            "confused": 0,
            "heart": 0,
            "rocket": 0,
            "eyes": 0
        }
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/54607131",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/54607131/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/54607131/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.6",
        "id": 54607131,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DQT0b",
        "tag_name": "v1.1.6",
        "target_commitish": "hotfix-v1.1.6",
        "name": "v1.1.6 - 2021-12-03",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-12-03T19:33:28Z",
        "updated_at": "2021-12-03T20:42:15Z",
        "published_at": "2021-12-03T20:42:15Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.6",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.6",
        "body": "### Fixed\r\n\r\n- [#1093](https://github.com/nautobot/nautobot/pull/1093) - Improved REST API performance by adding caching of serializer \"opt-in fields\".",
        "reactions": {
            "url": "https://api.github.com/repos/nautobot/nautobot/releases/54607131/reactions",
            "total_count": 1,
            "+1": 0,
            "-1": 0,
            "laugh": 0,
            "hooray": 0,
            "confused": 0,
            "heart": 1,
            "rocket": 0,
            "eyes": 0
        }
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/53747207",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/53747207/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/53747207/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.2.0b1",
        "id": 53747207,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DNB4H",
        "tag_name": "v1.2.0b1",
        "target_commitish": "main",
        "name": "v1.2.0b1 - 2021-11-19",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2021-11-19T19:38:30Z",
        "updated_at": "2021-11-19T19:59:31Z",
        "published_at": "2021-11-19T19:59:31Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.2.0b1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.2.0b1",
        "body": "# Nautobot v1.2\r\n\r\nThis document describes all new features and changes in Nautobot 1.2.\r\n\r\nIf you are a user migrating from NetBox to Nautobot, please refer to the [\"Migrating from NetBox\"](https://nautobot.readthedocs.io/en/latest/installation/migrating-from-netbox/)documentation.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### Admin Configuration UI ([#370](https://github.com/nautobot/nautobot/issues/370))\r\n\r\nThe Nautobot Admin UI now includes a \"Configuration\" page that can be used to dynamically customize a number of [optional settings](https://nautobot.readthedocs.io/en/latest/configuration/optional-settings/#administratively-configurable-settings) as an alternative to editing `nautobot_config.py` and restarting the Nautobot processes.\r\n\r\nIf upgrading from a previous Nautobot version where these settings were defined in your `nautobot_config.py`, you must remove those definitions in order to use this feature, as explicit configuration in `nautobot_config.py` takes precedence over values configured in the Admin UI.\r\n\r\n#### Common Base Template for Object Detail Views ([#479](https://github.com/nautobot/nautobot/issues/479), [#585](https://github.com/nautobot/nautobot/issues/585))\r\n\r\nAll \"object detail\" views (pages displaying details of a single Nautobot record) now inherit from a common base template, providing improved UI consistency, reducing the amount of boilerplate code needed to create a new detail view, and fixing a number of bugs in various views. Plugin developers are encouraged to make use of this new template (`generic/object_detail.html`) to take advantage of these improvements.\r\n\r\nViews based on this template now include a new \"Advanced\" tab - currently this tab includes the UUID and slug (if any) of the object being viewed, but may be extended in the future to include additional information not relevant to the basic object detail view.\r\n\r\n#### Custom Fields are now User Configurable ([#229](https://github.com/nautobot/nautobot/issues/229))\r\n\r\nCreation and management of Custom Field definitions can now be performed by any user with appropriate permissions. (Previously, only admin users were able to manage Custom Fields.)\r\n\r\n#### Custom Field Webhooks ([#519](https://github.com/nautobot/nautobot/issues/519))\r\n\r\nWebhooks can now be triggered when creating/updating/deleting `CustomField` and `CustomFieldChoice` definition records.\r\n\r\n#### Database Ready Signal ([#13](https://github.com/nautobot/nautobot/issues/13))\r\n\r\nAfter running `nautobot-server migrate` or `nautobot-server post_upgrade`, Nautobot now emits a custom signal, `nautobot_database_ready`. This signal is designed for plugins to connect to in order to perform automatic database population (such as defining custom fields, relationships, webhooks, etc.) at install/upgrade time. For more details, refer to [the plugin development documentation](https://nautobot.readthedocs.io/en/latest/plugins/development/#populating-extensibility-features).\r\n\r\n#### GraphQL Filters at All Levels ([#248](https://github.com/nautobot/nautobot/issues/248))\r\n\r\nThe GraphQL API now supports query filter parameters at any level of a query. For example:\r\n\r\n```graphql\r\nquery {\r\n  sites(name: \"ams\") {\r\n    devices(role: \"edge\") {\r\n      name\r\n      interfaces(type: \"virtual\") {\r\n        name\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n#### GraphQL Query Optimizations ([#171](https://github.com/nautobot/nautobot/issues/171))\r\n\r\nComplex GraphQL queries have been greatly optimized thanks to integration of [`graphene-django-optimizer`](https://github.com/tfoxy/graphene-django-optimizer) into Nautobot! \r\n\r\nIn our internal testing and benchmarking the number of SQL queries generated per GraphQL query have been drastically reduced, resulting in much quicker response times and less strain on the database.\r\n\r\nFor in depth details on our benchmarks, please see the [comment thread on the issue](https://github.com/nautobot/nautobot/issues/171#issuecomment-907483759).\r\n\r\n#### Installed Plugins List and Detail Views, Plugin Config and Home Views ([#935](https://github.com/nautobot/nautobot/pull/935))\r\n\r\nThe `Plugins` menu now includes an \"Installed Plugins\" menu item which provides a list view of information about all installed and enabled plugins, similar to a formerly administrator-only view.\r\n\r\nAdditionally, when viewing this list, each plugin can now be clicked on for a detail view, which provides an in-depth look at the capabilities of the plugin, including whether it makes use of each or all of the various Nautobot features available to be used by plugins.\r\n\r\nAdditionally, plugins now have the option of registering specific \"home\" and/or \"configuration\" views, which will be linked and accessible directly from the installed-plugins list and detail views.\r\n\r\nPlease refer to the [plugin development documentation](https://nautobot.readthedocs.io/en/latest/plugins/development/) for more details about this functionality.\r\n\r\n#### Job Approval ([#125](https://github.com/nautobot/nautobot/issues/125))\r\n\r\nJobs can now be optionally defined as `approval_required = True`, in which case the Job will not be executed immediately upon submission, but will instead be placed into an approval queue; any user *other than the submitter* can approve or deny a queued Job, at which point it will then be executed as normal.\r\n\r\n#### Job Scheduling ([#374](https://github.com/nautobot/nautobot/issues/374))\r\n\r\nJobs can now be scheduled for execution at a future date and time (such as during a planned maintenance window), and can also be scheduled for repeated execution on an hourly, daily, or weekly recurring cadence.\r\n\r\n**Please Note**: Execution of scheduled jobs is dependent on [Celery Beat](https://docs.celeryproject.org/en/stable/userguide/periodic-tasks.html); enablement of this system service is a new requirement in Nautobot 1.2.\r\n\r\nPlease see the documentation on enabling the [Celery Beat scheduler service](https://nautobot.readthedocs.io/en/latest/installation/services/#celery-beat-scheduler) to get started!\r\n\r\n#### Organizational Branding ([#859](https://github.com/nautobot/nautobot/issues/859))\r\n\r\nOrganizations may provide custom branding assets to change the logo, icons, and footer URLs to help Nautobot fit within their environments and user communities. Please see the [configuration documenation](https://nautobot.readthedocs.io/en/latest/configuration/optional-settings/#BRANDING_FILEPATHS) for details on how to specify the location and usage of custom branding assets.\r\n\r\n#### Plugin Banners ([#534](https://github.com/nautobot/nautobot/issues/534))\r\n\r\nEach plugin is now able to optionally inject a custom banner into any of the Nautobot core views.\r\n\r\nPlease refer to the [plugin development documentation](https://nautobot.readthedocs.io/en/latest/plugins/development/) for more details about this functionality.\r\n\r\n#### Same-Type and Symmetric Relationships ([#157](https://github.com/nautobot/nautobot/issues/157))\r\n\r\nThe [Relationships](https://nautobot.readthedocs.io/en/latest/models/extras/relationship/) feature has been extended in two ways:\r\n\r\n1. Relationships between the same object type (e.g. device-to-device) are now permitted and supported.\r\n2. For same-object-type relationships specifically, *symmetric* (peer-to-peer rather than source-to-destination) relationships are now an option.\r\n\r\nFor more details, refer to the [Relationships](https://nautobot.readthedocs.io/en/latest/models/extras/relationship/) documentation.\r\n\r\n#### Secrets Integration ([#541](https://github.com/nautobot/nautobot/issues/541))\r\n\r\nNautobot can now read secret values (such as device or Git repository access credentials) on demand from a variety of external sources, including environment variables and text files, and extensible via plugins to support additional secrets providers such as Hashicorp Vault and AWS Secrets Manager. Both the [NAPALM device integration](https://nautobot.readthedocs.io/en/latest/additional-features/napalm/) and the [Git repository integration](https://nautobot.readthedocs.io/en/latest/models/extras/gitrepository/) can now make use of these secrets, and plugins and jobs can do so as well.\r\n\r\nFor more details, please refer to the [Secrets](https://nautobot.readthedocs.io/en/latest/core-functionality/secrets/) documentation.\r\n\r\n#### Software-Defined Home Page ([#674](https://github.com/nautobot/nautobot/pull/674), [#716](https://github.com/nautobot/nautobot/pull/716))\r\n\r\nNautobot core applications and plugins can now both define panels, groups, and items to populate the Nautobot home page. The home page now dynamically reflows to accommodate available content. Plugin developers can add to existing panels or groups or define entirely new panels as needed. For more details, see [Populating the Home Page](https://nautobot.readthedocs.io/en/latest/development/homepage/).\r\n\r\n### Changed\r\n\r\n#### Admin Site Changes ([#900](https://github.com/nautobot/nautobot/pull/900))\r\n\r\nThe Admin sub-site within Nautobot (`/admin/` and its child pages) has been revamped in appearance and functionality. It has been re-skinned to resemble the rest of the Nautobot UI, and has been slimmed down to only include those models and features that are still exclusive to admin users, such as user/group/permission management.\r\n\r\n#### Slug fields are now Optional in CSV import, REST API and ORM ([#493](https://github.com/nautobot/nautobot/issues/493))\r\n\r\nAll models that have `slug` fields now use `AutoSlugField` from the `django-extensions` package. This means that when creating a record via the REST API, CSV import, or direct ORM Python calls, the `slug` field is now fully optional; if unspecified, it will be automatically assigned a unique value, just as how a `slug` is auto-populated in the UI when creating a new record.\r\n\r\nJust as with the UI, the `slug` can still always be explicitly set if desired.\r\n\r\n## v1.2.0b1 (2021-11-19)\r\n\r\n### Added\r\n\r\n- [#13](https://github.com/nautobot/nautobot/issues/13) - Added `nautobot_database_ready` signal\r\n- [#125](https://github.com/nautobot/nautobot/issues/125) - Added support for `approval_required = True` on Jobs\r\n- [#157](https://github.com/nautobot/nautobot/issues/157) - Added support for same-object-type and symmetric Relationships\r\n- [#171](https://github.com/nautobot/nautobot/issues/171) - GraphQL queries have been greatly optimized by integration with `graphene-django-optimizer`\r\n- [#229](https://github.com/nautobot/nautobot/issues/229) - Added user-facing views for Custom Field management\r\n- [#248](https://github.com/nautobot/nautobot/issues/248) - Added support for filtering GraphQL queries at all levels\r\n- [#370](https://github.com/nautobot/nautobot/issues/370) - Added support for server configuration via the Admin UI.\r\n- [#374](https://github.com/nautobot/nautobot/issues/374) - Added ability to schedule Jobs for future and/or recurring execution\r\n- [#478](https://github.com/nautobot/nautobot/issues/478) - CustomFieldChoice model now supports GraphQL.\r\n- [#479](https://github.com/nautobot/nautobot/issues/479) - Added shared generic template for all object detail views\r\n- [#519](https://github.com/nautobot/nautobot/issues/519) - Added webhook support for `CustomField` and `CustomFieldChoice` models.\r\n- [#534](https://github.com/nautobot/nautobot/issues/534) - Added ability to inject a banner from a plugin\r\n- [#541](https://github.com/nautobot/nautobot/issues/541) - Added Secrets integration\r\n- [#580](https://github.com/nautobot/nautobot/issues/580) - Added ability for plugins to register \"home\" and \"configuration\" views.\r\n- [#585](https://github.com/nautobot/nautobot/issues/585) - Added \"Advanced\" tab to object detail views including UUID and slug information.\r\n- [#642](https://github.com/nautobot/nautobot/issues/642) - Added documentation of the `GIT_SSL_NO_VERIFY` environment variable for using self-signed Git repositories\r\n- [#674](https://github.com/nautobot/nautobot/pull/674) - Plugins can now add items to the Nautobot home page\r\n- [#716](https://github.com/nautobot/nautobot/pull/716) - Nautobot home page content is now dynamically populated based on installed apps and plugins.\r\n- [#866](https://github.com/nautobot/nautobot/pull/859) - Added support for organizational custom branding for the logo and icons\r\n- [#866](https://github.com/nautobot/nautobot/pull/866) - Added documentation for job scheduling and approvals\r\n- [#879](https://github.com/nautobot/nautobot/pull/879) - Added API testing for job scheduling and approvals\r\n- [#908](https://github.com/nautobot/nautobot/pull/908) - Added UI testing for job scheduling and approvals\r\n- [#935](https://github.com/nautobot/nautobot/pull/935) - Added Installed Plugins list view and detail view\r\n- [#937](https://github.com/nautobot/nautobot/issues/937) - Added bulk-delete option for scheduled jobs\r\n- [#938](https://github.com/nautobot/nautobot/issues/938) - Added titles to job approval UI buttons\r\n- [#953](https://github.com/nautobot/nautobot/pull/953) - Added option to use MySQL in docker-compose development environment\r\n\r\n### Changed\r\n\r\n- [#222](https://github.com/nautobot/nautobot/issues/222) - Changed wildcard imports to explicitly enumerated imports and enabled associated Flake8 linter rules.\r\n- [#472](https://github.com/nautobot/nautobot/issues/472) - `JobResult` lists now show the associated Job's name (if available) instead of the Job's `class_path`.\r\n- [#493](https://github.com/nautobot/nautobot/issues/493) - All `slug` fields are now optional when creating records via the REST API, ORM, or CSV import. Slugs will be automatically assigned if unspecified.\r\n- [#877](https://github.com/nautobot/nautobot/pull/877) - Hid unused \"Social Auth\" section from Django admin page.\r\n- [#900](https://github.com/nautobot/nautobot/pull/900) - Admin site has been revised and re-skinned to more closely match the core Nautobot UI.\r\n\r\n### Fixed\r\n\r\n- [#852](https://github.com/nautobot/nautobot/issues/852) - Fixed missing \"Change Log\" tab on certain object detail views\r\n- [#853](https://github.com/nautobot/nautobot/issues/853) - Fixed `AttributeError` on certain object detail views\r\n- [#891](https://github.com/nautobot/nautobot/issues/891) - Fixed custom field select/multiselect not handled by new UI and added integration tests\r\n- [#966](https://github.com/nautobot/nautobot/issues/966) - Fixed missing \"Advanced\" tab on Device detail views\r\n- [#1060](https://github.com/nautobot/nautobot/issues/1060) - Fixed documentation incorrectly indicating that the Admin UI was the only way to manage custom field definitions.\r\n\r\n### Security\r\n\r\n- [#1017](https://github.com/nautobot/nautobot/issues/1017) - Custom field descriptions no longer potentially render as arbitrary HTML in object edit forms; Markdown format is now supported as a less dangerous option.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1092"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/53265712",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/53265712/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/53265712/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.5",
        "id": 53265712,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DLMUw",
        "tag_name": "v1.1.5",
        "target_commitish": "develop",
        "name": "v1.1.5 - 2021-11-12",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-11-12T16:21:31Z",
        "updated_at": "2021-11-12T19:12:34Z",
        "published_at": "2021-11-12T19:12:34Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.5",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.5",
        "body": "### Added\r\n\r\n- [#263](https://github.com/nautobot/nautobot/issues/263) - Added a link in the Docker deployment guide to the Nautobot Docker Compose repository.\r\n- [#931](https://github.com/nautobot/nautobot/issues/931) - Added support for direct upload of CSV files as an alternative to copy-pasting CSV text into a form field. (Partially based on [NetBox #6561](https://github.com/netbox-community/netbox/pull/6561))\r\n- [#953](https://github.com/nautobot/nautobot/pull/953) - Added option to use MySQL in the docker-compose development environment\r\n- [#954](https://github.com/nautobot/nautobot/pull/954) - Added documentation for migrating from PostgreSQL to MySQL, improved documentation as to recommended MySQL database configuration.\r\n- [#989](https://github.com/nautobot/nautobot/issues/989) - Added `id` and `name` fields to `NestedJobResultSerializer` for the REST API.\r\n- [#1019](https://github.com/nautobot/nautobot/pull/1019) - Added GitHub action to redeploy the Nautobot sandbox on pushes to `main`, `develop`, and `next`.\r\n- [#1025](https://github.com/nautobot/nautobot/issues/1025) - Added reference documentation for how to hide navigation menu items with no permissions.\r\n- [#1031](https://github.com/nautobot/nautobot/pull/1031) - Added a troubleshooting note around the combination of RedHat/CentOS, uWSGI, and static files.\r\n- [#1057](https://github.com/nautobot/nautobot/pull/1057) - Added GitHub action to automatically push Docker images to `ghcr.io`.\r\n\r\n### Fixed\r\n\r\n- [#555](https://github.com/nautobot/nautobot/issues/555) - Fixed `Status.DoesNotExist` during `nautobot-server loaddata`.\r\n- [#567](https://github.com/nautobot/nautobot/issues/567) - Fixed incorrect GraphQL schema generation for `_custom_field_data` when certain plugins are installed.\r\n- [#733](https://github.com/nautobot/nautobot/issues/733) - A Job erroring out early in initialization could result in its associated JobResult staying in Pending state indefinitely.\r\n- [#816](https://github.com/nautobot/nautobot/issues/816) - Fixed `AttributeError` reported when viewing a Rack with certain associated power configurations.\r\n- [#948](https://github.com/nautobot/nautobot/issues/948) - Fixed advanced logging example to use `EXTRA_MIDDLEWARE` instead of `MIDDLEWARE.append()`.\r\n- [#970](https://github.com/nautobot/nautobot/pull/970) - Clarified documentation around config context definition in Git repositories.\r\n- [#981](https://github.com/nautobot/nautobot/pull/981) - Fixed incorrect handling of missing custom fields in the `fix_custom_fields` management command.\r\n- [#986](https://github.com/nautobot/nautobot/issues/986) - Fixed `TemplateDoesNotExist` exception when running a Job containing a `FileVar` variable.\r\n- [#991](https://github.com/nautobot/nautobot/pull/991) - Fixed incorrect logging when importing ConfigContextSchemas from Git.\r\n- [#993](https://github.com/nautobot/nautobot/pull/993) - Fixed incorrect `git` command when refreshing a previously checked out repository.\r\n- [#1023](https://github.com/nautobot/nautobot/issues/1023) - Removed invalid link in \"Deploying Nautobot\" documentation.\r\n\r\n### Security\r\n\r\n- [#998](https://github.com/nautobot/nautobot/pull/998) - Update `mkdocs` dependency to avoid a potential path-traversal vulnerability; note that mkdocs is only used in development and is not a production deployment dependency of Nautobot.\r\n\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/1074"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/50821514",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/50821514/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/50821514/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.4",
        "id": 50821514,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4DB3mK",
        "tag_name": "v1.1.4",
        "target_commitish": "main",
        "name": "v1.1.4 - 2021-10-04",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-10-05T14:42:40Z",
        "updated_at": "2021-10-05T14:44:30Z",
        "published_at": "2021-10-05T14:44:30Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.4",
        "body": "### Added\r\n\r\n- [#623](https://github.com/nautobot/nautobot/issues/623) - Git repository sync logs now include the commit hash that was synchronized to.\r\n- [#728](https://github.com/nautobot/nautobot/issues/728) - Added `SOCIAL_AUTH_BACKEND_PREFIX` configuration setting to support custom authentication backends.\r\n- [#861](https://github.com/nautobot/nautobot/issues/861) - Bulk editing of devices can now update their site, rack, and rack-group assignments.\r\n- [#949](https://github.com/nautobot/nautobot/pull/949/) - Added documentation note about using `MAINTENANCE_MODE` in combination with LDAP.\r\n\r\n### Changed\r\n\r\n- [#956](https://github.com/nautobot/nautobot/pull/956) - Switched CI from Travis to GitHub Actions.\r\n- [#964](https://github.com/nautobot/nautobot/pull/964) - Updated README.md build status badge to show GitHub status.\r\n\r\n### Fixed\r\n\r\n- [#944](https://github.com/nautobot/nautobot/issues/944) - Jobs that commit changes to the database could not be invoked successfully from the `nautobot-server runjob` command.\r\n- [#955](https://github.com/nautobot/nautobot/issues/955) - REST API endpoint for syncing Git repositories was still checking for RQ workers instead of Celery workers.\r\n- [#969](https://github.com/nautobot/nautobot/issues/969) - IPv6 prefixes such as `::1/128` were not being treated correctly.\r\n\r\n### Security\r\n\r\n- [#939](https://github.com/nautobot/nautobot/issues/939) - Nautobot views now default to `X-Frame-Options: DENY` rather than `X-Frame-Options: SAMEORIGIN`, with the exception of the rack-elevation API view (`/api/dcim/rack-elevation/`) which specifically requires `X-Frame-Options: SAMEORIGIN` for functional reasons.\r\n\r\n"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/49616084",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/49616084/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/49616084/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.3",
        "id": 49616084,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "RE_kwDOFEucDc4C9RTU",
        "tag_name": "v1.1.3",
        "target_commitish": "main",
        "name": "v1.1.3 - 2021-09-15",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-09-15T15:38:52Z",
        "updated_at": "2021-09-15T16:33:44Z",
        "published_at": "2021-09-15T16:32:53Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.3",
        "body": "### Added\r\n\r\n- [#11](https://github.com/nautobot/nautobot/issues/11) - Added tests to verify that plugin models can support webhooks if appropriately decorated with `extras_features(\"webhooks\")`\r\n- [#652](https://github.com/nautobot/nautobot/issues/652) - Jobs REST API `run` endpoint now can look up ObjectVar references via a dictionary of parameters.\r\n- [#755](https://github.com/nautobot/nautobot/issues/755) - Added example showing how to use `django-request-logging` middleware to log the user associated with inbound requests.\r\n- [#791](https://github.com/nautobot/nautobot/issues/791) - Added support for `NAUTOBOT_DOCKER_SKIP_INIT` variable to allow running the Docker container with a read-only database.\r\n- [#841](https://github.com/nautobot/nautobot/pull/841) - Added more detailed documentation around defining Relationship filters.\r\n- [#850](https://github.com/nautobot/nautobot/pull/850) - Added developer documentation around the installation and use of `mkdocs` to locally preview documentation changes.\r\n- [#856](https://github.com/nautobot/nautobot/issues/856) - Added more detailed user documentation on how to create an API token.\r\n\r\n### Changed\r\n\r\n- [#601](https://github.com/nautobot/nautobot/issues/601) - Developer documentation for advanced docker-compose use cases is now a separate file.\r\n- [#709](https://github.com/nautobot/nautobot/issues/709) - Computed fields can now have a blank `fallback_value`.\r\n- [#812](https://github.com/nautobot/nautobot/pull/812) - In the GraphiQL interface, the \"Queries\" dropdown now appears alongside the other GraphiQL interface buttons instead of appearing in the main Nautobot navigation bar.\r\n- [#832](https://github.com/nautobot/nautobot/issues/832) - Plugin installation documentation now recommends `nautobot-server post_upgrade` instead of separately running `nautobot-server migrate` and `nautobot-server collectstatic`.\r\n\r\n### Fixed\r\n\r\n- [#464](https://github.com/nautobot/nautobot/issues/464) - Fixed GraphQL schema generation error when certain custom field names are used.\r\n- [#651](https://github.com/nautobot/nautobot/issues/651) - Fixed Jobs validation enforce schema consistently across UI and API.\r\n- [#670](https://github.com/nautobot/nautobot/pull/670) - Clarified Jobs documentation regarding how to fail or abort a Job.\r\n- [#715](https://github.com/nautobot/nautobot/issues/715) - Fixed display of GraphiQL interface in narrow browser windows.\r\n- [#718](https://github.com/nautobot/nautobot/issues/718) - Fixed rendering of long template values in Computed Field detail view.\r\n- [#731](https://github.com/nautobot/nautobot/issues/731) - Config context schemas including `format` properties (such as `\"format\": \"ipv4\"`) are now correctly enforced.\r\n- [#779](https://github.com/nautobot/nautobot/issues/779) - Fixed incorrect Tenant display in Prefix \"Duplicate Prefixes\" table. (Port of [two](https://github.com/netbox-community/netbox/commit/20a85c1ef264ecfffcbe8602ab103baed5a7cf5b) [fixes](https://github.com/netbox-community/netbox/commit/0a1531ce8a5597333f2ac87fcc795c83a052fd47) originally from NetBox)\r\n- [#809](https://github.com/nautobot/nautobot/issues/809) - Fixed docker-compose file `version` values to work correctly with older versions of docker-compose.\r\n- [#818](https://github.com/nautobot/nautobot/issues/818) - Database health-check now reports as healthy even when in `MAINTENANCE_MODE`.\r\n- [#825](https://github.com/nautobot/nautobot/issues/825) - Removed unnecessary `-B` flag from development Celery worker invocation.\r\n- [#830](https://github.com/nautobot/nautobot/issues/830) - Fixed incorrect database migration introduced by #818.\r\n- [#845](https://github.com/nautobot/nautobot/pull/845) - Clarified documentation around `nautobot-server init` and `NAUTOBOT_ROOT`.\r\n- [#848](https://github.com/nautobot/nautobot/pull/848) - Fixed stale links to NAPALM documentation\r\n\r\n### Security\r\n\r\n- [#893](https://github.com/nautobot/nautobot/pull/893) - Bump Pillow dependency version from 8.2.0 to 8.2.3 to address numerous critical CVE advisories"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/47633373",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/47633373/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/47633373/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.2",
        "id": 47633373,
        "author": {
            "login": "glennmatthews",
            "id": 5603551,
            "node_id": "MDQ6VXNlcjU2MDM1NTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5603551?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/glennmatthews",
            "html_url": "https://github.com/glennmatthews",
            "followers_url": "https://api.github.com/users/glennmatthews/followers",
            "following_url": "https://api.github.com/users/glennmatthews/following{/other_user}",
            "gists_url": "https://api.github.com/users/glennmatthews/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/glennmatthews/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/glennmatthews/subscriptions",
            "organizations_url": "https://api.github.com/users/glennmatthews/orgs",
            "repos_url": "https://api.github.com/users/glennmatthews/repos",
            "events_url": "https://api.github.com/users/glennmatthews/events{/privacy}",
            "received_events_url": "https://api.github.com/users/glennmatthews/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQ3NjMzMzcz",
        "tag_name": "v1.1.2",
        "target_commitish": "main",
        "name": "v1.1.2 - 2021-08-10",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-08-10T22:10:45Z",
        "updated_at": "2021-08-10T22:29:29Z",
        "published_at": "2021-08-10T22:29:29Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.2",
        "body": "### Added\r\n\r\n- [#758](https://github.com/nautobot/nautobot/pull/758) - Added documentation about the Job `class_path` concept.\r\n- [#771](https://github.com/nautobot/nautobot/pull/771) - Added examples of various possible logging configurations.\r\n- [#773](https://github.com/nautobot/nautobot/pull/773) - Added documentation around enabling Prometheus metrics for database and caching backends.\r\n\r\n### Changed\r\n\r\n- [#742](https://github.com/nautobot/nautobot/pull/742) - The development environment now respects the setting of the `NAUTOBOT_DEBUG` environment variable if present.\r\n\r\n### Fixed\r\n\r\n- [#723](https://github.com/nautobot/nautobot/issues/723) - Fixed power draw not providing a `UtilizationData` type for use in graphing power draw utilization\r\n- [#782](https://github.com/nautobot/nautobot/pull/782) - Corrected documentation regarding the use of `docker-compose.override.yml`\r\n- [#785](https://github.com/nautobot/nautobot/issues/785) - Fixed plugin loading error when using `final` Docker image.\r\n- [#786](https://github.com/nautobot/nautobot/issues/786) - Fixed `Unknown command: 'post_upgrade'` when using `final` Docker image.\r\n- [#789](https://github.com/nautobot/nautobot/pull/789) - Avoid a `NoReverseMatch` exception at startup time if an app or plugin defines a nav menu item with an invalid link reference."
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/47370695",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/47370695/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/47370695/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.1",
        "id": 47370695,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQ3MzcwNjk1",
        "tag_name": "v1.1.1",
        "target_commitish": "main",
        "name": "v1.1.1 - 2021-08-05",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-08-05T15:01:21Z",
        "updated_at": "2021-08-05T15:10:05Z",
        "published_at": "2021-08-05T15:10:05Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.1",
        "body": "## v1.1.1 (2021-08-05)\r\n\r\n### Added\r\n\r\n- [#506](https://github.com/nautobot/nautobot/issues/506) - `nautobot-server` now detects and rejects the misconfiguration of setting `MAINTENANCE_MODE` while using database-backed session storage (`django.contrib.sessions.backends.db`)\r\n- [#681](https://github.com/nautobot/nautobot/pull/681) - Added an example guide on how to use AWS S3 for hosting static files in production.\r\n\r\n### Changed\r\n\r\n- [#738](https://github.com/nautobot/nautobot/issues/738) - Added `*.env` (except `dev.env`) to `.gitignore` to prevent local environment variable files from accidentally being committed to Git\r\n\r\n### Fixed\r\n\r\n- [#683](https://github.com/nautobot/nautobot/issues/683) - Fixed slug auto-construction when defining a new ComputedField.\r\n- [#725](https://github.com/nautobot/nautobot/issues/725) - Added missing `http-keepalive = 1` to recommended `uswgi.ini` configuration.\r\n- [#727](https://github.com/nautobot/nautobot/issues/727) - Fixed broken REST API endpoint (`/api/extras/graphql-queries/<uuid>/run/`) for running saved GraphQL queries.\r\n- [#744](https://github.com/nautobot/nautobot/issues/744) - Fixed missing Celery Django fixup that could cause assorted errors when multiple background tasks were run concurrently.\r\n- [#746](https://github.com/nautobot/nautobot/issues/746) - Fixed data serialization error when running Jobs that used `IPAddressVar`, `IPAddressWithMaskVar`, and/or `IPNetworkVar` variables.\r\n- [#759](https://github.com/nautobot/nautobot/issues/759) - Corrected backwards add/import links for Power Feed and Power Panel in navigation bar\r\n\r\n#### HTTP \"Remote end closed connection\" errors ([#725](https://github.com/nautobot/nautobot/issues/725))\r\n\r\nThe example `uwsgi.ini` provided in earlier versions of the Nautobot documentation was missing a recommendation to include the configuration `http-keepalive = 1` which enables support for HTTP/1.1 keep-alive headers.\r\n\r\n!!! warning\r\n    If you are upgrading from an earlier version of Nautobot (including 1.1.0) you should check your `uwsgi.ini` and ensure that it contains this important configuration line.\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/783"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/46551008",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/46551008/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/46551008/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.0",
        "id": 46551008,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQ2NTUxMDA4",
        "tag_name": "v1.1.0",
        "target_commitish": "main",
        "name": "v1.1.0 - 2021-07-20",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-07-21T15:15:53Z",
        "updated_at": "2021-07-21T15:24:03Z",
        "published_at": "2021-07-21T15:24:03Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.0",
        "body": "# Nautobot v1.1\r\n\r\nThis document describes all new features and changes in Nautobot 1.1.\r\n\r\nIf you are a user migrating from NetBox to Nautobot, please refer to the [\"Migrating from NetBox\"](https://nautobot.readthedocs.io/en/stable/installation/migrating-from-netbox/) documentation.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### App Defined Navigation ([#12](https://github.com/nautobot/nautobot/pull/485))\r\n\r\nApplications can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see [Application Registry](https://nautobot.readthedocs.io/en/stable/development/application-registry/) for more details.\r\n\r\n#### Computed Fields ([#4](https://github.com/nautobot/nautobot/issues/4))\r\n\r\n[Computed fields](https://nautobot.readthedocs.io/en/stable/additional-features/computed-fields/) offers users the ability to create read-only custom fields using existing data already stored in the database. Users define Jinja2 templates that populate the value of these fields. Computed fields are available on all data models that currently support custom fields.\r\n\r\n#### Config Context Schemas ([#274](https://github.com/nautobot/nautobot/issues/274))\r\n\r\nWhile config contexts allow for arbitrary data structures to be stored within Nautobot, at scale it is desirable to apply validation constraints to that data to ensure its consistency and to avoid data entry errors. To service this need, Nautobot supports optionally backing config contexts with [JSON Schemas](https://json-schema.org/) for validation. These schema are managed via the config context schema model and are optionally linked to config context instances, in addition to devices and virtual machines for the purpose of validating their local context data. Please see the [docs](.https://nautobot.readthedocs.io/en/stable/additional-features/config-contexts/#config-context-schemas) for more details.\r\n\r\n#### GraphQL ORM Functions\r\n\r\nTwo new [GraphQL utility functions](https://nautobot.readthedocs.io/en/stable/plugins/development/) have been added to allow easy access to the GraphQL system from source code. Both can be accessed by using `from nautobot.core.graphql import execute_saved_query, execute_query`.\r\n\r\n1. `execute_query()`: Runs string as a query against GraphQL.\r\n2. `execute_saved_query()`: Execute a saved query from Nautobot database.\r\n\r\n#### MySQL Database Support ([#17](https://github.com/nautobot/nautobot/issues/17))\r\n\r\nMySQL 8.x is now fully supported as a database backend!\r\n\r\nThe installation and configuration guides have been revised to include MySQL. If you prefer MySQL or it is more easily supported in your environment, configuring Nautobot to use MySQL is as easy as changing value of `ENGINE` in your `DATABASES` setting to point to `django.db.backends.mysql` and installing the MySQL Python driver using `pip3 install nautobot[mysql]`.\r\n\r\n!!! note\r\n    You will not be able to directly migrate your data from PostgreSQL to MySQL. A fresh start is required.\r\n\r\nA new `NAUTOBOT_DB_ENGINE` environment variable has been added to allow for specifying the desired database engine at runtime without needing to modify your `nautobot_config.py`. Please see the [configuration guide on `DATABASES`](https://nautobot.readthedocs.io/en/stable/configuration/required-settings/#databases) for more details on how to configure Nautobot to use MySQL.\r\n\r\nPlease see the MySQL setup guides for [Ubuntu](https://nautobot.readthedocs.io/en/stable/installation/ubuntu/#mysql-setup) and [CentOS](https://nautobot.readthedocs.io/en/stable/installation/centos/#mysql-setup) to get started.\r\n\r\n#### Plugin Defined Navigation ([#12](https://github.com/nautobot/nautobot/pull/572))\r\n\r\nPlugins can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see [Application Registry](https://nautobot.readthedocs.io/en/stable/development/navigation-menu/) for more details.\r\n\r\n#### Read Only Jobs ([#200](https://github.com/nautobot/nautobot/issues/200))\r\n\r\nJobs may be optionally marked as read only by setting the `read_only = True` meta attribute. This prevents the job from making any changes to nautobot data and suppresses certain log messages. Read only jobs can be a great way to safely develop new jobs, and for working with reporting use cases. Please see the [Jobs documentation](https://nautobot.readthedocs.io/en/stable/additional-features/jobs/) for more details.\r\n\r\n#### Saved GraphQL Queries ([#3](https://github.com/nautobot/nautobot/issues/3))\r\n\r\n[Saved GraphQL queries](https://nautobot.readthedocs.io/en/stable/additional-features/graphql/#saved-queries) offers a new model where reusable queries can be stored in Nautobot. New views for managing saved queries are available; additionally, the GraphiQL interface has been augmented to allow populating the interface from a saved query, editing and saving new queries.\r\n\r\nSaved queries can easily be imported into the GraphiQL interface by using the new navigation tab located on the right side of the navbar. Inside the new tab are also buttons for editing and saving queries directly into Nautobot's databases.\r\n\r\n### Changed\r\n\r\n#### Background Tasks now use Celery ([#223](https://github.com/nautobot/nautobot/issues/223))\r\n\r\nCelery has been introduced to eventually replace RQ for executing background tasks within Nautobot. All core usage of RQ has been migrated to use Celery.\r\n\r\nPrior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now *deprecated*. RQ and the `@job` decorator for custom tasks are still supported for now, but will no longer be documented, and support for RQ will be removed in a future release.\r\n\r\nRQ support for custom tasks was not removed in order to give plugin authors time to migrate, however, to continue to utilize advanced Nautobot features such as Git repository synchronization, webhooks, jobs, etc. you must migrate your `nautobot-worker` deployment from RQ to Celery.\r\n\r\nPlease see the section on [migrating to Celery from RQ](https://nautobot.readthedocs.io/en/stable/installation/services/#migrating-to-celery-from-rq) for more information on how to easily migrate your deployment.\r\n\r\n## v1.1.0 (2021-07-20)\r\n\r\n### Added\r\n\r\n- [#372](https://github.com/nautobot/nautobot/issues/372) - Added support for displaying custom fields in tables used in object list views\r\n- [#620](https://github.com/nautobot/nautobot/pull/620) - Config context schemas can now be managed via Git repositories.\r\n\r\n### Changed\r\n\r\n- [#675](https://github.com/nautobot/nautobot/pull/675) - Update MySQL unicode settings docs to be more visible\r\n- [#684](https://github.com/nautobot/nautobot/issues/684) - Renamed `?opt_in_fields=` query param to `?include=`\r\n- [#691](https://github.com/nautobot/nautobot/pull/691) - Clarify documentation on RQ to Celery worker migration and running both workers in parallel to help ease migration\r\n- [#692](https://github.com/nautobot/nautobot/pull/692) - Clarify plugin development docs on naming of file for custom Jinja2 filters\r\n- [#697](https://github.com/nautobot/nautobot/issues/697) - Added `CELERY_TASK_SOFT_TIME_LIMIT` to `settings.py` and lowered the default `CELERY_TASK_TIME_LIMIT` configuration.\r\n\r\n### Fixed\r\n\r\n- [#363](https://github.com/nautobot/nautobot/issues/363) - Fixed using S3 django-storages backend requires `USE_TZ=False`\r\n- [#466](https://github.com/nautobot/nautobot/issues/466) - Fixed improper GraphQL schema generation on fields that can be blank but not null (such as `Interface.mode`)\r\n- [#663](https://github.com/nautobot/nautobot/issues/663) - Fixed `kombu.exceptions.EncodeError` when trying to execute Jobs using `(Multi)ObjectVar` objects with nested relationships\r\n- [#672](https://github.com/nautobot/nautobot/issues/672) - Fixed inheritance of Celery broker/results URL settings for dev/template configs (they can now be defined using Redis env. vars)\r\n- [#677](https://github.com/nautobot/nautobot/issues/677) - Revise LDAPS outdated documentation for ignoring TLS cert errors\r\n- [#680](https://github.com/nautobot/nautobot/issues/680) - Removed unnecessary warning message when both RQ and Celery workers are present\r\n- [#686](https://github.com/nautobot/nautobot/issues/686) - Fixed incorrect permission name for Tags list view in nav menu\r\n- [#690](https://github.com/nautobot/nautobot/pull/690) - Fixed Jinja2 dependency version to remain backwards-compatible with Nautobot 1.0.x\r\n- [#696](https://github.com/nautobot/nautobot/pull/696) - Fixed inheritance of VRF and Tenant assignment when creating an IPAddress or Prefix under a parent Prefix. (Port of [NetBox #5703](https://github.com/netbox-community/netbox/issues/5703) and [NetBox #6012](https://github.com/netbox-community/netbox/issues/6012))\r\n- [#698](https://github.com/nautobot/nautobot/issues/698) - Fixed cloning of a computed field object to now carry over required non-unique fields\r\n- [#699](https://github.com/nautobot/nautobot/issues/699) - Exceptions such as TypeError are now caught and handled correctly when rendering a computed field.\r\n- [#702](https://github.com/nautobot/nautobot/issues/702) - GraphiQL view no longer requires internet access to load libraries.\r\n- [#703](https://github.com/nautobot/nautobot/issues/703) - Fixed direct execution of saved GraphQL queries containing double quotes\r\n- [#705](https://github.com/nautobot/nautobot/issues/705) - Fixed missing description field from detail view for computed fields\r\n\r\n### Security\r\n\r\n- [#717](https://github.com/nautobot/nautobot/pull/717) - Bump Pillow from 8.1.2 to 8.2.0 to address numerous critical CVE advisories\r\n\r\n## v1.1.0b2 (2021-07-09)\r\n\r\n### Added\r\n\r\n- [#599](https://github.com/nautobot/nautobot/issues/599) - Custom fields are now supported on `JobResult` objects\r\n- [#637](https://github.com/nautobot/nautobot/pull/637) - Implemented a `nautobot-server fix_custom_fields` command to manually purge stale custom field data\r\n\r\n### Changed\r\n\r\n- [#634](https://github.com/nautobot/nautobot/pull/634) - Documentation on plugin capabilities has been clarified.\r\n\r\n### Fixed\r\n\r\n- [#495](https://github.com/nautobot/nautobot/issues/495) - Fixed search for partial IPv4 prefixes/aggregates not finding all matching objects\r\n- [#533](https://github.com/nautobot/nautobot/issues/533) - Custom field tasks are now run atomically to avoid stale field data from being saved on objects.\r\n- [#554](https://github.com/nautobot/nautobot/issues/554) - Fixed search for partial IPv6 prefixes/aggregates not finding all matching objects\r\n- [#569](https://github.com/nautobot/nautobot/issues/569) - Change minimum/maximum allowed values for integer type in Custom Fields to 64-bit `BigIntegerField` types (64-bit)\r\n- [#600](https://github.com/nautobot/nautobot/issues/600) - The `invoke migrate` step is now included in the development getting started guide for Docker workflows\r\n- [#617](https://github.com/nautobot/nautobot/pull/617) - Added extra comments to `uwsgi.ini` config to help with load balancer deployments in Nautobot services documentation\r\n- [#626](https://github.com/nautobot/nautobot/pull/626) - Added prefix `NAUTOBOT_` in `override.env` example inside of `docker-entrypoint.sh`\r\n- [#645](https://github.com/nautobot/nautobot/issues/645) - Updated services troubleshooting docs to include \"incorrect string value\" fix when using Unicode emojis with MySQL as a database backend\r\n- [#653](https://github.com/nautobot/nautobot/issues/653) - Fixed systemd unit file for `nautobot-worker` to correctly start/stop/restart\r\n- [#661](https://github.com/nautobot/nautobot/issues/661) - Fixed `computed_fields` key not being included in API response for devices when using `include` (for opt-in fields)\r\n- [#667](https://github.com/nautobot/nautobot/pull/667) - Fixed various outdated/incorrect places in the documentation for v1.1.0 release.\r\n\r\n## v1.1.0b1 (2021-07-02)\r\n\r\n### Added\r\n\r\n- [#3](https://github.com/nautobot/nautobot/issues/3) - GraphQL queries can now be saved for later execution\r\n- [#10](https://github.com/nautobot/nautobot/issues/10) - Added a new \"Getting Started in the Web UI\" section to the documentation to help new users begin learning how to use Nautobot.\r\n- [#17](https://github.com/nautobot/nautobot/issues/17) - MySQL 8.x is now fully supported as a database backend\r\n- [#200](https://github.com/nautobot/nautobot/issues/200) - Jobs can be marked as read-only\r\n- [#274](https://github.com/nautobot/nautobot/issues/274) - Added config context schemas to optionally validate config and local context data against JSON Schemas\r\n- [#297](https://github.com/nautobot/nautobot/issues/297) -  Added an anonymous health-checking endpoint at `/health/`using, also introducing a `nautobot-server health_check` command.\r\n- [#485](https://github.com/nautobot/nautobot/pull/485) - Applications can define navbar properties through `navigation.py`\r\n- [#557](https://github.com/nautobot/nautobot/issues/557) - `Prefix` records can now be created using /32 (IPv4) and /128 (IPv6) networks. (Port of [NetBox #6545](https://github.com/netbox-community/netbox/pull/6545))\r\n- [#561](https://github.com/nautobot/nautobot/pull/561) - Added autodetection of `mime_type` on `export_templates` provided by Git datasources\r\n- [#636](https://github.com/nautobot/nautobot/pull/636) - Added custom fields to `JobResult` model, with minor changes to job result detail page\r\n\r\n### Changed\r\n\r\n- [#431](https://github.com/nautobot/nautobot/issues/431) - `ConfigContext` and `ExportTemplate` records now must have unique `name` values. This was always the case in NetBox, but was inadvertently un-enforced in earlier versions of Nautobot.\r\n\r\n### Fixed\r\n\r\n- [#460](https://github.com/nautobot/nautobot/issues/460) - Deleting a record now deletes any associated `RelationshipAssociation` records\r\n- [#494](https://github.com/nautobot/nautobot/issues/494) - Objects with `status` fields now emit limited choices correctly when performing `OPTIONS` metadata API requests\r\n- [#602](https://github.com/nautobot/nautobot/issues/602) - Fixed incorrect requirement to install `toml` Python library before running `invoke` tasks\r\n- [#618](https://github.com/nautobot/nautobot/pull/618) - Fixed typo in release-notes",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/726"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/45990798",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/45990798/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/45990798/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.0b2",
        "id": 45990798,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQ1OTkwNzk4",
        "tag_name": "v1.1.0b2",
        "target_commitish": "main",
        "name": "v1.1.0b2 - 2021-07-09",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2021-07-09T22:03:34Z",
        "updated_at": "2021-07-09T22:06:06Z",
        "published_at": "2021-07-09T22:06:06Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.0b2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.0b2",
        "body": "# Nautobot v1.1\r\n\r\nThis document describes all new features and changes in Nautobot 1.1.\r\n\r\nIf you are a user migrating from NetBox to Nautobot, please refer to the [\"Migrating from NetBox\"](https://nautobot.readthedocs.io/en/latest/installation/migrating-from-netbox/) documentation.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### App Defined Navigation ([#12](https://github.com/nautobot/nautobot/pull/485))\r\n\r\nApplications can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see [Application Registry](https://nautobot.readthedocs.io/en/latest/development/application-registry/) for more details.\r\n\r\n#### Computed Fields ([#4](https://github.com/nautobot/nautobot/issues/4))\r\n\r\n[Computed fields](https://nautobot.readthedocs.io/en/latest/additional-features/computed-fields/) offers users the ability to create read-only custom fields using existing data already stored in the database. Users define Jinja2 templates that populate the value of these fields. Computed fields are available on all data models that currently support custom fields.\r\n\r\n#### Config Context Schemas ([#274](https://github.com/nautobot/nautobot/issues/274))\r\n\r\nWhile config contexts allow for arbitrary data structures to be stored within Nautobot, at scale it is desirable to apply validation constraints to that data to ensure its consistency and to avoid data entry errors. To service this need, Nautobot supports optionally backing config contexts with [JSON Schemas](https://json-schema.org/) for validation. These schema are managed via the config context schema model and are optionally linked to config context instances, in addition to devices and virtual machines for the purpose of validating their local context data. Please see the [docs](.https://nautobot.readthedocs.io/en/latest/additional-features/config-contexts/#config-context-schemas) for more details.\r\n\r\n#### GraphQL ORM Functions\r\n\r\nTwo new [GraphQL utility functions](https://nautobot.readthedocs.io/en/latest/plugins/development/) have been added to allow easy access to the GraphQL system from source code. Both can be accessed by using `from nautobot.core.graphql import execute_saved_query, execute_query`.\r\n\r\n1. `execute_query()`: Runs string as a query against GraphQL.\r\n2. `execute_saved_query()`: Execute a saved query from Nautobot database.\r\n\r\n#### MySQL Database Support ([#17](https://github.com/nautobot/nautobot/issues/17))\r\n\r\nMySQL 8.x is now fully supported as a database backend!\r\n\r\nThe installation and configuration guides have been revised to include MySQL. If you prefer MySQL or it is more easily supported in your environment, configuring Nautobot to use MySQL is as easy as changing value of `ENGINE` in your `DATABASES` setting to point to `django.db.backends.mysql` and installing the MySQL Python driver using `pip3 install nautobot[mysql]`.\r\n\r\n!!! note\r\n    You will not be able to directly migrate your data from PostgreSQL to MySQL. A fresh start is required.\r\n\r\nA new `NAUTOBOT_DB_ENGINE` environment variable has been added to allow for specifying the desired database engine at runtime without needing to modify your `nautobot_config.py`. Please see the [configuration guide on `DATABASES`](https://nautobot.readthedocs.io/en/latest/configuration/required-settings/#databases) for more details on how to configure Nautobot to use MySQL.\r\n\r\nPlease see the MySQL setup guides for [Ubuntu](https://nautobot.readthedocs.io/en/latest/installation/ubuntu/#mysql-setup) and [CentOS](https://nautobot.readthedocs.io/en/latest/installation/centos/#mysql-setup) to get started.\r\n\r\n#### Plugin Defined Navigation ([#12](https://github.com/nautobot/nautobot/pull/572))\r\n\r\nPlugins can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see [Application Registry](https://nautobot.readthedocs.io/en/latest/development/navigation-menu/) for more details.\r\n\r\n#### Read Only Jobs ([#200](https://github.com/nautobot/nautobot/issues/200))\r\n\r\nJobs may be optionally marked as read only by setting the `read_only = True` meta attribute. This prevents the job from making any changes to nautobot data and suppresses certain log messages. Read only jobs can be a great way to safely develop new jobs, and for working with reporting use cases. Please see the [Jobs documentation](https://nautobot.readthedocs.io/en/latest/additional-features/jobs/) for more details.\r\n\r\n#### Saved GraphQL Queries ([#3](https://github.com/nautobot/nautobot/issues/3))\r\n\r\n[Saved GraphQL queries](https://nautobot.readthedocs.io/en/latest/additional-features/graphql/#saved-queries) offers a new model where reusable queries can be stored in Nautobot. New views for managing saved queries are available; additionally, the GraphiQL interface has been augmented to allow populating the interface from a saved query, editing and saving new queries.\r\n\r\nSaved queries can easily be imported into the GraphiQL interface by using the new navigation tab located on the right side of the navbar. Inside the new tab are also buttons for editing and saving queries directly into Nautobot's databases.\r\n\r\n### Changed\r\n\r\n#### Background Tasks now use Celery ([#223](https://github.com/nautobot/nautobot/issues/223))\r\n\r\nCelery has been introduced to eventually replace RQ for executing background tasks within Nautobot. All core usage of RQ has been migrated to use Celery.\r\n\r\nPrior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now *deprecated*. RQ and the `@job` decorator for custom tasks are still supported for now, but will no longer be documented, and support for RQ will be removed in a future release.\r\n\r\nRQ support for custom tasks was not removed in order to give plugin authors time to migrate, however, to continue to utilize advanced Nautobot features such as Git repository synchronization, webhooks, jobs, etc. you must migrate your `nautobot-worker` deployment from RQ to Celery.\r\n\r\nPlease see the section on [migrating to Celery from RQ](https://nautobot.readthedocs.io/en/latest/installation/services/#migrating-to-celery-from-rq) for more information on how to easily migrate your deployment.\r\n\r\n### Removed\r\n\r\n## v1.1.0b2 (2021-07-09)\r\n\r\n### Added\r\n\r\n- [#599](https://github.com/nautobot/nautobot/issues/599) - Custom fields are now supported on `JobResult` objects\r\n- [#637](https://github.com/nautobot/nautobot/pull/637) - Implemented a `nautobot-server fix_custom_fields` command to manually purge stale custom field data\r\n\r\n### Changed\r\n\r\n- [#634](https://github.com/nautobot/nautobot/pull/634) - Documentation on plugin capabilities has been clarified.\r\n\r\n### Fixed\r\n\r\n- [#495](https://github.com/nautobot/nautobot/issues/495) - Fixed search for partial IPv4 prefixes/aggregates not finding all matching objects\r\n- [#533](https://github.com/nautobot/nautobot/issues/533) - Custom field tasks are now run atomically to avoid stale field data from being saved on objects.\r\n- [#554](https://github.com/nautobot/nautobot/issues/554) - Fixed search for partial IPv6 prefixes/aggregates not finding all matching objects\r\n- [#569](https://github.com/nautobot/nautobot/issues/569) - Change minimum/maximum allowed values for integer type in Custom Fields to 64-bit `BigIntegerField` types (64-bit)\r\n- [#600](https://github.com/nautobot/nautobot/issues/600) - The `invoke migrate` step is now included in the development getting started guide for Docker workflows\r\n- [#617](https://github.com/nautobot/nautobot/pull/617) - Added extra comments to `uwsgi.ini` config to help with load balancer deployments in Nautobot services documentation\r\n- [#626](https://github.com/nautobot/nautobot/pull/626) - Added prefix `NAUTOBOT_` in `override.env` example inside of `docker-entrypoint.sh`\r\n- [#645](https://github.com/nautobot/nautobot/issues/645) - Updated services troubleshooting docs to include \"incorrect string value\" fix when using Unicode emojis with MySQL as a database backend\r\n- [#653](https://github.com/nautobot/nautobot/issues/653) - Fixed systemd unit file for `nautobot-worker` to correctly start/stop/restart\r\n- [#661](https://github.com/nautobot/nautobot/issues/661) - Fixed `computed_fields` key not being included in API response for devices when using `opt_in_fields`\r\n- [#667](https://github.com/nautobot/nautobot/pull/667) - Fixed various outdated/incorrect places in the documentation for v1.1.0 release.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/671"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/45647483",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/45647483/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/45647483/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.1.0b1",
        "id": 45647483,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQ1NjQ3NDgz",
        "tag_name": "v1.1.0b1",
        "target_commitish": "main",
        "name": "v1.1.0b1 - 2021-07-02",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2021-07-02T22:28:33Z",
        "updated_at": "2021-07-02T22:33:06Z",
        "published_at": "2021-07-02T22:33:06Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.1.0b1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.1.0b1",
        "body": "# Nautobot v1.1\r\n\r\nThis document describes all new features and changes in Nautobot 1.1\r\n\r\nIf you are a user migrating from NetBox to Nautobot, please refer to the [\"Migrating from NetBox\"](https://nautobot.readthedocs.io/en/latest/installation/migrating-from-netbox/) documentation.\r\n\r\n## Release Overview\r\n\r\n### Added\r\n\r\n#### App Defined Navigation ([#12](https://github.com/nautobot/nautobot/pull/485))\r\n\r\nApplications can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see [Application Registry](https://nautobot.readthedocs.io/en/latest/development/application-registry/) for more details.\r\n\r\n#### Computed Fields ([#4](https://github.com/nautobot/nautobot/issues/4))\r\n\r\n[Computed fields](https://nautobot.readthedocs.io/en/latest/additional-features/computed-fields/) offers users the ability to create read-only custom fields using existing data already stored in the database. Users define Jinja2 templates that populate the value of these fields. Computed fields are available on all data models that currently support custom fields.\r\n\r\n#### Config Context Schemas ([#274](https://github.com/nautobot/nautobot/issues/274))\r\n\r\nWhile config contexts allow for arbitrary data structures to be stored within Nautobot, at scale it is desirable to apply validation constraints to that data to ensure its consistency and to avoid data entry errors. To service this need, Nautobot supports optionally backing config contexts with [JSON Schemas](https://json-schema.org/) for validation. These schema are managed via the config context schema model and are optionally linked to config context instances, in addition to devices and virtual machines for the purpose of validating their local context data. Please see the [docs](.https://nautobot.readthedocs.io/en/latest/additional-features/config-contexts/#config-context-schemas) for more details.\r\n\r\n#### GraphQL ORM Functions\r\n\r\nTwo new [GraphQL utility functions](https://nautobot.readthedocs.io/en/latest/plugins/development/) have been added to allow easy access to the GraphQL system from source code. Both can be accessed by using `from nautobot.core.graphql import execute_saved_query, execute_query`.\r\n\r\n1. `execute_query()`: Runs string as a query against GraphQL.\r\n2. `execute_saved_query()`: Execute a saved query from Nautobot database.\r\n\r\n#### MySQL Database Support ([#17](https://github.com/nautobot/nautobot/issues/17))\r\n\r\nMySQL 8.x is now fully supported as a database backend!\r\n\r\nThe installation and configuration guides have been revised to include MySQL. If you prefer MySQL or it is more easily supported in your environment, configuring Nautobot to use MySQL is as easy as changing value of `ENGINE` in your `DATABASES` setting to point to `django.db.backends.mysql` and installing the MySQL Python driver using `pip3 install nautobot[mysql]`.\r\n\r\n!!! note\r\n    You will not be able to directly migrate your data from PostgreSQL to MySQL. A fresh start is required.\r\n\r\nA new `NAUTOBOT_DB_ENGINE` environment variable has been added to allow for specifying the desired database engine at runtime without needing to modify your `nautobot_config.py`. Please see the [configuration guide on `DATABASES`](https://nautobot.readthedocs.io/en/latest/configuration/required-settings/#databases) for more details on how to configure Nautobot to use MySQL.\r\n\r\nPlease see the MySQL setup guides for [Ubuntu](https://nautobot.readthedocs.io/en/latest/installation/ubuntu/#mysql-setup) and [CentOS](https://nautobot.readthedocs.io/en/latest/installation/centos/#mysql-setup) to get started.\r\n\r\n#### Plugin Defined Navigation ([#12](https://github.com/nautobot/nautobot/pull/572))\r\n\r\nPlugins can now define tabs, groups, items and buttons in the navigation menu. Using navigation objects a developer can add items to any section of the navigation using key names and weight values. Please see [Application Registry](https://nautobot.readthedocs.io/en/latest/development/navigation-menu/) for more details.\r\n\r\n#### Read Only Jobs ([#200](https://github.com/nautobot/nautobot/issues/200))\r\n\r\nJobs may be optionally marked as read only by setting the `read_only = True` meta attribute. This prevents the job from making any changes to nautobot data and suppresses certain log messages. Read only jobs can be a great way to safely develop new jobs, and for working with reporting use cases. Please see the [Jobs documentation](https://nautobot.readthedocs.io/en/latest/additional-features/jobs/) for more details.\r\n\r\n#### Saved GraphQL Queries ([#3](https://github.com/nautobot/nautobot/issues/3))\r\n\r\n[Saved GraphQL queries](https://nautobot.readthedocs.io/en/latest/additional-features/graphql/#saved-queries) offers a new model where reusable queries can be stored in Nautobot. New views for managing saved queries are available; additionally, the GraphiQL interface has been augmented to allow populating the interface from a saved query, editing and saving new queries.\r\n\r\nSaved queries can easily be imported into the GraphiQL interface by using the new navigation tab located on the right side of the navbar. Inside the new tab are also buttons for editing and saving queries directly into Nautobot's databases.\r\n\r\n### Changed\r\n\r\n#### Background Tasks now use Celery ([#223](https://github.com/nautobot/nautobot/issues/223))\r\n\r\nCelery has been introduced to eventually replace RQ for executing background tasks within Nautobot. All core usage of RQ has been migrated to use Celery.\r\n\r\nPrior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now *deprecated*. RQ and the `@job` decorator for custom tasks are still supported for now, but will no longer be documented, and support for RQ will be removed in a future release.\r\n\r\nRQ support for custom tasks was not removed in order to give plugin authors time to migrate, however, to continue to utilize advanced Nautobot features such as Git repository synchronization, webhooks, jobs, etc. you must migrate your `nautobot-worker` deployment from RQ to Celery.\r\n\r\nPlease see the section on [migrating to Celery from RQ](https://nautobot.readthedocs.io/en/latest/installation/services/#migrating-to-celery-from-rq) for more information on how to easily migrate your deployment.\r\n\r\n### Removed\r\n\r\n## v1.1.0b1 (2021-07-02)\r\n\r\n### Added\r\n\r\n- [#3](https://github.com/nautobot/nautobot/issues/3) - GraphQL queries can now be saved for later execution\r\n- [#10](https://github.com/nautobot/nautobot/issues/10) - Added a new \"Getting Started in the Web UI\" section to the documentation to help new users begin learning how to use Nautobot.\r\n- [#17](https://github.com/nautobot/nautobot/issues/17) - MySQL 8.x is now fully supported as a database backend\r\n- [#200](https://github.com/nautobot/nautobot/issues/200) - Jobs can be marked as read-only\r\n- [#274](https://github.com/nautobot/nautobot/issues/274) - Added config context schemas to optionally validate config and local context data against JSON Schemas\r\n- [#297](https://github.com/nautobot/nautobot/issues/297) -  Added an anonymous health-checking endpoint at `/health/`using, also introducing a `nautobot-server health_check` command.\r\n- [#485](https://github.com/nautobot/nautobot/pulls/485) - Applications can define navbar properties through `navigation.py`\r\n- [#557](https://github.com/nautobot/nautobot/issues/557) - `Prefix` records can now be created using /32 (IPv4) and /128 (IPv6) networks. (Port of [NetBox #6545](https://github.com/netbox-community/netbox/pull/6545))\r\n- [#561](https://github.com/nautobot/nautobot/pulls/561) - Added autodetection of `mime_type` on `export_templates` provided by Git datasources\r\n- [#636](https://github.com/nautobot/nautobot/pull/636) - Added custom fields to `JobResult` model, with minor changes to job result detail page\r\n\r\n### Changed\r\n\r\n- [#431](https://github.com/nautobot/nautobot/issues/431) - `ConfigContext` and `ExportTemplate` records now must have unique `name` values. This was always the case in NetBox, but was inadvertently un-enforced in earlier versions of Nautobot.\r\n\r\n### Fixed\r\n\r\n- [#460](https://github.com/nautobot/nautobot/issues/460) - Deleting a record now deletes any associated `RelationshipAssociation` records\r\n- [#494](https://github.com/nautobot/nautobot/issues/494) - Objects with `status` fields now emit limited choices correctly when performing `OPTIONS` metadata API requests\r\n- [#602](https://github.com/nautobot/nautobot/issues/602) - Fixed incorrect requirement to install `toml` Python library before running `invoke` tasks\r\n- [#618](https://github.com/nautobot/nautobot/pull/618) - Fixed typo in release-notes\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/646"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/45047864",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/45047864/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/45047864/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.0.3",
        "id": 45047864,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQ1MDQ3ODY0",
        "tag_name": "v1.0.3",
        "target_commitish": "main",
        "name": "v1.0.3 - 2021-06-21",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-06-22T18:01:28Z",
        "updated_at": "2021-06-22T18:03:21Z",
        "published_at": "2021-06-22T18:03:21Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.0.3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.0.3",
        "body": "## v1.0.3 (2021-06-21)\r\n\r\n### Added\r\n\r\n- [#143](https://github.com/nautobot/nautobot/issues/143) - Added \"copy\" button on hover to `Device` detail view for name, primary IP addresses, and serial number.\r\n- [#183](https://github.com/nautobot/nautobot/issues/183) - Implemented a baseline integration test suite using Selenium\r\n- [#505](https://github.com/nautobot/nautobot/pull/505) - Added example of Okta OAuth2 integration to the docs.\r\n- [#523](https://github.com/nautobot/nautobot/issues/523) - Added instructions for using LDAP TLS Options to SSO documentation\r\n- [#576](https://github.com/nautobot/nautobot/pull/576) - `JobResult` detail views not support custom links and plugin template extensions\r\n\r\n### Changed\r\n\r\n- [#537](https://github.com/nautobot/nautobot/issues/537) - To mitigate CVE-2021-31542, the minimum supported Django version is now 3.1.12.\r\n\r\n### Fixed\r\n\r\n- [#220](https://github.com/nautobot/nautobot/issues/220) - Added a troubleshooting section to the development guide for issues encountered when using the multi-threaded development server\r\n- [#342](https://github.com/nautobot/nautobot/issues/342) - Fixed inconsistent behavior in `Site.time_zone` to emit and accept input as a null field if not set when using API\r\n- [#389](https://github.com/nautobot/nautobot/issues/389) - Fixed incorrect TaggedItem base class that caused tag issues on MySQL.\r\n- [#421](https://github.com/nautobot/nautobot/issues/421) - Fixed `git: Reference at 'refs/heads/master' does not exist` by improving error-handling displaying a warning when a user tries to use an empty repo or a branch that does not exist upstream.\r\n- [#452](https://github.com/nautobot/nautobot/issues/452) - Fixed `api/dcim/cables` `OPTIONS` response not including the `status` field.\r\n- [#476](https://github.com/nautobot/nautobot/issues/476) - Fixed incorrect handling of /31 and /127 networks in `Aggregate`, `Prefix`, and `IPAddress` models.\r\n- [#490](https://github.com/nautobot/nautobot/issues/490) - Fixed incorrect VLAN count displayed in VLANGroup detail views.\r\n- [#499](https://github.com/nautobot/nautobot/issues/499) - Fixed object's changelog showing incorrect information about its tags on partial (PATCH) updates using API\r\n- [#501](https://github.com/nautobot/nautobot/issues/501) - Fixed missing prepopulation of address/prefix value into the form when adding an address or prefix under a parent prefix.\r\n- [#508](https://github.com/nautobot/nautobot/pull/508) - Fixed typo in `500.html` page template.\r\n- [#512](https://github.com/nautobot/nautobot/issues/512) - Fixed ServerError when cloning a record with exactly one `Tag` applied to it.\r\n- [#513](https://github.com/nautobot/nautobot/issues/513) - Fixed inadvertent omission of \"Search\" box from ReadTheDocs.\r\n- [#528](https://github.com/nautobot/nautobot/pull/528) - Fixed an ordering issue in the `test_EXTERNAL_AUTH_DEFAULT_groups` test case.\r\n- [#530](https://github.com/nautobot/nautobot/issues/530) - Fixed incorrect/confusing docstring in `nautobot.core.api.serializers.WritableNestedSerializer`\r\n- [#540](https://github.com/nautobot/nautobot/pull/540) - Fixed intermittent CI failures due to DockerHub rate limits.\r\n- [#542](https://github.com/nautobot/nautobot/pull/542) - Fixed incorrect documentation for running `nautobot-server test` commands.\r\n- [#562](https://github.com/nautobot/nautobot/issues/562) - Fixed inability to use a Git repository to define a `ConfigContext` mapped to a specific `DeviceType`.\r\n- [#564](https://github.com/nautobot/nautobot/pull/564) - Fixed incorrect docstring on `nautobot.utilities.tables.ButtonsColumn`.\r\n- [#570](https://github.com/nautobot/nautobot/issues/570) - Fixed inability to import `ExportTemplates` for the `VLAN` model via Git.\r\n- [#583](https://github.com/nautobot/nautobot/pull/583) - Fixed incorrect rejection of various forms when explicitly selecting a `null` option. (Port of [NetBox #5704](https://github.com/netbox-community/netbox/pull/5704))\r\n\r\n### Security\r\n\r\n- [#418](https://github.com/nautobot/nautobot/issues/418) - Removed unused JQuery-UI component flagged by vulnerability scanner (CVE-2020-7729)\r\n",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/608"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/43720215",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/43720215/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/43720215/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.0.2",
        "id": 43720215,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQzNzIwMjE1",
        "tag_name": "v1.0.2",
        "target_commitish": "main",
        "name": "v1.0.2 - 2021-05-27",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-05-27T19:01:05Z",
        "updated_at": "2021-05-27T19:03:33Z",
        "published_at": "2021-05-27T19:03:33Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.0.2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.0.2",
        "body": "## v1.0.2 (2021-05-27)\r\n\r\n### Added\r\n\r\n- [#14](https://github.com/nautobot/nautobot/issues/14) - Plugins are now officially permitted to use the generic view classes defined in `nautobot.core.views.generic` and corresponding base templates defined in `nautobot/core/templates/generic/`.\r\n- [#162](https://github.com/nautobot/nautobot/issues/162) - Added Invoke tasks `dumpdata` and `loaddata` for database backup/restoration in the development environment.\r\n- [#430](https://github.com/nautobot/nautobot/pull/430) - GraphQL `ip_addresses` now includes an `assigned_object` field\r\n- [#438](https://github.com/nautobot/nautobot/issues/438) - Config contexts can now be assigned to individual DeviceTypes.\r\n- [#442](https://github.com/nautobot/nautobot/issues/442) - Added warning when mixing `@extras_features(\"graphql\")` with explicitly declared GraphQL types\r\n- [#450](https://github.com/nautobot/nautobot/issues/450) - GraphQL `ip_addresses` now includes `interface` and `vminterface` fields; GraphQL `interfaces` and similar models now include `connected_endpoint` and `path` fields\r\n- [#451](https://github.com/nautobot/nautobot/issues/451) - Added static GraphQL type for VirtualMachine model\r\n- [#456](https://github.com/nautobot/nautobot/issues/456) - Added mkdocs-include-markdown-plugin\r\n- [#465](https://github.com/nautobot/nautobot/pull/465) - Added Virtual Chassis to the Home Page\r\n\r\n### Changed\r\n\r\n- [#423](https://github.com/nautobot/nautobot/pull/423) - Clarified reference to `/config_contexts/` folder in Git user guide\r\n- [#448](https://github.com/nautobot/nautobot/issues/448) - `nautobot-server init`  no longer provides an option to overwrite the existing configuration files.\r\n- [#474](https://github.com/nautobot/nautobot/pull/474) - The `dummy_plugin` has been moved to a new `examples` directory in the Git repository and now serves as an example of implementing various plugin features.\r\n\r\n### Fixed\r\n\r\n- [#309](https://github.com/nautobot/nautobot/issues/309) - Fixed erroneous termination display when cables are connected to power feeds.\r\n- [#396](https://github.com/nautobot/nautobot/issues/396) - Fixed `ValidationError` not being raised when Relationship filters are invalid\r\n- [#397](https://github.com/nautobot/nautobot/issues/397) - Fixed Git repository sync failure when token contains special characters\r\n- [#415](https://github.com/nautobot/nautobot/issues/415) - Fixed incorrect handling of Unicode in view test cases\r\n- [#417](https://github.com/nautobot/nautobot/pull/417) - Fixed incorrect link to Docker docs from installation docs\r\n- [#428](https://github.com/nautobot/nautobot/issues/428) - Fixed GraphQL error when handling ASNs greater than 2147483647\r\n- [#430](https://github.com/nautobot/nautobot/pull/430) - Fixed missing `ContentType` foreign keys in GraphQL\r\n- [#436](https://github.com/nautobot/nautobot/issues/436) - Fixed Redis Cacheops error when using newly generated `nautobot_config.py` file\r\n- [#454](https://github.com/nautobot/nautobot/issues/454) - Fixed inability to create IPv6 addresses via REST API.\r\n- [#459](https://github.com/nautobot/nautobot/issues/459) - Fixed issue with Job forms not respecting `field_order`\r\n- [#461](https://github.com/nautobot/nautobot/issues/461) - Fixed `NAUTOBOT_DB_TIMEOUT` read as string in default config\r\n- [#482](https://github.com/nautobot/nautobot/issues/482) - Fixed `FieldError` from being raised when a `JobResult` references a model with no `name` field\r\n- [#486](https://github.com/nautobot/nautobot/issues/486) - Fixed failing Docker builds due to do missing `examples` development dependency\r\n- [#488](https://github.com/nautobot/nautobot/issues/488) - Fix migrations in MySQL by hard-coding the `VarbinaryIPField` to use `varbinary(16)`\r\n\r\n### Removed\r\n\r\n- [#456](https://github.com/nautobot/nautobot/issues/456) - Removed markdown-include",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/500"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/42561621",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/42561621/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/42561621/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.0.1",
        "id": 42561621,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQyNTYxNjIx",
        "tag_name": "v1.0.1",
        "target_commitish": "main",
        "name": "v1.0.1 - 2021-05-06",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-05-06T18:42:42Z",
        "updated_at": "2021-05-06T18:44:07Z",
        "published_at": "2021-05-06T18:44:07Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.0.1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.0.1",
        "body": "## v1.0.1 (2021-05-06)\r\n\r\n### Added\r\n\r\n- [#242](https://github.com/nautobot/nautobot/issues/242) - Added a production-ready `Dockerfile` for clustered deployment\r\n- [#356](https://github.com/nautobot/nautobot/issues/356) - Added a new `nautobot-server startplugin` management command to ease plugin development\r\n- [#366](https://github.com/nautobot/nautobot/pull/366) - Added GraphQL filter tests for `interfaces` queries and added missing unit tests for `Interface` filtersets\r\n\r\n### Changed\r\n\r\n- [#362](https://github.com/nautobot/nautobot/pull/362) - Updated sample code in plugin development guide to inherit from `BaseModel`\r\n\r\n### Fixed\r\n\r\n- [#15](https://github.com/nautobot/nautobot/issues/15) - Added documentation for plugins using generic models to get change logging using `ChangeLoggedModel`\r\n- [#336](https://github.com/nautobot/nautobot/issues/336) - Fixed `nautobot.utilities.api.get_serializer_for_model` to now support the plugins namespace\r\n- [#337](https://github.com/nautobot/nautobot/issues/337) - Fixed `nautobot.extras.plugins.api.views.PluginsAPIRootView` no longer creates null entries when `PluginConfig` does not define a `base_url`\r\n- [#365](https://github.com/nautobot/nautobot/issues/365) - Fixed incorrect field types on GraphQL ID fields\r\n- [#382](https://github.com/nautobot/nautobot/issues/382) - Fixed choices returned from `OPTIONS` requests returning mixed use of `display` and `display_name` fields.\r\n- [#393](https://github.com/nautobot/nautobot/issues/393) - Fixed creating a `VirtualChassis` with a master device changes the master device's `vc_position`\r\n- [#398](https://github.com/nautobot/nautobot/issues/398) - Fixed `VirtualChassis` edit view to now show \"Update\" button vs. \"Create\"\r\n- [#399](https://github.com/nautobot/nautobot/issues/399) - Fixed `nautobot.utilities.utils.get_filterset_for_model` to now support the plugins namespace\r\n- [#400](https://github.com/nautobot/nautobot/issues/400) - Fixed the class_path format for Jobs API usage documentation not being clear enough\r\n- [#402](https://github.com/nautobot/nautobot/issues/402) - Docs build requirements will now install `markdown-include` version from PyPI instead of GitHub\r\n- [#409](https://github.com/nautobot/nautobot/pull/409) - Fixed misspelling: \"Datbase\" --> \"Database\" in `nautobot_config.py.j2`",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/412"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/42034900",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/42034900/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/42034900/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.0.0",
        "id": 42034900,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQyMDM0OTAw",
        "tag_name": "v1.0.0",
        "target_commitish": "main",
        "name": "v1.0.0 - 2021-04-26",
        "draft": false,
        "immutable": false,
        "prerelease": false,
        "created_at": "2021-04-26T21:11:34Z",
        "updated_at": "2021-04-26T21:15:41Z",
        "published_at": "2021-04-26T21:15:41Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.0.0",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.0.0",
        "body": "# Nautobot v1.0\r\n\r\nThis document describes all new features and changes in Nautobot 1.0, a divergent fork of NetBox 2.10. For the launch of Nautobot 1.0 and for the purpose of this document, all \u201cnew\u201d features or \u201cchanges\u201d are referring to the features and changes comparing Nautobot 1.0 coming from NetBox 2.10. All future release notes will only refer to features and changes relative to prior releases of Nautobot.\r\n\r\nUsers migrating from NetBox to Nautobot should also refer to the [\"Migrating from NetBox\"](https://nautobot.readthedocs.io/en/latest/installation/migrating-from-netbox/) documentation as well.\r\n\r\n## v1.0 (2021-04-26)\r\n\r\n### Added\r\n\r\n#### Custom Fields on All Models\r\n\r\n[Custom fields](https://nautobot.readthedocs.io/en/latest/additional-features/custom-fields/) allow user-defined fields, or attributes, on specific data models such as sites or devices. Historically, custom fields have been supported only on \u201cprimary\u201d models (Site, Device, Rack, Virtual Machine, etc.) but not on \u201corganizational\u201d models (Region, Device Platform, Rack Group, etc.) or on \u201cdevice component\u201d models like interfaces. As of Nautobot 1.0, custom fields are now supported on every model, including interfaces.\r\n\r\nOnce created the name or data type of the custom field cannot be modified. Choices for custom fields are now stored as discrete database objects. Choices that are in active use cannot be deleted.\r\n\r\n#### Customizable Statuses\r\n\r\nA new [\"Status\" model](https://nautobot.readthedocs.io/en/latest/models/extras/status/) has been added, allowing users to define additional permitted values for the \"status\" field on any or all of the models that have such a field (Cable, Circuit, Device, IPAddress, PowerFeed, Prefix, Rack, Site, VirtualMachine, VLAN). The default sets of statuses permitted for each model remain the same as in NetBox 2.10, but you are now free to define additional status values as suit your needs and workflows.\r\n\r\nOne example application for custom statuses would be in defining additional values to apply to a Device as part of an automation workflow, with statuses such as `upgrading` or `rebooting` to reflect the progress of each device through the workflow, allowing automation to identify the appropriate next action to take for each status.\r\n\r\n#### Data Validation Plugin API\r\n\r\nData quality assurance in Nautobot becomes easier with the new [data validation plugin API](https://nautobot.readthedocs.io/en/latest/plugins/development/#implementing-custom-validators). This makes it possible to codify organizational standards. Using a data validation [plugin](https://nautobot.readthedocs.io/en/latest/plugins/), an organization can ensure all data stored in Nautobot meets its specific standards, such as enforcing device naming standards, ensuring certain prefixes are never used, asserting that VLANs always have a name, requiring interfaces to always have a description, etc. The ability to ensure a high quality of data becomes much more streamlined; error-prone, manual process becomes automated; and there is no more need to actively run reports to check data quality.\r\n\r\n#### Detail Views for more Models\r\n\r\nDetailed view pages are now provided for models including ClusterGroup, ClusterType, DeviceRole, Manufacturer, Platform, and RackRole.\r\n\r\n#### Docker-Based Development Environment\r\n\r\nIn addition to the previously available virtual-environment-based developer workflow, Nautobot now additionally supports a [development environment based around Docker](https://nautobot.readthedocs.io/en/latest/development/getting-started/#docker-compose-workflow) as an alternative.\r\n\r\n#### Git Integration as a Data Source\r\n\r\n[Git integration](https://nautobot.readthedocs.io/en/latest/user-guides/git-data-source/) offers users an option to integrate into a more traditional NetDevOps pipeline for managing Python modules, Jinja templates, and YAML/JSON data. There are several use cases that have historically required users to either manage Python modules on the filesystem or use Jinja2 templates within the GUI. With this new feature, users can add a Git repository from the UI or REST API, the contents of which will be synchronized into Nautobot immediately and can be later refreshed on-demand. This allows users to more easily update and manage:\r\n\r\n- *Jobs* - store your Python modules that define Jobs (formerly known as Custom Scripts and/or Reports) in a Git repository\r\n- *Export Templates* - store your Jinja templates used to create an export template in a Git repository\r\n- *Config Contexts* - store your YAML/JSON data used within a config context in a Git repository\r\n- *Arbitrary Files* - usable by custom plugins and apps\r\n\r\nNot only does this integration and feature simplify management of these features in Nautobot, it offers users the ability to use Git workflows for the management of the jobs, templates, and data ensuring there has been proper review and approval before updating them on the system.\r\n\r\n#### GraphQL Support\r\n\r\nNautobot now provides an HTTP API endpoint supporting [GraphQL](https://graphql.org/). This feature adds a tremendous amount of flexibility in querying data from Nautobot. It offers the ability to query for specific datasets across multiple models in a single query. Historically, if you wanted to retrieve the list of devices, all of their interfaces, and all of their neighbors, this would require numerous REST API calls. GraphQL gives the flexibility to get all the data desired and nothing unnecessary, all in a single API call.\r\n\r\nFor more details, please refer to the GraphQL website, as well as to the [Nautobot GraphQL](https://nautobot.readthedocs.io/en/latest/user-guides/graphql/)documentation.\r\n\r\n#### Installable Python Package\r\n\r\nNautobot is now installable as a self-contained Python package via `pip install nautobot`. Packages are released to [PyPI](https://pypi.org/) with every Nautobot update.\r\n\r\n#### `nautobot-server` command\r\n\r\nNautobot now includes a dedicated administrative CLI command, [`nautobot-server`](https://nautobot.readthedocs.io/en/latest/administration/nautobot-server/).\r\n\r\n#### Plugin API Enhancements\r\n\r\nPlugins can now provide custom [data validation](https://nautobot.readthedocs.io/en/latest/release-notes/version-1.0/#data-validation-plugin-api) logic.\r\n\r\nPlugins can now include executable [Jobs](https://nautobot.readthedocs.io/en/latest/additional-features/jobs/) (formerly known as Custom Scripts and Reports) that will automatically be added to the list of available Jobs for a user to execute.\r\n\r\nAdditional data models defined by a plugin are automatically made available in [GraphQL](https://nautobot.readthedocs.io/en/latest/user-guides/graphql/).\r\n\r\nPlugins can now define additional Django apps that they require and these dependencies will be automatically enabled when the plugin is activated.\r\n\r\n#### Single Sign-On / Social Authentication Support\r\n\r\nNautobot now supports single sign on as an authentication option using OAuth2, OpenID, SAML, and others, using the [social-auth-app-django](https://python-social-auth.readthedocs.io/en/latest/) module. For more details please refer to the guide on [SSO authentication](https://nautobot.readthedocs.io/en/latest/configuration/authentication/sso/).\r\n\r\n#### User-Defined Relationships\r\n\r\nUser-Defined, or \"custom\", [relationships](https://nautobot.readthedocs.io/en/latest/models/extras/relationship) allow users to create their own relationships between models in Nautobot to best suit the needs of their specific network design.\r\n\r\nFor example, a VLAN is mapped to a Site by default. After a VLAN is created today, you then assign that VLAN to an Interface on a Device. This Device should be within the initial mapped Site. However, many networks today have different requirements and relationships for VLANs (and many other models): VLANs may be limited to racks in Layer 3 DC fabrics; VLANs may be mapped to multiple buildings in a campus; they may span sites. Relationships allow you to express these additional requirements and relationships without requiring code changes to Nautobot itself. Other use cases include circuits, ASNs, or IP addressing -- just to name a few -- allowing users to define the exact relationships required for their network.\r\n\r\n### Changed\r\n\r\n#### Code Reorganization\r\n\r\nAll of the individual Django apps in NetBox (`dcim`, `extras`, `ipam`, etc.) have been moved into a common `nautobot` Python package namespace. The `netbox` application namespace has been moved to `nautobot.core`. This will require updates when porting NetBox custom scripts and reports to Nautobot jobs, as well as when porting NetBox plugins to Nautobot.\r\n\r\n#### Packaging Changes\r\n\r\nNautobot is now packaged using [Poetry](https://python-poetry.org/) and builds as an installable Python package. `setup.py` and `requirements.txt` have been replaced with `pyproject.toml`. Releases of Nautobot are now published to [PyPI](https://pypi.org/), the Python Package Index, and therefore can now be installed using `pip install nautobot`.\r\n\r\n#### Installation and Startup\r\n\r\nBecause Nautobot may be installed using `pip`, we have replaced `manage.py` with a dedicated `nautobot-server` CLI command used to adminster the server. It works exactly as `manage.py` does, but does not require you to be within the project root directory.\r\n\r\n#### Configuration and Settings\r\n\r\nNautobot has done away with the requirement to duplicate or modify files anywhere in the source code. The `configuration.py` file has been replaced with a `nautobot_config.py` file that may be read from anywhere on your system. It is also much easier to add custom settings or overload nearly any default setting.\r\n\r\nTo facilitate this, many automatically generated settings have been removed, and replaced with their underlying static configurations. We feel this affords a greater amount of flexibility in deployment patterns, with a tradeoff of slightly more initial configuration.\r\n\r\nTo make things a little easier, you may generate a new configuration with sane defaults using the `nautobot-server init` command! The configuration file defaults to `~/.nautbot/nautobot_config.py`but using the `nautobot-server --config` argument, you may name or place the file anywhere you choose.\r\n\r\nYou may also defined a `NAUTOBOT_CONFIG` variable to tell Nautobot where to find the file so that you don't need to always pass the `--config` argument.\r\n\r\nFor details see [Configuring Nautobot](https://nautobot.readthedocs.io/en/latest/configuration).\r\n\r\n#### Consolidating Custom Scripts and Reports into Jobs\r\n\r\nNautobot has consolidated NetBox's \"custom scripts\" and \"reports\" into what is now called [Jobs](https://nautobot.readthedocs.io/en/latest/additional-features/jobs/).\r\n\r\nThe job history ([results](https://nautobot.readthedocs.io/en/latest/models/extras/jobresult/)) table on the home page now shows metadata on each job such as the timestamp and the user that executed the job. Additionally, jobs can be defined and executed by the system and by plugins, and when they are, users can see their results in the history too. UI views have been added for viewing the details of a given job result, and the [JobResult](https://nautobot.readthedocs.io/en/latest/models/extras/jobresult/) model now provides standard APIs for Jobs to log their status and results in a consistent way.\r\n\r\nJob result history is now retained indefinitely unless intentionally deleted. Historically only the most recent result for each custom script or report was retained and all older records were deleted.\r\n\r\nPython modules that define jobs can now be stored in Git and easily added to Nautobot via the UI as documented above in [Git Integration as a Data Source](https://nautobot.readthedocs.io/en/latest/release-notes/version-1.0/#git-integration-as-a-data-source).\r\n\r\n#### Custom User Model\r\n\r\nA new custom model has been created for `User` data. This has allowed Nautobot to use a UUID as a primary key for the `User` model, and to prepare for future use-cases not support by the default Django model.\r\n\r\nThis has also meant `UserConfig` no longer exists as a separate model. `UserConfig` is now a property on the custom `User` class.\r\n\r\n#### Hiding UI Elements based on Permissions\r\n\r\nHistorically, a user viewing the home page and navigation menu would see a list of all model types and menu items in the system, with a \u201clock\u201d icon on items that they were not granted access to view in detail.\r\n\r\nAs an [option](https://nautobot.readthedocs.io/en/latest/configuration/optional-settings/#hide_restricted_ui), administrators can now choose to instead hide un-permitted items altogether from the home page and the navigation menu, providing a simpler interface for limited-access users. The prior behavior remains as the default.\r\n\r\n#### IPAM Network Fields to VARBINARY\r\n\r\nTo enable future support of databases other than PostgreSQL, the network fields inside of IPAM needed to be changed. `cidr` and `inet` field types have been replaced with a database agnostic field type. For this purpose `varbinary` was chosen because it can safely and efficiently store packed binary integers.\r\n\r\nMore details about the impact of this and other changes can be found in the [Migration documentation](https://nautobot.readthedocs.io/en/latest/installation/migrating-from-netbox/#ipam-network-field-types).\r\n\r\n#### Navigation Menu Changes\r\n\r\nThe \"Other\" menu has been renamed to \"Extensibility\" and many new items have been added to this menu.\r\n\r\n[Status](https://nautobot.readthedocs.io/en/latest/models/extras/status/) records have been added to the \"Organization\" menu.\r\n\r\n#### New Name and Logo\r\n\r\n\"NetBox\" has been changed to \"Nautobot\" throughout the code, UI, and documentation, and Nautobot has a new logo and icon.\r\n\r\n#### User-Defined Custom Links\r\n\r\nHistorically the [custom links](https://nautobot.readthedocs.io/en/latest/models/extras/customlink/) feature was restricted so that only administrators could define and manage custom links to add to various built-in data views. In Nautobot the management of custom links has been moved into the main user interface, accessible to any user who has been granted appropriate access permissions.\r\n\r\n#### User-Defined Export Templates\r\n\r\nHistorically the [custom data export templates](https://nautobot.readthedocs.io/en/latest/models/extras/exporttemplate/) feature was restricted such that only administrators could define and edit these templates. In Nautobot this has been moved into the main user interface, accessible to any user who has been granted appropriate access permissions.\r\n\r\n#### User-Defined Webhooks\r\n\r\nHistorically the [webhooks](https://nautobot.readthedocs.io/en/latest/models/extras/webhook/) feature was restricted such that only administrators could define and manage webhooks, HTTP callbacks that are triggered automatically when a specified data model(s) are created, updated, and/or deleted. In Nautobot this has been moved into the main user interface, accessible to any user who has been granted appropriate access permissions.\r\n\r\n#### UUID Primary Database Keys\r\n\r\nDatabase keys are now defined as Universally Unique Identifiers (UUIDs) instead of integers, protecting against certain classes of data-traversal attacks.\r\n\r\n#### uWSGI\r\n\r\nNautobot has replaced Gunicorn with uWSGI. In most cases uWSGI is faster, more stable and easier to setup making it ideal to use over Gunicorn. Our recommendation is to use uWSGI in production.\r\n\r\n### Removed\r\n\r\n#### Secrets\r\n\r\nSecrets storage and management has been removed from Nautobot.\r\n\r\n#### Related Devices\r\n\r\nThe \"Related Devices\" table has been removed from the detailed Device view.",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/377"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/41729126",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/41729126/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/41729126/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.0.0b4",
        "id": 41729126,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQxNzI5MTI2",
        "tag_name": "v1.0.0b4",
        "target_commitish": "main",
        "name": "v1.0.0b4 - 2021-04-19",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2021-04-20T17:24:35Z",
        "updated_at": "2021-04-20T17:28:55Z",
        "published_at": "2021-04-20T17:28:55Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.0.0b4",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.0.0b4",
        "body": "## v1.0.0b4 (2021-04-19)\r\n\r\n### Added\r\n- [#96](https://github.com/nautobot/nautobot/issues/96) - Implemented user guide documentation for GraphQL\r\n- [#97](https://github.com/nautobot/nautobot/issues/97) - Implemented user guide documentation for Git as a Data Source\r\n\r\n### Changed\r\n- [#150](https://github.com/nautobot/nautobot/issues/150) - Revised all documentation referencing objects wiht status fields\r\n- [#175](https://github.com/nautobot/nautobot/issues/175) - Revised plugin development guide to use Poetry\r\n- [#211](https://github.com/nautobot/nautobot/pull/211) - Travis CI build improvements to simplify entry points and make tests fail faster\r\n- [#217](https://github.com/nautobot/nautobot/pull/217) - Replaced JSONB aggregation with custom cross-database implementation that supports PG and MySQL\r\n- [#245](https://github.com/nautobot/nautobot/pull/245) - Replaced PG-specific \"advisory locks\" with cross-database distributed Redis lock\r\n- [#252](https://github.com/nautobot/nautobot/pull/252) - Revised and clarified install instructions for CentOS\r\n- [#262](https://github.com/nautobot/nautobot/issues/262) - Revised Nautobot upgrade and NetBox migration guides\r\n- [#273](https://github.com/nautobot/nautobot/pull/273) - Update to jQuery 3.6.0\r\n- [#289](https://github.com/nautobot/nautobot/pull/289) - Updated natural unicode-aware sorting for interface/device names to support MySQL\r\n\r\n### Fixed\r\n- [#167](https://github.com/nautobot/nautobot/issues/167) - Fix to enable to query `ip_addresses` by parent in GraphQL\r\n- [#212](https://github.com/nautobot/nautobot/issues/212) - Allow plugins to use built-in buttons\r\n- [#232](https://github.com/nautobot/nautobot/issues/232) - Fix to enable inclusion of custom fields in queries in GraphQL\r\n- [#233](https://github.com/nautobot/nautobot/issues/233) - Fix to enable filtering by booleans in GraphQL\r\n- [#247](https://github.com/nautobot/nautobot/issues/247) - Fix to enable filtering by custom field values in GraphQL\r\n- [#260](https://github.com/nautobot/nautobot/issues/260) - Fix cable path tracing by not coercing UUID values to version 4\r\n- [#264](https://github.com/nautobot/nautobot/issues/264) - Fix missing parenthesis in datasources example\r\n- [#265](https://github.com/nautobot/nautobot/issues/265) - Fix 500 crash in API when posting ports as strings to IPAM services\r\n- [#269](https://github.com/nautobot/nautobot/issues/269) - Fix `NoneType` error when searching for /31 prefixes\r\n- [#272](https://github.com/nautobot/nautobot/pull/272) - Fix invalid f-string in `invoke createsuperuser`\r\n- [#278](https://github.com/nautobot/nautobot/issues/278) - Fix crash when sorting IPAM objects in list view by network address in web UI\r\n- [#285](https://github.com/nautobot/nautobot/pull/285) - Refactor GraphQL filter argument generation to emit the correct types for each field\r\n- [#286](https://github.com/nautobot/nautobot/issues/286) - Fix `NoneType` error when seraching for IPs without a prefix\r\n- [#287](https://github.com/nautobot/nautobot/issues/287) - Fix IP addresses not showing in search results\r\n- [#288](https://github.com/nautobot/nautobot/issues/288) - Fix display of parent prefixes from IPAddress detail view\r\n- [#293](https://github.com/nautobot/nautobot/pull/293) - Allow `DynamicModel[Multiple]ChoiceField` to work with plugin model\r\n- [#300](https://github.com/nautobot/nautobot/issues/300) - Fix `AttributeError` when assigning an IP to a device interface\r\n- [#304](https://github.com/nautobot/nautobot/issues/304) - Fix for IPAM network objects `clean()` checks not working as intended\r\n- [#305](https://github.com/nautobot/nautobot/issues/305) - Fix `Status` rendering to always preserve capitalization of `Status.name`\r\n- [#306](https://github.com/nautobot/nautobot/issues/306) - Fix custom relationship display fields for all models\r\n- [#307](https://github.com/nautobot/nautobot/issues/307) - Fix the ability to CSV export power connections if connected to a PowerFeed\r\n- [#308](https://github.com/nautobot/nautobot/issues/308) - Fix missing template error when viewing a PowerFeed connected to a PowerPort on a Device.\r\n- [#318](https://github.com/nautobot/nautobot/issues/318) - Fix `TypeError` when creating any IPAM network object  with prefix of /0\r\n- [#320](https://github.com/nautobot/nautobot/issues/320) - Fix issue causing model validation to fail on all IPAM network objects\r\n- [#324](https://github.com/nautobot/nautobot/pull/324) - Fix unit test execution on MySQL by changing subquery limiting to list slicing\r\n- [#325](https://github.com/nautobot/nautobot/issues/325) - Fix to allow relationship associations to be unset in the web UI\r\n- [#326](https://github.com/nautobot/nautobot/issues/326) - Fix 404 error when attempting to delete a RelationshipAssociation from the list view\r\n\r\n"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/41072542",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/41072542/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/41072542/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.0.0b3",
        "id": 41072542,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTQxMDcyNTQy",
        "tag_name": "v1.0.0b3",
        "target_commitish": "main",
        "name": "v1.0.0b3 - 2021-04-05",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2021-04-07T16:49:07Z",
        "updated_at": "2021-04-07T16:58:21Z",
        "published_at": "2021-04-07T16:49:52Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.0.0b3",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.0.0b3",
        "body": "> **Warning!**\r\n> v1.0.0b3 introduces several database changes that are **not** backwards-compatible with v1.0.0b2 and earlier. There is no direct upgrade path from v1.0.0b2 to v1.0.0b3 - you **must** create a new database when installing v1.0.0b3!\r\n\r\n### Added\r\n\r\n- [#100](https://github.com/nautobot/nautobot/issues/100) - Added detailed documentation of the `nautobot-server` command\r\n- [#105](https://github.com/nautobot/nautobot/issues/105) - Added tooltip with detailed information to utilization graph bars.\r\n- [#109](https://github.com/nautobot/nautobot/pull/109) - Docker development environment build now automatically installs from any present `local_requirements.txt` file\r\n- [#121](https://github.com/nautobot/nautobot/pull/121) - Added \"Data Model Changes\" section to the \"Migrating from NetBox\" documentation\r\n- [#141](https://github.com/nautobot/nautobot/pull/141) - Custom Link UI now includes example usage hints\r\n- [#227](https://github.com/nautobot/nautobot/pull/227) - Add QFSP+ (64GFC) FiberChannel interface type\r\n- [#236](https://github.com/nautobot/nautobot/pull/236) - Add `post_upgrade` to developer docs and add `invoke post-upgrade`\r\n\r\n### Changed\r\n\r\nMajor backwards-incompatible database changes were included in this beta release that are intended are to pave the way for us to support MySQL as a database backend in a future update. Of those changes, these are the most notable:\r\n\r\n- All IPAM objects with network field types (`ipam.Aggregate`, `ipam.IPAddress`, and `ipam.Prefix`) are no longer hard-coded to use PostgreSQL-only `inet` or `cidr` field types and are now using a custom implementation leveraging SQL-standard `varbinary` field types\r\n- The `users.User` model has been completely replaced with a custom implementation that no longer requires the use of a secondary database table for storing user configuration.\r\n- Custom Fields have been overhauled for asserting data integrity and improving user experience\r\n    - Custom Fields can no longer be renamed or have their type changed after they have been created.\r\n    - Choices for Custom Fields are now stored as discrete database objects. Choices that are in active use cannot be deleted.\r\n\r\nOther changes:\r\n\r\n- [#78](https://github.com/nautobot/nautobot/pull/78) - Replaced PostgreSQL-specific IP network/address fields with more generic field types\r\n- [#83](https://github.com/nautobot/nautobot/issues/83) - Custom user model added; UserConfig model merged into User model\r\n- [#84](https://github.com/nautobot/nautobot/issues/84) - Revised developer documentation for clarity and current workflows\r\n- [#98](https://github.com/nautobot/nautobot/issues/98) - Simplify MultipleContentTypeField boilerplate\r\n- [#119](https://github.com/nautobot/nautobot/pull/119) - Various documentation improvements\r\n- [#120](https://github.com/nautobot/nautobot/issues/120) - Revise development release checklist document for new processes\r\n- [#128](https://github.com/nautobot/nautobot/pull/128) - Overview of usage for the `nautobot-netbox-importer` plugin could be mistaken for full instructions\r\n- [#122](https://github.com/nautobot/nautobot/pull/122) - Improved installation flow for creating nautobot user and virtualenv\r\n- [#131](https://github.com/nautobot/nautobot/pull/131) - Replaced PostgreSQL-specific ArrayField with a more generic JSONArrayField\r\n- [#137](https://github.com/nautobot/nautobot/issues/137) - Explicitly disallow Custom Field Name Changes\r\n- [#142](https://github.com/nautobot/nautobot/pull/142) - Converted various config validation checks into proper Django checks\r\n- [#149](https://github.com/nautobot/nautobot/issues/149) - Unify optional settings documentation for `REMOTE_AUTH*/SOCIAL_AUTH*`\r\n- [#159](https://github.com/nautobot/nautobot/issues/159) - Update documentation for external authentication SSO Backend to get a proper install\r\n- [#180](https://github.com/nautobot/nautobot/pull/180) - Revised available Invoke tasks for simplicity and maintainability\r\n- [#208](https://github.com/nautobot/nautobot/pull/208) - Custom fields model refactor\r\n- [#216](https://github.com/nautobot/nautobot/pull/216) - Update install docs to address inconsistent experience w/ `$PATH`\r\n- [#235](https://github.com/nautobot/nautobot/pull/235) - Update restart docs to include worker\r\n- [#241](https://github.com/nautobot/nautobot/pull/241) - Swap `contrib.postgres.fields.JSONField` for `db.models.JSONField`\r\n\r\n### Removed\r\n\r\n- [#124](https://github.com/nautobot/nautobot/pull/124) - Removed incorrect statement from feature request template\r\n- [#161](https://github.com/nautobot/nautobot/pull/161) - Removed leftover references in documentation to `RQ_DEFAULT_TIMEOUT`\r\n- [#188](https://github.com/nautobot/nautobot/pull/189) - Remove `CSRF_TRUSTED_ORIGINS` from core settings\r\n- [#189](https://github.com/nautobot/nautobot/pull/189) - Remove all references to `settings.BASE_PATH`\r\n\r\n### Fixed\r\n\r\n- [#26](https://github.com/nautobot/nautobot/issues/26) - `nautobot-server runserver` does not work using `poetry run`\r\n- [#58](https://github.com/nautobot/nautobot/issues/58) - GraphQL Device Query - Role filter issue\r\n- [#76](https://github.com/nautobot/nautobot/issues/76) - Cable paths could not be traced through circuits\r\n- [#95](https://github.com/nautobot/nautobot/issues/95) - Plugin load errors under Gunicorn\r\n- [#127](https://github.com/nautobot/nautobot/issues/127) - SSL error: decryption failed or bad record mac & SSL SYSCALL error: EOF detected\r\n- [#132](https://github.com/nautobot/nautobot/issues/132) - Generated `nautobot_config.py` did not include a trailing newline\r\n- [#134](https://github.com/nautobot/nautobot/issues/134) - Missing venv activation step in install guide\r\n- [#135](https://github.com/nautobot/nautobot/issues/135) - Custom field Selection value name change causes data inconsistency\r\n- [#147](https://github.com/nautobot/nautobot/issues/147) - Login failed when BASE_PATH is set\r\n- [#153](https://github.com/nautobot/nautobot/issues/153) - Editing an existing user token shows \"create\" buttons instead of \"update\"\r\n- [#154](https://github.com/nautobot/nautobot/issues/154) - Some tests were failing when run in the development Docker container\r\n- [#155](https://github.com/nautobot/nautobot/issues/155) - NAPALM driver string not displayed in Platform detail view\r\n- [#166](https://github.com/nautobot/nautobot/issues/166) - Contrib directory is missing (including the apache.conf)\r\n- [#168](https://github.com/nautobot/nautobot/issues/168) - Incorrect `AUTHENTICATION_BACKENDS` example in remote authentication documentation\r\n- [#170](https://github.com/nautobot/nautobot/issues/170) - GraphQL filtering failure returned all objects instead of none\r\n- [#172](https://github.com/nautobot/nautobot/issues/172) - Incorrect whitespace in some HTML template tags\r\n- [#181](https://github.com/nautobot/nautobot/pull/181) - Incorrect UI reference in Webhook documentation\r\n- [#185](https://github.com/nautobot/nautobot/issues/185) - Possible infinite loop in cable tracing algorithm\r\n- [#186](https://github.com/nautobot/nautobot/issues/186) - Example Jobs are not updated for Nautobot\r\n- [#201](https://github.com/nautobot/nautobot/issues/201) - Custom Fields cannot filter by name for content_types\r\n- [#205](https://github.com/nautobot/nautobot/issues/205) - API Documentation shows numeric id instead of UUID\r\n- [#213](https://github.com/nautobot/nautobot/issues/213) - Programming Error Exception Value: relation \"social_auth_usersocialauth\" does not exist\r\n- [#224](https://github.com/nautobot/nautobot/issues/224) - Edit view for IPAM network objects does not emit the current network address value\r\n- [#255](https://github.com/nautobot/nautobot/issues/255) - Update docs `edit_uri` to point to correct path",
        "discussion_url": "https://github.com/orgs/nautobot/discussions/257"
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/39476687",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/39476687/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/39476687/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.0.0b2",
        "id": 39476687,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTM5NDc2Njg3",
        "tag_name": "v1.0.0b2",
        "target_commitish": "develop",
        "name": "v1.0.0b2 - 2021-03-08",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2021-03-08T23:34:17Z",
        "updated_at": "2021-03-09T00:06:11Z",
        "published_at": "2021-03-09T00:06:11Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.0.0b2",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.0.0b2",
        "body": "## v1.0.0b2 (2021-03-08)\r\n\r\n### Added\r\n\r\n- [#35](https://github.com/nautobot/nautobot/issues/35) - Documentation for troubleshooting Nautobot's interaction with SELinux.\r\n- [#47](https://github.com/nautobot/nautobot/issues/47) - Basic user documentation for Relationships feature.\r\n- [#48](https://github.com/nautobot/nautobot/issues/48) - Additional unit testing and bug fixes for Relationships feature.\r\n- [#99](https://github.com/nautobot/nautobot/pull/99) - Add `BASE_PATH` to `development/nautobot_config.py`.\r\n- [#101](https://github.com/nautobot/nautobot/issues/101) - Complete documentation of `NAUTOBOT_ROOT`\r\n- [#107](https://github.com/nautobot/nautobot/pull/107) - Add `nautobot-server post_upgrade` command\r\n\r\n### Changed\r\n\r\n- [#52](https://github.com/nautobot/nautobot/pull/52) - Disabled Poetry's \"parallel installation\" feature for CI and development builds.\r\n- [#61](https://github.com/nautobot/nautobot/pull/61) - Updated pull request template contents for clarity.\r\n- [#74](https://github.com/nautobot/nautobot/pull/74) - Refactor install instructions to be more streamlined and more intuitive.\r\n    - Renamed `nautobot-rq` service to `nautobot-worker`\r\n    - Replaced `BASE_STORAGE_DIR` configuration setting with `NAUTOBOT_ROOT`; this new setting also influences the default value of `DEFAULT_CONFIG_PATH`.\r\n- [#88](https://github.com/nautobot/nautobot/issues/88) - Replace Gunicorn w/ uWSGI\r\n- [#89](https://github.com/nautobot/nautobot/pull/89) - Development workflow improvements\r\n    - Replace `pycodestyle` with `flake8` for linting.\r\n    - Add `invoke black` and `invoke tests` commands\r\n    - Improve speed of development Docker container rebuilds\r\n    - `django-debug-toolbar` is now a development dependency rather than a production dependency for Nautobot.\r\n- [#106](https://github.com/nautobot/nautobot/pull/106) - Revise deployment docs to use `$PATH` instead of venv activate\r\n- [#108](https://github.com/nautobot/nautobot/pull/108) - Document special workflow for development using containers on remote servers\r\n\r\n### Removed\r\n\r\n- [#72](https://github.com/nautobot/nautobot/pull/72) - Removed issue template for \"Documentation Change\"; use \"Bug\" or \"Feature Request\" issue templates instead.\r\n\r\n### Fixed\r\n\r\n- [#36](https://github.com/nautobot/nautobot/pull/36) - Broken links to ReadTheDocs pages.\r\n- [#41](https://github.com/nautobot/nautobot/pull/41) - Incorrect field name in CustomLink Admin page.\r\n- [#42](https://github.com/nautobot/nautobot/issues/42) - Incorrect link to `nautobot-plugin-golden-config` GitHub repository\r\n- [#45](https://github.com/nautobot/nautobot/issues/45) - Incorrect button labels when creating/editing an Interface record.\r\n- [#43](https://github.com/nautobot/nautobot/issues/43) - Incorrect commands in documentation for adding optional dependencies to `local_requirements.txt`\r\n- [#51](https://github.com/nautobot/nautobot/issues/51) - Incorrect functioning of \"development container\" in VSCode integration.\r\n- [#57](https://github.com/nautobot/nautobot/pull/57) - Incorrect `AUTHENTICATION_BACKENDS` example in `authentication/ldap.md`\r\n- [#63](https://github.com/nautobot/nautobot/issues/63) - Incorrect help text for \"Destination Label\" field when creating/editing Relationship records.\r\n- [#64](https://github.com/nautobot/nautobot/issues/64) - Incorrect absolute link to ReadTheDocs page.\r\n- [#69](https://github.com/nautobot/nautobot/issues/69) - More incorrect links to ReadTheDocs pages.\r\n- [#79](https://github.com/nautobot/nautobot/issues/79) - Incorrect internal documentation link to `STORAGE_BACKEND` optional setting.\r\n- [#81](https://github.com/nautobot/nautobot/issues/81) - Unable to change Device rack position after creation.\r\n- [#93](https://github.com/nautobot/nautobot/issues/93) - Bug when setting `CACHEOPS_DEFAULTS` timeout value to `0`."
    },
    {
        "url": "https://api.github.com/repos/nautobot/nautobot/releases/38769642",
        "assets_url": "https://api.github.com/repos/nautobot/nautobot/releases/38769642/assets",
        "upload_url": "https://uploads.github.com/repos/nautobot/nautobot/releases/38769642/assets{?name,label}",
        "html_url": "https://github.com/nautobot/nautobot/releases/tag/v1.0.0b1",
        "id": 38769642,
        "author": {
            "login": "jathanism",
            "id": 138052,
            "node_id": "MDQ6VXNlcjEzODA1Mg==",
            "avatar_url": "https://avatars.githubusercontent.com/u/138052?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jathanism",
            "html_url": "https://github.com/jathanism",
            "followers_url": "https://api.github.com/users/jathanism/followers",
            "following_url": "https://api.github.com/users/jathanism/following{/other_user}",
            "gists_url": "https://api.github.com/users/jathanism/gists{/gist_id}",
            "starred_url": "https://api.github.com/users/jathanism/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/jathanism/subscriptions",
            "organizations_url": "https://api.github.com/users/jathanism/orgs",
            "repos_url": "https://api.github.com/users/jathanism/repos",
            "events_url": "https://api.github.com/users/jathanism/events{/privacy}",
            "received_events_url": "https://api.github.com/users/jathanism/received_events",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
        },
        "node_id": "MDc6UmVsZWFzZTM4NzY5NjQy",
        "tag_name": "v1.0.0b1",
        "target_commitish": "develop",
        "name": "Release v1.0.0b1 - 2021-02-24",
        "draft": false,
        "immutable": false,
        "prerelease": true,
        "created_at": "2021-02-25T17:44:49Z",
        "updated_at": "2021-02-25T22:16:21Z",
        "published_at": "2021-02-25T22:16:21Z",
        "assets": [],
        "tarball_url": "https://api.github.com/repos/nautobot/nautobot/tarball/v1.0.0b1",
        "zipball_url": "https://api.github.com/repos/nautobot/nautobot/zipball/v1.0.0b1",
        "body": "# Nautobot v1.0\r\n\r\nThis document describes all new features and changes in Nautobot 1.0, a divergent fork of NetBox 2.10.  For the launch of Nautobot 1.0 and for the purpose of this document,  all \u201cnew\u201d features or \u201cchanges\u201d are referring to the features and changes comparing Nautobot 1.0 coming from NetBox 2.10.  All future release notes will only refer to features and changes relative to prior releases of Nautobot.\r\n\r\nUsers migrating from NetBox to Nautobot should also refer to the [\"Migrating from NetBox\"](https://nautobot.readthedocs.io/en/latest/installation/migrating-from-netbox/) documentation as well.\r\n\r\n## v1.0.0b1 (2021-02-24)\r\n\r\n### Added\r\n\r\n#### Custom Fields on All Models\r\n\r\n[Custom fields](.https://nautobot.readthedocs.io/en/latest/additional-features/custom-fields/) allow user-defined fields, or attributes, on specific data models such as sites or devices. Historically, custom fields have been supported only on \u201cprimary\u201d models (Site, Device, Rack, Virtual Machine, etc.) but not on \u201corganizational\u201d models (Region, Device Platform, Rack Group, etc.) or on \u201cdevice component\u201d models like interfaces. As of Nautobot 1.0, custom fields are now supported on every model, including interfaces.\r\n\r\n#### Customizable Statuses\r\n\r\nA new [\"Status\" model](https://nautobot.readthedocs.io/en/latest/models/extras/status/) has been added, allowing users to define additional permitted values for the \"status\" field on any or all of the models that have such a field (Cable, Circuit, Device, IPAddress, PowerFeed, Prefix, Rack, Site, VirtualMachine, VLAN). The default sets of statuses permitted for each model remain the same as in NetBox 2.10, but you are now free to define additional status values as suit your needs and workflows.\r\n\r\nOne example application for custom statuses would be in defining additional values to apply to a Device as part of an automation workflow, with statuses such as `upgrading` or `rebooting` to reflect the progress of each device through the workflow, allowing automation to identify the appropriate next action to take for each status.\r\n\r\n#### Data Validation Plugin API\r\n\r\nData quality assurance in Nautobot becomes easier with the new [data validation plugin API](.https://nautobot.readthedocs.io/en/latest/plugins/development/#implementing-custom-validators). This makes it possible to codify organizational standards.  Using a data validation [plugin](https://github.com/nautobot/nautobot-plugin-data-validation-engine), an organization can ensure all data stored in Nautobot meets its specific standards, such as enforcing device naming standards, ensuring certain prefixes are never used, asserting that VLANs always have a name, requiring interfaces to always have a description, etc. The ability to ensure a high quality of data becomes much more streamlined; error-prone, manual process becomes automated; and there is no more need to actively run reports to check data quality.\r\n\r\nA [data validation plugin](https://github.com/nautobot/nautobot-plugin-data-validation-engine) is available that addresses many common use cases for data validation, but you are also free to implement your own plugin to meet your own unique requirements.\r\n\r\n#### Detail Views for more Models\r\n\r\nDetailed view pages are now provided for models including ClusterGroup, ClusterType, DeviceRole, Manufacturer, Platform, and RackRole.\r\n\r\n#### Docker-Based Development Environment\r\n\r\nIn addition to the previously available virtual-environment-based developer workflow, Nautobot now additionally supports a [development environment based around Docker](https://nautobot.readthedocs.io/en/latest/development/getting-started/#docker-development-environment-workflow) as an alternative.\r\n\r\n#### Git Integration as a Data Source\r\n\r\n[Git integration](.https://nautobot.readthedocs.io/en/latest/models/extras/gitrepository/) offers users an option to integrate into a more traditional NetDevOps pipeline for managing Python modules, Jinja templates, and YAML/JSON data.  There are several use cases that have historically required users to either manage Python modules on the filesystem or use Jinja2 templates within the GUI. With this new feature, users can add a Git repository from the UI or REST API, the contents of which will be synchronized into Nautobot immediately and can be later refreshed on-demand. This allows users to more easily update and manage:\r\n\r\n- *Jobs* - store your Python modules that define Jobs (formerly known as Custom Scripts and/or Reports) in a Git repository\r\n- *Export Templates* - store your Jinja templates used to create an export template in a Git repository\r\n- *Config Contexts* - store your YAML/JSON data used within a config context in a Git repository\r\n- *Arbitrary Files* - usable by custom plugins and apps\r\n\r\nNot only does this integration and feature simplify management of these features in Nautobot, it offers users the ability to use Git workflows for the management of the jobs, templates, and data ensuring there has been proper review and approval before updating them on the system.\r\n\r\n#### GraphQL Support\r\n\r\nNautobot now provides an HTTP API endpoint supporting [GraphQL](https://graphql.org/). This feature adds a tremendous amount of flexibility in querying data from Nautobot. It offers the ability to query for specific datasets across multiple models in a single query.  Historically, if you wanted to retrieve the list of devices, all of their interfaces, and all of their neighbors, this would require numerous REST API calls.  GraphQL gives the flexibility to get all the data desired and nothing unnecessary, all in a single API call.\r\n\r\nFor more details, please refer to the GraphQL website, as well as to the [Nautobot GraphQL](.https://nautobot.readthedocs.io/en/latest/additional-features/graphql/) documentation.\r\n\r\n#### Plugin API Enhancements\r\n\r\nPlugins can now provide custom [data validation](#data-validation-plugin-api) logic.\r\n\r\nPlugins can now include executable [Jobs](.https://nautobot.readthedocs.io/en/latest/additional-features/jobs/) (formerly known as Custom Scripts and Reports) that will automatically be added to the list of available Jobs for a user to execute.\r\n\r\nAdditional data models defined by a plugin are automatically made available in [GraphQL](https://nautobot.readthedocs.io/en/latest/release-notes/additional-features/graphql).\r\n\r\nPlugins can now define additional Django apps that they require and these dependencies will be automatically enabled when the plugin is activated.\r\n\r\n#### Single Sign-On / Social Authentication Support\r\n\r\nNautobot now supports single sign on as an authentication option using OAuth2, OpenID, SAML, and others, using the [social-auth-app-django](https://python-social-auth.readthedocs.io/en/latest/) module. For more details please refer to the guide on [SSO authentication](https://nautobot.readthedocs.io/en/latest/configuration/authentication/sso/).\r\n\r\n#### User-Defined Relationships\r\n\r\nUser-Defined, or \"custom\", [relationships](https://nautobot.readthedocs.io/en/latest/release-notes/additional-features/relationships.md) <!-- FIXME no docs yet --> allow users to create their own relationships between models in Nautobot to best suit the needs of their specific network design. Nautobot comes with opinionated data models and relationships.\r\n\r\n<!-- FIXME: improve example here -->\r\nFor example, a VLAN is mapped to a Site by default.  After a VLAN is created today, you then assign that VLAN to an Interface on a Device. This Device should be within the initial mapped Site.  However, many networks today have different requirements and relationships for VLANs (and many other models): VLANs may be limited to racks in Layer 3 DC fabrics; VLANs may be mapped to multiple buildings in a campus; they may span sites.  Other use cases include circuits, ASNs, or IP addressing--just to name a few--allowing users to define the exact relationships required for their network.\r\n\r\n### Changed\r\n\r\n#### Code Reorganization\r\n\r\nAll of the individual Django apps in NetBox (`dcim`, `extras`, `ipam`, etc.) have been moved into a common `nautobot` Python package namespace. The `netbox` application namespace has been moved to `nautobot.core`. This will require updates when porting NetBox custom scripts and reports to Nautobot jobs, as well as when porting NetBox plugins to Nautobot.\r\n\r\n#### Packaging Changes\r\n\r\nNautobot is now packaged using [Poetry](https://python-poetry.org/) and builds as an installable Python package. `setup.py` and `requirements.txt` have been replaced with `pyproject.toml`. Releases of Nautobot are now published to [PyPI](https://pypi.org/), the Python Package Index, and therefore can now be installed using `pip install nautobot`.\r\n\r\n#### Installation and Startup\r\n\r\nBecause Nautobot may be installed using `pip`, we have replaced `manage.py` with a dedicated `nautobot-server` CLI command used to adminster the server. It works exactly as `manage.py` does, but does not require you to be within the project root directory.\r\n\r\n#### Configuration and Settings\r\n\r\nNautobot has done away with the requirement to duplicate or modify files anywhere in the source code. The `configuration.py` file has been replaced with a `nautobot_config.py` file that may be read from anywhere on your system. It is also much easier to add custom settings or overload nearly any default setting.\r\n\r\nTo facilitate this, many automatically generated settings have been removed, and replaced with their underlying static configurations. We feel this affords a greater amount of flexibility in deployment patterns, with a tradeoff of slightly more initial configuration.\r\n\r\nTo make things a little easier, you may generate a new configuration with sane defaults using the `nautobot-server init` command! The configuration file defaults to `~/.nautbot/nautobot_config.py` but using the `nautobot-server --config` argument, you may name or place the file anywhere you choose.\r\n\r\nYou may also defined a `NAUTOBOT_CONFIG` variable to tell Nautobot where to find the file so that you don't need to always pass the `--config` argument.\r\n\r\nFor details see [Configuring Nautobot](https://nautobot.readthedocs.io/en/latest/configuration).\r\n\r\n#### Consolidating Custom Scripts and Reports into Jobs\r\n\r\nNautobot has consolidated NetBox's \"custom scripts\" and \"reports\" into what is now called [Jobs](../additional-features/jobs.md).\r\n\r\nThe job history ([results](https://nautobot.readthedocs.io/en/latest/models/extras/jobresult/)) table on the home page now shows metadata on each job such as the timestamp and the user that executed the job. Additionally, jobs can be defined and executed by the system and by plugins, and when they are, users can see their results in the history too. UI views have been added for viewing the details of a given job result, and the [JobResult](https://nautobot.readthedocs.io/en/latest/models/extras/jobresult/) model now provides standard APIs for Jobs to log their status and results in a consistent way.\r\n\r\nJob result history is now retained indefinitely unless intentionally deleted. Historically only the most recent result for each custom script or report was retained and all older records were deleted.\r\n\r\nPython modules that define jobs can now be stored in Git and easily added to Nautobot via the UI as documented above in [Git Integration as a Data Source](#git-integration-as-a-data-source).\r\n\r\n#### Hiding UI Elements based on Permissions\r\n\r\nHistorically, a user viewing the home page and navigation menu would see a list of all model types and menu items in the system, with a \u201clock\u201d icon on items that they were not granted access to view in detail.\r\n\r\nAs an [option](https://nautobot.readthedocs.io/en/latest/configuration/optional-settings/#hide_restricted_ui), administrators can now choose to instead hide un-permitted items altogether from the home page and the navigation menu, providing a simpler interface for limited-access users. The prior behavior remains as the default.\r\n\r\n#### Navigation Menu Changes\r\n\r\nThe \"Other\" menu has been renamed to \"Extensibility\" and many new items have been added to this menu.\r\n\r\n[Status](https://nautobot.readthedocs.io/en/latest/models/extras/status/) records have been added to the \"Organization\" menu.\r\n\r\n#### New Name and Logo\r\n\r\nNetBox has been changed to Nautobot throughout the code, UI, and documentation, and Nautobot has a new logo.\r\n\r\n#### User-Defined Custom Links\r\n\r\nNautobot allows for the definition of [custom links](https://nautobot.readthedocs.io/en/latest/models/extras/customlink/) to add to various built-in data views. These can be used to provide convenient cross-references to other data sources outside Nautobot, among many other possibilities.\r\n\r\nHistorically this feature was restricted so that only administrators could define and manage custom links. In Nautobot this has been moved into the main user interface, accessible to any user who has been granted appropriate access permissions.\r\n\r\n#### User-Defined Export Templates\r\n\r\nNautobot allows for the definition of custom [Jinja2 templates](https://nautobot.readthedocs.io/en/latest/models/extras/customlink/) to use to format exported data.\r\n\r\nHistorically this feature was restricted such that only administrators could define and edit these templates. In Nautobot this has been moved into the main user interface, accessible to any user who has been granted appropriate access permissions.\r\n\r\n#### User-Defined Webhooks\r\n\r\nNautobot allows for the creation of [webhooks](https://nautobot.readthedocs.io/en/latest/models/extras/webhook/), HTTP callbacks that are triggered automatically when a specified data model(s) are created, updated, and/or deleted.\r\n\r\nHistorically this feature was restricted such that only administrators could define and manage webhooks. In Nautobot this has been moved into the main user interface, accessible to any user who has been granted appropriate access permissions.\r\n\r\n#### UUID Primary Database Keys\r\n\r\nDatabase keys are now defined as Universally Unique Identifiers (UUIDs) instead of integers, protecting against certain classes of data-traversal attacks.\r\n\r\n### Removed\r\n\r\n#### Secrets\r\n\r\nSecrets storage and management has been removed from Nautobot.\r\n\r\n#### Related Devices\r\n\r\nThe \"Related Devices\" table has been removed from the detailed Device view.\r\n\r\n### Fixed\r\n\r\n- Fixed a bug in which object permissions were not filtered correctly in the admin interface. <!-- FIXME(john): improve the description of this fix -->\r\n- Fixed a bug in which the UI would report an exception if the database contains ChangeLog entries that reference a nonexistent ContentType.\r\n\r\n---"
    }
]