Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend GitProxy to Handle All GitHub Communications and Reviews #910

Open
monfla000 opened this issue Feb 20, 2025 · 3 comments
Open

Extend GitProxy to Handle All GitHub Communications and Reviews #910

monfla000 opened this issue Feb 20, 2025 · 3 comments
Labels
enhancement New feature or request

Comments

@monfla000
Copy link

Is your feature request related to a problem? Please describe.
Financial institutions and enterprises with strict security requirements need complete control and visibility over all GitHub interactions, including both git protocol operations and web-based communications. While git-proxy handles some git protocol operations, a comprehensive solution is needed that covers all possible interaction channels with GitHub. This includes git protocol operations (push/pull/fetch), API communications, issue management, pull request reviews, and general GitHub interactions. Currently, the fragmented coverage of these channels creates potential security gaps, makes it difficult to maintain a complete audit trail, and risks sensitive information being accidentally exposed.

Describe the solution you'd like
Implement a comprehensive GitHub proxy layer that intercepts and manages all forms of GitHub interaction from within an organization:

  1. Git Protocol and Web/API Communication Coverage:

    • SSH protocol communications
    • HTTPS protocol communications
    • REST API calls to GitHub
    • GraphQL API communications
  2. Feature Coverage:

    • Issues Management:
      • Creation and modification of issues
      • Comment management
    • Pull Request Operations:
      • PR creation and updates
      • Review comments and discussions
      • Review state management (approve/reject/request changes)
  3. Security Features:

    • Content scanning pipeline for all communications (both git and web)
    • Pattern matching for sensitive data (API keys, internal IPs, etc.)
    • Custom regex rules for organization-specific sensitive data
    • Automatic redaction of identified sensitive information
    • Block/Allow lists for specific types of content
    • Pre-push hooks for git operations
    • Commit content scanning
  4. Audit Capabilities:

    • Detailed logging of all GitHub interactions (git and web)
    • Who-did-what-when tracking across all channels
    • Full text search across historical communications
    • Git operation audit trail
    • Export capabilities for compliance reporting
    • Commit history analysis
  5. Review Workflow:

    • Multi-level approval process for different types of operations
    • Automated review rules based on content patterns
    • Emergency override capabilities with proper authentication
    • Pre-push review requirements
  6. Administration:

    • Role-based access control for all proxy features
    • Configuration management through code
    • Health monitoring and alerts
    • Performance metrics and analytics

Additional context
This feature would be particularly valuable for:

  • Financial institutions requiring strict compliance with regulations
  • Organizations handling sensitive intellectual property
  • Enterprises with strict data loss prevention requirements

The implementation should provide a unified interface for managing all GitHub interactions while being minimally intrusive to developer workflows.

@JamieSlome JamieSlome added the enhancement New feature or request label Feb 20, 2025
@coopernetes
Copy link
Contributor

coopernetes commented Feb 20, 2025

Thanks for creating this issue!

At RBC, we have an internal app that does this by proxying GitHub's CLI that we've namely dubbed "github-proxy" ;) it only has rudimentary support for creating PRs & issues but we've been trying to tackle the same gaps. It uses the same Express-based middleware as GitProxy.

There are some sharp edges in handling these interactions and there are many aspects of interacting with GitHub (not even talking about other providers at this point) such as posting screenshots in issues, discussion participation, etc. that the CLI doesn't necessarily have full support for.

I think it makes sense to bring this functionality into this project. I would say it likely requires some "re-invention" in terms of mimicking GitHub's own interface and applying similar filtering/policy enforcement on the content that leaves from that app bound for GitHub.

I'd also caution on trying to tackle this before some of the tech debt is addressed. See #425 for details.

Also, just to point out - I don't think it's reasonable to reinvent a full-blown web browser proxy since there's plenty of commercial vendors that play in this space which are more feature complete.

@monfla000
Copy link
Author

Thanks @coopernetes for sharing your insights. Is the internal app you mentioned something that can be ported to GitProxy or should we consider new implementation of the features? Also, which of the tech debt items do you consider essential to deliver above functionality at least in parts?

@JamieSlome
Copy link
Member

JamieSlome commented Feb 27, 2025

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants