actions->listWorkflows($owner, $repo); if (isset($workflows['workflows']) && !empty($workflows['workflows'])) { foreach ($workflows['workflows'] as $workflow) { echo " - Workflow: {$workflow['name']}\n"; echo " ID: {$workflow['id']}\n"; echo " Path: {$workflow['path']}\n"; echo " State: {$workflow['state']}\n"; echo "\n"; } } else { echo " No workflows found.\n\n"; } // Test 2: List Workflow Runs (last 10) echo "2. Listing Recent Workflow Runs (last 10):\n"; echo str_repeat('-', 60) . "\n"; $runs = $giteaClient->actions->listRuns($owner, $repo, [ 'limit' => 10 ]); if (isset($runs['workflow_runs']) && !empty($runs['workflow_runs'])) { foreach ($runs['workflow_runs'] as $run) { echo " - Run #{$run['id']}\n"; echo " Title: {$run['display_title']}\n"; echo " Status: {$run['status']}\n"; echo " Conclusion: " . ($run['conclusion'] ?? 'N/A') . "\n"; echo " Started: {$run['started_at']}\n"; echo " Branch: {$run['head_branch']}\n"; echo "\n"; } // Test 3: Get detailed info about latest run $latestRun = $runs['workflow_runs'][0]; echo "3. Detailed Info for Latest Run (#{$latestRun['id']}):\n"; echo str_repeat('-', 60) . "\n"; $runDetails = $giteaClient->actions->getRun($owner, $repo, $latestRun['id']); echo " Workflow: {$runDetails['name']}\n"; echo " Status: {$runDetails['status']}\n"; echo " Conclusion: " . ($runDetails['conclusion'] ?? 'N/A') . "\n"; echo " Triggered by: {$runDetails['event']}\n"; echo " Branch: {$runDetails['head_branch']}\n"; echo " Commit: {$runDetails['head_sha']}\n"; echo " Run Number: {$runDetails['run_number']}\n"; echo " Started: {$runDetails['run_started_at']}\n"; if (isset($runDetails['jobs'])) { echo "\n Jobs:\n"; foreach ($runDetails['jobs'] as $job) { echo " - {$job['name']}: {$job['status']}"; if (isset($job['conclusion'])) { echo " ({$job['conclusion']})"; } echo "\n"; } } } else { echo " No workflow runs found.\n"; } echo "\n✅ Actions/Workflows API Test SUCCESSFUL!\n"; } catch (\Exception $e) { echo "\n❌ Error: " . $e->getMessage() . "\n"; echo "File: " . $e->getFile() . "\n"; echo "Line: " . $e->getLine() . "\n"; exit(1); }