claude-code icon indicating copy to clipboard operation
claude-code copied to clipboard

[FEATURE] Add native GitHub Issues integration for reading and implementing issues

Open anatesan-stream opened this issue 3 months ago • 5 comments

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Feature Description

Claude Code should be able to directly read GitHub issues from repositories it has access to, enabling developers to simply say "implement issue #64" without manually copying/pasting issue content.

Current Behavior

  • Claude Code can perform git operations (clone, commit, push) through local proxy
  • Claude Code cannot fetch GitHub issue details via web API or GitHub CLI
  • Users must manually copy/paste issue content for Claude to implement features
  • GitHub CLI (gh) is not available in the environment

Desired Behavior

When a user says "implement https://github.com/user/repo/issues/64", Claude Code should:

  1. Automatically fetch the issue title, description, and acceptance criteria
  2. Create a task plan based on the issue requirements
  3. Implement the solution
  4. Commit and push changes

Why This Matters

  • Industry standard workflow: Most software teams track work in issue tracking systems (GitHub Issues, Jira, Linear, etc.)
  • Reduces friction: Currently requires context switching and manual copy/paste
  • Incomplete context: Users may forget to include important details from comments
  • Poor developer experience: Having git access but not issue access feels inconsistent

Proposed Solutions

Option 1: GitHub CLI Integration (Preferred)

  • Pre-install gh CLI in Claude Code environment
  • Authenticate using the same mechanism that enables git operations
  • Enable commands like: gh issue view 64 --repo user/repo --json title,body,labels

Option 2: Extend Local Proxy

  • Enhance the existing 127.0.0.1:17459 proxy to support GitHub API endpoints
  • Add routes like /api/repos/:owner/:repo/issues/:number
  • Reuse existing authentication mechanism

Option 3: Direct GitHub API Access

  • Enable WebFetch tool to access GitHub API with proper authentication
  • Use existing git credentials for API token

Use Case Example

implement https://github.com/anatesan-stream/resume-extract-components/issues/64

I'll help you implement issue #64. Let me first fetch the issue details from GitHub to understand what needs to be done.

WebFetch https://github.com/anatesan-stream/resume-extract-components/issues/64 Request failed with status code 404 Let me try the GitHub API endpoint instead:

WebFetch https://api.github.com/repos/anatesan-stream/resume-extract-components/issues/64 Request failed with status code 404 I'm unable to fetch issue #64 from the GitHub API (getting 404 errors). This could be because the repository is private or requires authentication.

Could you please provide the details of issue #64? Specifically:

What is the issue title and description? What are the requirements or acceptance criteria? Any implementation details or specific approach mentioned? Alternatively, you could paste the issue content directly here, and I'll implement it for you.

The link is https://github.com/anatesan-stream/resume-extract-components/issues/64

WebFetch https://github.com/anatesan-stream/resume-extract-components/issues/64 Request failed with status code 404 I'm unable to access the GitHub issue directly (getting 404 errors - likely because the repository is private). Let me check if there are any references to issue #64 in the codebase or recent commits:

