diff --git a/pift.module b/pift.module
index ae278f4..9f6fbcb 100644
--- a/pift.module
+++ b/pift.module
@@ -245,6 +245,48 @@ function pift_versioncontrol_git_refs_updated($repository, $refs) {
   }
 }
 
+function pift_versioncontrol_event_arrival(VersioncontrolRepository $repository, VersioncontrolEvent $event) {
+  // Ignore events for disabled projects and non-Git repos.
+  if (!$repository instanceof VersioncontrolGitRepository || !pift_project_enabled($repository->project_nid)) {
+    return;
+  }
+
+  module_load_include('cron.inc', 'pift');
+  $api_versions = pift_core_api_versions();
+
+  $branch_names = array();
+  foreach ($event as $ref) {
+    if (VERSIONCONTROL_GIT_REFTYPE_BRANCH === $ref->reftype) {
+      $branch_names[] = $ref->refname;
+    }
+  }
+
+  $rids = pift_cron_get_release($repository->project_nid, array_keys($refs['branches']));
+  foreach ($rids as $rid) {
+    // Ensure that one of the compatibility terms is present on the release node.
+    $release = node_load($rid);
+    $found = FALSE;
+    foreach ($api_versions as $api_version) {
+      if (array_key_exists($api_version, $release->taxonomy)) {
+        // Compatible term found, continue processing.
+        $test_id = db_result(db_query('SELECT test_id
+                                          FROM {pift_test}
+                                          WHERE type = %d
+                                          AND id = %d', PIFT_TYPE_RELEASE, $rid));
+
+        // If existing test for release, queue it, otherwise add a new test.
+        if ($test_id) {
+          pift_test_requeue($test_id);
+        }
+        else if ($test_id !== 0) {
+          pift_test_add(PIFT_TYPE_RELEASE, $rid);
+        }
+        break;
+      }
+    }
+  }
+}
+
 /**
  * Helper fuction to build a list of releases for this project's repository.
  *
