GitHub Actions
1. Crie uma regra de confiança
No console: app → OIDC → nova regra.
| Campo | Exemplo |
|---|---|
| Padrão do subject | repo:acme/app:ref:refs/tags/v* (ou repo:acme/app:environment:production) |
| Escopos | builds:write, builds:read |
Opcional, mas recomendado: restrinja a um arquivo de workflow com workflowRef. Regras que também casariam com pull requests são recusadas. Veja OIDC.
2. Adicione o workflow
.github/workflows/moatgator.yml
name: moatgator
on:
push:
tags: ["v*"]
workflow_dispatch: {}
permissions:
contents: read
id-token: write # o job pede ao GitHub o token OIDC
jobs:
protect:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with: { distribution: temurin, java-version: 17 }
- run: ./gradlew bundleRelease
- uses: moatgator-hq/github-action@v1 # em produção, fixe por SHA completo de commit
with:
artifact: app/build/outputs/bundle/release/*.aab
app-version: ${{ github.ref_name }}
app-id: app_REPLACE_ME # o app que confia neste repositório
config: moatgator.yml # opcional: valida antes de enviar
scan-min-grade: C # opcional: roda o Scan e falha abaixo desta nota
Troque app_REPLACE_ME pelo id do seu app. Para React Native e Flutter, mude a etapa de build e o caminho do artefato (veja os guias por plataforma).
Inputs, outputs e falhas
- Outputs:
build-id,engine,protected(hoje semprefalse),protected-path(vazio hoje),scan-grade,report-url. - O job termina com o código de saída do CLI e uma mensagem. Enquanto o motor está em prévia, a Action acrescenta uma anotação de warning, e
require-protected: truefaz o job falhar de propósito.
O Scan envia o seu pacote
O scan-min-grade envia o pacote para a Moatgator fazer a análise estática e o mantém por 24 horas. Fica desligado se você não definir.
Sem a Action
- run: npx moatgator protect app/build/outputs/bundle/release/app-release.aab --app-version ${{ github.ref_name }}
env:
MOATGATOR_APP_ID: app_REPLACE_ME
O CLI pede o token OIDC ao GitHub, faz a troca e usa o token curto.
Checklist de segurança
- Dispare em tags ou em branches protegidas. Nunca em
pull_request_target. - Mantenha as
permissionsmínimas, como acima. - Fixe toda action de terceiros por SHA (os SHAs acima foram conferidos na API do GitHub em 11 de outubro de 2026; atualize-os com o Dependabot).