Sprint Reporting¶
Generate automated sprint reports with atlcli.
Use Case¶
At the end of each sprint, generate a report including:
- Completed work
- Velocity metrics
- Carry-over items
- Time logged
Sprint Summary Script¶
#!/bin/bash
# sprint-report.sh - Generate sprint summary
# Usage: ./sprint-report.sh <board-id> <sprint-id>
BOARD_ID=$1
SPRINT_ID=$2
echo "# Sprint Report"
echo ""
# Sprint info
echo "## Sprint Info"
atlcli jira sprint get $SPRINT_ID
# Completed issues
echo ""
echo "## Completed"
atlcli jira search --jql "sprint = $SPRINT_ID AND status = Done" --json | \
jq -r '.issues[] | "- [\(.key)] \(.fields.summary)"'
# Incomplete issues
echo ""
echo "## Carry-over"
atlcli jira search --jql "sprint = $SPRINT_ID AND status != Done" --json | \
jq -r '.issues[] | "- [\(.key)] \(.fields.summary) (\(.fields.status.name))"'
# Velocity
echo ""
echo "## Velocity"
atlcli jira analytics velocity --board $BOARD_ID --sprints 1
Detailed Report¶
For a more comprehensive report:
#!/bin/bash
# detailed-report.sh
BOARD_ID=$1
SPRINT_ID=$2
OUTPUT="sprint-report-$(date +%Y%m%d).md"
cat > $OUTPUT << EOF
# Sprint Report - $(date +%Y-%m-%d)
## Summary
$(atlcli jira sprint get $SPRINT_ID --json | jq -r '"- Start: \(.startDate)\n- End: \(.endDate)\n- Goal: \(.goal // "None")"')
## Metrics
### Velocity (Last 5 Sprints)
\`\`\`
$(atlcli jira analytics velocity --board $BOARD_ID)
\`\`\`
### Burndown
\`\`\`
$(atlcli jira analytics burndown --sprint $SPRINT_ID)
\`\`\`
## Completed Issues
$(atlcli jira search --jql "sprint = $SPRINT_ID AND status = Done" --json | \
jq -r '.issues[] | "| \(.key) | \(.fields.summary) | \(.fields.issuetype.name) |"' | \
{ echo "| Key | Summary | Type |"; echo "|-----|---------|------|"; cat; })
## Carry-over
$(atlcli jira search --jql "sprint = $SPRINT_ID AND status != Done" --json | \
jq -r '.issues[] | "| \(.key) | \(.fields.summary) | \(.fields.status.name) |"' | \
{ echo "| Key | Summary | Status |"; echo "|-----|---------|--------|"; cat; })
EOF
echo "Report written to $OUTPUT"
Scheduled Reports¶
Cron Job¶
# Run every Friday at 5pm
0 17 * * 5 /path/to/sprint-report.sh 123 > /var/reports/sprint-$(date +%Y%m%d).md
GitHub Actions¶
name: Sprint Report
on:
schedule:
- cron: '0 17 * * 5'
jobs:
report:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate Report
env:
ATLCLI_BASE_URL: ${{ secrets.ATLASSIAN_URL }}
ATLCLI_EMAIL: ${{ secrets.ATLASSIAN_EMAIL }}
ATLCLI_API_TOKEN: ${{ secrets.ATLASSIAN_TOKEN }}
run: ./scripts/sprint-report.sh $BOARD_ID $SPRINT_ID > report.md
- name: Upload Report
uses: actions/upload-artifact@v3
with:
name: sprint-report
path: report.md