Skip to content

Briefing Agents

Briefing Agents #67

name: Briefing Agents
permissions:
contents: read
on:
schedule:
- cron: '0 * * * *' # Every hour
workflow_dispatch: {}
concurrency:
group: briefing-agents
cancel-in-progress: false
jobs:
execute:
runs-on: ubuntu-latest
permissions:
contents: read
timeout-minutes: 30
steps:
- name: Trigger due briefing agents
env:
API_URL: ${{ vars.API_URL || 'https://gruenerator.eu' }}
ADMIN_TOKEN: ${{ secrets.ADMIN_TOKEN }}
run: |
echo "Triggering briefing agent execution at $(date -u)"
RESPONSE=$(curl -sf -w "\n%{http_code}" -X POST "${API_URL}/api/internal/briefing/execute-due" \
-H "x-admin-token: ${ADMIN_TOKEN}" \
-H "Content-Type: application/json" \
--max-time 300)
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
BODY=$(echo "$RESPONSE" | sed '$d')
echo "HTTP Status: ${HTTP_CODE}"
echo "Response: ${BODY}"
if [ "$HTTP_CODE" -ge 400 ]; then
echo "::error::Briefing execution failed with HTTP ${HTTP_CODE}"
exit 1
fi
# Extract stats for GitHub summary
PROCESSED=$(echo "$BODY" | jq -r '.processed // 0')
SUCCEEDED=$(echo "$BODY" | jq -r '.succeeded // 0')
FAILED=$(echo "$BODY" | jq -r '.failed // 0')
echo "## Briefing Agents Execution" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Metric | Value |" >> $GITHUB_STEP_SUMMARY
echo "|--------|-------|" >> $GITHUB_STEP_SUMMARY
echo "| Processed | ${PROCESSED} |" >> $GITHUB_STEP_SUMMARY
echo "| Succeeded | ${SUCCEEDED} |" >> $GITHUB_STEP_SUMMARY
echo "| Failed | ${FAILED} |" >> $GITHUB_STEP_SUMMARY
if [ "$FAILED" -gt 0 ]; then
echo "::warning::${FAILED} briefing agent(s) failed"
fi