Sync automático de repositório Git com execução programada de script Python.
405
Container universal, automático e configurável para sincronização contínua de repositórios Git (GitHub, GitLab, Bitbucket) e execução de scripts Python. Ideal para automações, bots, pipelines, "green wall" (histórico de commits) e tarefas recorrentes.
Este container Docker foi projetado para ser universal e automatizar fluxos de trabalho baseados em:
main.py** (gera reflexões e commits automáticos)O sistema garante que seu script rode sempre sincronizado e faça commits com a sua identidade, independente de onde o container esteja rodando.
Funciona com GitHub, GitLab, Bitbucket e outros provedores Git que aceitam HTTPS.
Detecta automaticamente se deve usar apenas Token ou Usuário:Token baseada nas variáveis fornecidas.
Os commits são feitos com o Nome e Email que você configurar nas variáveis, não ficando preso ao usuário do container.
main.py.INTERVALO_HORAS e repete.Imagem baseada em Python 3.14-slim + Git.
| Variável | Obrigatória | Descrição |
|---|---|---|
GIT_TOKEN | ✅ Sim | Personal Access Token (PAT). Não use senha de login! |
GIT_AUTH_USER | ⚠️ Depende | Usuário de login. Obrigatório para GitLab/Bitbucket. Opcional para GitHub. |
REPO_URL | ✅ Sim | URL HTTPS completa do repositório (sem senhas). |
REPO_PATH | ✅ Sim | Caminho interno onde o repo será clonado (Ex: /app/repo). |
BRANCH | ❌ Opcional | Branch alvo (default: main). |
GIT_USER_NAME | ❌ Opcional | Nome que aparecerá no commit (default: Bot Git). |
GIT_USER_EMAIL | ❌ Opcional | Email que aparecerá no commit (default: [email protected]). |
INTERVALO_HORAS | ✅ Sim | Intervalo em horas entre execuções. |
services:
git-auto-runner:
image: kelseysantos/salvosmain:latest
container_name: git-auto-runner
environment:
# === AUTENTICAÇÃO ===
- GIT_AUTH_USER=seu_usuario_git # Obrigatório p/ GitLab. Opcional p/ GitHub.
- GIT_TOKEN=ghp_seu_token_aqui # Use Token (PAT), nunca a senha!
# === IDENTIDADE ===
- GIT_USER_NAME=Seu Nome Real
- [email protected]
# === REPOSITÓRIO ===
- REPO_URL=https://github.com/usuario/seu-repositorio.git
- REPO_PATH=/app/repo
- BRANCH=main
- INTERVALO_HORAS=2
volumes:
- dados_repo:/app/repo
restart: unless-stopped
volumes:
dados_repo:
driver: local
docker run -d \
--name git-auto-runner \
-e GIT_AUTH_USER="seu_usuario" \
-e GIT_TOKEN="ghp_seu_token_aqui" \
-e GIT_USER_NAME="Seu Nome" \
-e GIT_USER_EMAIL="[email protected]" \
-e REPO_URL="https://github.com/usuario/seu-repositorio.git" \
-e REPO_PATH="/app/repo" \
-e BRANCH="main" \
-e INTERVALO_HORAS=2 \
-v $(pwd)/dados_repo:/app/repo \
kelseysantos/salvosmain:latest
user.name e user.email) no ambiente.REPO_PATH existe.git pull para atualizar.main.py (gera conteúdo e commita).INTERVALO_HORAS e repete o ciclo.A autenticação ocorre via HTTPS injetando as credenciais apenas na memória durante a execução:
https://<TOKEN>@github.com/...https://<USER>:<TOKEN>@gitlab.com/...Importante: Desde 2021, o GitHub exige o uso de Tokens (PAT) em vez de senhas de conta. Certifique-se de gerar um token com permissão
repo.
Você provavelmente colocou a senha da sua conta no campo GIT_TOKEN.
Solução: Gere um Personal Access Token nas configurações do seu provedor Git (GitHub/GitLab) e use esse token no lugar da senha.
Verifique se o seu Token tem permissão de:
repo (Full control of private repositories)write_repository (no GitLab)Confira se a URL em REPO_URL está correta e se o Token tem acesso a esse repositório específico (caso seja privado).
Distribuído sob licença MIT. Você pode modificar, usar e distribuir livremente.
Deixe um ⭐ no Docker Hub e no GitHub! Compartilhe essa imagem se ela te ajudou 🙏
Content type
Image
Digest
sha256:c9fadcf0d…
Size
74.7 MB
Last updated
7 months ago
docker pull kelseysantos/salvosmain