import { criarOcorrencia } from '../../../types/index.js';
export const detectorJenkinsSecurity = {
    nome: 'detector-jenkins-security',
    categoria: 'seguranca',
    descricao: 'Detecta vulnerabilidades em Jenkinsfiles',
    test: (relPath) => relPath.toLowerCase().includes('jenkinsfile'),
    aplicar: (src, relPath) => {
        if (!src)
            return [];
        const ocorrencias = [];
        if (/\bsh\s+['"].*sudo\b/i.test(src)) {
            ocorrencias.push(criarOcorrencia({
                tipo: 'jenkins-dangerous-sudo',
                nivel: 'erro',
                mensagem: 'Uso de sudo em comandos shell detectado',
                relPath,
                linha: 1,
                sugestao: 'Configure permissões no Jenkins Agent ou use Docker containers para evitar necessidade de sudo'
            }));
        }
        if (/image\s*['"]?.*:latest['"]?/i.test(src)) {
            ocorrencias.push(criarOcorrencia({
                tipo: 'jenkins-docker-latest',
                nivel: 'aviso',
                mensagem: 'Uso de imagem :latest em agente Docker',
                relPath,
                linha: 1,
                sugestao: 'Use uma tag de versão fixa para garantir reprodutibilidade do build'
            }));
        }
        if (/\b(password|token|secret)\s*=\s*['"][^$({][^'"]{5,}['"]/i.test(src)) {
            ocorrencias.push(criarOcorrencia({
                tipo: 'jenkins-hardcoded-secrets',
                nivel: 'erro',
                mensagem: 'Potencial segredo hardcoded detectado',
                relPath,
                linha: 1,
                sugestao: 'Use a função credentials(\'ID\') do Jenkins para injetar segredos com segurança'
            }));
        }
        return ocorrencias;
    }
};
//# sourceMappingURL=detector-jenkins-security.js.map