Skip to content

Commit 93cb9a9

Browse files
authored
Merge pull request #1504 from nationalarchives/FCL-176-pre-commit-audit
[FCL-176] Tooling configuration audit
2 parents e289eca + e438861 commit 93cb9a9

28 files changed

+61
-158
lines changed

.pre-commit-config.yaml

+20-19
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,27 @@
1-
exclude: "^docs/|/migrations/"
2-
default_install_hook_types: [pre-commit, pre-push]
1+
exclude: "/migrations/"
32

43
repos:
54
- repo: https://github.com/pre-commit/pre-commit-hooks
65
rev: v4.6.0
76
hooks:
8-
- id: trailing-whitespace
9-
- id: end-of-file-fixer
7+
- id: check-added-large-files
8+
- id: check-case-conflict
9+
- id: check-json
10+
- id: check-merge-conflict
11+
- id: check-xml
1012
- id: check-yaml
13+
- id: end-of-file-fixer
14+
- id: forbid-submodules
15+
- id: mixed-line-ending
16+
- id: no-commit-to-branch
17+
- id: trailing-whitespace
18+
19+
- repo: https://github.com/astral-sh/ruff-pre-commit
20+
rev: v0.5.0
21+
hooks:
22+
- id: ruff
23+
args: [--fix, --exit-non-zero-on-fix]
24+
- id: ruff-format
1125

1226
- repo: https://github.com/Riverside-Healthcare/djLint
1327
rev: v1.34.1
@@ -28,20 +42,7 @@ repos:
2842
language: python
2943

3044
- repo: https://github.com/pre-commit/mirrors-prettier
31-
rev: v3.1.0
45+
rev: v4.0.0-alpha.8
3246
hooks:
3347
- id: prettier
34-
types_or: [scss, yaml, markdown, javascript, xml]
35-
36-
- repo: https://github.com/astral-sh/ruff-pre-commit
37-
# Ruff version.
38-
rev: v0.5.0
39-
hooks:
40-
- id: ruff
41-
args: [--fix, --exit-non-zero-on-fix]
42-
43-
# sets up .pre-commit-ci.yaml to ensure pre-commit dependencies stay up to date
44-
ci:
45-
autoupdate_schedule: weekly
46-
skip: []
47-
submodules: false
48+
types_or: [yaml, json, xml, markdown, scss, javascript]

auth0/attack-protection/brute-force-protection.json

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
{
22
"enabled": true,
3-
"shields": [
4-
"block",
5-
"user_notification"
6-
],
3+
"shields": ["block", "user_notification"],
74
"mode": "count_per_identifier_and_ip",
85
"allowlist": [],
96
"max_attempts": 10

auth0/attack-protection/suspicious-ip-throttling.json

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
{
22
"enabled": true,
3-
"shields": [
4-
"admin_notification",
5-
"block"
6-
],
3+
"shields": ["admin_notification", "block"],
74
"allowlist": [],
85
"stage": {
96
"pre-login": {

auth0/clients/auth0-deploy-cli-extension.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
},
2222
"token_endpoint_auth_method": "client_secret_post",
2323
"app_type": "non_interactive",
24-
"grant_types": [
25-
"client_credentials"
26-
],
24+
"grant_types": ["client_credentials"],
2725
"custom_login_page_on": true
2826
}

auth0/clients/production.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,5 @@
3131
"client_credentials"
3232
],
3333
"custom_login_page_on": true,
34-
"web_origins": [
35-
"https://editor.caselaw.nationalarchives.gov.uk"
36-
]
34+
"web_origins": ["https://editor.caselaw.nationalarchives.gov.uk"]
3735
}

auth0/clients/staging.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@
3333
"custom_login_page_on": true,
3434
"web_origins": [
3535
"https://editor.staging.caselaw.nationalarchives.gov.uk",
36-
"https://editor.staging.caselaw-stg.dalmatian.dxw.net"
37-
]
36+
"https://editor.staging.caselaw-stg.dalmatian.dxw.net"
37+
]
3838
}

auth0/config.example.json

