← Developers
Level 0: resolver Environment

CI runners

A coding agent in a pipeline has repository write access and network access. Its resolver is assigned like any other workload.

Configuration and reference code for CI runners

GitHub Actions (self-hosted runner)

Self-hosted runners are VMs or containers; use the Linux VM or Docker configuration. Hosted runners do not expose the resolver configuration; use a job step that starts a local DoH proxy.

.github/workflows/agent.yml
jobs:
  agent:
    runs-on: ubuntu-latest
    steps:
      - name: Route DNS through the Securd identity
        run: |
          curl -sSL -o dnsproxy.tgz https://github.com/AdguardTeam/dnsproxy/releases/latest/download/dnsproxy-linux-amd64.tar.gz
          tar xzf dnsproxy.tgz && sudo mv linux-amd64/dnsproxy /usr/local/bin/
          sudo dnsproxy -l 127.0.0.1 -p 53 -u "https://doh.securd.com/${{ secrets.SECURD_DOH_ADDRESS }}" &
          sudo sed -i 's/^nameserver.*/nameserver 127.0.0.1/' /etc/resolv.conf
      - name: Run the agent
        run: python run_agent.py
        env:
          SECURD_BLOCK_ADDRS: ${{ secrets.SECURD_BLOCK_ADDRS }}

GitLab runner (docker executor)

config.toml
[[runners]]
  name = "agents"
  executor = "docker"
  [runners.docker]
    dns = ["<primary resolver IP>", "<secondary resolver IP>"]

Evaluate Agent DNS with your own agent traffic

Deploy on a single policy in learning mode and review the recorded destinations with your team.