Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Github Laravel Package

graham-campbell/github

Laravel bridge to the KnpLabs PHP GitHub API. Provides a configurable GitHub client via a manager, with Laravel-friendly service container integration, facades, and multi-connection support for GitHub authentication and requests.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Developer Productivity: Accelerates GitHub API integration by abstracting authentication, caching, and connection management, reducing boilerplate code for common GitHub operations (e.g., issues, repos, orgs).
  • Multi-Environment Support: Enables seamless switching between GitHub connections (e.g., dev/staging/prod) via configurable connections, aligning with CI/CD pipelines or multi-repo workflows.
  • Security & Compliance: Supports OAuth (JWT, token), private key, and application auth methods, addressing enterprise needs for secure API access without exposing credentials in code.
  • Roadmap for GitHub-Centric Features:
    • Developer Portals: Build internal dashboards (e.g., issue trackers, PR workflows) by leveraging the package’s facade/manager pattern.
    • Automated Workflows: Integrate with Laravel queues/jobs to automate GitHub actions (e.g., syncing issues to a database, auto-labeling PRs).
    • Third-Party Extensions: Use as a foundation for custom GitHub-based features (e.g., "GitHub Issues as a Support Ticket System").
  • Build vs. Buy: Buy—avoids reinventing GitHub API wrappers, reduces technical debt, and leverages a maintained, battle-tested package. Only consider building if needing highly specialized GitHub interactions not covered by the underlying knplabs/github-api (e.g., custom rate-limiting logic).
  • Use Cases:
    • Internal Tools: Sync GitHub data (e.g., repo metadata, contributor stats) into Laravel apps.
    • Open-Source Projects: Streamline contributor onboarding (e.g., auto-assigning labels, fetching team members).
    • DevOps: Trigger Laravel jobs based on GitHub webhooks (e.g., deploy on PR merge).

When to Consider This Package

Adopt if:

  • Your Laravel app frequently interacts with GitHub’s API (e.g., >5 distinct endpoints/month) and needs authentication, caching, and connection management out of the box.
  • You require multi-connection support (e.g., different auth methods for dev vs. prod) or switchable contexts (e.g., per-tenant GitHub orgs).
  • Your team prioritizes developer velocity over fine-grained control (e.g., you’d rather use GitHub::issues()->show() than raw HTTP clients).
  • You’re using Laravel 10–13 and PHP 8.1–8.5 (or can upgrade).

Look elsewhere if:

  • You need GitHub Enterprise-specific features (this package uses the public API).
  • Your use case requires deep customization of the underlying Github\Client (e.g., modifying request/response pipelines). Consider forking or extending knplabs/github-api directly.
  • You’re on Laravel <10 or PHP <8.1 (package drops legacy support).
  • Your primary need is webhook handling (use laravel-webhooks or spatie/laravel-webhook-server instead).
  • You require real-time updates (this package is request-driven; pair with Laravel Echo/Pusher for live events).

How to Pitch It (Stakeholders)

For Executives: "This package lets us integrate with GitHub’s API 10x faster by handling authentication, caching, and connection switching automatically—like a ‘GitHub SDK for Laravel.’ For example, we can fetch a user’s repos with a single line of code (GitHub::repo()->show()) instead of writing custom HTTP clients. It’s secure (supports OAuth, private keys), scalable (multi-environment support), and maintained (actively updated for Laravel 13/PHP 8.5). This reduces dev time for GitHub-related features and aligns with our roadmap for developer tools and automation."

For Engineering: *"This is a thin, opinionated wrapper around knplabs/github-api that gives us:

  • Facades/Managers: Clean syntax (GitHub::issues()->create()) with dependency injection support.
  • Multi-Connection: Switch between GitHub accounts/orgs via config (e.g., GitHub::connection('ci')->repo()->...).
  • Caching: Built-in HTTP caching (configurable TTLs) to reduce API calls.
  • Auth Flexibility: Supports tokens, JWT, private keys, and app auth—no more hardcoding credentials.
  • Laravel Native: Works with queues, events, and service containers seamlessly.

Tradeoffs:

  • Not a silver bullet for webhooks or Enterprise-specific needs.
  • If you need low-level control, you’ll still interact with Github\Client under the hood.

Proposal: Use this for any new GitHub integration (e.g., issue trackers, repo metadata). For existing custom clients, assess migration effort—likely worth it for teams with >3 GitHub endpoints."*

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky