From c09e2972e44f74bb4437bc1b2682212a62883a3c Mon Sep 17 00:00:00 2001 From: erikayao93 Date: Wed, 7 Jun 2023 21:59:10 +0000 Subject: [PATCH 01/16] Added types.py for new TypedLog class --- aws_lambda_powertools/logging/types.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 aws_lambda_powertools/logging/types.py diff --git a/aws_lambda_powertools/logging/types.py b/aws_lambda_powertools/logging/types.py new file mode 100644 index 00000000000..96d6e21c6aa --- /dev/null +++ b/aws_lambda_powertools/logging/types.py @@ -0,0 +1,9 @@ +from typing_extensions import TypedDict + + +class TypedLog(TypedDict, total=False): + level: str + location: str + timestamp: str + service: str + event: str From 652ee8ab8e4aadc2e5d08b4f192094270adbb6ad Mon Sep 17 00:00:00 2001 From: erikayao93 Date: Wed, 7 Jun 2023 23:35:59 +0000 Subject: [PATCH 02/16] Added additional typing options for TypedLog keys, updated bring_your_own_formatter example to utilize new class --- aws_lambda_powertools/logging/types.py | 9 +++++---- examples/logger/src/bring_your_own_formatter.py | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/aws_lambda_powertools/logging/types.py b/aws_lambda_powertools/logging/types.py index 96d6e21c6aa..7c03ca191fd 100644 --- a/aws_lambda_powertools/logging/types.py +++ b/aws_lambda_powertools/logging/types.py @@ -1,9 +1,10 @@ -from typing_extensions import TypedDict +from typing import Any, Dict, Iterable, Union +from typing_extensions import TypedDict class TypedLog(TypedDict, total=False): - level: str + level: Union[str, int] location: str - timestamp: str + timestamp: Union[str, int] service: str - event: str + message: Union[Dict[str, Any], str, bool, Iterable] \ No newline at end of file diff --git a/examples/logger/src/bring_your_own_formatter.py b/examples/logger/src/bring_your_own_formatter.py index 1b85105f930..b05dc2375a9 100644 --- a/examples/logger/src/bring_your_own_formatter.py +++ b/examples/logger/src/bring_your_own_formatter.py @@ -1,12 +1,13 @@ from aws_lambda_powertools import Logger from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter +from aws_lambda_powertools.logging.types import TypedLog class CustomFormatter(LambdaPowertoolsFormatter): - def serialize(self, log: dict) -> str: + def serialize(self, log: TypedLog) -> str: # type: ignore """Serialize final structured log dict to JSON str""" - log["event"] = log.pop("message") # rename message key to event - return self.json_serializer(log) # use configured json serializer + log["event"] = log.pop("message") # type: ignore + return self.json_serializer(log) # type: ignore logger = Logger(service="payment", logger_formatter=CustomFormatter()) From 9289c4b05e58dd6feb315fb5683a071cd889407f Mon Sep 17 00:00:00 2001 From: erikayao93 Date: Wed, 7 Jun 2023 23:40:19 +0000 Subject: [PATCH 03/16] Added missing space to satisfy linter --- examples/logger/src/bring_your_own_formatter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/logger/src/bring_your_own_formatter.py b/examples/logger/src/bring_your_own_formatter.py index b05dc2375a9..b64fbe7eb08 100644 --- a/examples/logger/src/bring_your_own_formatter.py +++ b/examples/logger/src/bring_your_own_formatter.py @@ -4,7 +4,7 @@ class CustomFormatter(LambdaPowertoolsFormatter): - def serialize(self, log: TypedLog) -> str: # type: ignore + def serialize(self, log: TypedLog) -> str: # type: ignore """Serialize final structured log dict to JSON str""" log["event"] = log.pop("message") # type: ignore return self.json_serializer(log) # type: ignore From d49f22bdb8cbe7c20e7fcfd21fef951feba53002 Mon Sep 17 00:00:00 2001 From: erikayao93 Date: Thu, 8 Jun 2023 17:30:02 +0000 Subject: [PATCH 04/16] Edited types.py for improved TypedDict syntax, reverted changes to example to readdress later --- aws_lambda_powertools/logging/types.py | 40 ++++++++++++++++--- .../logger/src/bring_your_own_formatter.py | 7 ++-- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/aws_lambda_powertools/logging/types.py b/aws_lambda_powertools/logging/types.py index 7c03ca191fd..bfede85234f 100644 --- a/aws_lambda_powertools/logging/types.py +++ b/aws_lambda_powertools/logging/types.py @@ -1,10 +1,38 @@ -from typing import Any, Dict, Iterable, Union +from __future__ import annotations -from typing_extensions import TypedDict +import sys -class TypedLog(TypedDict, total=False): - level: Union[str, int] +if sys.version_info < (3, 11): + from typing_extensions import NotRequired, TypedDict +else: + from typing import NotRequired, TypedDict + +from typing import Any, Dict, List + + +class PowertoolsLogRecord(TypedDict): + # Base fields (required) + level: str location: str - timestamp: Union[str, int] + message: Dict[str, Any] | str | bool | List[Any] + timestamp: str | int service: str - message: Union[Dict[str, Any], str, bool, Iterable] \ No newline at end of file + + # Fields from logger.inject_lambda_context + cold_start: NotRequired[bool] + function_name: NotRequired[str] + function_memory_size: NotRequired[int] + function_arn: NotRequired[str] + function_request_id: NotRequired[str] + # From logger.inject_lambda_context if AWS X-Ray is enabled + xray_trace_id: NotRequired[str] + + # If sample_rate is defined + sampling_rate: NotRequired[float] + + # From logger.set_correlation_id + correlation_id: NotRequired[str] + + # Fields from logger.exception + exception_name: NotRequired[str] + exception: NotRequired[str] diff --git a/examples/logger/src/bring_your_own_formatter.py b/examples/logger/src/bring_your_own_formatter.py index b64fbe7eb08..461289b1504 100644 --- a/examples/logger/src/bring_your_own_formatter.py +++ b/examples/logger/src/bring_your_own_formatter.py @@ -1,13 +1,12 @@ from aws_lambda_powertools import Logger from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter -from aws_lambda_powertools.logging.types import TypedLog class CustomFormatter(LambdaPowertoolsFormatter): - def serialize(self, log: TypedLog) -> str: # type: ignore + def serialize(self, log: dict) -> str: """Serialize final structured log dict to JSON str""" - log["event"] = log.pop("message") # type: ignore - return self.json_serializer(log) # type: ignore + log["event"] = log.pop("message") + return self.json_serializer(log) logger = Logger(service="payment", logger_formatter=CustomFormatter()) From 7da4a2c6ebac8ed8178bcb4d9604dad714d99efc Mon Sep 17 00:00:00 2001 From: erikayao93 Date: Thu, 8 Jun 2023 23:15:35 +0000 Subject: [PATCH 05/16] Attempted changes to formatters to accomodate TypedDict typing --- aws_lambda_powertools/logging/formatter.py | 9 ++++++--- aws_lambda_powertools/logging/formatters/datadog.py | 4 ++-- examples/logger/src/bring_your_own_formatter.py | 9 +++++++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/aws_lambda_powertools/logging/formatter.py b/aws_lambda_powertools/logging/formatter.py index 600a1e726c4..3def707eab7 100644 --- a/aws_lambda_powertools/logging/formatter.py +++ b/aws_lambda_powertools/logging/formatter.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import inspect import json import logging @@ -6,10 +8,11 @@ from abc import ABCMeta, abstractmethod from datetime import datetime, timezone from functools import partial -from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union +from typing import Any, Callable, Dict, Iterable, List, Mapping, Optional, Tuple, Union from ..shared import constants from ..shared.functions import powertools_dev_is_set +from .types import PowertoolsLogRecord RESERVED_LOG_ATTRS = ( "name", @@ -66,7 +69,7 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter): def __init__( self, - json_serializer: Optional[Callable[[Dict], str]] = None, + json_serializer: Optional[Callable[[Mapping], str]] = None, json_deserializer: Optional[Callable[[Union[Dict, str, bool, int, float]], str]] = None, json_default: Optional[Callable[[Any], Any]] = None, datefmt: Optional[str] = None, @@ -144,7 +147,7 @@ def __init__( super().__init__(datefmt=self.datefmt) - def serialize(self, log: Dict) -> str: + def serialize(self, log: PowertoolsLogRecord | Mapping) -> str: """Serialize structured log dict to JSON str""" return self.json_serializer(log) diff --git a/aws_lambda_powertools/logging/formatters/datadog.py b/aws_lambda_powertools/logging/formatters/datadog.py index fa92bf74598..1caf7741ab1 100644 --- a/aws_lambda_powertools/logging/formatters/datadog.py +++ b/aws_lambda_powertools/logging/formatters/datadog.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Any, Callable +from typing import Any, Callable, Mapping from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter @@ -8,7 +8,7 @@ class DatadogLogFormatter(LambdaPowertoolsFormatter): def __init__( self, - json_serializer: Callable[[dict], str] | None = None, + json_serializer: Callable[[Mapping], str] | None = None, json_deserializer: Callable[[dict | str | bool | int | float], str] | None = None, json_default: Callable[[Any], Any] | None = None, datefmt: str | None = None, diff --git a/examples/logger/src/bring_your_own_formatter.py b/examples/logger/src/bring_your_own_formatter.py index 461289b1504..985d45960a0 100644 --- a/examples/logger/src/bring_your_own_formatter.py +++ b/examples/logger/src/bring_your_own_formatter.py @@ -1,11 +1,16 @@ +from __future__ import annotations + +from typing import Mapping + from aws_lambda_powertools import Logger from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter +from aws_lambda_powertools.logging.types import PowertoolsLogRecord class CustomFormatter(LambdaPowertoolsFormatter): - def serialize(self, log: dict) -> str: + def serialize(self, log: PowertoolsLogRecord | Mapping) -> str: """Serialize final structured log dict to JSON str""" - log["event"] = log.pop("message") + log["event"] = log.pop("message") # type: ignore return self.json_serializer(log) From ffb824373d05f55f703c69e65b040796356d62c4 Mon Sep 17 00:00:00 2001 From: erikayao93 Date: Fri, 9 Jun 2023 16:16:34 +0000 Subject: [PATCH 06/16] Update pre-commit for cloud desktop environment --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 73684a22221..f9a7a121a25 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -32,7 +32,7 @@ repos: - repo: https://github.com/igorshubovych/markdownlint-cli rev: "11c08644ce6df850480d98f628596446a526cbc6" # frozen: v0.31.1 hooks: - - id: markdownlint + - id: markdownlint-docker args: ["--fix"] - repo: local hooks: From 85ff2a1df6fd503241d9a9a9816ad49a73596bd6 Mon Sep 17 00:00:00 2001 From: erikayao93 Date: Fri, 9 Jun 2023 16:20:06 +0000 Subject: [PATCH 07/16] Update pre-commit attempt --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f9a7a121a25..08e6e78567b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.4.0 + rev: v4.4.0 hooks: - id: check-merge-conflict - id: trailing-whitespace @@ -30,7 +30,7 @@ repos: language: system types: [python] - repo: https://github.com/igorshubovych/markdownlint-cli - rev: "11c08644ce6df850480d98f628596446a526cbc6" # frozen: v0.31.1 + rev: "v0.34.0" hooks: - id: markdownlint-docker args: ["--fix"] @@ -43,7 +43,7 @@ repos: types: [yaml] files: examples/.* - repo: https://github.com/rhysd/actionlint - rev: v1.6.23 + rev: v1.6.24 hooks: - id: actionlint-docker args: [-pyflakes=] From 39656fc49b1e31dade244489d09acc21a9e0675a Mon Sep 17 00:00:00 2001 From: erikayao93 Date: Fri, 9 Jun 2023 17:05:50 +0000 Subject: [PATCH 08/16] Updated import logic for TypedDict --- aws_lambda_powertools/logging/types.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/aws_lambda_powertools/logging/types.py b/aws_lambda_powertools/logging/types.py index bfede85234f..bcf6dc888b5 100644 --- a/aws_lambda_powertools/logging/types.py +++ b/aws_lambda_powertools/logging/types.py @@ -2,10 +2,14 @@ import sys -if sys.version_info < (3, 11): - from typing_extensions import NotRequired, TypedDict -else: +if sys.version_info >= (3, 11): from typing import NotRequired, TypedDict +elif sys.version_info >= (3, 8): + from typing import TypedDict + + from typing_extensions import NotRequired +else: + from typing_extensions import NotRequired, TypedDict from typing import Any, Dict, List From 80fcae3bcec97e261a6c3b60c08439455b168de7 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 14 Jun 2023 11:59:09 +0200 Subject: [PATCH 09/16] chore: break import into two branches to ease reading --- aws_lambda_powertools/logging/types.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/aws_lambda_powertools/logging/types.py b/aws_lambda_powertools/logging/types.py index bcf6dc888b5..db1964fc1b6 100644 --- a/aws_lambda_powertools/logging/types.py +++ b/aws_lambda_powertools/logging/types.py @@ -3,13 +3,14 @@ import sys if sys.version_info >= (3, 11): - from typing import NotRequired, TypedDict -elif sys.version_info >= (3, 8): - from typing import TypedDict - + from typing import NotRequired +else: from typing_extensions import NotRequired + +if sys.version_info >= (3, 8): + from typing import TypedDict else: - from typing_extensions import NotRequired, TypedDict + from typing_extensions import TypedDict from typing import Any, Dict, List From 1a3d33edd7b86a6e83a5754f94a27122488892f8 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 14 Jun 2023 12:23:32 +0200 Subject: [PATCH 10/16] chore: introduce LogRecord type alias for PowertoolsLogRecord and Dict --- aws_lambda_powertools/logging/formatter.py | 11 ++++++----- aws_lambda_powertools/logging/formatters/datadog.py | 7 ++++--- aws_lambda_powertools/logging/types.py | 9 ++++++++- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/aws_lambda_powertools/logging/formatter.py b/aws_lambda_powertools/logging/formatter.py index 3def707eab7..884961a1927 100644 --- a/aws_lambda_powertools/logging/formatter.py +++ b/aws_lambda_powertools/logging/formatter.py @@ -8,11 +8,12 @@ from abc import ABCMeta, abstractmethod from datetime import datetime, timezone from functools import partial -from typing import Any, Callable, Dict, Iterable, List, Mapping, Optional, Tuple, Union +from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union + +from aws_lambda_powertools.logging.types import LogRecord from ..shared import constants from ..shared.functions import powertools_dev_is_set -from .types import PowertoolsLogRecord RESERVED_LOG_ATTRS = ( "name", @@ -69,8 +70,8 @@ class LambdaPowertoolsFormatter(BasePowertoolsFormatter): def __init__( self, - json_serializer: Optional[Callable[[Mapping], str]] = None, - json_deserializer: Optional[Callable[[Union[Dict, str, bool, int, float]], str]] = None, + json_serializer: Callable[[LogRecord], str] | None = None, + json_deserializer: Callable[[Dict | str | bool | int | float], str] | None = None, json_default: Optional[Callable[[Any], Any]] = None, datefmt: Optional[str] = None, use_datetime_directive: bool = False, @@ -147,7 +148,7 @@ def __init__( super().__init__(datefmt=self.datefmt) - def serialize(self, log: PowertoolsLogRecord | Mapping) -> str: + def serialize(self, log: LogRecord) -> str: """Serialize structured log dict to JSON str""" return self.json_serializer(log) diff --git a/aws_lambda_powertools/logging/formatters/datadog.py b/aws_lambda_powertools/logging/formatters/datadog.py index 1caf7741ab1..15218302250 100644 --- a/aws_lambda_powertools/logging/formatters/datadog.py +++ b/aws_lambda_powertools/logging/formatters/datadog.py @@ -1,15 +1,16 @@ from __future__ import annotations -from typing import Any, Callable, Mapping +from typing import Any, Callable, Dict from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter +from aws_lambda_powertools.logging.types import LogRecord class DatadogLogFormatter(LambdaPowertoolsFormatter): def __init__( self, - json_serializer: Callable[[Mapping], str] | None = None, - json_deserializer: Callable[[dict | str | bool | int | float], str] | None = None, + json_serializer: Callable[[LogRecord], str] | None = None, + json_deserializer: Callable[[Dict | str | bool | int | float], str] | None = None, json_default: Callable[[Any], Any] | None = None, datefmt: str | None = None, use_datetime_directive: bool = False, diff --git a/aws_lambda_powertools/logging/types.py b/aws_lambda_powertools/logging/types.py index db1964fc1b6..ede369491f1 100644 --- a/aws_lambda_powertools/logging/types.py +++ b/aws_lambda_powertools/logging/types.py @@ -12,7 +12,14 @@ else: from typing_extensions import TypedDict -from typing import Any, Dict, List +if sys.version_info >= (3, 10): + from typing import TypeAlias +else: + from typing_extensions import TypeAlias + +from typing import Any, Dict, List, Union + +LogRecord: TypeAlias = Union[Dict[str, Any], "PowertoolsLogRecord"] class PowertoolsLogRecord(TypedDict): From 77c08c49c1f2b6bcbf6499998ef6a130d96a4e25 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 14 Jun 2023 12:33:44 +0200 Subject: [PATCH 11/16] fix: ignore typeddict specific checks and explain why --- examples/logger/src/bring_your_own_formatter.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/logger/src/bring_your_own_formatter.py b/examples/logger/src/bring_your_own_formatter.py index 985d45960a0..9cb602ab722 100644 --- a/examples/logger/src/bring_your_own_formatter.py +++ b/examples/logger/src/bring_your_own_formatter.py @@ -1,17 +1,16 @@ from __future__ import annotations -from typing import Mapping - from aws_lambda_powertools import Logger from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter -from aws_lambda_powertools.logging.types import PowertoolsLogRecord +from aws_lambda_powertools.logging.types import LogRecord class CustomFormatter(LambdaPowertoolsFormatter): - def serialize(self, log: PowertoolsLogRecord | Mapping) -> str: + def serialize(self, log: LogRecord) -> str: """Serialize final structured log dict to JSON str""" - log["event"] = log.pop("message") # type: ignore - return self.json_serializer(log) + # in this example, log["message"] is a required field but we want to remap and delete, hence mypy ignore checks + log["event"] = log.pop("message") # type: ignore[typeddict-unknown-key,misc] + return self.json_serializer(log) logger = Logger(service="payment", logger_formatter=CustomFormatter()) From 2b504ed64f596847f504587f48c14a1072996f12 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 14 Jun 2023 13:43:24 +0200 Subject: [PATCH 12/16] chore: move to pipe union annotation; fqdn imports --- aws_lambda_powertools/logging/formatter.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/aws_lambda_powertools/logging/formatter.py b/aws_lambda_powertools/logging/formatter.py index 884961a1927..03bb4211f49 100644 --- a/aws_lambda_powertools/logging/formatter.py +++ b/aws_lambda_powertools/logging/formatter.py @@ -11,9 +11,8 @@ from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union from aws_lambda_powertools.logging.types import LogRecord - -from ..shared import constants -from ..shared.functions import powertools_dev_is_set +from aws_lambda_powertools.shared import constants +from aws_lambda_powertools.shared.functions import powertools_dev_is_set RESERVED_LOG_ATTRS = ( "name", @@ -72,10 +71,10 @@ def __init__( self, json_serializer: Callable[[LogRecord], str] | None = None, json_deserializer: Callable[[Dict | str | bool | int | float], str] | None = None, - json_default: Optional[Callable[[Any], Any]] = None, - datefmt: Optional[str] = None, + json_default: Callable[[Any], Any] | None = None, + datefmt: str | None = None, use_datetime_directive: bool = False, - log_record_order: Optional[List[str]] = None, + log_record_order: List[str] | None = None, utc: bool = False, use_rfc3339: bool = False, **kwargs, From b1e6a17cf69e81fd2af984201b433139172e64b2 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 14 Jun 2023 13:47:05 +0200 Subject: [PATCH 13/16] chore: fix docs highlighting --- docs/core/logger.md | 2 +- examples/logger/src/bring_your_own_formatter.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/core/logger.md b/docs/core/logger.md index 16f81e8b2ba..08bf663bb0a 100644 --- a/docs/core/logger.md +++ b/docs/core/logger.md @@ -604,7 +604,7 @@ For these, you can override the `serialize` method from [LambdaPowertoolsFormatt === "bring_your_own_formatter.py" - ```python hl_lines="2 5-6 12" + ```python hl_lines="2-3 6 11-12 15" --8<-- "examples/logger/src/bring_your_own_formatter.py" ``` diff --git a/examples/logger/src/bring_your_own_formatter.py b/examples/logger/src/bring_your_own_formatter.py index 9cb602ab722..a4b303558bb 100644 --- a/examples/logger/src/bring_your_own_formatter.py +++ b/examples/logger/src/bring_your_own_formatter.py @@ -1,5 +1,3 @@ -from __future__ import annotations - from aws_lambda_powertools import Logger from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter from aws_lambda_powertools.logging.types import LogRecord @@ -8,7 +6,8 @@ class CustomFormatter(LambdaPowertoolsFormatter): def serialize(self, log: LogRecord) -> str: """Serialize final structured log dict to JSON str""" - # in this example, log["message"] is a required field but we want to remap and delete, hence mypy ignore checks + # in this example, log["message"] is a required field + # but we want to remap to "event" and delete "message", hence mypy ignore checks log["event"] = log.pop("message") # type: ignore[typeddict-unknown-key,misc] return self.json_serializer(log) From 26dc9bf48f389673bd1f069be257db889a4eb1cd Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 14 Jun 2023 13:49:31 +0200 Subject: [PATCH 14/16] chore: use immutable version for markdownlint-cli --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 08e6e78567b..e84a9c1a069 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -30,7 +30,7 @@ repos: language: system types: [python] - repo: https://github.com/igorshubovych/markdownlint-cli - rev: "v0.34.0" + rev: "ce0d77ac47dc921b62429804fe763d4d35f66a76" # v0.34.0 hooks: - id: markdownlint-docker args: ["--fix"] From 318255e5bdfc333cc8a6ca38b5f20693f773a13a Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 14 Jun 2023 13:53:33 +0200 Subject: [PATCH 15/16] chore: use immutable version for actionlint --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e84a9c1a069..4cbcd611f9f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -43,7 +43,7 @@ repos: types: [yaml] files: examples/.* - repo: https://github.com/rhysd/actionlint - rev: v1.6.24 + rev: "fd7ba3c382e13dcc0248e425b4cbc3f1185fa3ee" # v1.6.24 hooks: - id: actionlint-docker args: [-pyflakes=] From 70e9c2af3ea272b5a0b13a484ef520a577b76258 Mon Sep 17 00:00:00 2001 From: heitorlessa Date: Wed, 14 Jun 2023 13:56:40 +0200 Subject: [PATCH 16/16] chore: use immutable version for pre-commit-hooks --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4cbcd611f9f..88a29906a98 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: "f71fa2c1f9cf5cb705f73dffe4b21f7c61470ba9" # v4.4.0 hooks: - id: check-merge-conflict - id: trailing-whitespace