Skip to content

GitHub Actions ingest (no OAuth)

Send GitHub Actions workflow failures to Exlogare via the universal ingest API — no OAuth installation needed.

If your team can’t (or doesn’t want to) install the Exlogare GitHub OAuth app, you can still get RCAs from GitHub Actions: drop a single if: failure() step into your workflow and curl the log to our generic ingest endpoint.

This is useful for:

  • self-hosted GitHub Enterprise instances where org admins won’t approve a third-party OAuth app;
  • short-lived projects where you’d rather not configure org-level OAuth;
  • evaluating Exlogare on a single workflow before committing to the OAuth integration.

Required GitHub secret

Add EXLOGARE_TOKEN to your repository or org secrets (Settings → Secrets and variables → Actions). The token needs the ingest scope.

Workflow step

# .github/workflows/ci.yml
name: CI
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run tests
        id: test
        run: |
          set -o pipefail
          pytest -q 2>&1 | tee build.log

      - name: Send failure log to Exlogare
        if: failure()
        env:
          EXLOGARE_TOKEN: ${{ secrets.EXLOGARE_TOKEN }}
        shell: bash
        run: |
          curl -fsS -X POST https://api.exlogare.net/api/ingest/log \
            -H "Authorization: Bearer $EXLOGARE_TOKEN" \
            -H "Content-Type: application/json" \
            -d "$(jq -n \
              --arg pid "$GITHUB_RUN_ID" \
              --arg jid "$GITHUB_JOB" \
              --arg br  "$GITHUB_REF_NAME" \
              --arg sha "$GITHUB_SHA" \
              --arg url "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \
              --arg log "$(cat build.log)" \
              '{provider:"github_actions", project:"$GITHUB_REPOSITORY", pipeline_id:$pid, job_id:$jid, status:"failed", branch:$br, commit_sha:$sha, pipeline_url:$url, log:$log}')"

OAuth vs. ingest API — which should you use?

OAuth integrationIngest API
Auto-discovery of reposyesno — one workflow at a time
Posts RCA back as a PR commentyesno — view in dashboard / messengers
Requires GitHub admin approvalyesno
Works on self-hosted Actions runnersyesyes
Works on GitHub Enterprise without OAuthnoyes

Use OAuth if you can. Use the ingest API if OAuth isn’t an option.

Tips

  • Pin the actions/checkout@v4 SHA in production workflows.
  • The GITHUB_* env vars are populated automatically by Actions — no extra env: block needed beyond EXLOGARE_TOKEN.
  • For matrix builds, append ${{ matrix.os }}-${{ matrix.python }} to pipeline_id so each combination gets its own analysis row.