+4-6
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22
"AUTH0_DOMAIN": "tna-caselaw-editorial-team.eu.auth0.com",
33
"AUTH0_CLIENT_ID": "<client_id>",
44
"AUTH0_CLIENT_SECRET": "<client_secret>",
5-
"AUTH0_KEYWORD_REPLACE_MAPPINGS": {
6-
},
5+
"AUTH0_KEYWORD_REPLACE_MAPPINGS": {},
76
"AUTH0_ALLOW_DELETE": false,
8-
"AUTH0_EXCLUDED_RULES": [
9-
],
7+
"AUTH0_EXCLUDED_RULES": [],
108
"INCLUDED_PROPS": {
11-
"clients": [ ]
9+
"clients": []
1210
},
1311
"EXCLUDED_PROPS": {
14-
"connections": [ "options.client_secret" ]
12+
"connections": ["options.client_secret"]
1513
}
1614
}

auth0/database-connections/Username-Password-Authentication/database.json

+2-7
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@
1212
"strategy": "auth0",
1313
"name": "Username-Password-Authentication",
1414
"is_domain_connection": false,
15-
"realms": [
16-
"Username-Password-Authentication"
17-
],
18-
"enabled_clients": [
19-
"staging",
20-
"production"
21-
]
15+
"realms": ["Username-Password-Authentication"],
16+
"enabled_clients": ["staging", "production"]
2217
}

