Weave 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

Linearavel Laravel Package

glhd/linearavel

Linearavel is a Laravel client for Linear's GraphQL API. Query issues, projects, teams, and cycles from your app with an expressive interface, config-driven auth, and typed responses built on Laravel's HTTP client, so you can sync Linear data or build integrations without hand-writing GraphQL.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Install with Composer per the package README, then publish any provided config if needed. Put the Linear API token in .env and reference it through config/services.php, not directly in code.
  • Look first at the package’s generated schema/type directory, config file, README examples, and tests. For 0.2.9 specifically, inspect CommentCreateInput, IntegrationSettingsInput, WorkflowTrigger, and DocumentShareRole.
  • Treat 0.2.9 as an additive schema refresh: no migration is required, and existing usage should remain valid. Adopt the new optional fields and enum cases incrementally.
  • First practical use case: wrap the package in a small Laravel service/action, run an authenticated Linear GraphQL query or mutation, and return app-level DTOs rather than leaking generated schema classes throughout the codebase. A good first mutation is creating a comment on an issue; use the new inline-anchor fields only when the comment targets document content.

Implementation Patterns

  • Bind a dedicated Linear client/service in the container and keep GraphQL query/mutation strings in focused query classes or actions. Inject the package’s generated input and enum types where they add type safety.
  • For CommentCreateInput, pass inlineAnchorFrom and inlineAnchorTo only for inline document comments. For normal issue comments, omit them so the API uses default behavior.
  • Use IntegrationSettingsInput.origin when creating or updating integration settings where source/origin attribution matters; otherwise leave it out.
  • Use the new WorkflowTrigger cases, addedToMergeQueue and removedFromMergeQueue, to map Linear merge-queue events into Laravel jobs, listeners, or workflow automations. Keep the mapping in one enum/translation class.
  • Use the new DocumentShareRole cases, comment and view, when modeling document-sharing permissions. Map them to app-level permission checks rather than exposing Linear role values directly to controllers.
  • For sync workflows, queue the work, paginate Linear results, upsert by Linear ID, and make jobs idempotent. Cache stable reference data such as teams and users where appropriate.
  • Test with recorded GraphQL responses or mocked clients. Add assertions for the new enum values and nullable input fields so future schema refreshes are caught early.

Gotchas and Tips

  • The release is additive, but adding enum cases can still break application code that uses exhaustive match expressions without a default. Audit any match on WorkflowTrigger and DocumentShareRole.
  • New input fields are optional and nullable. Omit them unless needed; do not send empty strings as substitutes for null.
  • GraphQL APIs often return HTTP 200 with an errors array. Always inspect GraphQL errors, not just the HTTP status.
  • Respect Linear rate limits and set sensible HTTP timeouts. Retry only safe/idempotent operations, and log request identifiers where available.
  • The package is at 0.2.x; pin versions and run the full test suite after composer update. Generated schema changes are usually low-risk but can affect IDE completion, static analysis, or enum mappings.
  • Keep generated package classes at the integration boundary. Add app-level DTOs, enum mappings, and action classes as extension points so upstream schema changes do not reshape your domain model.
  • After changing environment/config values, run php artisan config:clear. Keep tokens out of source control and avoid hardcoding the Linear endpoint unless the package explicitly requires an override.
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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo