Create asana_uqi_config.json #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |