diff --git a/run_rpmlint.py b/run_rpmlint.py
--- a/run_rpmlint.py
+++ b/run_rpmlint.py
@@ -7,66 +7,115 @@
 
 import subprocess
 import os
-import sys
+import re
+from collections import namedtuple
 
 from libtaskotron import check
 
 log = logging.getLogger('rpmlint')
 log.setLevel(logging.DEBUG)
 log.addHandler(logging.NullHandler())
 
+# outcome = str keyword, output = list of str, errors = int, warnings = int
+Result = namedtuple('Result', ['outcome', 'output', 'errors', 'warnings'])
+
 
 def run(koji_build, workdir='.', artifactsdir='artifacts'):
     '''The main method to run from Taskotron'''
 
     if not os.path.exists(artifactsdir):
         os.makedirs(artifactsdir)
 
-    command = ['rpmlint', '%s' % os.path.abspath(workdir)]
+    workdir = os.path.abspath(workdir)
+
+    # find files to run on
+    files = sorted(os.listdir(workdir))
+    srpms = []
+    rpms = []
+    for file_ in files:
+        filepath = os.path.join(workdir, file_)
+        if file_.endswith('.src.rpm'):
+            srpms.append(filepath)
+        elif file_.endswith('.rpm'):
+            rpms.append(filepath)
+        else:
+            log.debug('Ignoring non-rpm file: %s', filepath)
+
+    # run rpmlint on SRPMs
+    if srpms:
+        command = ['rpmlint'] + srpms
+        srpm_result = run_rpmlint(command)
+    else:
+        log.warn('No .src.rpm files found in: %s', workdir)
+        srpm_result = Result('PASSED', [], None, None)
+
+    # run rpmlint on RPMs
+    # disable network checks to avoid hitting websites too much (also the network checks were
+    # already) performed on the SRPM. See https://phab.qadevel.cloud.fedoraproject.org/T760
+    if rpms:
+        command = ['rpmlint', '-o', 'NetworkEnabled False'] + rpms
+        rpm_result = run_rpmlint(command)
+    else:
+        log.warn('No binary rpm files found in: %s', workdir)
+        srpm_result = Result('PASSED', [], None, None)
+
+    # compute overall results
+    detail = check.CheckDetail(koji_build, check.ReportType.KOJI_BUILD, srpm_result.outcome)
+    detail.update_outcome(rpm_result.outcome)
+    errors = srpm_result.errors + rpm_result.errors
+    warnings = srpm_result.warnings + rpm_result.warnings
+    detail.note = '%d errors, %d warnings' % (errors, warnings)
+
+    # print some summary to console
+    summary = 'rpmlint %s for %s (%s)' % (detail.outcome, koji_build, detail.note)
+    log.info(summary)
+
+    # store logs
+    log_path = os.path.join(artifactsdir, '%s.log' % koji_build)
+    log.debug('Saving log to: %s', log_path)
+    with open(log_path, 'w') as log_file:
+        log_file.write('##### SRPMs #####\n')
+        log_file.writelines(srpm_result.output)
+        log_file.write('\n')
+        log_file.write('##### RPMs  #####\n')
+        log_file.writelines(rpm_result.output)
+        log_file.write('\n')
+        log_file.write(summary)
+    detail.artifact = log_path
 
-    # run rpmlint
+    output = check.export_YAML(detail)
+    return output
+
+
+def run_rpmlint(command):
+    '''Run rpmlint command.
+    :param list command: command to run through subprocess.Popen
+    :rtype: Results
+    '''
     log.debug('Running command: %s', command)
-    proc = subprocess.Popen(command, stdout=subprocess.PIPE,
-                            stderr=subprocess.STDOUT, bufsize=1,
+    proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, bufsize=1,
                             close_fds=True)
     output = []
     for line in iter(proc.stdout.readline, ''):
         print line,
         output.append(line)
     stdout, stderr = proc.communicate()
-
-    # stdout and stderr should be empty, because we printed them out
-    # before calling .communicate()
-    if stdout or stderr:
-        log.warn("Extra stdout or stderr found, this shouldn't happen:")
-        print 'STDOUT:\n%s' % stdout
-        print >> sys.stderr, 'STDERR:\n%s' % stderr
-        output.append(stdout)
-        output.append(stderr)
+    assert not stdout and not stderr, "Extra stdout or stderr found, this shouldn't happen"
 
     if proc.returncode == 0:
-        result = 'PASSED'
+        outcome = 'PASSED'
     else:
         if proc.returncode == 64 or proc.returncode == 66:
-            result = 'FAILED'
+            outcome = 'FAILED'
         else:
-            result = 'ABORTED'
+            outcome = 'ABORTED'
 
-    summary = 'rpmlint %s for %s' % (result, koji_build)
-    log.info(summary)
+    match = re.search(r'(\d+) errors, (\d+) warnings', output[-1] if output else '')
+    errors = int(match.group(1))
+    warnings = int(match.group(2))
 
-    detail = check.CheckDetail(koji_build, check.ReportType.KOJI_BUILD,
-                               result, summary)
-
-    # store logs
-    log_path = os.path.join(artifactsdir, '%s.log' % koji_build)
-    log.debug('Saving log to: %s', log_path)
-    with open(log_path, 'w') as log_file:
-        log_file.writelines(output)
-    detail.artifact = log_path
-
-    output = check.export_YAML(detail)
-    return output
+    result = Result(outcome=outcome, output=output, errors=errors, warnings=warnings)
+    return result
 
 
 if __name__ == '__main__':

