Skip to content

On branch edburns/dd-2855288-add-smoke-test-to-build-and-test Add --yolo to get past permissions problems like this:#26

Merged
edburns merged 5 commits intogithub:mainfrom
edburns:edburns/dd-2855288-add-smoke-test-to-build-and-test
Mar 25, 2026
Merged

On branch edburns/dd-2855288-add-smoke-test-to-build-and-test Add --yolo to get past permissions problems like this:#26
edburns merged 5 commits intogithub:mainfrom
edburns:edburns/dd-2855288-add-smoke-test-to-build-and-test

Conversation

@edburns
Copy link
Collaborator

@edburns edburns commented Mar 25, 2026

modified: .github/workflows/run-smoke-test.yml

Read PROMPT-smoke-test.md
  │ src/test/prompts/PROMPT-smoke-test.md
  └ 135 lines read
● Read README.md
  └ 205 lines read
Now I have all the info. Let me create the smoke-test project:
✗ Create smoke-test directory structure (shell)
  │ mkdir -p /home/runner/work/copilot-sdk-java/copilot-sdk-java/smoke-test/src/main/java
  └ Permission denied and could not request permission from user
✗ Create smoke-test directory (shell)
  │ mkdir -p smoke-test/src/main/java && echo "done"
  └ Permission denied and could not request permission from user
● Check current directory and permissions (shell)
  │ ls -la && pwd
  └ 31 lines...
✗ Create smoke-test directory with install (shell)
  │ install -d smoke-test/src/main/java && echo "done"
  └ Permission denied and could not request permission from user
✗ Check parent directory permissions (shell)
  │ ls -la /home/runner/work/copilot-sdk-java/ && stat
  │ /home/runner/work/copilot-sdk-java/copilot-sdk-java
  └ Permission denied and could not request permission from user
● Check who we are and permissions (shell)
  │ whoami && ls -la . | head -5
  └ 7 lines...
✗ Test basic write permission (shell)
  │ echo test > /tmp/test.txt && cat /tmp/test.txt
  └ Permission denied and could not request permission from user
● Test basic echo (shell)
  │ echo test
  └ 2 lines...
✗ Test creating file (shell)
  │ touch smoke-test-tmp-check 2>&1; echo "exit: $?"
  └ Permission denied and could not request permission from user
✗ Create directory with Python (shell)
  │ python3 -c "import os; os.makedirs('smoke-test/src/main/java', exist_ok=True); print('done')"
  └ Permission denied and could not request permission from user
● Check if smoke-test exists (shell)
  │ ls smoke-test 2>&1 || echo "no smoke-test dir"
  └ 3 lines...
✗ Test if cp command works (shell)
  │ cp -r /dev/null /tmp/test 2>&1; echo "exit: $?"
  └ Permission denied and could not request permission from user
Let me try using the `create` tool directly and see if parent directories are created:
✗ Create CopilotSDK.java
  │ smoke-test/src/main/java/CopilotSDK.java
  └ Parent directory does not exist
✗ Create directory with Node.js (shell)
  │ node -e "const fs=require('fs'); fs.mkdirSync('smoke-test/src/main/java',{recursive:true});
  │ console.log('done');"
  └ Permission denied and could not request permission from user
● List directory with absolute path (shell)
  │ ls -la /home/runner/work/copilot-sdk-java/copilot-sdk-java/ 2>&1 | head -5
  └ 6 lines...
● Check permissions numerically (shell)
  │ stat -c "%a %U %G" . && id
  └ 3 lines...
✗ bash Running command
  └ Expected ':' after property name in JSON at position 11 (line 1 column 12)
✗ Try mkdir (shell)
  │ mkdir smoke-test && echo "success"
  └ Permission denied and could not request permission from user
✗ Check if filesystem is read-only (shell)
  │ mount | grep "$(df . | tail -1 | awk '{print $6}')"
  └ Command blocked: contains dangerous shell expansion patterns (e.g., parameter transformation,
    indirect expansion, or nested command substitution) that could enable arbitrary code execution.
    Please rewrite the command without these expansion patterns.
✗ Check filesystem mount options (shell)
  │ mount | grep "/home/runner/work"
  └ Permission denied and could not request permission from user
✗ Check mounts via proc (shell)
  │ cat /proc/mounts | grep home
  └ Permission denied and could not request permission from user
