Voltar ao blog

Integração de proxy no pipeline CI/CD: configuração para GitHub Actions, GitLab e Jenkins

Guia completo para integração de proxies em pipelines CI/CD para desenvolvedores: configuração do GitHub Actions, GitLab CI, Jenkins com exemplos de código e soluções para problemas comuns.

📅17 de fevereiro de 2026
```html

Ao automatizar a implantação e os testes, muitas vezes surge a necessidade de usar servidores proxy em processos de CI/CD. Isso pode estar relacionado a políticas de segurança corporativa, teste de funcionalidades de geolocalização ou contorno de rate-limiting ao baixar dependências. Neste guia, vamos explorar a configuração prática de proxy para plataformas populares de CI/CD com exemplos prontos de configurações.

Por que usar proxies em processos de CI/CD

O uso de servidores proxy em processos de implantação automatizados resolve várias tarefas críticas. Em primeiro lugar, muitas redes corporativas exigem que todo o tráfego de saída passe por proxies corporativos para controle de segurança e registro. Sem a configuração adequada, o pipeline de CI/CD simplesmente não conseguirá baixar dependências ou se conectar a serviços externos.

Em segundo lugar, ao testar aplicativos com lógica de geolocalização, é necessário verificar o funcionamento a partir de diferentes países. Por exemplo, se você está desenvolvendo um serviço com conteúdo ou precificação regional, os testes automatizados devem simular usuários de diferentes locais. Aqui, os proxies residenciais com endereços IP das regiões necessárias são úteis.

A terceira razão é contornar rate-limiting e bloqueios. Com execuções frequentes do pipeline, especialmente em grandes equipes, os servidores de CI/CD podem ser submetidos a limitações de API de serviços externos. Por exemplo, a API do GitHub ou repositórios de pacotes podem temporariamente bloquear o IP ao exceder o limite de solicitações. A rotação de proxies ajuda a distribuir a carga.

Importante: Para processos de CI/CD, a estabilidade da conexão é crítica. Use proxies com uptime de pelo menos 99,5% e resposta rápida (menos de 200ms). Proxies instáveis levarão a falhas aleatórias nas compilações e perda de tempo da equipe na investigação.

Configuração de proxy no GitHub Actions

O GitHub Actions é uma das plataformas mais populares para CI/CD. A configuração de proxy aqui é feita através de variáveis de ambiente, que podem ser definidas no nível do workflow ou em toda a organização. Vamos considerar algumas maneiras de integração.

Configuração básica através de variáveis de ambiente

A maneira mais simples é definir as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY no início do job. A maioria das ferramentas (curl, wget, npm, pip) usa automaticamente essas variáveis:

name: CI com Proxy

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    
    env:
      HTTP_PROXY: http://proxy.example.com:8080
      HTTPS_PROXY: http://proxy.example.com:8080
      NO_PROXY: localhost,127.0.0.1,.internal.domain
    
    steps:
      - uses: actions/checkout@v3
      
      - name: Configurar Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'
      
      - name: Instalar dependências
        run: npm install
      
      - name: Executar testes
        run: npm test

A variável NO_PROXY é crítica — ela exclui endereços locais e serviços internos da proxy. Sem ela, podem ocorrer problemas de conexão com localhost ou contêineres Docker internos.

Armazenamento seguro de credenciais através do GitHub Secrets

Se o proxy requer autenticação, nunca armazene o login e a senha em texto claro no arquivo do workflow. Use o GitHub Secrets:

name: CI com Proxy Autenticado

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v3
      
      - name: Configurar Proxy
        run: |
          echo "HTTP_PROXY=http://${{ secrets.PROXY_USER }}:${{ secrets.PROXY_PASS }}@${{ secrets.PROXY_HOST }}:${{ secrets.PROXY_PORT }}" >> $GITHUB_ENV
          echo "HTTPS_PROXY=http://${{ secrets.PROXY_USER }}:${{ secrets.PROXY_PASS }}@${{ secrets.PROXY_HOST }}:${{ secrets.PROXY_PORT }}" >> $GITHUB_ENV
          echo "NO_PROXY=localhost,127.0.0.1" >> $GITHUB_ENV
      
      - name: Testar conexão do proxy
        run: curl -I https://api.github.com
      
      - name: Instalar dependências
        run: npm ci

Crie secrets nas configurações do repositório: Configurações → Secrets e variáveis → Ações → Novo segredo do repositório. Adicione PROXY_USER, PROXY_PASS, PROXY_HOST e PROXY_PORT. Esses valores serão criptografados e não estarão disponíveis nos logs.

Configuração de proxy para etapas específicas

Às vezes, é necessário usar o proxy apenas para operações específicas, por exemplo, apenas para baixar dependências, mas não para a implantação. Defina as variáveis no nível de uma etapa específica:

steps:
  - name: Baixar dependências via proxy
    env:
      HTTP_PROXY: http://proxy.example.com:8080
      HTTPS_PROXY: http://proxy.example.com:8080
    run: npm install
  
  - name: Implantar sem proxy
    run: ./deploy.sh

Integração de proxy com GitLab CI/CD

O GitLab CI/CD oferece vários níveis de configuração de proxy: no nível do runner, no nível do projeto e no nível de um job específico. A escolha depende se o proxy é necessário para todos os projetos ou apenas para específicos.

Configuração de proxy no nível do GitLab Runner

Se você estiver usando um GitLab Runner auto-hospedado e todos os projetos devem funcionar através do proxy, configure-o na configuração do runner. Edite o arquivo /etc/gitlab-runner/config.toml:

[[runners]]
  name = "docker-runner"
  url = "https://gitlab.com/"
  token = "YOUR_TOKEN"
  executor = "docker"
  
  [runners.docker]
    image = "alpine:latest"
    privileged = false
    
  [runners.docker.services_environment]
    HTTP_PROXY = "http://proxy.example.com:8080"
    HTTPS_PROXY = "http://proxy.example.com:8080"
    NO_PROXY = "localhost,127.0.0.1,.gitlab.com"

Após alterar a configuração, reinicie o runner: sudo gitlab-runner restart. Agora todos os jobs nesse runner usarão automaticamente o proxy.

Configuração através do .gitlab-ci.yml

Para configurar o proxy no nível de um projeto específico, use variáveis no arquivo .gitlab-ci.yml. Esta é uma abordagem mais flexível, permitindo que diferentes projetos usem proxies diferentes:

variables:
  HTTP_PROXY: "http://proxy.example.com:8080"
  HTTPS_PROXY: "http://proxy.example.com:8080"
  NO_PROXY: "localhost,127.0.0.1,.internal"

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - echo "Proxy configurado: $HTTP_PROXY"
    - npm install
    - npm run build
  artifacts:
    paths:
      - dist/

test:
  stage: test
  script:
    - npm test
  dependencies:
    - build

Uso de Variáveis do GitLab CI/CD para credenciais

Para armazenar dados sensíveis, use Variáveis do CI/CD nas configurações do projeto: Configurações → CI/CD → Variáveis. Crie variáveis protegidas e mascaradas:

  • PROXY_URL — URL completa com credenciais (mascarada)
  • PROXY_HOST — host do servidor proxy
  • PROXY_PORT — porta
  • PROXY_USER e PROXY_PASS — para armazenamento separado

Em seguida, use-os no .gitlab-ci.yml:

build:
  stage: build
  before_script:
    - export HTTP_PROXY="http://${PROXY_USER}:${PROXY_PASS}@${PROXY_HOST}:${PROXY_PORT}"
    - export HTTPS_PROXY="http://${PROXY_USER}:${PROXY_PASS}@${PROXY_HOST}:${PROXY_PORT}"
  script:
    - npm install
    - npm run build

Configuração de proxy no Jenkins

O Jenkins oferece várias maneiras de configurar proxies, dependendo da arquitetura: configurações globais para o Jenkins master, configurações para agentes específicos ou configurações no nível de pipelines individuais.

Configuração global de proxy para Jenkins

Para configurar o proxy que será usado pelo Jenkins para atualizações de plugins e outras operações internas, vá para Gerenciar Jenkins → Gerenciar Plugins → Avançado. Na seção Configuração do Proxy HTTP, especifique:

  • Servidor: proxy.example.com
  • Porta: 8080
  • Nome de usuário e Senha (se a autenticação for necessária)
  • Host sem Proxy: localhost,127.0.0.1,.internal

Esta configuração afeta apenas o próprio Jenkins, mas não os jobs. Para jobs, uma configuração separada é necessária.

Configuração de proxy para Jenkins Pipeline

No Jenkinsfile, você pode definir variáveis de ambiente para todo o pipeline ou para estágios específicos:

pipeline {
    agent any
    
    environment {
        HTTP_PROXY = 'http://proxy.example.com:8080'
        HTTPS_PROXY = 'http://proxy.example.com:8080'
        NO_PROXY = 'localhost,127.0.0.1,.internal'
    }
    
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
                sh 'npm run build'
            }
        }
        
        stage('Test') {
            steps {
                sh 'npm test'
            }
        }
    }
}

Uso de Credenciais do Jenkins para proxy

Para armazenar credenciais de proxy de forma segura, use o Armazenamento de Credenciais do Jenkins. Crie credenciais do tipo "Nome de usuário com senha" em Gerenciar Jenkins → Gerenciar Credenciais, e depois use-as no pipeline:

pipeline {
    agent any
    
    stages {
        stage('Build com Proxy Autenticado') {
            steps {
                withCredentials([usernamePassword(
                    credentialsId: 'proxy-credentials',
                    usernameVariable: 'PROXY_USER',
                    passwordVariable: 'PROXY_PASS'
                )]) {
                    sh '''
                        export HTTP_PROXY="http://${PROXY_USER}:${PROXY_PASS}@proxy.example.com:8080"
                        export HTTPS_PROXY="http://${PROXY_USER}:${PROXY_PASS}@proxy.example.com:8080"
                        npm install
                    '''
                }
            }
        }
    }
}

Configuração de proxy para agentes do Jenkins

Se você estiver usando agentes do Jenkins separados (nodes), configure o proxy para cada agente individualmente. Na configuração do agente (Gerenciar Jenkins → Gerenciar Nós → Configurar), adicione nas variáveis de ambiente:

HTTP_PROXY=http://proxy.example.com:8080
HTTPS_PROXY=http://proxy.example.com:8080
NO_PROXY=localhost,127.0.0.1

Proxy para Docker em CI/CD

O Docker é uma parte essencial dos modernos processos de CI/CD. A configuração de proxy para o Docker tem suas particularidades, pois é necessário configurar o proxy tanto para o daemon do Docker quanto para os contêineres.

Configuração de proxy para o daemon do Docker

Para que o daemon do Docker possa baixar imagens através do proxy, crie um arquivo drop-in do systemd. Em um sistema Linux, crie um diretório e um arquivo:

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

Adicione o seguinte conteúdo:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"
Environment="HTTPS_PROXY=http://proxy.example.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1,.internal,docker.io"

Reinicie a configuração e o Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl show --property=Environment docker

Proxy para contêineres durante a construção

Se os contêineres precisarem de acesso através do proxy durante a construção (por exemplo, para instalar pacotes), passe as variáveis através de build args no Dockerfile:

FROM node:18-alpine

ARG HTTP_PROXY
ARG HTTPS_PROXY
ARG NO_PROXY

ENV HTTP_PROXY=${HTTP_PROXY}
ENV HTTPS_PROXY=${HTTPS_PROXY}
ENV NO_PROXY=${NO_PROXY}

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .

# Remove as variáveis de proxy para runtime
ENV HTTP_PROXY=
ENV HTTPS_PROXY=

CMD ["npm", "start"]

No pipeline de CI/CD, passe os build args:

# GitHub Actions
- name: Construir imagem Docker com proxy
  run: |
    docker build \
      --build-arg HTTP_PROXY=${{ secrets.PROXY_URL }} \
      --build-arg HTTPS_PROXY=${{ secrets.PROXY_URL }} \
      --build-arg NO_PROXY=localhost,127.0.0.1 \
      -t myapp:latest .

# GitLab CI
docker build:
  script:
    - docker build 
        --build-arg HTTP_PROXY="${PROXY_URL}"
        --build-arg HTTPS_PROXY="${PROXY_URL}"
        -t myapp:latest .

Docker Compose com proxy

Ao usar o Docker Compose em CI/CD, configure o proxy através de environment no docker-compose.yml:

version: '3.8'

services:
  app:
    build:
      context: .
      args:
        - HTTP_PROXY=${HTTP_PROXY}
        - HTTPS_PROXY=${HTTPS_PROXY}
    environment:
      - HTTP_PROXY=${HTTP_PROXY}
      - HTTPS_PROXY=${HTTPS_PROXY}
      - NO_PROXY=localhost,127.0.0.1
    ports:
      - "3000:3000"

Configuração de proxy para gerenciadores de pacotes

Os gerenciadores de pacotes frequentemente requerem configuração adicional de proxy, especialmente se utilizarem seus próprios arquivos de configuração. Vamos considerar a configuração para gerenciadores de pacotes populares.

NPM e Yarn

O NPM pode usar tanto as variáveis de ambiente HTTP_PROXY/HTTPS_PROXY quanto sua própria configuração. Para configuração explícita em CI/CD:

# No GitHub Actions ou GitLab CI
- name: Configurar proxy do npm
  run: |
    npm config set proxy http://proxy.example.com:8080
    npm config set https-proxy http://proxy.example.com:8080
    npm config set noproxy "localhost,127.0.0.1"

- name: Instalar dependências
  run: npm install

# Para Yarn
- name: Configurar proxy do yarn
  run: |
    yarn config set proxy http://proxy.example.com:8080
    yarn config set https-proxy http://proxy.example.com:8080

Uma alternativa é criar um arquivo .npmrc na raiz do projeto (mas não comite as credenciais!):

# .npmrc (gerado em CI)
proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
noproxy=localhost,127.0.0.1

Python pip e Poetry

O Pip usa variáveis de ambiente, mas também pode ser configurado através de configuração:

# Através de variáveis de ambiente (recomendado para CI)
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
pip install -r requirements.txt

# Ou através de parâmetros do pip
pip install --proxy http://proxy.example.com:8080 -r requirements.txt

# Para Poetry
poetry config http-basic.proxy http://proxy.example.com:8080
poetry install

Maven e Gradle

Para projetos Java, a configuração de proxy requer a criação de arquivos de configuração. Para o Maven, crie settings.xml no pipeline de CI:

- name: Configurar proxy do Maven
  run: |
    mkdir -p ~/.m2
    cat > ~/.m2/settings.xml << EOF
    <settings>
      <proxies>
        <proxy>
          <id>http-proxy</id>
          <active>true</active>
          <protocol>http</protocol>
          <host>proxy.example.com</host>
          <port>8080</port>
          <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
        </proxy>
      </proxies>
    </settings>
    EOF

- name: Construir com Maven
  run: mvn clean install

Para o Gradle, adicione as configurações em gradle.properties:

systemProp.http.proxyHost=proxy.example.com
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.example.com
systemProp.https.proxyPort=8080
systemProp.http.nonProxyHosts=localhost|127.0.0.1

Armazenamento seguro de credenciais de proxy

O armazenamento de credenciais de proxy é um aspecto crítico da segurança em CI/CD. O vazamento desses dados pode levar ao uso não autorizado do proxy e a perdas financeiras. Vamos considerar as melhores práticas para diferentes plataformas.

GitHub Actions Secrets

O GitHub Actions oferece três níveis de segredos: repositório, ambiente e organização. Para credenciais de proxy, use:

  • Segredos do repositório — para projetos onde o proxy é necessário apenas em um repositório
  • Segredos da organização — se um proxy é usado em todos os projetos da organização
  • Segredos do ambiente — para diferentes proxies em ambientes de staging/produção

Regras importantes de segurança:

  • Nunca exiba segredos nos logs: o GitHub os mascara automaticamente, mas é melhor evitar o echo
  • Use credenciais diferentes para diferentes ambientes
  • Rotacione regularmente as senhas do proxy (pelo menos a cada 90 dias)
  • Limite o acesso aos segredos através de regras de proteção de branch

GitLab CI/CD Variables

O GitLab oferece opções adicionais de proteção para variáveis:

  • Protegido — a variável está disponível apenas em branches protegidas (main, production)
  • Mascarado — o valor é automaticamente ocultado nos logs
  • Escopo de ambiente — restrição de uso para ambientes específicos

Configuração recomendada para credenciais de proxy:

# Configurações → CI/CD → Variáveis
PROXY_USER: myuser (Protegido: Sim, Mascarado: Sim)
PROXY_PASS: secret123 (Protegido: Sim, Mascarado: Sim)
PROXY_HOST: proxy.example.com (Protegido: Não, Mascarado: Não)
PROXY_PORT: 8080 (Protegido: Não, Mascarado: Não)

Armazenamento de Credenciais do Jenkins

O Armazenamento de Credenciais do Jenkins suporta vários tipos de armazenamento de credenciais. Para proxy, recomenda-se:

  • Usar "Nome de usuário com senha" para login/senha do proxy
  • Configurar credenciais de nível de pasta para diferentes equipes/projetos
  • Ativar o Plugin de Vinculação de Credenciais para uso seguro no Pipeline
  • Configurar registro de auditoria para monitorar o uso de credenciais

Sistemas externos de gerenciamento de segredos

Para ambientes corporativos, recomenda-se usar sistemas especializados de gerenciamento de segredos: HashiCorp Vault, AWS Secrets Manager, Azure Key Vault ou Google Secret Manager. Exemplo de integração com HashiCorp Vault no GitHub Actions:

- name: Importar Segredos do Vault
  uses: hashicorp/vault-action@v2
  with:
    url: https://vault.example.com
    token: ${{ secrets.VAULT_TOKEN }}
    secrets: |
      secret/data/proxy proxy_user | PROXY_USER ;
      secret/data/proxy proxy_pass | PROXY_PASS ;
      secret/data/proxy proxy_host | PROXY_HOST

- name: Configurar Proxy
  run: |
    export HTTP_PROXY="http://${PROXY_USER}:${PROXY_PASS}@${PROXY_HOST}:8080"
    npm install

Solução de problemas comuns

Ao integrar proxies em CI/CD, frequentemente surgem os mesmos problemas. Vamos considerar os mais comuns e suas soluções.

Problema: Timeout de conexão ao baixar dependências

Sintomas: npm install, pip install ou docker pull falham com erro de timeout após 30-60 segundos.

Causas:

  • O servidor proxy está indisponível ou sobrecarregado
  • Formato incorreto da URL do proxy (esqueceu http:// no início)
  • O proxy requer autenticação, mas as credenciais não foram fornecidas
  • O firewall bloqueia a conexão do runner de CI/CD ao proxy

Solução:

# 1. Verifique a disponibilidade do proxy
- name: Testar conectividade do proxy
  run: |
    curl -v -x http://proxy.example.com:8080 https://www.google.com
    echo "Teste do proxy concluído"

# 2. Aumente o timeout para npm
- name: Instalar com timeout aumentado
  run: |
    npm config set fetch-timeout 300000
    npm install

# 3. Verifique o formato da URL
- name: Depurar configuração do proxy
  run: |
    echo "HTTP_PROXY: $HTTP_PROXY"
    echo "HTTPS_PROXY: $HTTPS_PROXY"
    # Deve ser: http://user:pass@host:port

Problema: Falha na verificação do certificado SSL

Sintomas: Erros como "Problema com o certificado SSL: não foi possível obter o certificado emissor local" ou "CERT_UNTRUSTED".

Causa: Proxies corporativos frequentemente realizam inspeção SSL, substituindo certificados. O runner de CI/CD não confia no CA corporativo.

Solução:

# Opção 1: Adicionar o certificado CA corporativo
- name: Instalar certificado CA corporativo
  run: |
    sudo cp corporate-ca.crt /usr/local/share/ca-certificates/
    sudo update-ca-certificates

# Opção 2: Desativar a verificação SSL (NÃO recomendado para produção!)
- name: Instalar com verificação SSL desativada
  run: |
    npm config set strict-ssl false
    npm install
  env:
    NODE_TLS_REJECT_UNAUTHORIZED: 0

# Opção 3: Usar proxy apenas para HTTP, HTTPS diretamente
- name: Uso seletivo de proxy
  run: npm install
  env:
    HTTP_PROXY: http://proxy.example.com:8080
    # HTTPS_PROXY não é definido

Aviso: Desativar a verificação de certificados SSL cria um sério risco de segurança. Use essa abordagem apenas para redes corporativas internas e adicione o CA corporativo aos confiáveis.

Problema: Proxy funciona para alguns comandos, mas não para outros

Sintomas: npm install funciona através do proxy, mas git clone ou docker pull ignoram as configurações do proxy.

Causa: Diferentes ferramentas usam diferentes mecanismos para configurar proxies. Git e Docker têm seus próprios arquivos de configuração.

Solução:

# Configuração do proxy do Git
- name: Configurar proxy do Git
  run: |
    git config --global http.proxy http://proxy.example.com:8080
    git config --global https.proxy http://proxy.example.com:8080

# Configuração do proxy do Docker (veja a seção Docker acima)
# Para wget/curl
- name: Configurar wget/curl
  run: |
    echo "use_proxy = on" >> ~/.wgetrc
    echo "http_proxy = http://proxy.example.com:8080" >> ~/.wgetrc
    echo "https_proxy = http://proxy.example.com:8080" >> ~/.wgetrc

Problema: Serviços internos indisponíveis com proxy ativado

Sintomas: Após configurar o proxy, as conexões com localhost, contêineres Docker internos ou serviços corporativos pararam de funcionar.

Causa: A variável NO_PROXY está configurada incorretamente, todas as solicitações estão passando pelo proxy, incluindo as locais.

Solução:

# Configuração correta do NO_PROXY
env:
  HTTP_PROXY: http://proxy.example.com:8080
  HTTPS_PROXY: http://proxy.example.com:8080
  NO_PROXY: |
    localhost,
    127.0.0.1,
    0.0.0.0,
    .internal,
    .local,
    .corp.example.com,
    docker.internal,
    host.docker.internal

# Para Docker Compose, adicione também
services:
  app:
    environment:
      - NO_PROXY=localhost,127.0.0.1,db,redis
      # db e redis são nomes de outros serviços no compose

Problema: Credenciais do proxy aparecem nos logs

Sintomas: As senhas do proxy aparecem em texto claro nos logs de CI/CD.

Causa: Exibição de variáveis de ambiente através de echo ou modo verbose dos comandos.

Solução:

# ❌ RUIM - credenciais nos logs
- name: Depurar proxy
  run: |
    echo "Proxy: $HTTP_PROXY"  # Mostrará http://user:pass@host:port
    curl -v ...  # Modo verbose mostra credenciais

# ✅ BOM - saída segura
- name: Depurar proxy (seguro)
  run: |
    echo "Host do proxy configurado: $(echo $HTTP_PROXY | cut -d'@' -f2)"
    # Mostrará apenas host:port
    
# Use secrets para mascarar
- name: Configurar proxy
  env:
    PROXY_URL: ${{ secrets.PROXY_URL }}  # O GitHub mascara automaticamente
  run: |
    export HTTP_PROXY="$PROXY_URL"

Conclusão

A integração de proxies em pipelines de CI/CD é um aspecto importante da automação, que garante segurança, conformidade com políticas corporativas e a capacidade de testar funcionalidades de geolocalização. Neste guia, exploramos maneiras práticas de configurar proxies para GitHub Actions, GitLab CI, Jenkins, Docker e gerenciadores de pacotes populares.

Pontos-chave a serem lembrados ao configurar proxies em CI/CD: sempre use armazenamento seguro de credenciais através dos mecanismos integrados de segredos das plataformas, configure corretamente o NO_PROXY para excluir serviços locais e internos, teste a conexão ao proxy antes das operações principais e monitore os logs para vazamentos de dados sensíveis. Para ambientes de produção críticos, recomenda-se usar sistemas externos de gerenciamento de segredos, como HashiCorp Vault.

A escolha do tipo de proxy depende de suas necessidades: para redes corporativas, geralmente são usados proxies HTTP/HTTPS existentes, para testar funcionalidades de geolocalização, são adequados proxies residenciais com IPs de países necessários, e para downloads de dependências em alta velocidade, podem ser usados proxies de data center. É importante garantir um alto uptime dos servidores proxy, pois sua indisponibilidade levará à falha de todas as compilações e bloqueará o trabalho da equipe de desenvolvimento.

Ao enfrentar problemas, comece verificando a disponibilidade básica do proxy através do curl ou wget, em seguida, verifique a formatação da URL e as credenciais, e só depois passe para configurações específicas de ferramentas. A maioria dos problemas é resolvida com a configuração correta das variáveis de ambiente HTTP_PROXY, HTTPS_PROXY e NO_PROXY.

```