refactor: consolidate GitHub integration into dojo/github/ package#14766
Merged
Conversation
27618ac to
989b318
Compare
Collapse dojo/github.py and dojo/github_issue_link/ into a single dojo/github/ package matching the canonical dojo/url/ reference layout described in CLAUDE.md (models, admin, services, ui/forms, ui/views, ui/urls, templates). Backward-compat re-exports left in dojo/models.py and dojo/forms.py. No behavior change, no migrations. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
989b318 to
a8246a0
Compare
valentijnscholten
approved these changes
Apr 28, 2026
blakeaowens
approved these changes
Apr 29, 2026
Jino-T
approved these changes
Apr 29, 2026
Maffooch
pushed a commit
to devGregA/django-DefectDojo
that referenced
this pull request
Apr 30, 2026
Pulls in 15 upstream commits including: * dojo/sso/ consolidation (DefectDojo#14765) — SSO settings/urls/views/templates/ remote-user moved into a self-contained package. * dojo/notifications/ consolidation (DefectDojo#14767) — notification helper + templates moved into the package, with a new context_processors split. * dojo/github/ consolidation (DefectDojo#14766) — github_issue_link package renamed and reshaped under dojo/github/{models,services,ui,...}. * test_tag_inheritance.py extension (DefectDojo#14771). * Bulk-delete findings extension hook (DefectDojo#14740). * Planned-remediation-version column alignment fix (DefectDojo#14773). * Dependency bumps (datatables.net, gitpython, python-gitlab, pyopenssl, vulners, ruff, postcss). Conflict resolutions worth flagging: * dojo/forms.py — kept dev's reshuffled imports (GITHUB_* models now re-exported via dojo.github.ui.forms; Global_Role moved to dojo.models). Dropped the duplicate Global_Role import; the legacy authorization rewrite still imports from dojo.authorization.models for the rest. * dojo/settings/settings.dist.py — kept tailwind's UIPreferenceLoader chain and APP_DIRS=False, but added a shared _DOJO_EXTRA_TEMPLATE_DIRS list referenced by both TEMPLATES[0]["DIRS"] and the FilesystemLoader so that dojo/sso/settings.py:apply_sso_settings can append the SSO template dir at startup and have it resolved at render time. * dojo/templates/dojo/login.html — Tailwind tree, kept the inline Tailwind-styled SSO buttons rather than dev's {% include "dojo/sso_login_buttons.html" %} (which is Bootstrap-classic flavored and mounted by the SSO consolidation against the classic tree only). * unittests/test_remote_user.py — adopted dev's import path (dojo.sso.remote_user, dojo.models.Dojo_Group_Member). * dojo/api_v2/permissions.py — added a backward-compat shim re-exporting from dojo.authorization.api_permissions because the legacy authorization consolidation deleted the old module but dojo/notifications/api/views.py (new from dev) still imports from the old path. Verified: ruff clean on touched files; manage.py check passes; unittests.test_authorized_users_ui + unittests.authorization + unittests.test_user_ui_timestamps + unittests.test_rest_framework + unittests.test_remote_user all green (1144 tests, 542 skipped).
Maffooch
pushed a commit
to devGregA/django-DefectDojo
that referenced
this pull request
May 8, 2026
Pulls in 15 upstream commits including: * dojo/sso/ consolidation (DefectDojo#14765) — SSO settings/urls/views/templates/ remote-user moved into a self-contained package. * dojo/notifications/ consolidation (DefectDojo#14767) — notification helper + templates moved into the package, with a new context_processors split. * dojo/github/ consolidation (DefectDojo#14766) — github_issue_link package renamed and reshaped under dojo/github/{models,services,ui,...}. * test_tag_inheritance.py extension (DefectDojo#14771). * Bulk-delete findings extension hook (DefectDojo#14740). * Planned-remediation-version column alignment fix (DefectDojo#14773). * Dependency bumps (datatables.net, gitpython, python-gitlab, pyopenssl, vulners, ruff, postcss). Conflict resolutions worth flagging: * dojo/forms.py — kept dev's reshuffled imports (GITHUB_* models now re-exported via dojo.github.ui.forms; Global_Role moved to dojo.models). Dropped the duplicate Global_Role import; the legacy authorization rewrite still imports from dojo.authorization.models for the rest. * dojo/settings/settings.dist.py — kept tailwind's UIPreferenceLoader chain and APP_DIRS=False, but added a shared _DOJO_EXTRA_TEMPLATE_DIRS list referenced by both TEMPLATES[0]["DIRS"] and the FilesystemLoader so that dojo/sso/settings.py:apply_sso_settings can append the SSO template dir at startup and have it resolved at render time. * dojo/templates/dojo/login.html — Tailwind tree, kept the inline Tailwind-styled SSO buttons rather than dev's {% include "dojo/sso_login_buttons.html" %} (which is Bootstrap-classic flavored and mounted by the SSO consolidation against the classic tree only). * unittests/test_remote_user.py — adopted dev's import path (dojo.sso.remote_user, dojo.models.Dojo_Group_Member). * dojo/api_v2/permissions.py — added a backward-compat shim re-exporting from dojo.authorization.api_permissions because the legacy authorization consolidation deleted the old module but dojo/notifications/api/views.py (new from dev) still imports from the old path. Verified: ruff clean on touched files; manage.py check passes; unittests.test_authorized_users_ui + unittests.authorization + unittests.test_user_ui_timestamps + unittests.test_rest_framework + unittests.test_remote_user all green (1144 tests, 542 skipped).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dojo/github.py,dojo/github_issue_link/, GitHub forms indojo/forms.py, GitHub models indojo/models.py, GitHub templates) into a single self-containeddojo/github/package.dojo/url/reference layout from CLAUDE.md:__init__.py+admin.py+models.py+services.py+ui/{__init__,forms,urls,views}.py+templates/dojo/.Github(api_key).get_user()credential check fromnew_githubview intoservices.validate_github_credentials()per CLAUDE.md Phase 2 ("external integration calls belong in services.py").dojo/models.py(5 GITHUB models) anddojo/forms.py(6 GITHUB forms) per the playbook.dojo/utils.pyanddojo/urls.pyupdated to use the new canonical paths.settings.dist.pyleft in place (out of scope per task; conceptually belong with SSO).dojoapp preservesapp_label).Test plan
python manage.py check— System check identified no issuespython manage.py makemigrations --check --dry-run— No changes detectedpython manage.py test unittests -k github— 29/29 tests passdojo.modelsanddojo.forms(model/form identity matches new canonical paths)dojo.github.{models,services},dojo.github.ui.{forms,urls}dojo/github/templates/dojo/{github,new_github,delete_github}.htmlGITHUB_Conf,GITHUB_Issue,GITHUB_PKey,GITHUB_Clone,GITHUB_Details_Cacheruff checkclean on all touched filesenable_github=True:/github,/github/add,/github/<id>/delete; create finding linked toGITHUB_PKey-configured product, push to GitHub, close, reopen🤖 Generated with Claude Code