Skip to content

Conversation

@bebound
Copy link
Contributor

@bebound bebound commented Apr 27, 2025

Related command

Description

Backport #31159

@azure-client-tools-bot-prd
Copy link

Hi @bebound,
Usually we only allow pull requests to be submitted to the dev branch, please double check your pull request target branch dev-lts-2.66.

@azure-client-tools-bot-prd
Copy link

azure-client-tools-bot-prd bot commented Apr 27, 2025

❌AzureCLI-FullTest
🔄acr
️✔️2020-09-01-hybrid
️✔️3.9
🔄latest
️✔️3.12
🔄3.9
🔄acs
️✔️2020-09-01-hybrid
️✔️3.9
🔄latest
🔄3.12
🔄3.9
🔄advisor
🔄latest
️✔️3.12
🔄3.9
️✔️ams
️✔️latest
️✔️3.12
️✔️3.9
🔄apim
🔄latest
🔄3.12
🔄3.9
🔄appconfig
🔄latest
🔄3.12
🔄3.9
🔄appservice
🔄latest
🔄3.12
🔄3.9
🔄aro
🔄latest
🔄3.12
🔄3.9
🔄backup
🔄latest
🔄3.12
🔄3.9
🔄batch
🔄latest
️✔️3.12
🔄3.9
️✔️batchai
️✔️latest
️✔️3.12
️✔️3.9
🔄billing
🔄latest
🔄3.12
🔄3.9
🔄botservice
🔄latest
🔄3.12
🔄3.9
️✔️cdn
️✔️latest
️✔️3.12
️✔️3.9
🔄cloud
🔄latest
🔄3.12
🔄3.9
🔄cognitiveservices
🔄latest
🔄3.12
🔄3.9
️✔️compute_recommender
️✔️latest
️✔️3.12
️✔️3.9
️✔️config
️✔️latest
️✔️3.12
️✔️3.9
🔄configure
🔄latest
️✔️3.12
🔄3.9
🔄consumption
🔄latest
🔄3.12
🔄3.9
🔄container
🔄latest
🔄3.12
🔄3.9
🔄containerapp
🔄latest
🔄3.12
🔄3.9
❌core
❌2018-03-01-hybrid
❌3.9
Type Test Case Error Message Line
Failed test_detect_credential_for_string self = <azure.cli.core.tests.test_credential_helper.TestCredentialHelper testMethod=test_detect_credential_for_string>

    def test_detect_credential_for_string(self):
        with mock.patch('azure.cli.core.credential_helper.get_secret_masker', side_effect=self.get_test_secret_masker):
            creation_time = '2024-03-07T02:50:56.464790+00:00'
>           containing_credential, 
 = distinguish_credential(creation_time)

src/azure-cli-core/azure/cli/core/tests/test_credential_helper.py:37: 
                                        
src/azure-cli-core/azure/cli/core/credential_helper.py:83: in distinguish_credential
    detections = is_containing_credential(content)
src/azure-cli-core/azure/cli/core/credential_helper.py:44: in is_containing_credential
    return get_secret_masker().detect_secrets(content)
env/lib/python3.9/site-packages/microsoft_security_utilities_secret_masker/secret_masker.py:99: in detect_secrets
    detections.extend(regex_pattern.get_detections(input, self.generate_sha256_hashes))
