--- name: TheHarvester Python CI on: push: branches: - '*' pull_request: branches: - '*' jobs: Python: runs-on: ${{ matrix.os }} strategy: max-parallel: 8 matrix: os: [ ubuntu-latest, macos-latest ] python-version: [ '3.11', '3.12', '3.13' ] steps: - uses: actions/checkout@v4 - name: Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install --upgrade pip pip install .[dev] - name: Lint with ruff run: | ruff check - name: Format with ruff run: | ruff format --check --diff - name: Test with pytest run: | pytest - name: Run theHarvester module Anubis run: | theHarvester -d apple.com -b anubis - name: Run theHarvester module Baidu run: | theHarvester -d yale.edu -b baidu - name: Run theHarvester module Bing run: | theHarvester -d yale.edu -b bing - name: Run theHarvester module CertSpotter run: | theHarvester -d yale.edu -b certspotter - name: Run theHarvester module Crtsh run: | theHarvester -d hcl.com -b crtsh - name: Run theHarvester module DnsDumpster run: | theHarvester -d yale.edu -b dnsdumpster - name: Run theHarvester module DuckDuckGo run: | theHarvester -d yale.edu -b duckduckgo - name: Run theHarvester module HackerTarget run: | theHarvester -d yale.edu -b hackertarget - name: Run theHarvester module Intelx run: | theHarvester -d yale.edu -b intelx - name: Run theHarvester module Otx run: | theHarvester -d yale.edu -b otx - name: Run theHarvester module RapidDns run: | theHarvester -d yale.edu -b rapiddns - name: Run theHarvester module Threatminer run: | theHarvester -d yale.edu -b threatminer - name: Run theHarvester module Urlscan run: | theHarvester -d yale.edu -b urlscan - name: Run theHarvester module Yahoo run: | theHarvester -d yale.edu -b yahoo - name: Run theHarvester module DNS brute force run: | theHarvester -d yale.edu -c - name: Static type checking with mypy run: | mypy --pretty theHarvester/*/*.py mypy --pretty theHarvester/*/*/*.py