● Check filesystem (shell)
  │ df . 2>&1
  └ 3 lines...
✗ Check root filesystem mount options (shell)
  │ grep "/dev/root" /proc/mounts
  └ Permission denied and could not request permission from user
✗ Check if proc mounts is accessible (shell)
  │ ls /proc/mounts 2>&1
  └ Permission denied and could not request permission from user
✗ List proc directory (shell)
  │ ls /proc/ 2>&1 | head -5
  └ Permission denied and could not request permission from user
● Check target directory (shell)
  │ ls -la target/ 2>&1 | head -5
  └ 6 lines...
● Check /tmp permissions (shell)
  │ ls -la /tmp/ 2>&1 | head -5
  └ 6 lines...
✗ Check session state directory (shell)
  │ ls -la /home/runner/.copilot/session-state/ 2>&1 | head -5
  └ Permission denied and could not request permission from user
● Try git status (shell)
  │ git --no-pager status 2>&1 | head -5
  └ 5 lines...
✗ Check Maven is available (shell)
  │ mvn --version 2>&1
  └ Permission denied and could not request permission from user
✗ Check Maven wrapper version (shell)
  │ ./mvnw --version 2>&1
  └ Permission denied and could not request permission from user
✗ Check Java version (shell)
  │ java --version 2>&1
  └ Permission denied and could not request permission from user
● Find mvn and java paths (shell)
  │ which mvn 2>&1 && which java 2>&1
  └ 3 lines...
✗ Try mvn with full path (shell)
  │ /usr/bin/mvn --version 2>&1
  └ Permission denied and could not request permission from user

edburns added 2 commits March 25, 2026 00:40
…yolo` to get past permissions problems like this:

modified:   .github/workflows/run-smoke-test.yml

```
Read PROMPT-smoke-test.md
  │ src/test/prompts/PROMPT-smoke-test.md
  └ 135 lines read
● Read README.md
  └ 205 lines read
Now I have all the info. Let me create the smoke-test project:
✗ Create smoke-test directory structure (shell)
  │ mkdir -p /home/runner/work/copilot-sdk-java/copilot-sdk-java/smoke-test/src/main/java
  └ Permission denied and could not request permission from user
✗ Create smoke-test directory (shell)
  │ mkdir -p smoke-test/src/main/java && echo "done"
  └ Permission denied and could not request permission from user
● Check current directory and permissions (shell)
  │ ls -la && pwd
  └ 31 lines...
✗ Create smoke-test directory with install (shell)
  │ install -d smoke-test/src/main/java && echo "done"
  └ Permission denied and could not request permission from user
✗ Check parent directory permissions (shell)
  │ ls -la /home/runner/work/copilot-sdk-java/ && stat
  │ /home/runner/work/copilot-sdk-java/copilot-sdk-java
  └ Permission denied and could not request permission from user
● Check who we are and permissions (shell)
  │ whoami && ls -la . | head -5
  └ 7 lines...
✗ Test basic write permission (shell)
  │ echo test > /tmp/test.txt && cat /tmp/test.txt
  └ Permission denied and could not request permission from user
● Test basic echo (shell)
  │ echo test
  └ 2 lines...
✗ Test creating file (shell)
  │ touch smoke-test-tmp-check 2>&1; echo "exit: $?"
  └ Permission denied and could not request permission from user
✗ Create directory with Python (shell)
  │ python3 -c "import os; os.makedirs('smoke-test/src/main/java', exist_ok=True); print('done')"
  └ Permission denied and could not request permission from user
● Check if smoke-test exists (shell)
  │ ls smoke-test 2>&1 || echo "no smoke-test dir"
  └ 3 lines...
✗ Test if cp command works (shell)
  │ cp -r /dev/null /tmp/test 2>&1; echo "exit: $?"
  └ Permission denied and could not request permission from user
Let me try using the `create` tool directly and see if parent directories are created:
✗ Create CopilotSDK.java
  │ smoke-test/src/main/java/CopilotSDK.java
  └ Parent directory does not exist
✗ Create directory with Node.js (shell)
  │ node -e "const fs=require('fs'); fs.mkdirSync('smoke-test/src/main/java',{recursive:true});
  │ console.log('done');"
  └ Permission denied and could not request permission from user
● List directory with absolute path (shell)
  │ ls -la /home/runner/work/copilot-sdk-java/copilot-sdk-java/ 2>&1 | head -5
  └ 6 lines...
