function scm_ping($module, $username, $scm_name, $issues, $commit_msg) { // module is per file (svn hook) if (is_array($module)) { $module = null; } // process checkins for each issue foreach ($issues as $issue_id) { // check early if issue exists to report proper message back // workflow needs to know project_id to find out which workflow class to use. $prj_id = Issue::getProjectID($issue_id); if (empty($prj_id)) { echo "issue #{$issue_id} not found\n"; continue; } $files = array(); $nfiles = count($_GET['files']); for ($y = 0; $y < $nfiles; $y++) { $file = array('file' => $_GET['files'][$y], 'old_version' => isset($_GET['old_versions'][$y]) ? $_GET['old_versions'][$y] : null, 'new_version' => isset($_GET['new_versions'][$y]) ? $_GET['new_versions'][$y] : null, 'module' => isset($module) ? $module : $_GET['module'][$y]); $files[] = $file; } $commit_time = Date_Helper::getCurrentDateGMT(); SCM::addCheckins($issue_id, $commit_time, $scm_name, $username, $commit_msg, $files); // print report to stdout of commits so hook could report status back to commiter $details = Issue::getDetails($issue_id); echo "#{$issue_id} - {$details['iss_summary']} ({$details['sta_title']})\n"; } }