--- 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.10.12, 3.11 ] 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 black run: | black . --diff --check - name: Lint with isort run: | isort . --diff --check - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --show-source --statistics --config .flake8 # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-line-length=127 --statistics --config .flake8 - 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