● Check permissions numerically (shell)
  │ stat -c "%a %U %G" . && id
  └ 3 lines...
✗ bash Running command
  └ Expected ':' after property name in JSON at position 11 (line 1 column 12)
✗ Try mkdir (shell)
  │ mkdir smoke-test && echo "success"
  └ Permission denied and could not request permission from user
✗ Check if filesystem is read-only (shell)
  │ mount | grep "$(df . | tail -1 | awk '{print $6}')"
  └ Command blocked: contains dangerous shell expansion patterns (e.g., parameter transformation,
    indirect expansion, or nested command substitution) that could enable arbitrary code execution.
    Please rewrite the command without these expansion patterns.
✗ Check filesystem mount options (shell)
  │ mount | grep "/home/runner/work"
  └ Permission denied and could not request permission from user
✗ Check mounts via proc (shell)
  │ cat /proc/mounts | grep home
  └ Permission denied and could not request permission from user
● Check filesystem (shell)
  │ df . 2>&1
  └ 3 lines...
✗ Check root filesystem mount options (shell)
  │ grep "/dev/root" /proc/mounts
  └ Permission denied and could not request permission from user
✗ Check if proc mounts is accessible (shell)
  │ ls /proc/mounts 2>&1
  └ Permission denied and could not request permission from user
✗ List proc directory (shell)
  │ ls /proc/ 2>&1 | head -5
  └ Permission denied and could not request permission from user
● Check target directory (shell)
  │ ls -la target/ 2>&1 | head -5
  └ 6 lines...
● Check /tmp permissions (shell)
  │ ls -la /tmp/ 2>&1 | head -5
  └ 6 lines...
✗ Check session state directory (shell)
  │ ls -la /home/runner/.copilot/session-state/ 2>&1 | head -5
  └ Permission denied and could not request permission from user
● Try git status (shell)
  │ git --no-pager status 2>&1 | head -5
  └ 5 lines...
✗ Check Maven is available (shell)
  │ mvn --version 2>&1
  └ Permission denied and could not request permission from user
✗ Check Maven wrapper version (shell)
  │ ./mvnw --version 2>&1
  └ Permission denied and could not request permission from user
✗ Check Java version (shell)
  │ java --version 2>&1
  └ Permission denied and could not request permission from user
● Find mvn and java paths (shell)
  │ which mvn 2>&1 && which java 2>&1
  └ 3 lines...
✗ Try mvn with full path (shell)
  │ /usr/bin/mvn --version 2>&1
  └ Permission denied and could not request permission from user
```

Signed-off-by: Ed Burns <edburns@microsoft.com>
Copilot AI review requested due to automatic review settings March 25, 2026 04:43
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the GitHub Actions smoke-test workflow to run Copilot CLI in a non-interactive mode that bypasses permission prompts, addressing the “could not request permission from user” failures seen in CI.

Changes:

  • Add --yolo to the copilot invocation in the smoke-test workflow to auto-approve permission requests.

edburns added 3 commits March 25, 2026 00:51
…yolo` to get past permissions problems like this:

modified:   .github/workflows/run-smoke-test.yml