Bash git log --all --grep="64" --oneline | head -20 aca2792 Add Match Level to Executive Summary in HTML match report 152906a Feature: Add PDF-friendly CSS print styles with A4 page breaks (#87) ca4cc31 feat: Implement Phase 1 of API endpoint naming rationalization (Issue #51) Grep #64|issue.*64|64.*issue I can see we're on the correct branch for issue #64, but I still cannot access the GitHub issue content directly. Could you please provide the issue details by either:

Copying and pasting the issue content here (title, description, requirements) Describing what needs to be implemented in your own words Pointing me to any documentation or comments in the codebase that describe the task This will allow me to proceed with the implementation immediately.

Do you have access to my repository? This is an issue tied to that repository.... I don't understand the reason for the 404 and we need to fix this...

You're absolutely right to question this. Let me investigate why I can't access your repository. Let me check a few things:

Bash git remote -v origin http://[email protected]:17459/git/anatesan-stream/resume-extract-components (fetch) origin http://[email protected]:17459/git/anatesan-stream/resume-extract-components (push) Bash git config --list | grep -i github (No content) Bash which gh Error I see the issue! The repository is using a local proxy (127.0.0.1:17459) rather than direct GitHub access. Let me try to fetch the issue through that proxy:

WebFetch http://127.0.0.1:17459/api/repos/anatesan-stream/resume-extract-components/issues/64 write EPROTO C0FCD225A67E0000:error:0A0000C6:SSL routines:tls_get_more_records:packet length too long:../deps/openssl/openssl/ssl/record/methods/tls_common.c:662: Let me search for any local documentation or references to issue #64:

Bash find . -type f ( -name ".md" -o -name ".txt" -o -name "TODO*" -o -name "ISSUES*" ) 2>/dev/null | head -20 ./docs/archived/old-sqs-q-retirement - IMPLEMENTED/02-update-deploy-script.md ./docs/archived/old-sqs-q-retirement - IMPLEMENTED/01-remove-legacy-service-files.md ./docs/archived/s3-match-report-storage - IMPLEMENTED/S3_IMPLEMENTATION_SUMMARY.md ... +17 lines Bash git log --all --oneline --since="1 month ago" | head -30 77f6c35 Merge pull request #79 from anatesan-stream/debug/log-endpoint-parameters ca67c29 Debug: Add raw form data logging to capture ALL POST parameters fc6f0fd Debug: Add comprehensive parameter logging to /analyze endpoint ... +27 lines I understand your frustration. Here's what's happening:

The Issue:

Your repository is configured to use a local proxy (127.0.0.1:17459) instead of direct GitHub access My WebFetch tool cannot access GitHub issues through this proxy setup The GitHub CLI (gh) is not installed in this environment According to my documentation: "For GitHub issues ask the user to provide the necessary information directly."

However, I realize this is not ideal. Let me offer you two solutions:

Option 1 (Quickest): Could you paste the issue #64 content here? Just copy the title, description, and requirements from the GitHub issue page.

Option 2 (Investigation): Is there a way to grant me API access through your proxy? Or is there documentation about how to access GitHub issues in this environment?

I want to implement this correctly for you, but I need the issue details to proceed. I apologize for this limitation - it seems to be an architectural constraint of the environment rather than a permissions issue.

What would you prefer to do?

I don't believe I set up any local proxy in my repository - how do I fix this in my repository? Do I need to install something?

You're absolutely right - you didn't set up any local proxy! This is actually part of the Claude Code environment infrastructure, not something in your repository. Let me clarify:

Bash git config --get-regexp 'remote.origin.' remote.origin.url http://[email protected]:17459/git/anatesan-stream/resume-extract-components remote.origin.fetch +refs/heads/:refs/remotes/origin/ Bash env | grep -i github (No content) Bash curl -s -H "Accept: application/vnd.github.v3+json" http://127.0.0.1:17459/api/repos/anatesan-stream/resume-extract-components/issues/64 2>&1 | head -50 Invalid path format No, you don't need to install or fix anything! The proxy at 127.0.0.1:17459 is part of the Claude Code environment's infrastructure - it's how the system manages git operations for me.

The real issue is: According to my documentation, "The GitHub CLI (gh) is not available in this environment. For GitHub issues ask the user to provide the necessary information directly."

This is a known limitation of Claude Code - I can access your git repository (clone, commit, push), but I cannot fetch GitHub issue details via the web API.

The solution is simple: Could you please paste the details of issue #64 here? You can:

Open https://github.com/anatesan-stream/resume-extract-components/issues/64 in your browser Copy the issue title, description, and any requirements Paste them in your next message Once you provide the details, I'll immediately start implementing the solution. This is the standard workflow for Claude Code when working with GitHub issues.

Sorry for the confusion - this is a Claude Code architectural limitation, not a problem with your setup!

This is very limiting if I cannot point you at a Github issue and have you implement this... I assume most software dev shops track their features through issues in some tracking DB.... So, why is this limitation persisting. Can you install gh in your environment?

You're absolutely right! This is a very reasonable expectation for a development tool. Let me try to install the GitHub CLI (gh) right now:

Bash which gh || echo "gh not found" gh not found Bash curl --version && wget --version 2>&1 | head -1 Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd GNU Wget 1.21.4 built on linux-gnu. ... +2 lines Great! Let me install the GitHub CLI now:

Bash cd /tmp && curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg -o githubcli-archive-keyring.gpg 2>&1 curl: (22) The requested URL returned error: 403 Let me try downloading the binary directly:

Bash cd /tmp && curl -L https://github.com/cli/cli/releases/download/v2.40.1/gh_2.40.1_linux_amd64.tar.gz -o gh.tar.gz 2>&1 | tail -5

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0

100 13 100 13 0 0 77 0 --:--:-- --:--:-- --:--:-- 77 Shell cwd was reset to /home/user/resume-extract-components ... +2 lines Bash ls -lh /tmp/gh.tar.gz 2>&1 && file /tmp/gh.tar.gz 2>&1 -rw-r--r-- 1 root root 13 Nov 4 18:58 /tmp/gh.tar.gz /tmp/gh.tar.gz: ASCII text, with no line terminators Bash cat /tmp/gh.tar.gz Access denied Bash curl -s http://127.0.0.1:17459/repos/anatesan-stream/resume-extract-components/issues/64 2>&1 Invalid path format Bash curl -s http://127.0.0.1:17459/ 2>&1 | head -20 Invalid path format Bash curl -s http://127.0.0.1:17459/help 2>&1 Invalid path format I've attempted to install the GitHub CLI, but I'm hitting limitations:

What I Found:

External downloads are restricted - Can't download the gh CLI from GitHub releases (Access denied) The local proxy is git-only - The proxy at 127.0.0.1:17459 only handles git operations, not GitHub API calls This appears to be intentional sandboxing by the Claude Code environment You're absolutely right - this is a significant limitation! Most dev teams work exactly this way: point at an issue and implement it. This should be a core capability.

Proposed Solution

See body of feature - multiple features are recommended

Alternative Solutions

No response

Priority

High - Significant impact on productivity

Feature Category

CLI commands and flags

Use Case Example

User: "Implement issue #64 from my repository"

Claude: Fetches issue automatically

Additional Context

Environment Context

  • Platform: Linux
  • Current git remote format: http://[email protected]:17459/git/:owner/:repo
  • Documentation states: "For GitHub issues ask the user to provide the necessary information directly"

Impact

This would make Claude Code significantly more useful for real-world software development workflows where requirements live in issue tracking systems.

anatesan-stream avatar Nov 04 '25 19:11 anatesan-stream