Skip to content

Create asana_uqi_config.json #4

Create asana_uqi_config.json

Create asana_uqi_config.json #4

name: Process Sample Files and Generate Docs
on:
push:
paths:
- 'website/docs/sample-workflow-tests/**'
jobs:
process_sample_file:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Detect changed files
id: detect_files
run: |
echo "Detecting changes..."
git fetch origin main
CHANGED_FILE=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} -- 'website/docs/sample-workflow-tests/' | head -n 1 || true)
if [ -z "$CHANGED_FILE" ]; then
echo "No relevant file found. Exiting."
exit 0
fi
echo "file_path=$CHANGED_FILE" >> $GITHUB_ENV
- name: Read file content
id: read_file
run: |
echo "Reading file content..."
FILE_CONTENT=$(cat ${{ env.file_path }} | jq -Rs .)
echo "file_content=$FILE_CONTENT" >> $GITHUB_ENV
- name: Extract Commands and Properties (OpenAI Part 1)
id: extract_details
run: |
echo "Extracting commands and properties..."
RESPONSE=$(curl -s https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer ${{ secrets.OPENAI_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "You are a technical parser. Objective: Given the provided JSON, extract all available Commands and their Properties clearly. Output format: Total Commands: X, then for each Command: Identifier, Properties list. Important: No Markdown, no backticks, just clean plain text."
},
{
"role": "user",
"content": '"${{ env.file_content }}"'
}
],
"temperature": 0
}')
echo "$RESPONSE" | jq -r '.choices[0].message.content' > extracted_details.txt
- name: Generate Markdown Documentation (OpenAI Part 2)
id: generate_doc
run: |
echo "Generating Markdown documentation..."
EXTRACTED_CONTENT=$(cat extracted_details.txt | jq -Rs .)
FINAL_DOC=$(curl -s https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer ${{ secrets.OPENAI_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "You are a professional technical writing assistant. Given extracted details, generate strict, professional Markdown integration documentation. Use # headings, <dd> tags, examples inside fenced code blocks, etc. Follow Stripe/Slack/Google Cloud doc style."
},
{
"role": "user",
"content": '"$EXTRACTED_CONTENT"'
}
],
"temperature": 0.3
}')
echo "$FINAL_DOC" | jq -r '.choices[0].message.content' > generated_doc.md
- name: Upload generated documentation
uses: actions/upload-artifact@v4
with:
name: generated-doc
path: generated_doc.md