```
Read PROMPT-smoke-test.md
  │ src/test/prompts/PROMPT-smoke-test.md
  └ 135 lines read
● Read README.md
  └ 205 lines read
Now I have all the info. Let me create the smoke-test project:
✗ Create smoke-test directory structure (shell)
  │ mkdir -p /home/runner/work/copilot-sdk-java/copilot-sdk-java/smoke-test/src/main/java
  └ Permission denied and could not request permission from user
✗ Create smoke-test directory (shell)
  │ mkdir -p smoke-test/src/main/java && echo "done"
  └ Permission denied and could not request permission from user
● Check current directory and permissions (shell)
  │ ls -la && pwd
  └ 31 lines...
✗ Create smoke-test directory with install (shell)
  │ install -d smoke-test/src/main/java && echo "done"
  └ Permission denied and could not request permission from user
✗ Check parent directory permissions (shell)
  │ ls -la /home/runner/work/copilot-sdk-java/ && stat
  │ /home/runner/work/copilot-sdk-java/copilot-sdk-java
  └ Permission denied and could not request permission from user
● Check who we are and permissions (shell)
  │ whoami && ls -la . | head -5
  └ 7 lines...
✗ Test basic write permission (shell)
  │ echo test > /tmp/test.txt && cat /tmp/test.txt
  └ Permission denied and could not request permission from user
● Test basic echo (shell)
  │ echo test
  └ 2 lines...
✗ Test creating file (shell)
  │ touch smoke-test-tmp-check 2>&1; echo "exit: $?"
  └ Permission denied and could not request permission from user
✗ Create directory with Python (shell)
  │ python3 -c "import os; os.makedirs('smoke-test/src/main/java', exist_ok=True); print('done')"
  └ Permission denied and could not request permission from user
● Check if smoke-test exists (shell)
  │ ls smoke-test 2>&1 || echo "no smoke-test dir"
  └ 3 lines...
✗ Test if cp command works (shell)
  │ cp -r /dev/null /tmp/test 2>&1; echo "exit: $?"
  └ Permission denied and could not request permission from user
Let me try using the `create` tool directly and see if parent directories are created:
✗ Create CopilotSDK.java
  │ smoke-test/src/main/java/CopilotSDK.java
  └ Parent directory does not exist
✗ Create directory with Node.js (shell)
  │ node -e "const fs=require('fs'); fs.mkdirSync('smoke-test/src/main/java',{recursive:true});
  │ console.log('done');"
  └ Permission denied and could not request permission from user
● List directory with absolute path (shell)
  │ ls -la /home/runner/work/copilot-sdk-java/copilot-sdk-java/ 2>&1 | head -5
  └ 6 lines...
● Check permissions numerically (shell)
  │ stat -c "%a %U %G" . && id
  └ 3 lines...
✗ bash Running command
  └ Expected ':' after property name in JSON at position 11 (line 1 column 12)
✗ Try mkdir (shell)
  │ mkdir smoke-test && echo "success"
  └ Permission denied and could not request permission from user
✗ Check if filesystem is read-only (shell)
  │ mount | grep "$(df . | tail -1 | awk '{print $6}')"
  └ Command blocked: contains dangerous shell expansion patterns (e.g., parameter transformation,
    indirect expansion, or nested command substitution) that could enable arbitrary code execution.
    Please rewrite the command without these expansion patterns.
✗ Check filesystem mount options (shell)
  │ mount | grep "/home/runner/work"
  └ Permission denied and could not request permission from user
✗ Check mounts via proc (shell)
  │ cat /proc/mounts | grep home
  └ Permission denied and could not request permission from user
● Check filesystem (shell)
  │ df . 2>&1
  └ 3 lines...
✗ Check root filesystem mount options (shell)
  │ grep "/dev/root" /proc/mounts
  └ Permission denied and could not request permission from user
✗ Check if proc mounts is accessible (shell)
  │ ls /proc/mounts 2>&1
  └ Permission denied and could not request permission from user
✗ List proc directory (shell)
  │ ls /proc/ 2>&1 | head -5
  └ Permission denied and could not request permission from user
● Check target directory (shell)
  │ ls -la target/ 2>&1 | head -5
  └ 6 lines...
● Check /tmp permissions (shell)
  │ ls -la /tmp/ 2>&1 | head -5
  └ 6 lines...
✗ Check session state directory (shell)
  │ ls -la /home/runner/.copilot/session-state/ 2>&1 | head -5
  └ Permission denied and could not request permission from user
● Try git status (shell)
  │ git --no-pager status 2>&1 | head -5
  └ 5 lines...
✗ Check Maven is available (shell)
  │ mvn --version 2>&1
  └ Permission denied and could not request permission from user
✗ Check Maven wrapper version (shell)
  │ ./mvnw --version 2>&1
  └ Permission denied and could not request permission from user
✗ Check Java version (shell)
  │ java --version 2>&1
  └ Permission denied and could not request permission from user
● Find mvn and java paths (shell)
  │ which mvn 2>&1 && which java 2>&1
  └ 3 lines...
✗ Try mvn with full path (shell)
  │ /usr/bin/mvn --version 2>&1
  └ Permission denied and could not request permission from user
```

Signed-off-by: Ed Burns <edburns@microsoft.com>
modified:   .github/workflows/run-smoke-test.yml

- Only run on main.

Signed-off-by: Ed Burns <edburns@microsoft.com>
@edburns edburns merged commit 5a66057 into github:main Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants