option('force-cache')) { $monitor->refreshReleaseCache(true); } else { $monitor->ensureReleaseCache(); } $results = $monitor->checkRepositories(false); foreach ($results as $repo => $result) { if (isset($result['error'])) { $this->error(sprintf('[%s] %s', $repo, $result['error'])); continue; } $this->line(sprintf( '[%s] 分支 %s 已对齐 %s,扫描 %d 个提交。', $repo, $result['branch'], $result['head'], $result['commits_scanned'] )); if (!empty($result['issues']['develop_merges'])) { $this->warn(sprintf(' - 检测到 %d 个 develop merge:', count($result['issues']['develop_merges']))); foreach ($result['issues']['develop_merges'] as $commit) { $this->warn(sprintf( ' • %s %s (%s)', substr($commit['hash'], 0, 8), $commit['subject'], $commit['author'] )); } } if (!empty($result['issues']['missing_functions'])) { $this->warn(sprintf(' - 检测到 %d 个疑似缺失函数的提交:', count($result['issues']['missing_functions']))); foreach ($result['issues']['missing_functions'] as $issue) { $this->warn(sprintf( ' • %s %s (%s)', substr($issue['commit']['hash'], 0, 8), $issue['commit']['subject'], $issue['commit']['author'] )); foreach ($issue['details'] as $detail) { $functions = implode(', ', array_slice($detail['functions'], 0, 5)); $this->warn(sprintf(' %s => %s', $detail['file'], $functions)); } } } } } }