pub async fn create_sprint(
project_dir: &Path,
id: &SprintId,
title: &str,
goal: Option<String>,
period: Option<(DateTime<Utc>, DateTime<Utc>)>,
) -> Result<Sprint>Expand description
Create a sprint on the board in project_dir and return the saved Sprint.
The state is crate::sprint::SprintState::Planned. goal is persisted after the frontmatter
as the sprint Markdown body.
When period is provided, retain the planned start and end dates. Return
Error::InvalidSprintPeriod when the start is after the end, Error::SprintExists when
the ID is already used, Error::NotInitialized for an uninitialized board, or
Error::EmptySprintTitle for an empty title.