auth0/tenant.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
{
22
"friendly_name": "Case Law Editorial Team",
3-
"enabled_locales": [
4-
"en"
5-
],
3+
"enabled_locales": ["en"],
64
"flags": {
75
"universal_login": true,
86
"revoke_refresh_token_grant": false,

config/settings/base.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -254,8 +254,7 @@
254254
"disable_existing_loggers": False,
255255
"formatters": {
256256
"verbose": {
257-
"format": "%(levelname)s %(asctime)s %(module)s "
258-
"%(process)d %(thread)d %(message)s",
257+
"format": "%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s",
259258
},
260259
},
261260
"handlers": {

config/settings/production.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,7 @@
110110
"filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}},
111111
"formatters": {
112112
"verbose": {
113-
"format": "%(levelname)s %(asctime)s %(module)s "
114-
"%(process)d %(thread)d %(message)s",
113+
"format": "%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s",
115114
},
116115
},
117116
"handlers": {

ds_caselaw_editor_ui/__init__.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
__version__ = "0.1.0"
22
__version_info__ = tuple(
3-
[
4-
int(num) if num.isdigit() else num
5-
for num in __version__.replace("-", ".", 1).split(".")
6-
],
3+
[int(num) if num.isdigit() else num for num in __version__.replace("-", ".", 1).split(".")],
74
)

judgments/management/commands/reparse_next_in_reparse_queue.py

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
NUMBER_TO_PARSE = 1
1010
MAX_DOCUMENTS_TO_TRY = 200
1111

12+
1213
class Command(BaseCommand):
1314
help = "Sends the next document in the reparse queue to be reparsed"
1415

judgments/tests/factories.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,7 @@ def build(cls, **kwargs) -> DocumentClass:
5555
if "html" in kwargs:
5656
document_mock.return_value.content_as_html.return_value = kwargs.pop("html")
5757
else:
58-
document_mock.return_value.content_as_html.return_value = (
59-
"<p>This is a judgment.</p>"
60-
)
58+
document_mock.return_value.content_as_html.return_value = "<p>This is a judgment.</p>"
6159

6260
for map_to, map_from in cls.PARAMS_MAP.items():
6361
if map_from[0] in kwargs:

judgments/tests/test_document_history.py

+3-12
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ def test_document_history_view(self, document_type, document_exists, mock_docume
3030

3131
self.client.force_login(User.objects.get_or_create(username="testuser")[0])
3232

33-
assert (
34-
reverse("document-history", kwargs={"document_uri": document.uri})
35-
== "/edtest/4321/123/history"
36-
)
33+
assert reverse("document-history", kwargs={"document_uri": document.uri}) == "/edtest/4321/123/history"
3734

3835
response = self.client.get(
3936
reverse("document-history", kwargs={"document_uri": document.uri}),
@@ -405,10 +402,7 @@ def test_structured_history_with_legacy(
405402

406403
self.sign_in_developer_user()
407404

408-
assert (
409-
reverse("document-history", kwargs={"document_uri": document.uri})
410-
== "/test/4321/123/history"
411-
)
405+
assert reverse("document-history", kwargs={"document_uri": document.uri}) == "/test/4321/123/history"
412406

413407
response = self.client.get(
414408
reverse("document-history", kwargs={"document_uri": document.uri}),
@@ -503,10 +497,7 @@ def test_structured_history(
503497

504498
self.sign_in_developer_user()
505499

506-
assert (
507-
reverse("document-history", kwargs={"document_uri": document.uri})
508-
== "/test/4321/123/history"
509-
)
500+
assert reverse("document-history", kwargs={"document_uri": document.uri}) == "/test/4321/123/history"
510501

511502
response = self.client.get(
512503
reverse("document-history", kwargs={"document_uri": document.uri}),

judgments/tests/test_judgments.py

+2-8
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,7 @@ def test_judgment_html_view(self, document_type, document_exists, mock_judgment)
2525

2626
self.client.force_login(User.objects.get_or_create(username="testuser")[0])
2727

28-
assert (
29-
reverse("full-text-html", kwargs={"document_uri": judgment.uri})
30-
== "/hvtest/4321/123"
31-
)
28+
assert reverse("full-text-html", kwargs={"document_uri": judgment.uri}) == "/hvtest/4321/123"
3229

3330
response = self.client.get(
3431
reverse("full-text-html", kwargs={"document_uri": judgment.uri}),
@@ -118,10 +115,7 @@ def test_judgment_pdf_view_no_pdf_response(
118115
self.client.force_login(User.objects.get_or_create(username="testuser")[0])
119116
response = self.client.get("/test/1234/pdf")
120117
decoded_response = response.content.decode("utf-8")
121-
assert (
122-
"Document &quot;JUDGMENT v JUDGEMENT&quot; does not have a PDF."
123-
in decoded_response
124-
)
118+
assert "Document &quot;JUDGMENT v JUDGEMENT&quot; does not have a PDF." in decoded_response
125119
assert response.status_code == 404
126120

127121
def test_judgment_xml_view_redirect(self):

judgments/tests/test_metadata_panel.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,5 @@ def test_metadata_panel(self, document_type, document_exists, mock_judgment):
2828
reverse("full-text-html", kwargs={"document_uri": judgment.uri}),
2929
)
3030

31-
assert (
32-
b'<input type="hidden" name="judgment_uri" value="hvtest/4321/123" />'
33-
in response.content
34-
)
31+
assert b'<input type="hidden" name="judgment_uri" value="hvtest/4321/123" />' in response.content
3532
assert response.status_code == 200

judgments/tests/test_stats.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,4 @@ def test_combined_csv_download(self, mock_api_client):
2929
decoded_response = response.content.decode("utf-8")
3030

3131
assert response.status_code == 200
32-
assert (
33-
decoded_response
34-
== "Column 1,Column 2,Column 3,Column 4\r\nValue 1,Value 2,,7\r\n"
35-
)
32+
assert decoded_response == "Column 1,Column 2,Column 3,Column 4\r\nValue 1,Value 2,,7\r\n"

judgments/tests/test_unlock.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ def test_break_lock_confirm_page():
1414

1515
response = client.get("/unlock?judgment_uri=my_uri")
1616
decoded_response = response.content.decode("utf-8")
17-
assert (
18-
'<input type="hidden" name="judgment_uri" value="my_uri" />' in decoded_response
19-
)
17+
assert '<input type="hidden" name="judgment_uri" value="my_uri" />' in decoded_response
2018
assert response.status_code == 200
2119

2220

judgments/tests/utils/test_utils.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,7 @@ def test_when_referrer_is_relative(self, request):
182182
def test_when_referrer_is_absolute_and_local(self, request):
183183
request.META = {"HTTP_REFERER": "https://www.example.com/foo/bar"}
184184
request.get_host.return_value = "www.example.com"
185-
assert (
186-
ensure_local_referer_url(request, "/default")
187-
== "https://www.example.com/foo/bar"
188-
)
185+
assert ensure_local_referer_url(request, "/default") == "https://www.example.com/foo/bar"
189186

190187
@patch("django.http.request.HttpRequest")
191188
def test_when_referrer_is_absolute_and_remote(self, request):

judgments/utils/__init__.py

+2-8
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ def update_document_uri(old_uri, new_citation):
9696
copy_assets(old_uri, new_uri)
9797
api_client.set_judgment_this_uri(new_uri)
9898
except MarklogicAPIError as e:
99-
msg = (
100-
f"Failure when attempting to copy document from {old_uri} to {new_uri}: {e}"
101-
)
99+
msg = f"Failure when attempting to copy document from {old_uri} to {new_uri}: {e}"
102100
raise MoveJudgmentError(
103101
msg,
104102
) from e
@@ -178,11 +176,7 @@ def editors_dict():
178176

179177
def get_linked_document_uri(document: Document) -> str | None:
180178
related_uri = _build_related_document_uri(document)
181-
return (
182-
related_uri
183-
if api_client.document_exists(DocumentURIString(related_uri))
184-
else None
185-
)
179+
return related_uri if api_client.document_exists(DocumentURIString(related_uri)) else None
186180

187181

188182
def _build_related_document_uri(document: Document) -> str:

judgments/utils/link_generators.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ def build_confirmation_email_link(
3131
document: Document,
3232
signature: str | None = None,
3333
) -> str:
34-
subject_string = (
35-
f"Notification of publication [TDR ref: {document.consignment_reference}]"
36-
)
34+
subject_string = f"Notification of publication [TDR ref: {document.consignment_reference}]"
3735

3836
email_context = {
3937
"judgment_name": document.name,

judgments/utils/view_helpers.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@ def get_search_parameters(
4444
):
4545
query = params.get("query")
4646
page = int(params.get("page", default_page))
47-
order = (
48-
params.get("order") if params.get("order") in ALLOWED_ORDERS else default_order
49-
)
47+
order = params.get("order") if params.get("order") in ALLOWED_ORDERS else default_order
5048
return {
5149
"query": query,
5250
"page": page,

judgments/views/judgment_hold.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,7 @@ def get_context_data(self, **kwargs):
2424
context = super().get_context_data(**kwargs)
2525
context["email_issue_link"] = build_raise_issue_email_link(
2626
document=context["document"],
27-
signature=(
28-
self.request.user.get_full_name()
29-
if self.request.user.is_authenticated
30-
else None
31-
),
27+
signature=(self.request.user.get_full_name() if self.request.user.is_authenticated else None),
3228
)
3329
return context
3430

judgments/views/judgment_publish.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,7 @@ def get_context_data(self, **kwargs):
2424

2525
context["email_confirmation_link"] = build_confirmation_email_link(
2626
document=context["document"],
27-
signature=(
28-
self.request.user.get_full_name()
29-
if self.request.user.is_authenticated
30-
else None
31-
),
27+
signature=(self.request.user.get_full_name() if self.request.user.is_authenticated else None),
3228
)
3329

3430
return context

judgments/views/reports.py

+3-9
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ def get_context_data(self, **kwargs):
3737
target_parser_version = api_client.get_highest_parser_version()
3838

3939
context["page_title"] = "Documents awaiting parsing"
40-
context["target_parser_version"] = (
41-
f"{target_parser_version[0]}.{target_parser_version[1]}"
42-
)
40+
context["target_parser_version"] = f"{target_parser_version[0]}.{target_parser_version[1]}"
4341

4442
context["documents"] = get_rows_from_result(
4543
api_client.get_pending_parse_for_version(
@@ -60,12 +58,8 @@ def get_context_data(self, **kwargs):
6058
target_parser_version = api_client.get_highest_parser_version()
6159

6260
context["page_title"] = "Documents awaiting enrichment"
63-
context["target_enrichment_version"] = (
64-
f"{target_enrichment_version[0]}.{target_enrichment_version[1]}"
65-
)
66-
context["target_parser_version"] = (
67-
f"{target_parser_version[0]}.{target_parser_version[1]}"
68-
)
61+
context["target_enrichment_version"] = f"{target_enrichment_version[0]}.{target_enrichment_version[1]}"
62+
context["target_parser_version"] = f"{target_parser_version[0]}.{target_parser_version[1]}"
6963

7064
context["documents"] = get_rows_from_result(
7165
api_client.get_pending_enrichment_for_version(

0 commit comments

Comments
 (0)