{"meta":{"title":"Criar regras de proteção de implantação personalizadas","intro":"Use GitHub Apps para automatizar a proteção de implantações com sistemas de terceiros.","product":"GitHub Actions","breadcrumbs":[{"href":"/pt/actions","title":"GitHub Actions"},{"href":"/pt/actions/how-tos","title":"Instruções"},{"href":"/pt/actions/how-tos/deploy","title":"Implantar"},{"href":"/pt/actions/how-tos/deploy/configure-and-manage-deployments","title":"Configurar e gerenciar implantações"},{"href":"/pt/actions/how-tos/deploy/configure-and-manage-deployments/create-custom-protection-rules","title":"Criar regras de proteção personalizadas"}],"documentType":"article"},"body":"# Criar regras de proteção de implantação personalizadas\n\nUse GitHub Apps para automatizar a proteção de implantações com sistemas de terceiros.\n\n## Pré-requisitos\n\n> \\[!NOTE]\n> Regras de proteção de implementação personalizada estão em prévia pública e estão sujeitas a alterações.\n\nPara obter informações gerais sobre as regras de proteção à implantação, confira [Implantando com GitHub Actions](/pt/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#using-custom-deployment-protection-rules).\n\n## Criando uma regra de proteção de implantação personalizada com GitHub Apps\n\n1. Criar um GitHub App. Para saber mais, confira [Registrando um aplicativo GitHub](/pt/apps/creating-github-apps/registering-a-github-app/registering-a-github-app). Configure GitHub App da seguinte forma.\n   1. Opcionalmente, no campo de texto **URL de Retorno de Chamada** em \"Identificar e autorizar usuários\", insira a URL de retorno de chamada. Para saber mais, confira [Sobre a URL de retorno de chamada de autorização do usuário](/pt/apps/creating-github-apps/registering-a-github-app/about-the-user-authorization-callback-url).\n   2. Em \"Permissões\", selecione **Permissões de repositório**.\n   3. À direita de \"Ações\", clique no menu suspenso e selecione **Acesso: somente leitura**.\n\n![Screenshot da seção \"Permissões de repositório\" para um novo aplicativo GitHub. A permissão \"Ações\" aparece como \"Somente leitura\" e está destacada em laranja.](/assets/images/help/actions/actions-repo-permissions-read-only.png)\n\n1. À direita de \"Implantações\", clique no menu suspenso e selecione **Acesso: Leitura e gravação**.\n\n![Screenshot da seção \"Permissões de repositório\" para um novo aplicativo GitHub. A permissão de Implantações mostra \"Leitura e gravação\" e está destacada em laranja.](/assets/images/help/actions/actions-deployments-repo-permissions-read-and-write.png)\n\n1. Em \"Inscrever-se em eventos\", selecione **Regra de proteção de implantação**.\n\n![Captura de tela da seção \"Inscrever-se em eventos\" para um novo aplicativo GitHub. A caixa de seleção da regra de proteção de implantação está destacada em laranja.](/assets/images/help/actions/actions-subscribe-to-events-deployment-protection-rules.png)\n\n1. Instale a regra de proteção de implantação personalizada em seus repositórios e habilite-a para uso. Para saber mais, confira [Configurar regras de proteção de implantação personalizadas](/pt/actions/how-tos/deploy/configure-and-manage-deployments/configure-custom-protection-rules).\n\n## Aprovar ou rejeitar implantações\n\nDepois que um fluxo de trabalho atinge um trabalho que faz referência a um ambiente com a regra de proteção de implantação personalizada habilitada, GitHub envia uma solicitação `POST` para um URL que você configura contendo a payload `deployment_protection_rule`. Você pode escrever sua regra de proteção de implantação para enviar automaticamente solicitações de API REST que aprovem ou rejeitem a implantação com base na carga `deployment_protection_rule`. Configure suas solicitações de API REST da seguinte maneira.\n\nAs regras de proteção de implantação personalizadas não são compatíveis quando o ambiente de um trabalho de fluxo de trabalho é definido como `deployment: false`. Para saber mais, confira [Implantando com GitHub Actions](/pt/actions/how-tos/deploy/configure-and-manage-deployments/control-deployments#interaction-with-protection-rules).\n\n1. Valide a solicitação de `POST` recebida. Para saber mais, confira [Validação de entregas de webhooks](/pt/webhooks/using-webhooks/validating-webhook-deliveries#validating-webhook-deliveries).\n\n2. Use um JSON Web Token para se autenticar como GitHub App. Para saber mais, confira [Autenticando como aplicativo GitHub](/pt/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app#about-authentication-as-a-github-app).\n\n3. Usando o ID de instalação do payload do webhook `deployment_protection_rule`, gere um token de instalação. Para saber mais, confira [Sobre a autenticação com um aplicativo GitHub](/pt/apps/creating-github-apps/authenticating-with-a-github-app/about-authentication-with-a-github-app#authentication-as-a-github-app).\n\n   ```shell\n   curl --request POST \\\n   --url \"https://api.github.com/app/installations/INSTALLATION_ID/ACCESS_TOKENS\" \\\n   --header \"Accept: application/vnd.github+json\" \\\n   --header \"Authorization: Bearer {jwt}\" \\\n   --header \"Content-Type: application/json\" \\\n   --data \\\n   '{ \\\n      \"repository_ids\": [321], \\\n      \"permissions\": { \\\n         \"deployments\": \"write\" \\\n      } \\\n   }'\n   ```\n\n4. Opcionalmente, para adicionar um relatório de status a GitHub sem realizar nenhuma outra ação, envie uma solicitação `POST` para `/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule`. No corpo da solicitação, omita o `state`. Para saber mais, confira [Endpoints da API REST para execuções de fluxo de trabalho](/pt/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run). Você pode postar um relatório status na mesma implantação até 10 vezes. Os relatórios de status dão suporte à formatação Markdown e podem ter até 1.024 caracteres.\n\n5. Para aprovar ou rejeitar uma solicitação, envie uma solicitação `POST` para `/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_rule`. No corpo da solicitação, defina a propriedade `state` como `approved` ou `rejected`. Para saber mais, confira [Endpoints da API REST para execuções de fluxo de trabalho](/pt/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run).\n\n6. Opcionalmente, solicite o status de uma aprovação para um fluxo de trabalho executado enviando uma solicitação `GET` para `/repos/OWNER/REPOSITORY_ID/actions/runs/RUN_ID/approvals`. Para saber mais, confira [Endpoints da API REST para execuções de fluxo de trabalho](/pt/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run).\n\n7. Opcionalmente, revise a implantação em GitHub. Para saber mais, confira [Revisar implantações](/pt/actions/how-tos/deploy/configure-and-manage-deployments/review-deployments).\n\n## Publicando regras de proteção de implantação personalizadas no GitHub Marketplace\n\nVocê pode publicar o GitHub App no GitHub Marketplace para permitir que os desenvolvedores encontrem regras de proteção adequadas e as instalem em seus repositórios GitHub. Ou você pode navegar pelas regras de proteção de implantação personalizadas existentes para atender às suas necessidades. Para saber mais, confira [Sobre GitHub Marketplace para aplicativos](/pt/apps/github-marketplace/github-marketplace-overview/about-github-marketplace-for-apps) e [Listando um aplicativo no GitHub Marketplace](/pt/apps/github-marketplace/listing-an-app-on-github-marketplace)."}