Eu uso o Codeship para automatizar compilações de teste sempre que me comprometo com o branch de desenvolvimento do meu repo. Se a compilação for bem-sucedida, mesclo manualmente a ramificação em minha ramificação de produção e a Codeship a implanta em meu CDN e nos servidores de produção.
Eu queria pular o processo de mesclagem manual e automatizar essa etapa usando solicitações pull. Para fazer isso, adicionei um script de implantação customizado no Codeship para meu ramo de desenvolvimento. (Scripts de implantação só disparam se uma versão de teste for bem-sucedida, como você pode esperar).
Este script de implantação emite uma solicitação curl para a API REST do GitHub, que cria a solicitação pull para mim.
curl --user "your_username:your_password" --request POST --data '{ "title": "Deploy build to production", "body": "Codeship test build was successful. Merge this pull request to push to production, or dismiss it to skip this build.", "head": "master", "base": "production" }' https://api.github.com/repos/repo_owner/repo_name/pulls
Você pode aprender mais sobre essa chamada de API nos documentos da API do GitHub .
Agora, sempre que uma compilação de teste é bem-sucedida, posso simplesmente carregar o GitHub de qualquer lugar, aceitar a solicitação de pull e implantar em meus servidores de produção. Mole-mole.