PHPackages                             marshmallow/laravel-linear - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. marshmallow/laravel-linear

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

marshmallow/laravel-linear
==========================

This is my package laravel-linear

v1.4.1(3y ago)71.2k[4 PRs](https://github.com/marshmallow-packages/laravel-linear/pulls)1MITPHPPHP ^8.1CI passing

Since Nov 3Pushed 3w ago1 watchersCompare

[ Source](https://github.com/marshmallow-packages/laravel-linear)[ Packagist](https://packagist.org/packages/marshmallow/laravel-linear)[ Docs](https://github.com/laravellinear/laravel-linear)[ RSS](/packages/marshmallow-laravel-linear/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (17)Versions (25)Used By (1)

[![alt text](https://camo.githubusercontent.com/f5450f299f5713ce2f04dd5a1ba7ce9960ed4568b3574e4c4ee3cddc75477253/68747470733a2f2f6d617273686d616c6c6f772e6465762f63646e2f6d656469612f6c6f676f2d7265642d3233377834362e706e67 "marshmallow.")](https://camo.githubusercontent.com/f5450f299f5713ce2f04dd5a1ba7ce9960ed4568b3574e4c4ee3cddc75477253/68747470733a2f2f6d617273686d616c6c6f772e6465762f63646e2f6d656469612f6c6f676f2d7265642d3233377834362e706e67)

Connect your Laravel application with Linear
============================================

[](#connect-your-laravel-application-with-linear)

[![Latest Version on Packagist](https://camo.githubusercontent.com/70a8b020d154f2bf95186ff8f3467546805faf3a45bca185f57f3de43dacbde6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d617273686d616c6c6f772f6c61726176656c2d6c696e6561722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/marshmallow/laravel-linear)[![Tests](https://camo.githubusercontent.com/db567576bb4a47810d041dc94e91de73e4e4bba1cd7a1aff08bca262094e4a96/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6d617273686d616c6c6f772d7061636b616765732f6c61726176656c2d6c696e6561722f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/marshmallow-packages/laravel-linear/actions/workflows/run-tests.yml)[![Total Downloads](https://camo.githubusercontent.com/f9a72f134f5be9c8060abf5c07d3125027c172b47a3e4ac59f1997d42861d936/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d617273686d616c6c6f772f6c61726176656c2d6c696e6561722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/marshmallow/laravel-linear)

This package will allow you to connect your Laravel application with Linear via a Linear OAuth App.

[![](/resources/images/linear-preview.png)](/resources/images/linear-preview.png)

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require marshmallow/laravel-linear
```

After you've installed the package you can run the installation command. This command will publish the mandatory migrations and publish components and assets that are needed to show the beautiful Linear pages.

```
php artisan linear:install
```

Optionally, you can publish the config file with:

```
php artisan vendor:publish --tag="laravel-linear-config"
```

### Create your Linear OAuth App

[](#create-your-linear-oauth-app)

Go to settings in your Linear account. In the `account menu`, you will find the API button. Once you click on `API` you will be able to create an `OAuth application`. Click on `Create New`.

Fill in all the fields. The most important part is the Callback URLs. You need to add your callback URL like `your-domain.test/linear/oauth2/callback`. Add the callback url for all your domains. Local, Beta and Production so it will work on all your sites.

When you've created your app, you will get a `Client id` and a `Client secret`. Copy these, we need them later!

[![](/resources/images/linear-oauth-app.png)](/resources/images/linear-oauth-app.png)

Configuration
-------------

[](#configuration)

The config file (`config/linear.php`) exposes the credentials for your Linear OAuth application. All values are read from your `.env` file:

KeyDefaultDescription`service.client_id``env('LINEAR_CLIENT_ID')`The Client id of your Linear OAuth application.`service.client_secret``env('LINEAR_CLIENT_SECRET')`The Client secret of your Linear OAuth application.`service.redirect``env('LINEAR_REDIRECT_URI', '/linear/oauth2/callback')`The OAuth callback path that handles the Linear redirect.Usage
-----

[](#usage)

Using this package is super easy. We just need to make two minor updates to your application.

### Update your .env file

[](#update-your-env-file)

When you created your Linear OAuth Application you got a `Client id` and a `Client secret`. You need to add them to your `.env` file.

```
LINEAR_CLIENT_ID="____YOUR_CLIENT_ID____"
LINEAR_CLIENT_SECRET="____YOUR_CLIENT_SECRET____"
```

### Update your Authenticatable model

[](#update-your-authenticatable-model)

First you need to be logged in to your application. This is so not everybody can change the connection to Linear.

On your Authenticatable model, usually the User model, you need to implement one new method to let the package know who can manage the Linear connection. Add the method below.

```
class User extends Authenticatable
{
    // ...
    public function allowedToManagerLinearConnection(): bool
    {
        return in_array($this->email, [
            'stef@marshmallow.dev',
        ]);
    }
}
```

Go to `your-domain.test/linear/auth` and follow the steps to connect your Laravel application to Linear. After you've done this you will be able to connect a company, team and project.

### Submit your first issue

[](#submit-your-first-issue)

Build a `LinearIssue` message and send it to a notifiable via the `NewLinearIssue` notification:

```
use App\Models\User;
use LaravelLinear\Notifications\NewLinearIssue;
use LaravelLinear\Notifications\Messages\LinearIssue;

$issue = (new LinearIssue)
  ->title('Issue title')
  ->message('Issue message');

$user = User::first();
$user->notify(new NewLinearIssue($issue));
```

The `LinearIssue` message supports the following fluent methods:

```
(new LinearIssue)
  ->title('Issue title')        // required, the issue title
  ->message('Issue message')    // the issue description
  ->projectId('project-uuid')   // assign the issue to a Linear project
  ->label('Bug')                // attach a label to the issue
  ->submitter('Jane Doe')       // who submitted the issue (defaults to "Anonymous")
  ->attachment('/path/to/file') // add an attachment (call multiple times for more)
  ->issueModel($model);         // relate the issue to an Eloquent model
```

### Using the notification channel

[](#using-the-notification-channel)

The `NewLinearIssue` notification routes through the package's `LinearChannel` and returns the `LinearIssue` message from its `toLinear()` method. Any notifiable that uses Laravel's `Notifiable` trait can send a Linear issue by calling `$notifiable->notify(new NewLinearIssue($issue))` as shown above — no extra channel registration is required.

### Change the settings

[](#change-the-settings)

When you go to `your-domain.test/linear/auth` after you've connected to Linear you will be able to change the config.

Updating
--------

[](#updating)

When you install a new version of this package via Composer it might be helpful to run the update command so all the views and assets are up to date. This command will publish the latest assets for this package and publish new components if they are available.

```
php artisan linear:update
```

Linear
------

[](#linear)

Here are some documentation pages from Linear that might be helpful.

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please report security vulnerabilities by email rather than via the public issue tracker.

Credits
-------

[](#credits)

- [Stef van Esch](https://github.com/stefvanesch)
- [Lars Kort](https://github.com/LTKort)
- [All Contributors](https://github.com/marshmallow-packages/laravel-linear/contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance62

Regular maintenance activity

Popularity19

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Recently: every ~42 days

Total

11

Last Release

1210d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/be33d2624e24c516e73892b0929447cc762f3622c024ab8d0d2a59042e5d2c7f?d=identicon)[marshmallow](/maintainers/marshmallow)

---

Top Contributors

[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (62 commits)")[![stefvanesch](https://avatars.githubusercontent.com/u/46725619?v=4)](https://github.com/stefvanesch "stefvanesch (53 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (51 commits)")[![LTKort](https://avatars.githubusercontent.com/u/2412670?v=4)](https://github.com/LTKort "LTKort (4 commits)")

---

Tags

laravelLaravelLinearlaravel-linear

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/marshmallow-laravel-linear/health.svg)

```
[![Health](https://phpackages.com/badges/marshmallow-laravel-linear/health.svg)](https://phpackages.com/packages/marshmallow-laravel-linear)
```

###  Alternatives

[leandrocfe/filament-apex-charts

Apex Charts integration for Filament PHP.

4971.7M12](/packages/leandrocfe-filament-apex-charts)[filament/support

Core helper methods and foundation code for all Filament packages.

2333.9M302](/packages/filament-support)[codewithdennis/filament-select-tree

The multi-level select field enables you to make single selections from a predefined list of options that are organized into multiple levels or depths.

329575.9k35](/packages/codewithdennis-filament-select-tree)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.8k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
