2024-12-06 21:31:20 -05:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
ROOT_DIR=$(git rev-parse --show-toplevel)
|
|
|
|
|
|
|
|
# Extract scope name and path using jq, and pass it to fzf for selection
|
|
|
|
SCOPE=$(cat "$ROOT_DIR/.github/scopes.json" | jq -r '.[] | "\(.name)"' | fzf --prompt "Select scope:")
|
2024-12-07 17:32:11 -05:00
|
|
|
DOCS=$(cat "$ROOT_DIR/.github/scopes.json" | jq -r ".[] | select(.name == \"$SCOPE\") | .docs[].url")
|
2024-12-06 21:31:20 -05:00
|
|
|
|
|
|
|
# Write Title
|
|
|
|
TITLE=$(gum input --placeholder "Issue Title...")
|
|
|
|
|
|
|
|
# Write Goal
|
|
|
|
GOAL=$(mods --role "determine-issue-goal" "$SCOPE $TITLE")
|
|
|
|
|
|
|
|
# Input Requirements
|
|
|
|
REQUIREMENTS=()
|
|
|
|
while true; do
|
|
|
|
if [ ${#REQUIREMENTS[@]} -ge 2 ]; then
|
|
|
|
if ! gum confirm "Do you want to add another requirement?"; then
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
REQUIREMENT=$(gum input --placeholder "Add a requirement...")
|
|
|
|
if [ -n "$REQUIREMENT" ]; then
|
|
|
|
REQUIREMENTS+=("$REQUIREMENT")
|
|
|
|
else
|
|
|
|
echo "Requirement cannot be empty. Please enter a valid requirement."
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
create_body() {
|
|
|
|
echo "### Goal(s):"
|
|
|
|
echo "$GOAL"
|
|
|
|
echo "### Requirements:"
|
|
|
|
for i in "${!REQUIREMENTS[@]}"; do
|
|
|
|
echo "$(($i + 1)). ${REQUIREMENTS[$i]}"
|
|
|
|
done
|
|
|
|
echo "### Resources:"
|
2024-12-07 17:32:11 -05:00
|
|
|
while IFS= read -r doc; do
|
2024-12-06 21:31:20 -05:00
|
|
|
echo "- $doc"
|
2024-12-07 17:32:11 -05:00
|
|
|
done <<< "$DOCS"
|
2024-12-06 21:31:20 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
ISSUE_BODY=$(create_body)
|
|
|
|
|
|
|
|
# Function to collect output
|
|
|
|
preview_output() {
|
|
|
|
echo "# ($SCOPE) $TITLE"
|
|
|
|
echo "$ISSUE_BODY"
|
|
|
|
}
|
|
|
|
|
|
|
|
# Display the formatted output
|
|
|
|
preview_output | gum format
|
|
|
|
|
|
|
|
# Confirm to create a GitHub issue
|
|
|
|
if gum confirm "Do you want to create a new GitHub issue with this information?"; then
|
2024-12-23 13:35:52 -05:00
|
|
|
# Ask if this should be a draft issue
|
|
|
|
if gum confirm "Create as draft issue?"; then
|
|
|
|
# Create a draft GitHub issue
|
|
|
|
gh issue create --repo onsonr/sonr --title "($SCOPE) $TITLE" --body "$ISSUE_BODY"
|
|
|
|
else
|
|
|
|
# Create a regular GitHub issue
|
|
|
|
gh issue create --repo onsonr/sonr --title "($SCOPE) $TITLE" --body "$ISSUE_BODY" -a @me
|
|
|
|
fi
|
2024-12-06 21:31:20 -05:00
|
|
|
else
|
2024-12-23 13:35:52 -05:00
|
|
|
exit 1
|
2024-12-06 21:31:20 -05:00
|
|
|
fi
|
2024-12-23 13:35:52 -05:00
|
|
|
|