diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index f09b169771..3c098f7a96 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -190,7 +190,7 @@ jobs: GH_TOKEN: ${{ secrets.GH_AW_COPILOT_TOKEN || secrets.GITHUB_TOKEN }} id: download-sessions name: List and download Copilot agent sessions - run: "# Create output directory\nmkdir -p /tmp/gh-aw/agent-sessions\nmkdir -p /tmp/gh-aw/agent-sessions/logs\n\n# Pre-flight validation checks\necho \"::group::Pre-flight Validation\"\n\n# Check if gh CLI is available\nif ! command -v gh &> /dev/null; then\n echo \"::error::GitHub CLI (gh) is not installed or not in PATH\"\n echo \"SESSIONS_AVAILABLE=false\" >> $GITHUB_OUTPUT\n exit 1\nfi\necho \"✓ GitHub CLI found: $(gh --version | head -1)\"\n\n# Check if gh agent-task extension is installed\nif ! gh agent-task --help &> /dev/null; then\n echo \"::warning::gh agent-task extension is not installed\"\n echo \"::warning::To install: gh extension install github/agent-task\"\n echo \"::warning::This workflow requires GitHub Enterprise Copilot access\"\n echo \"SESSIONS_AVAILABLE=false\" >> $GITHUB_OUTPUT\n exit 1\nfi\necho \"✓ gh agent-task extension found\"\n\n# Check authentication\nif [ -z \"$GH_TOKEN\" ]; then\n echo \"::error::GH_TOKEN is not set\"\n echo \"::warning::Configure GH_AW_COPILOT_TOKEN secret with a Personal Access Token\"\n echo \"::warning::The default GITHUB_TOKEN does not have agent-task API access\"\n echo \"SESSIONS_AVAILABLE=false\" >> $GITHUB_OUTPUT\n exit 1\nfi\necho \"✓ GH_TOKEN is configured\"\n\necho \"::endgroup::\"\n\n# Attempt to fetch sessions\necho \"::group::Fetching Copilot Agent Sessions\"\necho \"Fetching Copilot agent task sessions...\"\n\n# List recent agent tasks (limit to 50 for manageable analysis)\nif ! gh agent-task list --limit 50 --json number,title,state,createdAt,sessionId > /tmp/gh-aw/agent-sessions/sessions-list.json 2>&1; then\n echo \"::error::Failed to list agent tasks\"\n echo \"::warning::This may indicate missing permissions or GitHub Enterprise Copilot is not enabled\"\n echo \"SESSIONS_AVAILABLE=false\" >> $GITHUB_OUTPUT\n exit 1\nfi\n\necho \"Sessions list saved to /tmp/gh-aw/agent-sessions/sessions-list.json\"\nTOTAL_SESSIONS=$(jq 'length' /tmp/gh-aw/agent-sessions/sessions-list.json)\necho \"Total sessions found: $TOTAL_SESSIONS\"\n\nif [ \"$TOTAL_SESSIONS\" -eq 0 ]; then\n echo \"::warning::No sessions available for analysis\"\n echo \"SESSIONS_AVAILABLE=false\" >> $GITHUB_OUTPUT\n exit 0\nfi\n\n# Download logs for each session (limit to first 50)\necho \"Downloading session logs...\"\njq -r '.[] | .sessionId // .number' /tmp/gh-aw/agent-sessions/sessions-list.json | head -50 | while read -r session_id; do\n if [ ! -z \"$session_id\" ]; then\n echo \"Downloading session: $session_id\"\n gh agent-task view \"$session_id\" --log > \"/tmp/gh-aw/agent-sessions/logs/${session_id}.log\" 2>&1 || true\n fi\ndone\n\nLOG_COUNT=$(find /tmp/gh-aw/agent-sessions/logs/ -maxdepth 1 -type f 2>/dev/null | wc -l)\necho \"Session logs downloaded to /tmp/gh-aw/agent-sessions/logs/\"\necho \"Total log files: $LOG_COUNT\"\n\necho \"SESSIONS_AVAILABLE=true\" >> $GITHUB_OUTPUT\necho \"::endgroup::\"\n" + run: "# Create output directory\nmkdir -p /tmp/gh-aw/agent-sessions\nmkdir -p /tmp/gh-aw/agent-sessions/logs\n\n# Pre-flight validation checks\necho \"::group::Pre-flight Validation\"\n\n# Check if gh CLI is available\nif ! command -v gh &> /dev/null; then\n echo \"::error::GitHub CLI (gh) is not installed or not in PATH\"\n echo \"SESSIONS_AVAILABLE=false\" >> \"$GITHUB_OUTPUT\"\n exit 1\nfi\necho \"✓ GitHub CLI found: $(gh --version | head -1)\"\n\n# Check if gh agent-task extension is installed\nif ! gh agent-task --help &> /dev/null; then\n echo \"::warning::gh agent-task extension is not installed\"\n echo \"::warning::To install: gh extension install github/agent-task\"\n echo \"::warning::This workflow requires GitHub Enterprise Copilot access\"\n echo \"SESSIONS_AVAILABLE=false\" >> \"$GITHUB_OUTPUT\"\n exit 1\nfi\necho \"✓ gh agent-task extension found\"\n\n# Check authentication\nif [ -z \"$GH_TOKEN\" ]; then\n echo \"::error::GH_TOKEN is not set\"\n echo \"::warning::Configure GH_AW_COPILOT_TOKEN secret with a Personal Access Token\"\n echo \"::warning::The default GITHUB_TOKEN does not have agent-task API access\"\n echo \"SESSIONS_AVAILABLE=false\" >> \"$GITHUB_OUTPUT\"\n exit 1\nfi\necho \"✓ GH_TOKEN is configured\"\n\necho \"::endgroup::\"\n\n# Attempt to fetch sessions\necho \"::group::Fetching Copilot Agent Sessions\"\necho \"Fetching Copilot agent task sessions...\"\n\n# List recent agent tasks (limit to 50 for manageable analysis)\nif ! gh agent-task list --limit 50 --json number,title,state,createdAt,sessionId > /tmp/gh-aw/agent-sessions/sessions-list.json 2>&1; then\n echo \"::error::Failed to list agent tasks\"\n echo \"::warning::This may indicate missing permissions or GitHub Enterprise Copilot is not enabled\"\n echo \"SESSIONS_AVAILABLE=false\" >> \"$GITHUB_OUTPUT\"\n exit 1\nfi\n\necho \"Sessions list saved to /tmp/gh-aw/agent-sessions/sessions-list.json\"\nTOTAL_SESSIONS=$(jq 'length' /tmp/gh-aw/agent-sessions/sessions-list.json)\necho \"Total sessions found: $TOTAL_SESSIONS\"\n\nif [ \"$TOTAL_SESSIONS\" -eq 0 ]; then\n echo \"::warning::No sessions available for analysis\"\n echo \"SESSIONS_AVAILABLE=false\" >> \"$GITHUB_OUTPUT\"\n exit 0\nfi\n\n# Download logs for each session (limit to first 50)\necho \"Downloading session logs...\"\njq -r '.[] | .sessionId // .number' /tmp/gh-aw/agent-sessions/sessions-list.json | head -50 | while read -r session_id; do\n if [ ! -z \"$session_id\" ]; then\n echo \"Downloading session: $session_id\"\n gh agent-task view \"$session_id\" --log > \"/tmp/gh-aw/agent-sessions/logs/${session_id}.log\" 2>&1 || true\n fi\ndone\n\nLOG_COUNT=$(find /tmp/gh-aw/agent-sessions/logs/ -maxdepth 1 -type f 2>/dev/null | wc -l)\necho \"Session logs downloaded to /tmp/gh-aw/agent-sessions/logs/\"\necho \"Total log files: $LOG_COUNT\"\n\necho \"SESSIONS_AVAILABLE=true\" >> \"$GITHUB_OUTPUT\"\necho \"::endgroup::\"\n" - if: steps.download-sessions.outcome == 'failure' name: Create fallback session data run: "# Create empty session data to prevent downstream errors\nmkdir -p /tmp/gh-aw/agent-sessions/logs\necho '[]' > /tmp/gh-aw/agent-sessions/sessions-list.json\necho \"Created empty session data files for graceful degradation\"\n" diff --git a/.github/workflows/copilot-session-insights.md b/.github/workflows/copilot-session-insights.md index a0c481962f..1f47c04bf3 100644 --- a/.github/workflows/copilot-session-insights.md +++ b/.github/workflows/copilot-session-insights.md @@ -62,7 +62,7 @@ steps: # Check if gh CLI is available if ! command -v gh &> /dev/null; then echo "::error::GitHub CLI (gh) is not installed or not in PATH" - echo "SESSIONS_AVAILABLE=false" >> $GITHUB_OUTPUT + echo "SESSIONS_AVAILABLE=false" >> "$GITHUB_OUTPUT" exit 1 fi echo "✓ GitHub CLI found: $(gh --version | head -1)" @@ -72,7 +72,7 @@ steps: echo "::warning::gh agent-task extension is not installed" echo "::warning::To install: gh extension install github/agent-task" echo "::warning::This workflow requires GitHub Enterprise Copilot access" - echo "SESSIONS_AVAILABLE=false" >> $GITHUB_OUTPUT + echo "SESSIONS_AVAILABLE=false" >> "$GITHUB_OUTPUT" exit 1 fi echo "✓ gh agent-task extension found" @@ -82,7 +82,7 @@ steps: echo "::error::GH_TOKEN is not set" echo "::warning::Configure GH_AW_COPILOT_TOKEN secret with a Personal Access Token" echo "::warning::The default GITHUB_TOKEN does not have agent-task API access" - echo "SESSIONS_AVAILABLE=false" >> $GITHUB_OUTPUT + echo "SESSIONS_AVAILABLE=false" >> "$GITHUB_OUTPUT" exit 1 fi echo "✓ GH_TOKEN is configured" @@ -97,7 +97,7 @@ steps: if ! gh agent-task list --limit 50 --json number,title,state,createdAt,sessionId > /tmp/gh-aw/agent-sessions/sessions-list.json 2>&1; then echo "::error::Failed to list agent tasks" echo "::warning::This may indicate missing permissions or GitHub Enterprise Copilot is not enabled" - echo "SESSIONS_AVAILABLE=false" >> $GITHUB_OUTPUT + echo "SESSIONS_AVAILABLE=false" >> "$GITHUB_OUTPUT" exit 1 fi @@ -107,7 +107,7 @@ steps: if [ "$TOTAL_SESSIONS" -eq 0 ]; then echo "::warning::No sessions available for analysis" - echo "SESSIONS_AVAILABLE=false" >> $GITHUB_OUTPUT + echo "SESSIONS_AVAILABLE=false" >> "$GITHUB_OUTPUT" exit 0 fi @@ -124,7 +124,7 @@ steps: echo "Session logs downloaded to /tmp/gh-aw/agent-sessions/logs/" echo "Total log files: $LOG_COUNT" - echo "SESSIONS_AVAILABLE=true" >> $GITHUB_OUTPUT + echo "SESSIONS_AVAILABLE=true" >> "$GITHUB_OUTPUT" echo "::endgroup::" - name: Create fallback session data diff --git a/.github/workflows/daily-perf-improver.lock.yml b/.github/workflows/daily-perf-improver.lock.yml index 628c7a6d32..0f1983b8fe 100644 --- a/.github/workflows/daily-perf-improver.lock.yml +++ b/.github/workflows/daily-perf-improver.lock.yml @@ -581,9 +581,9 @@ jobs: name: Check if action.yml exists run: | if [ -f ".github/actions/daily-perf-improver/build-steps/action.yml" ]; then - echo "exists=true" >> $GITHUB_OUTPUT + echo "exists=true" >> "$GITHUB_OUTPUT" else - echo "exists=false" >> $GITHUB_OUTPUT + echo "exists=false" >> "$GITHUB_OUTPUT" fi shell: bash - continue-on-error: true diff --git a/.github/workflows/daily-perf-improver.md b/.github/workflows/daily-perf-improver.md index 5319ab23ea..6c308c5156 100644 --- a/.github/workflows/daily-perf-improver.md +++ b/.github/workflows/daily-perf-improver.md @@ -45,9 +45,9 @@ steps: id: check_build_steps_file run: | if [ -f ".github/actions/daily-perf-improver/build-steps/action.yml" ]; then - echo "exists=true" >> $GITHUB_OUTPUT + echo "exists=true" >> "$GITHUB_OUTPUT" else - echo "exists=false" >> $GITHUB_OUTPUT + echo "exists=false" >> "$GITHUB_OUTPUT" fi shell: bash - name: Build the project ready for performance testing, logging to build-steps.log diff --git a/.github/workflows/daily-test-improver.lock.yml b/.github/workflows/daily-test-improver.lock.yml index 1143288fbf..663e6a3a3c 100644 --- a/.github/workflows/daily-test-improver.lock.yml +++ b/.github/workflows/daily-test-improver.lock.yml @@ -581,9 +581,9 @@ jobs: name: Check if action.yml exists run: | if [ -f ".github/actions/daily-test-improver/coverage-steps/action.yml" ]; then - echo "exists=true" >> $GITHUB_OUTPUT + echo "exists=true" >> "$GITHUB_OUTPUT" else - echo "exists=false" >> $GITHUB_OUTPUT + echo "exists=false" >> "$GITHUB_OUTPUT" fi shell: bash - continue-on-error: true diff --git a/.github/workflows/daily-test-improver.md b/.github/workflows/daily-test-improver.md index 48ee456b23..bc08baf596 100644 --- a/.github/workflows/daily-test-improver.md +++ b/.github/workflows/daily-test-improver.md @@ -42,9 +42,9 @@ steps: id: check_coverage_steps_file run: | if [ -f ".github/actions/daily-test-improver/coverage-steps/action.yml" ]; then - echo "exists=true" >> $GITHUB_OUTPUT + echo "exists=true" >> "$GITHUB_OUTPUT" else - echo "exists=false" >> $GITHUB_OUTPUT + echo "exists=false" >> "$GITHUB_OUTPUT" fi shell: bash - name: Build the project and produce coverage report, logging to coverage-steps.log diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 98fd4d4d6d..d37a14c1d3 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -1523,7 +1523,7 @@ jobs: run: | set -o pipefail INSTRUCTION="$(cat "$GH_AW_PROMPT")" - mkdir -p $CODEX_HOME/logs + mkdir -p "$CODEX_HOME/logs" codex exec --full-auto --skip-git-repo-check "$INSTRUCTION" 2>&1 | tee /tmp/gh-aw/agent-stdio.log env: CODEX_API_KEY: ${{ secrets.CODEX_API_KEY || secrets.OPENAI_API_KEY }} @@ -3564,7 +3564,7 @@ jobs: run: | set -o pipefail INSTRUCTION="$(cat "$GH_AW_PROMPT")" - mkdir -p $CODEX_HOME/logs + mkdir -p "$CODEX_HOME/logs" codex exec --full-auto --skip-git-repo-check "$INSTRUCTION" 2>&1 | tee /tmp/gh-aw/threat-detection/detection.log env: CODEX_API_KEY: ${{ secrets.CODEX_API_KEY || secrets.OPENAI_API_KEY }} diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index b04c4abab6..b686bc09c7 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -180,12 +180,12 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} name: Fetch Copilot PR data - run: "# Create output directories\nmkdir -p /tmp/gh-aw/pr-data\nmkdir -p /tmp/gh-aw/prompt-cache/pr-full-data\n\n# Calculate date 30 days ago\nDATE_30_DAYS_AGO=$(date -d '30 days ago' '+%Y-%m-%d' 2>/dev/null || date -v-30d '+%Y-%m-%d')\n\n# Search for PRs created by Copilot in the last 30 days\necho \"Fetching Copilot PRs from the last 30 days...\"\ngh search prs --repo ${{ github.repository }} \\\n --author \"copilot\" \\\n --created \">=$DATE_30_DAYS_AGO\" \\\n --json number,title,state,createdAt,closedAt,author,body,labels,url,assignees,repository,mergedAt \\\n --limit 1000 \\\n > /tmp/gh-aw/pr-data/copilot-prs.json\n\n# Generate schema for reference\ncat /tmp/gh-aw/pr-data/copilot-prs.json | /tmp/gh-aw/jqschema.sh > /tmp/gh-aw/pr-data/copilot-prs-schema.json\n\necho \"PR data saved to /tmp/gh-aw/pr-data/copilot-prs.json\"\necho \"Schema saved to /tmp/gh-aw/pr-data/copilot-prs-schema.json\"\necho \"Total PRs found: $(jq 'length' /tmp/gh-aw/pr-data/copilot-prs.json)\"\n" + run: "# Create output directories\nmkdir -p /tmp/gh-aw/pr-data\nmkdir -p /tmp/gh-aw/prompt-cache/pr-full-data\n\n# Calculate date 30 days ago\nDATE_30_DAYS_AGO=$(date -d '30 days ago' '+%Y-%m-%d' 2>/dev/null || date -v-30d '+%Y-%m-%d')\n\n# Search for PRs created by Copilot in the last 30 days\necho \"Fetching Copilot PRs from the last 30 days...\"\ngh search prs --repo \"${{ github.repository }}\" \\\n --author \"copilot\" \\\n --created \">=$DATE_30_DAYS_AGO\" \\\n --json number,title,state,createdAt,closedAt,author,body,labels,url,assignees,repository,mergedAt \\\n --limit 1000 \\\n > /tmp/gh-aw/pr-data/copilot-prs.json\n\n# Generate schema for reference\ncat /tmp/gh-aw/pr-data/copilot-prs.json | /tmp/gh-aw/jqschema.sh > /tmp/gh-aw/pr-data/copilot-prs-schema.json\n\necho \"PR data saved to /tmp/gh-aw/pr-data/copilot-prs.json\"\necho \"Schema saved to /tmp/gh-aw/pr-data/copilot-prs-schema.json\"\necho \"Total PRs found: $(jq 'length' /tmp/gh-aw/pr-data/copilot-prs.json)\"\n" - env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} name: Download full PR data with comments and reviews - run: "# Download full data for each PR including comments, reviews, commits, and files\necho \"Downloading full PR data for each PR...\"\n\nPR_COUNT=$(jq 'length' /tmp/gh-aw/pr-data/copilot-prs.json)\necho \"Processing $PR_COUNT PRs...\"\n\n# Extract PR numbers and download full data for each\njq -r '.[].number' /tmp/gh-aw/pr-data/copilot-prs.json | while read -r pr_number; do\n echo \"Downloading full data for PR #$pr_number...\"\n \n # Download full PR data with all available fields\n gh pr view \"$pr_number\" \\\n --repo ${{ github.repository }} \\\n --json additions,assignees,author,autoMergeRequest,baseRefName,baseRefOid,body,changedFiles,closed,closedAt,closingIssuesReferences,comments,commits,createdAt,deletions,files,fullDatabaseId,headRefName,headRefOid,headRepository,headRepositoryOwner,id,isCrossRepository,isDraft,labels,latestReviews,maintainerCanModify,mergeCommit,mergeStateStatus,mergeable,mergedAt,mergedBy,milestone,number,potentialMergeCommit,projectCards,projectItems,reactionGroups,reviewDecision,reviewRequests,reviews,state,statusCheckRollup,title,updatedAt,url \\\n > /tmp/gh-aw/prompt-cache/pr-full-data/pr-${pr_number}.json\n \n echo \"Downloaded PR #$pr_number\"\ndone\n\n# Create an index file listing all downloaded PRs\nfind /tmp/gh-aw/prompt-cache/pr-full-data/ -maxdepth 1 -name 'pr-[0-9]*.json' -type f -printf '%f\\n' | \\\n sed 's/pr-\\([0-9]*\\)\\.json/\\1/' | sort -n > /tmp/gh-aw/prompt-cache/pr-full-data/index.txt\n\necho \"Full PR data cached in /tmp/gh-aw/prompt-cache/pr-full-data/\"\necho \"Total PRs with full data: $(wc -l < /tmp/gh-aw/prompt-cache/pr-full-data/index.txt)\"\n" + run: "# Download full data for each PR including comments, reviews, commits, and files\necho \"Downloading full PR data for each PR...\"\n\nPR_COUNT=$(jq 'length' /tmp/gh-aw/pr-data/copilot-prs.json)\necho \"Processing $PR_COUNT PRs...\"\n\n# Extract PR numbers and download full data for each\njq -r '.[].number' /tmp/gh-aw/pr-data/copilot-prs.json | while read -r pr_number; do\n echo \"Downloading full data for PR #$pr_number...\"\n \n # Download full PR data with all available fields\n gh pr view \"$pr_number\" \\\n --repo \"${{ github.repository }}\" \\\n --json additions,assignees,author,autoMergeRequest,baseRefName,baseRefOid,body,changedFiles,closed,closedAt,closingIssuesReferences,comments,commits,createdAt,deletions,files,fullDatabaseId,headRefName,headRefOid,headRepository,headRepositoryOwner,id,isCrossRepository,isDraft,labels,latestReviews,maintainerCanModify,mergeCommit,mergeStateStatus,mergeable,mergedAt,mergedBy,milestone,number,potentialMergeCommit,projectCards,projectItems,reactionGroups,reviewDecision,reviewRequests,reviews,state,statusCheckRollup,title,updatedAt,url \\\n > \"/tmp/gh-aw/prompt-cache/pr-full-data/pr-${pr_number}.json\"\n \n echo \"Downloaded PR #$pr_number\"\ndone\n\n# Create an index file listing all downloaded PRs\nfind /tmp/gh-aw/prompt-cache/pr-full-data/ -maxdepth 1 -name 'pr-[0-9]*.json' -type f -printf '%f\\n' | \\\n sed 's/pr-\\([0-9]*\\)\\.json/\\1/' | sort -n > /tmp/gh-aw/prompt-cache/pr-full-data/index.txt\n\necho \"Full PR data cached in /tmp/gh-aw/prompt-cache/pr-full-data/\"\necho \"Total PRs with full data: $(wc -l < /tmp/gh-aw/prompt-cache/pr-full-data/index.txt)\"\n" - env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/prompt-clustering-analysis.md b/.github/workflows/prompt-clustering-analysis.md index bf781f3853..72bfe1d734 100644 --- a/.github/workflows/prompt-clustering-analysis.md +++ b/.github/workflows/prompt-clustering-analysis.md @@ -61,7 +61,7 @@ steps: # Search for PRs created by Copilot in the last 30 days echo "Fetching Copilot PRs from the last 30 days..." - gh search prs --repo ${{ github.repository }} \ + gh search prs --repo "${{ github.repository }}" \ --author "copilot" \ --created ">=$DATE_30_DAYS_AGO" \ --json number,title,state,createdAt,closedAt,author,body,labels,url,assignees,repository,mergedAt \ @@ -92,9 +92,9 @@ steps: # Download full PR data with all available fields gh pr view "$pr_number" \ - --repo ${{ github.repository }} \ + --repo "${{ github.repository }}" \ --json additions,assignees,author,autoMergeRequest,baseRefName,baseRefOid,body,changedFiles,closed,closedAt,closingIssuesReferences,comments,commits,createdAt,deletions,files,fullDatabaseId,headRefName,headRefOid,headRepository,headRepositoryOwner,id,isCrossRepository,isDraft,labels,latestReviews,maintainerCanModify,mergeCommit,mergeStateStatus,mergeable,mergedAt,mergedBy,milestone,number,potentialMergeCommit,projectCards,projectItems,reactionGroups,reviewDecision,reviewRequests,reviews,state,statusCheckRollup,title,updatedAt,url \ - > /tmp/gh-aw/prompt-cache/pr-full-data/pr-${pr_number}.json + > "/tmp/gh-aw/prompt-cache/pr-full-data/pr-${pr_number}.json" echo "Downloaded PR #$pr_number" done diff --git a/.github/workflows/shared/ffmpeg.md b/.github/workflows/shared/ffmpeg.md index 719e3606fd..a29981f76f 100644 --- a/.github/workflows/shared/ffmpeg.md +++ b/.github/workflows/shared/ffmpeg.md @@ -26,7 +26,7 @@ steps: run: | sudo apt-get update && sudo apt-get install -y ffmpeg version=$(ffmpeg -version | head -n1) - echo "version=$version" >> $GITHUB_OUTPUT + echo "version=$version" >> "$GITHUB_OUTPUT" mkdir -p /tmp/gh-aw/ffmpeg --- diff --git a/.github/workflows/shared/genaiscript.md b/.github/workflows/shared/genaiscript.md index 539dcde23f..756c8302f9 100644 --- a/.github/workflows/shared/genaiscript.md +++ b/.github/workflows/shared/genaiscript.md @@ -40,7 +40,7 @@ engine: - name: Run GenAIScript id: genaiscript - run: genaiscript run /tmp/gh-aw/aw-prompts/prompt.genai.md --mcp-config $GH_AW_MCP_CONFIG --out /tmp/gh-aw/genaiscript-output.md + run: genaiscript run /tmp/gh-aw/aw-prompts/prompt.genai.md --mcp-config "$GH_AW_MCP_CONFIG" --out /tmp/gh-aw/genaiscript-output.md env: DEBUG: genaiscript:* GH_AW_PROMPT: ${{ env.GH_AW_PROMPT }} diff --git a/.github/workflows/shared/opencode.md b/.github/workflows/shared/opencode.md index 47330e041d..28ca6a123c 100644 --- a/.github/workflows/shared/opencode.md +++ b/.github/workflows/shared/opencode.md @@ -7,7 +7,7 @@ engine: steps: - name: Install OpenCode and jq run: | - npm install -g opencode-ai@${GH_AW_AGENT_VERSION} + npm install -g "opencode-ai@${GH_AW_AGENT_VERSION}" sudo apt-get update && sudo apt-get install -y jq env: GH_AW_AGENT_VERSION: ${{ env.GH_AW_AGENT_VERSION }} diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 249abd07e1..fb19bbeebe 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -1263,7 +1263,7 @@ jobs: run: | set -o pipefail INSTRUCTION="$(cat "$GH_AW_PROMPT")" - mkdir -p $CODEX_HOME/logs + mkdir -p "$CODEX_HOME/logs" codex exec --full-auto --skip-git-repo-check "$INSTRUCTION" 2>&1 | tee /tmp/gh-aw/agent-stdio.log env: CODEX_API_KEY: ${{ secrets.CODEX_API_KEY || secrets.OPENAI_API_KEY }} @@ -3242,7 +3242,7 @@ jobs: run: | set -o pipefail INSTRUCTION="$(cat "$GH_AW_PROMPT")" - mkdir -p $CODEX_HOME/logs + mkdir -p "$CODEX_HOME/logs" codex exec --full-auto --skip-git-repo-check "$INSTRUCTION" 2>&1 | tee /tmp/gh-aw/threat-detection/detection.log env: CODEX_API_KEY: ${{ secrets.CODEX_API_KEY || secrets.OPENAI_API_KEY }} diff --git a/.github/workflows/smoke-opencode.lock.yml b/.github/workflows/smoke-opencode.lock.yml index d90b0ecd63..4fc6423d7d 100644 --- a/.github/workflows/smoke-opencode.lock.yml +++ b/.github/workflows/smoke-opencode.lock.yml @@ -1218,7 +1218,7 @@ jobs: if-no-files-found: warn - name: Install OpenCode and jq run: | - npm install -g opencode-ai@${GH_AW_AGENT_VERSION} + npm install -g "opencode-ai@${GH_AW_AGENT_VERSION}" sudo apt-get update && sudo apt-get install -y jq env: GH_AW_AGENT_MODEL: anthropic/claude-3-5-sonnet-20241022 @@ -2741,7 +2741,7 @@ jobs: touch /tmp/gh-aw/threat-detection/detection.log - name: Install OpenCode and jq run: | - npm install -g opencode-ai@${GH_AW_AGENT_VERSION} + npm install -g "opencode-ai@${GH_AW_AGENT_VERSION}" sudo apt-get update && sudo apt-get install -y jq env: GH_AW_AGENT_MODEL: anthropic/claude-3-5-sonnet-20241022 diff --git a/.github/workflows/test-post-steps.lock.yml b/.github/workflows/test-post-steps.lock.yml index 8eebf7a2db..c69b8349f7 100644 --- a/.github/workflows/test-post-steps.lock.yml +++ b/.github/workflows/test-post-steps.lock.yml @@ -1721,6 +1721,6 @@ jobs: path: /tmp/gh-aw/ retention-days: 1 - name: Final Summary - run: "{\n echo \"## Post-Steps Test Summary\"\n echo \"✅ All post-steps executed successfully\"\n echo \"This validates the post-steps indentation fix\"\n} >> $GITHUB_STEP_SUMMARY\n" + run: "{\n echo \"## Post-Steps Test Summary\"\n echo \"✅ All post-steps executed successfully\"\n echo \"This validates the post-steps indentation fix\"\n} >> \"$GITHUB_STEP_SUMMARY\"\n" diff --git a/.github/workflows/test-post-steps.md b/.github/workflows/test-post-steps.md index 1559871532..003fc76bed 100644 --- a/.github/workflows/test-post-steps.md +++ b/.github/workflows/test-post-steps.md @@ -37,7 +37,7 @@ post-steps: echo "## Post-Steps Test Summary" echo "✅ All post-steps executed successfully" echo "This validates the post-steps indentation fix" - } >> $GITHUB_STEP_SUMMARY + } >> "$GITHUB_STEP_SUMMARY" timeout_minutes: 5 --- diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 949edc53c5..a538258fae 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -156,7 +156,7 @@ jobs: run: |- sudo apt-get update && sudo apt-get install -y ffmpeg version=$(ffmpeg -version | head -n1) - echo "version=$version" >> $GITHUB_OUTPUT + echo "version=$version" >> "$GITHUB_OUTPUT" mkdir -p /tmp/gh-aw/ffmpeg - name: Create gh-aw temp directory diff --git a/pkg/workflow/codex_engine.go b/pkg/workflow/codex_engine.go index d3062906a8..6a043fe03c 100644 --- a/pkg/workflow/codex_engine.go +++ b/pkg/workflow/codex_engine.go @@ -109,12 +109,12 @@ func (e *CodexEngine) GetExecutionSteps(workflowData *WorkflowData, logFile stri instructionCommand = fmt.Sprintf(`set -o pipefail AGENT_CONTENT="$(awk 'BEGIN{skip=1} /^---$/{if(skip){skip=0;next}else{skip=1;next}} !skip' %s)" INSTRUCTION="$(printf "%%s\n\n%%s" "$AGENT_CONTENT" "$(cat "$GH_AW_PROMPT")")" -mkdir -p $CODEX_HOME/logs +mkdir -p "$CODEX_HOME/logs" codex %sexec%s%s%s"$INSTRUCTION" 2>&1 | tee %s`, workflowData.AgentFile, modelParam, webSearchParam, fullAutoParam, customArgsParam, logFile) } else { instructionCommand = fmt.Sprintf(`set -o pipefail INSTRUCTION="$(cat "$GH_AW_PROMPT")" -mkdir -p $CODEX_HOME/logs +mkdir -p "$CODEX_HOME/logs" codex %sexec%s%s%s"$INSTRUCTION" 2>&1 | tee %s`, modelParam, webSearchParam, fullAutoParam, customArgsParam, logFile) }