diff --git a/docs/SETUP.md b/docs/SETUP.md index 93a78e3..c11db0b 100644 --- a/docs/SETUP.md +++ b/docs/SETUP.md @@ -19,17 +19,62 @@ curl -fsSL https://bun.sh/install | bash powershell -c "irm bun.sh/install.ps1 | iex" ``` +## Configurar Autenticacao (Repositorio Privado) + +Se o repositorio for privado, configure autenticacao SSH antes de clonar. + +### Opcao 1: SSH Key (Recomendado) + +```bash +# 1. Gerar chave SSH (se nao tiver) +ssh-keygen -t ed25519 -C "seu-email@exemplo.com" +# Pressione Enter para aceitar o local padrao +# Defina uma senha ou deixe em branco + +# 2. Copiar a chave publica +# Linux/macOS/WSL: +cat ~/.ssh/id_ed25519.pub + +# Windows (PowerShell): +Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub + +# Windows (CMD): +type %USERPROFILE%\.ssh\id_ed25519.pub +``` + +**Adicionar a chave nos servicos:** +- **GitHub:** Settings > SSH and GPG keys > New SSH key +- **Forgejo:** Settings > SSH / GPG Keys > Add Key + +### Opcao 2: Personal Access Token (PAT) + +1. **GitHub:** Settings > Developer settings > Personal access tokens > Tokens (classic) +2. Gerar token com permissao `repo` +3. Usar o token como senha quando o git pedir + +Para salvar o token (nao precisar digitar toda vez): +```bash +git config --global credential.helper store +# Proximo push/pull vai pedir usuario e token, e salvar +``` + ## Setup Rapido ### 1. Clonar o repositorio +**Repositorio publico (HTTPS):** ```bash git clone https://github.com/esdrasrenan/sistema-de-chamados.git cd sistema-de-chamados ``` -Ou se ja tiver o repositorio: +**Repositorio privado (SSH):** +```bash +git clone git@github.com:esdrasrenan/sistema-de-chamados.git +cd sistema-de-chamados +``` +Ou se ja tiver o repositorio: ```bash cd sistema-de-chamados git pull origin main @@ -37,17 +82,28 @@ git pull origin main ### 2. Configurar remotes (para CI/CD) +**Repositorio publico (HTTPS):** ```bash -# Adicionar remote do Forgejo (dispara CI/CD) git remote add forgejo https://git.esdrasrenan.com.br/esdras/sistema-de-chamados.git +``` -# Verificar remotes +**Repositorio privado (SSH):** +```bash +# Mudar origin para SSH (se clonou via HTTPS) +git remote set-url origin git@github.com:esdrasrenan/sistema-de-chamados.git + +# Adicionar forgejo via SSH (porta 2222) +git remote add forgejo ssh://git@git.esdrasrenan.com.br:2222/esdras/sistema-de-chamados.git +``` + +**Verificar remotes:** +```bash git remote -v -# Deve mostrar: -# origin https://github.com/esdrasrenan/sistema-de-chamados.git (fetch) -# origin https://github.com/esdrasrenan/sistema-de-chamados.git (push) -# forgejo https://git.esdrasrenan.com.br/esdras/sistema-de-chamados.git (fetch) -# forgejo https://git.esdrasrenan.com.br/esdras/sistema-de-chamados.git (push) +# Deve mostrar (exemplo com SSH): +# origin git@github.com:esdrasrenan/sistema-de-chamados.git (fetch) +# origin git@github.com:esdrasrenan/sistema-de-chamados.git (push) +# forgejo ssh://git@git.esdrasrenan.com.br:2222/esdras/sistema-de-chamados.git (fetch) +# forgejo ssh://git@git.esdrasrenan.com.br:2222/esdras/sistema-de-chamados.git (push) ``` ### 3. Instalar dependencias diff --git a/scripts/setup-dev.sh b/scripts/setup-dev.sh index a45f72a..703411f 100644 --- a/scripts/setup-dev.sh +++ b/scripts/setup-dev.sh @@ -1,9 +1,18 @@ #!/bin/bash # Script de setup para ambiente de desenvolvimento -# Uso: ./scripts/setup-dev.sh +# Uso: ./scripts/setup-dev.sh [--ssh] +# +# Opcoes: +# --ssh Configurar remotes usando SSH (para repositorio privado) set -e +# Verificar se deve usar SSH +USE_SSH=false +if [ "$1" = "--ssh" ]; then + USE_SSH=true +fi + echo "=== Setup do Ambiente de Desenvolvimento ===" echo "" @@ -11,12 +20,14 @@ echo "" RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' +CYAN='\033[0;36m' NC='\033[0m' # No Color # Funcao para printar status ok() { echo -e "${GREEN}[OK]${NC} $1"; } warn() { echo -e "${YELLOW}[AVISO]${NC} $1"; } err() { echo -e "${RED}[ERRO]${NC} $1"; } +info() { echo -e "${CYAN}[INFO]${NC} $1"; } # 1. Verificar pre-requisitos echo "1. Verificando pre-requisitos..." @@ -46,6 +57,31 @@ else exit 1 fi +# Verificar SSH key (se usando SSH) +if [ "$USE_SSH" = true ]; then + echo "" + echo "1.1. Verificando chave SSH..." + if [ -f "$HOME/.ssh/id_ed25519.pub" ] || [ -f "$HOME/.ssh/id_rsa.pub" ]; then + ok "Chave SSH encontrada" + echo " Certifique-se de que a chave esta adicionada no GitHub e Forgejo" + else + warn "Chave SSH nao encontrada!" + echo "" + echo " Para criar uma chave SSH:" + echo " ssh-keygen -t ed25519 -C \"seu-email@exemplo.com\"" + echo "" + echo " Depois adicione a chave publica em:" + echo " - GitHub: Settings > SSH and GPG keys > New SSH key" + echo " - Forgejo: Settings > SSH / GPG Keys > Add Key" + echo "" + read -p " Deseja continuar mesmo assim? (s/N) " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Ss]$ ]]; then + exit 1 + fi + fi +fi + echo "" # 2. Configurar remotes do Git @@ -57,11 +93,39 @@ if [ ! -d ".git" ]; then exit 1 fi +# URLs dos remotes +if [ "$USE_SSH" = true ]; then + ORIGIN_URL="git@github.com:esdrasrenan/sistema-de-chamados.git" + FORGEJO_URL="ssh://git@git.esdrasrenan.com.br:2222/esdras/sistema-de-chamados.git" + info "Usando SSH para os remotes (repositorio privado)" +else + ORIGIN_URL="https://github.com/esdrasrenan/sistema-de-chamados.git" + FORGEJO_URL="https://git.esdrasrenan.com.br/esdras/sistema-de-chamados.git" + info "Usando HTTPS para os remotes (repositorio publico)" +fi + +# Configurar/atualizar origin +CURRENT_ORIGIN=$(git remote get-url origin 2>/dev/null || echo "") +if [ "$CURRENT_ORIGIN" != "$ORIGIN_URL" ]; then + if [ -n "$CURRENT_ORIGIN" ]; then + git remote set-url origin "$ORIGIN_URL" + ok "Remote 'origin' atualizado para $ORIGIN_URL" + fi +else + ok "Remote 'origin' ja configurado corretamente" +fi + # Verificar/adicionar remote forgejo if git remote get-url forgejo &> /dev/null; then - ok "Remote 'forgejo' ja configurado" + CURRENT_FORGEJO=$(git remote get-url forgejo) + if [ "$CURRENT_FORGEJO" != "$FORGEJO_URL" ]; then + git remote set-url forgejo "$FORGEJO_URL" + ok "Remote 'forgejo' atualizado para $FORGEJO_URL" + else + ok "Remote 'forgejo' ja configurado corretamente" + fi else - git remote add forgejo https://git.esdrasrenan.com.br/esdras/sistema-de-chamados.git + git remote add forgejo "$FORGEJO_URL" ok "Remote 'forgejo' adicionado" fi