get_access_token returns None in background tasks (task=True) #10329
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: Marvin Context Protocol | |
| on: | |
| issue_comment: { types: [created] } | |
| pull_request_review_comment: { types: [created] } | |
| pull_request_review: { types: [submitted] } | |
| pull_request: { types: [opened, edited] } | |
| issues: { types: [opened, edited, assigned, labeled] } | |
| discussion: { types: [created, edited, labeled] } | |
| discussion_comment: { types: [created] } | |
| permissions: | |
| contents: write | |
| issues: write | |
| pull-requests: write | |
| discussions: write | |
| actions: read | |
| id-token: write | |
| jobs: | |
| marvin: | |
| # Restrict all triggers to repo members (OWNER, MEMBER, COLLABORATOR) | |
| if: | | |
| ( | |
| (github.event_name == 'issue_comment' || github.event_name == 'pull_request_review_comment' || github.event_name == 'discussion_comment') && | |
| contains(github.event.comment.body, '/marvin') && | |
| contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association) | |
| ) || | |
| (github.event_name == 'pull_request_review' && contains(github.event.review.body, '/marvin') && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.review.author_association)) || | |
| (github.event_name == 'pull_request' && contains(github.event.pull_request.body, '/marvin') && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.pull_request.author_association)) || | |
| (github.event_name == 'issues' && contains(github.event.issue.body, '/marvin') && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.issue.author_association)) || | |
| (github.event_name == 'discussion' && contains(github.event.discussion.body, '/marvin') && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.discussion.author_association)) || | |
| ( | |
| github.event_name == 'issues' && | |
| ((github.event.action == 'assigned' && github.event.assignee.login == 'Marvin Context Protocol') || (github.event.action == 'labeled' && github.event.label.name == 'marvin')) && | |
| contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.sender.author_association) | |
| ) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| # Install UV package manager | |
| - name: Install UV | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| # Install project dependencies | |
| - name: Install dependencies | |
| run: uv sync --python 3.12 | |
| - name: Run prek | |
| uses: j178/prek-action@v1 | |
| env: | |
| SKIP: no-commit-to-branch | |
| - name: Generate Marvin App token | |
| id: marvin-token | |
| uses: actions/create-github-app-token@v2 | |
| with: | |
| app-id: ${{ secrets.MARVIN_APP_ID }} | |
| private-key: ${{ secrets.MARVIN_APP_PRIVATE_KEY }} | |
| - name: Clean up stale Claude locks | |
| run: rm -rf ~/.claude/.locks ~/.local/state/claude/locks || true | |
| # Marvin Assistant | |
| - name: Run Marvin | |
| uses: anthropics/claude-code-action@v1 | |
| with: | |
| github_token: ${{ steps.marvin-token.outputs.token }} | |
| anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
| trigger_phrase: "/marvin" | |
| allowed_bots: "*" | |
| claude_args: | | |
| --allowedTools WebSearch,WebFetch,Bash(uv:*),Bash(pre-commit:*),Bash(prek:*),Bash(pytest:*),Bash(ruff:*),Bash(ty:*),Bash(git:*),Bash(gh:*),mcp__github__add_issue_comment,mcp__github__create_issue,mcp__github__get_issue,mcp__github__list_issues,mcp__github__search_issues,mcp__github__update_issue,mcp__github__update_issue_comment,mcp__github__create_pull_request,mcp__github__get_pull_request,mcp__github__get_pull_request_comments,mcp__github__get_pull_request_files,mcp__github__get_pull_request_reviews,mcp__github__get_pull_request_status,mcp__github__list_pull_requests,mcp__github__update_pull_request,mcp__github__update_pull_request_branch,mcp__github__update_pull_request_comment,mcp__github__merge_pull_request | |
| additional_permissions: | | |
| actions: read | |
| settings: | | |
| { | |
| "model": "claude-sonnet-4-5-20250929", | |
| "env": { | |
| "GH_TOKEN": "${{ steps.marvin-token.outputs.token }}" | |
| }, | |
| "customInstructions": "When you complete work on an issue: (1) You MUST create a pull request using the mcp__github__create_pull_request tool instead of posting a link, and (2) You MUST add the 'marvin-pr' label to the original issue using mcp__github__update_issue. Even if PR creation fails and you post a link instead, you MUST still add the 'marvin-pr' label. Follow the PR message guidelines in CLAUDE.md." | |
| } |