env/lib/python3.9/site-packages/microsoft_security_utilities_secret_masker/regex_pattern.py:126: in get_detections
    for m in re.finditer(self.pattern, input, self.regex_flags):
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/re.py:248: in finditer
    return compile(pattern, flags).finditer(string)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/re.py:304: in compile
    p = sre_compile.compile(pattern, flags)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_compile.py:788: in compile
    p = sre_parse.parse(p, flags)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_parse.py:955: in parse
    p = parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_parse.py:444: in parse_sub
    itemsappend(parse(source, state, verbose, nested + 1,
 
 
 
 
 
 
                                 _ 

source = <sre_parse.Tokenizer object at 0x7f0aa548dd90>
state = <sre_parse.State object at 0x7f0aa548ddf0>, verbose = 0, nested = 1
first = True

    def _parse(source, state, verbose, nested, first=False):
        # parse a simple pattern
        subpattern = SubPattern(state)
    
        # precompute constants into local variables
        subpatternappend = subpattern.append
        sourceget = source.get
        sourcematch = source.match
        _len = len
        _ord = ord
    
        while True:
    
            this = source.next
            if this is None:
                break # end of pattern
            if this in "
)":
                break # end of subpattern
            sourceget()
    
            if verbose:
                # skip whitespace and comments
                if this in WHITESPACE:
                    continue
                if this == "#":
                    while True:
                        this = sourceget()
                        if this is None or this == "\n":
                            break
                    continue
    
            if this[0] == "\":
                code = _escape(source, this, state)
                subpatternappend(code)
    
            elif this not in SPECIAL_CHARS:
                subpatternappend((LITERAL, _ord(this)))
    
            elif this == "[":
                here = source.tell() - 1
                # character set
                set = []
                setappend = set.append
    ##          if sourcematch(":"):
    ##              pass # handle character classes
                if source.next == '[':
                    import warnings
                    warnings.warn(
                        'Possible nested set at position %d' % source.tell(),
                        FutureWarning, stacklevel=nested + 6
                    )
                negate = sourcematch("^")
                # check remaining characters
                while True:
                    this = sourceget()
                    if this is None:
                        raise source.error("unterminated character set",
                                           source.tell() - here)
                    if this == "]" and set:
                        break
                    elif this[0] == "\":
                        code1 = _class_escape(source, this)
                    else:
                        if set and this in '-&~
Failed test_redact_credential_for_json The error message is too long, please check the pipeline log for details. src/azure-cli-core/azure/cli/core/tests/test_credential_helper.py:57
Failed test_redact_credential_for_string The error message is too long, please check the pipeline log for details. src/azure-cli-core/azure/cli/core/tests/test_credential_helper.py:43
❌2020-09-01-hybrid
❌3.9
Type Test Case Error Message Line
Failed test_detect_credential_for_string self = <azure.cli.core.tests.test_credential_helper.TestCredentialHelper testMethod=test_detect_credential_for_string>

    def test_detect_credential_for_string(self):
        with mock.patch('azure.cli.core.credential_helper.get_secret_masker', side_effect=self.get_test_secret_masker):
            creation_time = '2024-03-07T02:50:56.464790+00:00'
>           containing_credential, 
 = distinguish_credential(creation_time)

src/azure-cli-core/azure/cli/core/tests/test_credential_helper.py:37: 
                                        
src/azure-cli-core/azure/cli/core/credential_helper.py:83: in distinguish_credential
    detections = is_containing_credential(content)
src/azure-cli-core/azure/cli/core/credential_helper.py:44: in is_containing_credential
    return get_secret_masker().detect_secrets(content)
env/lib/python3.9/site-packages/microsoft_security_utilities_secret_masker/secret_masker.py:99: in detect_secrets
    detections.extend(regex_pattern.get_detections(input, self.generate_sha256_hashes))
env/lib/python3.9/site-packages/microsoft_security_utilities_secret_masker/regex_pattern.py:126: in get_detections
    for m in re.finditer(self.pattern, input, self.regex_flags):
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/re.py:248: in finditer
    return compile(pattern, flags).finditer(string)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/re.py:304: in compile
    p = sre_compile.compile(pattern, flags)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_compile.py:788: in compile
    p = sre_parse.parse(p, flags)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_parse.py:955: in parse
    p = parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_parse.py:444: in parse_sub
    itemsappend(parse(source, state, verbose, nested + 1,
 
 
 
 
 
 
                                 _ 

source = <sre_parse.Tokenizer object at 0x7f5e6b7d81f0>
state = <sre_parse.State object at 0x7f5e6b7d8250>, verbose = 0, nested = 1
first = True

    def _parse(source, state, verbose, nested, first=False):
        # parse a simple pattern
        subpattern = SubPattern(state)
    
        # precompute constants into local variables
        subpatternappend = subpattern.append
        sourceget = source.get
        sourcematch = source.match
        _len = len
        _ord = ord
    
        while True:
    
            this = source.next
            if this is None:
                break # end of pattern
            if this in "
)":
                break # end of subpattern
            sourceget()
    
            if verbose:
                # skip whitespace and comments
                if this in WHITESPACE:
                    continue
                if this == "#":
                    while True:
                        this = sourceget()
                        if this is None or this == "\n":
                            break
                    continue
    
            if this[0] == "\":
                code = _escape(source, this, state)
                subpatternappend(code)
    
            elif this not in SPECIAL_CHARS:
                subpatternappend((LITERAL, _ord(this)))
    
            elif this == "[":
                here = source.tell() - 1
                # character set
                set = []
                setappend = set.append
    ##          if sourcematch(":"):
    ##              pass # handle character classes
                if source.next == '[':
                    import warnings
                    warnings.warn(
                        'Possible nested set at position %d' % source.tell(),
                        FutureWarning, stacklevel=nested + 6
                    )
                negate = sourcematch("^")
                # check remaining characters
                while True:
                    this = sourceget()
                    if this is None:
                        raise source.error("unterminated character set",
                                           source.tell() - here)
                    if this == "]" and set:
                        break
                    elif this[0] == "\":
                        code1 = _class_escape(source, this)
                    else:
                        if set and this in '-&~
Failed test_redact_credential_for_json The error message is too long, please check the pipeline log for details. src/azure-cli-core/azure/cli/core/tests/test_credential_helper.py:57
Failed test_redact_credential_for_string The error message is too long, please check the pipeline log for details. src/azure-cli-core/azure/cli/core/tests/test_credential_helper.py:43
❌latest
❌3.12
Type Test Case Error Message Line
Failed test_detect_credential_for_string self = <azure.cli.core.tests.test_credential_helper.TestCredentialHelper testMethod=test_detect_credential_for_string>

    def test_detect_credential_for_string(self):
        with mock.patch('azure.cli.core.credential_helper.get_secret_masker', side_effect=self.get_test_secret_masker):
            creation_time = '2024-03-07T02:50:56.464790+00:00'
>           containing_credential, 
 = distinguish_credential(creation_time)

src/azure-cli-core/azure/cli/core/tests/test_credential_helper.py:37: 
                                        
src/azure-cli-core/azure/cli/core/credential_helper.py:83: in distinguish_credential
    detections = is_containing_credential(content)
src/azure-cli-core/azure/cli/core/credential_helper.py:44: in is_containing_credential
    return get_secret_masker().detect_secrets(content)
env/lib/python3.12/site-packages/microsoft_security_utilities_secret_masker/secret_masker.py:99: in detect_secrets
    detections.extend(regex_pattern.get_detections(input, self.generate_sha256_hashes))
env/lib/python3.12/site-packages/microsoft_security_utilities_secret_masker/regex_pattern.py:126: in get_detections
    for m in re.finditer(self.pattern, input, self.regex_flags):
/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/re/init.py:224: in finditer
    return compile(pattern, flags).finditer(string)
/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/re/init.py:307: in compile
    p = compiler.compile(pattern, flags)
/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/re/compiler.py:750: in compile
    p = parser.parse(p, flags)
/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/re/parser.py:979: in parse
    p = parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
/opt/hostedtoolcache/Python/3.12.9/x64/lib/python3.12/re/parser.py:460: in parse_sub
    itemsappend(parse(source, state, verbose, nested + 1,
 
 
 
 
 
 
 
 
 
 
 
                             

source = <re._parser.Tokenizer object at 0x7fb5425f2cf0>
state = <re._parser.State object at 0x7fb542611cd0>, verbose = 0, nested = 1
first = True

    def _parse(source, state, verbose, nested, first=False):
        # parse a simple pattern
        subpattern = SubPattern(state)
    
        # precompute constants into local variables
        subpatternappend = subpattern.append
        sourceget = source.get
        sourcematch = source.match
        _len = len
        _ord = ord
    
        while True:
    
            this = source.next
            if this is None:
                break # end of pattern
            if this in "
)":
                break # end of subpattern
            sourceget()
    
            if verbose:
                # skip whitespace and comments
                if this in WHITESPACE:
                    continue
                if this == "#":
                    while True:
                        this = sourceget()
                        if this is None or this == "\n":
                            break
                    continue
    
            if this[0] == "\":
                code = _escape(source, this, state)
                subpatternappend(code)
    
            elif this not in SPECIAL_CHARS:
                subpatternappend((LITERAL, _ord(this)))
    
            elif this == "[":
                here = source.tell() - 1
                # character set
                set = []
                setappend = set.append
    ##          if sourcematch(":"):
    ##              pass # handle character classes
                if source.next == '[':
                    import warnings
                    warnings.warn(
                        'Possible nested set at position %d' % source.tell(),
                        FutureWarning, stacklevel=nested + 6
                    )
                negate = sourcematch("^")
                # check remaining characters
                while True:
                    this = sourceget()
                    if this is None:
                        raise source.error("unterminated character set",
                                           source.tell() - here)
                    if this == "]" and set:
                        break
                    elif this[0] == "\":
                        code1 = _class_escape(source, this)
                    else:
                        if set and this in '-&~
Failed test_redact_credential_for_json The error message is too long, please check the pipeline log for details. azure/cli/core/tests/test_credential_helper.py:57
Failed test_redact_credential_for_string The error message is too long, please check the pipeline log for details. azure/cli/core/tests/test_credential_helper.py:43
❌3.9
Type Test Case Error Message Line
Failed test_detect_credential_for_string self = <azure.cli.core.tests.test_credential_helper.TestCredentialHelper testMethod=test_detect_credential_for_string>

    def test_detect_credential_for_string(self):
        with mock.patch('azure.cli.core.credential_helper.get_secret_masker', side_effect=self.get_test_secret_masker):
            creation_time = '2024-03-07T02:50:56.464790+00:00'
>           containing_credential, 
 = distinguish_credential(creation_time)

src/azure-cli-core/azure/cli/core/tests/test_credential_helper.py:37: 
                                        
src/azure-cli-core/azure/cli/core/credential_helper.py:83: in distinguish_credential
    detections = is_containing_credential(content)
src/azure-cli-core/azure/cli/core/credential_helper.py:44: in is_containing_credential
    return get_secret_masker().detect_secrets(content)
env/lib/python3.9/site-packages/microsoft_security_utilities_secret_masker/secret_masker.py:99: in detect_secrets
    detections.extend(regex_pattern.get_detections(input, self.generate_sha256_hashes))
env/lib/python3.9/site-packages/microsoft_security_utilities_secret_masker/regex_pattern.py:126: in get_detections
    for m in re.finditer(self.pattern, input, self.regex_flags):
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/re.py:248: in finditer
    return compile(pattern, flags).finditer(string)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/re.py:304: in compile
    p = sre_compile.compile(pattern, flags)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_compile.py:788: in compile
    p = sre_parse.parse(p, flags)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_parse.py:955: in parse
    p = parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
/opt/hostedtoolcache/Python/3.9.21/x64/lib/python3.9/sre_parse.py:444: in parse_sub
    itemsappend(parse(source, state, verbose, nested + 1,
 
 
 
 
 
 
                                 _ 

source = <sre_parse.Tokenizer object at 0x7f11c40cf5e0>
state = <sre_parse.State object at 0x7f11c40cf640>, verbose = 0, nested = 1
first = True

    def _parse(source, state, verbose, nested, first=False):
        # parse a simple pattern
        subpattern = SubPattern(state)
    
        # precompute constants into local variables
        subpatternappend = subpattern.append
        sourceget = source.get
        sourcematch = source.match
        _len = len
        _ord = ord
    
        while True:
    
            this = source.next
            if this is None:
                break # end of pattern
            if this in "
)":
                break # end of subpattern
            sourceget()
    
            if verbose:
                # skip whitespace and comments
                if this in WHITESPACE:
                    continue
                if this == "#":
                    while True:
                        this = sourceget()
                        if this is None or this == "\n":
                            break
                    continue
    
            if this[0] == "\":
                code = _escape(source, this, state)
                subpatternappend(code)
    
            elif this not in SPECIAL_CHARS:
                subpatternappend((LITERAL, _ord(this)))
    
            elif this == "[":
                here = source.tell() - 1
                # character set
                set = []
                setappend = set.append
    ##          if sourcematch(":"):
    ##              pass # handle character classes
                if source.next == '[':
                    import warnings
                    warnings.warn(
                        'Possible nested set at position %d' % source.tell(),
                        FutureWarning, stacklevel=nested + 6
                    )
                negate = sourcematch("^")
                # check remaining characters
                while True:
                    this = sourceget()
                    if this is None:
                        raise source.error("unterminated character set",
                                           source.tell() - here)
                    if this == "]" and set:
                        break
                    elif this[0] == "\":
                        code1 = _class_escape(source, this)
                    else:
                        if set and this in '-&~
Failed test_redact_credential_for_json The error message is too long, please check the pipeline log for details. azure/cli/core/tests/test_credential_helper.py:57
Failed test_redact_credential_for_string The error message is too long, please check the pipeline log for details. azure/cli/core/tests/test_credential_helper.py:43
🔄cosmosdb
🔄latest
🔄3.12
🔄3.9
🔄databoxedge
️✔️2020-09-01-hybrid
️✔️3.9
🔄latest
️✔️3.12
🔄3.9
️✔️dla
️✔️latest
️✔️3.12
️✔️3.9
️✔️dls
️✔️latest
️✔️3.12
️✔️3.9
🔄dms
🔄latest
🔄3.12
🔄3.9
🔄eventgrid
🔄latest
🔄3.12
🔄3.9
🔄eventhubs
🔄latest
🔄3.12
🔄3.9
️✔️feedback
️✔️latest
️✔️3.12
️✔️3.9
🔄find
🔄latest
🔄3.12
🔄3.9
🔄hdinsight
🔄latest
🔄3.12
🔄3.9
️✔️identity
️✔️latest
️✔️3.12
️✔️3.9
️✔️iot
️✔️2020-09-01-hybrid
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
🔄keyvault
️✔️2018-03-01-hybrid
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.9
🔄latest
🔄3.12
🔄3.9
️✔️kusto
️✔️latest
️✔️3.12
️✔️3.9
️✔️lab
️✔️latest
️✔️3.12
️✔️3.9
🔄managedservices
🔄latest
🔄3.12
🔄3.9
🔄maps
🔄latest
🔄3.12
🔄3.9
️✔️marketplaceordering
️✔️latest
️✔️3.12
️✔️3.9
🔄monitor
🔄latest
️✔️3.12
🔄3.9
🔄mysql
🔄latest
️✔️3.12
🔄3.9
🔄netappfiles
🔄latest
🔄3.12
🔄3.9
️✔️network
️✔️2018-03-01-hybrid
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
🔄policyinsights
🔄latest
️✔️3.12
🔄3.9
🔄privatedns
🔄latest
🔄3.12
🔄3.9
🔄profile
🔄latest
🔄3.12
🔄3.9
🔄rdbms
🔄latest
🔄3.12
🔄3.9
🔄redis
🔄latest
️✔️3.12
🔄3.9
🔄relay
🔄latest
🔄3.12
🔄3.9
🔄resource
️✔️2018-03-01-hybrid
️✔️3.9
🔄latest
️✔️3.12
🔄3.9
️✔️role
️✔️latest
️✔️3.12
️✔️3.9
🔄search
🔄latest
🔄3.12
🔄3.9
🔄security
🔄latest
🔄3.12
🔄3.9
🔄servicebus
🔄latest
️✔️3.12
🔄3.9
️✔️serviceconnector
️✔️latest
️✔️3.12
️✔️3.9
🔄servicefabric
🔄latest
🔄3.12
🔄3.9
️✔️signalr
️✔️latest
️✔️3.12
️✔️3.9
️✔️sql
️✔️latest
️✔️3.12
️✔️3.9
️✔️sqlvm
️✔️latest
️✔️3.12
️✔️3.9
🔄storage
️✔️2018-03-01-hybrid
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.9
🔄latest
🔄3.12
🔄3.9
️✔️synapse
️✔️latest
️✔️3.12
️✔️3.9
🔄telemetry
️✔️2018-03-01-hybrid
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.9
🔄latest
🔄3.12
🔄3.9
️✔️util
️✔️latest
️✔️3.12
️✔️3.9
🔄vm
️✔️2018-03-01-hybrid
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.9
🔄latest
🔄3.12
🔄3.9

@bebound bebound added the LTS label Apr 27, 2025
@azure-client-tools-bot-prd
Copy link

azure-client-tools-bot-prd bot commented Apr 27, 2025

️✔️AzureCLI-BreakingChangeTest
️✔️Non Breaking Changes

@yonzhan
Copy link
Collaborator

yonzhan commented Apr 27, 2025

LTS

@bebound bebound marked this pull request as ready for review May 6, 2025 06:50
@bebound bebound merged commit 0066c06 into Azure:dev-lts-2.66 May 9, 2025
38 of 50 checks passed
@bebound bebound deleted the backport-31159 branch May 9, 2025 05:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants