git-pushed

git-pushed é uma ferramenta de linha de comandos capaz de listar as referências alteradas num repositório git remoto.

Caso de uso

$ git-pushed https://github.com/PauloASilva/node-http-mitm-proxy.git

Nota

git-pushed mantém a informação sobre as referências de um repositório no directório $HOME/.cache/git-pushed
Na primeira execução para um dado repositório, todas as referências serão dadas como modificadas.

Motivação

Gitlab inicia um projecto jenkins aquando dum evento push num dado repositório.
O projecto jenkins job executa comandos remotamente via SSH, comandos esses que devem fazer checkout do repositório se e só se o evento (push) ocorreu numa dada referência (head).

Exemplo

ssh user@remote-machine<<<EOF
    status=$(git-pushed git@gitlab.somehost.com/project.git | grep "ref/heads/development")
    if [ "$status" -ne 0 ]; then
        echo "Nothing to do!"
        exit 0
    fi
 
    git checkout git@gitlab.somehost.com/project.git -b development
 
    # some other remote commands
    # ...
EOF

Instalação

  1. Fazer checkout do repositório
    cd /tmp
    git checkout https://github.com/PauloASilva/git-pushed.git git-pushed
    
  2. Tornar o ficheiro git-pushed executável
    cd git-pushed
    chmod a+x git-pushed
    
  3. Copiar o ficheiro git-pushed para uma localização que faça parte do $PATH (necessida de sudo)
    sudo cp git-pushed /usr/local/bin
    

Leave a Comment.

fifty eight − = forty nine