Apache Kibble Scanners

Clone this repo:
  1. e33f59e Merge pull request #8 from apache/christ/buildbot_scanner by dfoulks1 · 1 year, 3 months ago master
  2. 5fa43a8 updating buildbot api url by Chris Thistlethwaite · 1 year, 4 months ago christ/buildbot_scanner
  3. 4d581b1 main has recently become the default branch for git, so add that into the mix by Daniel Gruno · 2 years, 2 months ago
  4. 2a8c00d Account for various connection hiccups that can happen by Daniel Gruno · 3 years ago
  5. 6611d4e Merge pull request #5 from erogol/patch-1 by Tomek Urbaszek · 3 years, 2 months ago

Kibble Scanner Application

The Kibble Scanners collect information for the Kibble Suite.

Setup instructions:

  • Edit conf/config.yaml to match your Kibble service

How to run:

  • On a daily/weekly/whatever basis, run: python3 src/kibble-scanner.py.

Command line options:

usage: kibble-scanner.py [-h] [-o ORG] [-f CONFIG] [-a AGE] [-s SOURCE]
                         [-n NODES] [-t TYPE] [-e EXCLUDE [EXCLUDE ...]]
                         [-v VIEW]

optional arguments:
  -h, --help            show this help message and exit
  -o ORG, --org ORG     The organisation to gather stats for. If left out, all
                        organisations will be scanned.
  -f CONFIG, --config CONFIG
                        Location of the yaml config file (full path)
  -a AGE, --age AGE     Minimum age in hours before performing a new scan on
                        an already processed source. --age 12 will not process
                        any source that was processed less than 12 hours ago,
                        but will process new sources.
  -s SOURCE, --source SOURCE
                        A specific source (wildcard) to run scans on.
  -n NODES, --nodes NODES
                        Number of nodes in the cluster (used for load
  -t TYPE, --type TYPE  Specific type of scanner to run (default is run all
  -e EXCLUDE [EXCLUDE ...], --exclude EXCLUDE [EXCLUDE ...]
                        Specific type of scanner(s) to exclude
  -v VIEW, --view VIEW  Specific source view to scan (default is scan all

Directory structure:

  • conf/: Config files
  • src/:
    • kibble-scanner.py: Main script for launching scans
    • plugins/:
      • brokers: The various database brokers (ES or JSON API)
      • utils: Utility libraries
      • scanners: The individual scanner applications

Currently available scanner plugins:

  • Apache Pony Mail (plugins/scanners/ponymail.py)
  • Atlassian JIRA (plugins/scanners/jira.py)
  • BugZilla Issue Tracker (plugins/scanners/bugzilla.py)
  • BuildBot (plugins/scanners/buildbot.py)
  • Discourse (plugins/scanners/discourse.py)
  • Gerrit Code Review (plugins/scanners/gerrit.py)
  • Git Repository Fetcher (plugins/scanners/git-sync.py)
  • Git Census Counter (plugins/scanners/git-census.py)
  • Git Code Evolution Counter (plugins/scanners/git-evolution.py)
  • Git SLoC Counter (plugins/scanners/git-sloc.py)
  • GitHub Issues/PRs (plugins/scanners/github.py)
  • GitHub Traffic Statistics (plugins/scanners/github-stats.py)
  • GNU Mailman Pipermail (plugins/scanners/pipermail.py)
  • Jenkins (plugins/scanners/jenkins.py)
  • Travis CI (plugins/scanners/travis.py)


  • cloc version 1.76 or later (optional)
  • git binaries
  • python3 (3.3 or later)
  • python3-elasticsearch
  • python3-certifi
  • python3-yaml

Get involved

TBD. Please see https://kibble.apache.org/ for details!