{"meta":{"title":"Referência de padrões personalizados","intro":"Use a sintaxe de expressão regular específica para definir padrões personalizados precisos para secret scanning.","product":"Qualidade de segurança e código","breadcrumbs":[{"href":"/pt/code-security","title":"Qualidade de segurança e código"},{"href":"/pt/code-security/reference","title":"Referência"},{"href":"/pt/code-security/reference/secret-security","title":"Segurança secreta"},{"href":"/pt/code-security/reference/secret-security/custom-patterns","title":"Padrões personalizados"}],"documentType":"article"},"body":"# Referência de padrões personalizados\n\nUse a sintaxe de expressão regular específica para definir padrões personalizados precisos para secret scanning.\n\n## Biblioteca de expressões regulares para padrões personalizados\n\nOs padrões personalizados do Secret scanning são definidos usando a [biblioteca Hyperscan](https://github.com/intel/hyperscan) e só dão suporte a constructos regex do Hyperscan, que são um subconjunto da sintaxe PCRE. Os modificadores de opções de hyperscan não são compatíveis. Para obter mais informações sobre os constructos de padrão do Hyperscan, confira [Suporte a padrões](https://intel.github.io/hyperscan/dev-reference/compilation.html#pattern-support) na documentação do Hyperscan.\n\n## Sintaxe para definir manualmente padrões personalizados\n\nA seção **More options <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-chevron-down\" aria-label=\"chevron down icon\" role=\"img\"><path d=\"M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z\"></path></svg>** na interface do usuário ajuda você a escrever expressões regulares manualmente.\n\n* **Formato do segredo**: uma expressão que descreve o formato do próprio segredo.\n* **Antes do segredo**: uma expressão que descreve os caracteres que vêm antes do segredo. Por padrão, isso é definido como `\\A|[^0-9A-Za-z]`, o que significa que o segredo precisa estar no início de uma linha ou ser precedido por um caractere não alfanumérico.\n* **Após o segredo**: uma expressão que descreve os caracteres que vêm após o segredo. Por padrão, isso é definido como `\\z|[^0-9A-Za-z]`, o que significa que o segredo precisa ser seguido por uma nova linha ou por um caractere não alfanumérico.\n* **Requisitos adicionais de correspondência**: uma ou mais expressões opcionais às quais o próprio segredo precisa ou não corresponder.\n\nPara tokens simples você normalmente só precisa especificar um formato de segredo. Os outros campos proporcionam flexibilidade para que você possa especificar segredos mais complexos sem criar expressões regulares complexas.\n\n### Exemplo de padrão personalizado\n\nUma empresa tem um token interno com cinco características. Eles usam os diferentes campos para especificar como identificar tokens da seguinte forma:\n\n| **Característica** | \n              **Campo e expressão regular** |\n|----------------|------------------------------|\n| Comprimento entre 5 e 10 caracteres | Formato do segredo: `[$#%@AA-Za-z0-9]{5,10}` |\n| Não termina com um `.` | Depois do segredo: `[^\\.]` |\n| Contém números e letras maiúsculas | Requisitos adicionais: o segredo precisa corresponder a `[A-Z]` e a `[0-9]` |\n| Não inclui mais de uma letra minúscula consecutiva | Requisitos adicionais: o segredo não deve corresponder a `[a-z]{2,}` |\n| Contém um destes caracteres: `$%@!` | Requisitos adicionais: o segredo precisa corresponder a `[$%@!]` |\n\nEsses tokens iriam corresponder ao padrão personalizado descrito acima:\n\n```shell\na9@AAfT!         # Secret string match: a9@AAfT\nee95GG@ZA942@aa  # Secret string match: @ZA942@a\na9@AA!ee9        # Secret string match: a9@AA\n```\n\nEstas strings não correspondem ao padrão personalizado descrito acima:\n\n```shell\na9@AA.!\na@AAAAA\naa9@AA!ee9\naAAAe9\n```\n\n## Limits\n\nOs Secret scanning dão suporte para até 500 padrões personalizados para cada organização ou conta corporativa e até 100 padrões personalizados por repositório."}