Sprint Reporting
Sprint Reporting
Section titled “Sprint Reporting”Generate automated sprint reports with atlcli.
Prerequisites
Section titled “Prerequisites”- Authenticated profile (
atlcli auth login) - Jira permission: Browse Projects
- Board with sprint history
Use Case
Section titled “Use Case”At the end of each sprint, generate a report including:
- Completed work
- Velocity metrics
- Carry-over items
- Time logged
Sprint Summary Script
Section titled “Sprint Summary Script”#!/bin/bash# sprint-report.sh - Generate sprint summary# Usage: ./sprint-report.sh <board-id> <sprint-id>
BOARD_ID=$1SPRINT_ID=$2
echo "# Sprint Report"echo ""
# Sprint infoecho "## Sprint Info"atlcli jira sprint get --id $SPRINT_ID
# Completed issuesecho ""echo "## Completed"atlcli jira search --jql "sprint = $SPRINT_ID AND status = Done" --json | \ jq -r '.issues[] | "- [\(.key)] \(.fields.summary)"'
# Incomplete issuesecho ""echo "## Carry-over"atlcli jira search --jql "sprint = $SPRINT_ID AND status != Done" --json | \ jq -r '.issues[] | "- [\(.key)] \(.fields.summary) (\(.fields.status.name))"'
# Velocityecho ""echo "## Velocity"atlcli jira analyze velocity --board $BOARD_ID --sprints 1Detailed Report
Section titled “Detailed Report”For a more comprehensive report:
#!/bin/bashBOARD_ID=$1SPRINT_ID=$2OUTPUT="sprint-report-$(date +%Y%m%d).md"
cat > $OUTPUT << EOF# Sprint Report - $(date +%Y-%m-%d)
## Summary
$(atlcli jira sprint get --id $SPRINT_ID --json | jq -r '"- Start: \(.startDate)\n- End: \(.endDate)\n- Goal: \(.goal // "None")"')
## Metrics
### Velocity (Last 5 Sprints)\`\`\`$(atlcli jira analyze velocity --board $BOARD_ID)\`\`\`
### Burndown\`\`\`$(atlcli jira analyze 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
Section titled “Scheduled Reports”Cron Job
Section titled “Cron Job”# Run every Friday at 5pm0 17 * * 5 /path/to/sprint-report.sh 123 > /var/reports/sprint-$(date +%Y%m%d).mdGitHub Actions
Section titled “GitHub Actions”name: Sprint Reporton: 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.mdRelated Topics
Section titled “Related Topics”- Analytics - Velocity, burndown, predictability
- Boards & Sprints - Sprint management
- CI/CD Docs - CI/CD pipeline integration
Jira and Confluence are trademarks of Atlassian Corporation Plc.
atlcli is not affiliated with, endorsed by, or sponsored by Atlassian.