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

Release 10.7.14: 502 Bad Gateway #3224

Closed
SebastianSchoeps opened this issue Mar 29, 2023 · 30 comments
Closed

Release 10.7.14: 502 Bad Gateway #3224

SebastianSchoeps opened this issue Mar 29, 2023 · 30 comments

Comments

@SebastianSchoeps
Copy link

I receive a very strange 502 Bad Gateway that I cannot explain after upgrading to 10.7.14 when calling getFirstMediaUrl, but it seems to be a bit random when it appears. I don't know how to provide more information as I cannot really isolate the issue - I could present it in a call if you are interested. It seems to happen in the very basic Arr::first method of Laravel.
It happens across different systems.

For now I will stick to release 10.7.13. This issue is more of an information to others that have the same problem.

@HolgerHatGarKeineNode
Copy link

For me version 10.7.14 is not working. After upgrading today to latest version every request leads to 502 Bad Gateway. Locking composer.json to version 10.7.13 for now and investigating.

@Jam0r85
Copy link

Jam0r85 commented Mar 29, 2023

Same for me and happens both locally and on my main server hosted by Hetzner.

Nothing else has changed, just simply an update and anytime I try to retrieve an URL it shuts the page down with a 502 error.

Downgrading to 10.7.13 works.

@freekmurze freekmurze changed the title Release 10.7.13: 502 Bad Gateway Release 10.7.14: 502 Bad Gateway Mar 29, 2023
@freekmurze
Copy link
Member

I'm not seeing the error, it would be very handy if any of you would share the actual error message + stack trace here.

@steveallinson
Copy link

Same here. Getting 502 errors when calling getMedia/getFirstMediaUrl in certain parts of our app. Broken since updating to 10.7.14

@HolgerHatGarKeineNode
Copy link

HolgerHatGarKeineNode commented Mar 29, 2023

2023/03/29 09:29:51 [error] 3404896#3404896: *108034 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: X.X.X.X, server: xx.xx.xx, request: "GET /xx HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php8.2-fpm-einundzwanzig.sock:", host: "portal.einundzwanzig.space", referrer: "https://portal.einundzwanzig.space/news?l=de"

Nginx is loosing connection to php completely. With Laravel Sail all browsers loosing connection immediately.

Somehow it's destroying the php process. Searching logs for more error details now.

@freekmurze
Copy link
Member

Ok, even though the tests are indicating everything is ok, I'm going to revert the changes made in the last release.

@freekmurze
Copy link
Member

freekmurze commented Mar 29, 2023

I've just released 10.7.15 that reverts the changes of 10.7.14

In that previous version a potential N+1 probably was solved by explicitly setting a related model on a Media object. My hunch is that there's something going wrong when Laravel / PHP tries to serialise such a media object when queuing stuff. In our tests we don't queue stuff, and that might be the reason why our testsuite didn't catch it.

My apologies for any inconvenience. Do let me know if 10.7.15 works for you.

@SebastianSchoeps
Copy link
Author

Works for me. Thanks very much for the very fast reaction!

@cosmastech
Copy link
Contributor

Could you help me set up a test case for this? Which Laravel version are you using, is this from a web request or is there possibly dispatching a job?

@SebastianSchoeps
Copy link
Author

SebastianSchoeps commented Mar 29, 2023

Laravel: 10.5.0
Livewire: 2.12.3

It fails at a very simple Livewire component. I stripped everything out of it and it still fails.
The component is embedded in another Livewire component.

public function render()
{
    return view('livewire.modules.videos', [
        'video' => $this->container->videos->first(),
    ]);
}

// in View
$video->getFirstMediaUrl('thumbnail');

So nothing special at all...

Maybe it's the Livewire serialization. When I run the same script from Tinkerwell it works.

@HolgerHatGarKeineNode
Copy link

Could you help me set up a test case for this? Which Laravel version are you using, is this from a web request or is there possibly dispatching a job?

Laravel Version 10.5.0
PHP Version 8.2.3
Livewire 2.12.3

The error came even with one of my API routes

implementation of api route

        return Lecturer::query()
                       ->select('id', 'name')
                       ->orderBy('name')
                       ->get()
                       ->map(function (Lecturer $lecturer) {
                           // Here is the touchpoint to media library!!!
                           $lecturer->image = 
                           $lecturer->getFirstMediaUrl('avatar', 'thumb');

                           return $lecturer;
                       });

Lecturer Model

class Lecturer extends Model implements HasMedia
{
    use HasFactory;
    use HasSlug;
    use InteractsWithMedia;
    
    public function registerMediaConversions(Media $media = null): void
    {
        $this
            ->addMediaConversion('preview')
            ->fit(Manipulations::FIT_CROP, 300, 300)
            ->nonQueued();
        $this->addMediaConversion('thumb')
             ->fit(Manipulations::FIT_CROP, 130, 130)
             ->width(130)
             ->height(130);
    }

    public function registerMediaCollections(): void
    {
        $this->addMediaCollection('avatar')
             ->singleFile()
             ->useFallbackUrl(asset('img/einundzwanzig.png'));
        $this->addMediaCollection('images')
             ->useFallbackUrl(asset('img/einundzwanzig.png'));
    }
}

config

'queue_conversions_by_default' => false,

@SebastianSchoeps
Copy link
Author

@steveallinson @Jam0r85 Do you guys have the error in a Livewire application?

@steveallinson
Copy link

@SebastianSchoeps Yes, it's a Livewire app.

@cosmastech
Copy link
Contributor

@steveallinson @SebastianSchoeps @HolgerHatGarKeineNode would any of you guys want to try a local version of your app with this PR? #3226

@HolgerHatGarKeineNode
Copy link

#3226

With the code from this PR, I no longer have PHP processes crashing.

I had the same problem with Laravel Sail and locally. Now the crash is no longer present locally. But I have not tested it on the production server.

@Jam0r85
Copy link

Jam0r85 commented Mar 29, 2023

@steveallinson @Jam0r85 Do you guys have the error in a Livewire application?

Yes it's in livewire but also happens with an attribute in my model(s) and plain blade files.

protected function getInvoiceAttribute()
{
 return $this->getFirstMedia('invoice');
}

Anytime I called the above Model and it had an uploaded file to that collection I received 502.

Nothing appears in my nginx log either. I just ran composer update and suddenly I was getting 502 errors anytime I tried to interact with a media URL eg. displaying an image. I'd share an error if I could find one but I only get the 502 error page and that's it.

I can confirm with @HolgerHatGarKeineNode that it seemed to mess up my local installation.

I assumed it was an issue with my system but when I pushed the change to my live server the same thing happened there too.

Latest version of laravel, using valet, everything up to date, etc,.

@dnnp2011
Copy link

Also experiencing this problem. I'm in the middle of a big update, so I was losing my mind trying to figure out this 502 gateway error.

@cosmastech
Copy link
Contributor

Also experiencing this problem. I'm in the middle of a big update, so I was losing my mind trying to figure out this 502 gateway error.

You see this after updating to the latest version of the package? (It rolls back the root cause)

@dnnp2011
Copy link

dnnp2011 commented Mar 29, 2023

You see this after updating to the latest version of the package? (It rolls back the root cause)

I'm having issues updating to 10.7.15 or downgrading to 10.7.13:

  Problem 1
    - Root composer.json requires spatie/laravel-medialibrary ^10.7.15 -> satisfiable by spatie/laravel-medialibrary[10.7.15].
    - spatie/laravel-medialibrary 10.7.15 requires illuminate/conditionable 9.18|^10.0 -> found illuminate/conditionable[v9.18.0, v10.0.0, ..., 10.x-dev] but these were not loaded, likely because it conflicts with another require.

or

  Problem 1
    - Root composer.json requires spatie/laravel-medialibrary 10.7.13 -> satisfiable by spatie/laravel-medialibrary[10.7.13].
    - spatie/laravel-medialibrary 10.7.13 requires illuminate/conditionable 9.18|^10.0 -> found illuminate/conditionable[v9.18.0, v10.0.0, ..., 10.x-dev] but these were not loaded, likely because it conflicts with another require.

this one has shown up as well, not sure why I keep getting different flavors:

  Problem 1
    - Root composer.json requires spatie/laravel-medialibrary 10.7.13 -> satisfiable by spatie/laravel-medialibrary[10.7.13].
    - Conclusion: don't install laravel/framework v9.52.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.3 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.4 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.5 (conflict analysis result)
    - laravel/telescope is locked to version v4.14.1 and an update of this package was not requested.
    - spatie/laravel-medialibrary 10.7.13 requires illuminate/conditionable 9.18|^10.0 -> satisfiable by illuminate/conditionable[v9.18.0, v10.0.0, ..., 10.x-dev].
    - Only one of these can be installed: illuminate/conditionable[v9.0.0-beta.4, ..., 9.x-dev, v10.0.0, ..., 10.x-dev], laravel/framework[v9.52.0, ..., 9.x-dev]. laravel/framework replaces illuminate/conditionable and thus cannot coexist with it.
    - laravel/telescope v4.14.1 requires laravel/framework ^8.37|^9.0|^10.0 -> satisfiable by laravel/framework[v9.52.0, ..., 9.x-dev].
    - Conclusion: don't install laravel/framework v9.52.0 (conflict analysis result)

I've tried composer update, composer update spatie/laravel-medialibrary, composer require spatie/laravel-medialibrary:^10.7.15, composer require spatie/laravel-medialibrary:10.7.13, forcing illuminate/conditionable:^10.0, as well as deleting my /vendor and composer.lock, manually setting my composer.json to 10.7.15 or 10.7.13, and running composer install

None of these have worked for me 🤔
I'm no Composer expert though, so I'm probably missing something

@cosmastech
Copy link
Contributor

You see this after updating to the latest version of the package? (It rolls back the root cause)

I'm having issues updating to 10.17.5 or downgrading to 10.17.3:


  Problem 1

    - Root composer.json requires spatie/laravel-medialibrary ^10.17.5, found spatie/laravel-medialibrary[dev-Throw-error-is-disk-cannot-be-accessed, dev-main, 0.1.0, 1.0.0, ..., v1.x-dev, 2.0.0, ..., v2.x-dev, 3.0.0, ..., v3.x-dev, 4.0.0, ..., v4.x-dev, 5.0.0, ..., v5.x-dev, 6.0.0, ..., v6.x-dev, 7.0.0, ..., v7.x-dev, 8.0.0, ..., v8.x-dev, 9.0.0, ..., v9.x-dev, 10.0.0, ..., 10.7.15] but it does not match the constraint.

or


  Problem 1

    - Root composer.json requires spatie/laravel-medialibrary 10.7.13 -> satisfiable by spatie/laravel-medialibrary[10.7.13].

    - spatie/laravel-medialibrary 10.7.13 requires illuminate/conditionable 9.18|^10.0 -> found illuminate/conditionable[v9.18.0, v10.0.0, ..., 10.x-dev] but these were not loaded, likely because it conflicts with another require.

this one has shown up as well, not sure why I keep getting different flavors:


  Problem 1

    - Root composer.json requires spatie/laravel-medialibrary 10.7.13 -> satisfiable by spatie/laravel-medialibrary[10.7.13].

    - Conclusion: don't install laravel/framework v9.52.1 (conflict analysis result)

    - Conclusion: don't install laravel/framework v9.52.2 (conflict analysis result)

    - Conclusion: don't install laravel/framework v9.52.3 (conflict analysis result)

    - Conclusion: don't install laravel/framework v9.52.4 (conflict analysis result)

    - Conclusion: don't install laravel/framework v9.52.5 (conflict analysis result)

    - laravel/telescope is locked to version v4.14.1 and an update of this package was not requested.

    - spatie/laravel-medialibrary 10.7.13 requires illuminate/conditionable 9.18|^10.0 -> satisfiable by illuminate/conditionable[v9.18.0, v10.0.0, ..., 10.x-dev].

    - Only one of these can be installed: illuminate/conditionable[v9.0.0-beta.4, ..., 9.x-dev, v10.0.0, ..., 10.x-dev], laravel/framework[v9.52.0, ..., 9.x-dev]. laravel/framework replaces illuminate/conditionable and thus cannot coexist with it.

    - laravel/telescope v4.14.1 requires laravel/framework ^8.37|^9.0|^10.0 -> satisfiable by laravel/framework[v9.52.0, ..., 9.x-dev].

    - Conclusion: don't install laravel/framework v9.52.0 (conflict analysis result)

I've tried composer update, composer update spatie/laravel-medialibrary, composer require spatie/laravel-medialibrary:^10.17.5, composer require spatie/laravel-medialibrary:10.17.3, forcing illuminate/conditionable:^10.0, as well as deleting my /vendor and composer.lock, manually setting my composer.json to 10.17.5 or 10.17.3, and running composer install

None of these have worked for me 🤔

I'm no Composer expert though, so I'm probably missing something

Version is 10.7.15, you have 10.17.5 (I think?)

@dnnp2011
Copy link

dnnp2011 commented Mar 29, 2023

Version is 10.7.15, you have 10.17.5 (I think?)

Sorry had some typos there, updated my comment but the issue is still present:

± |develop {6} U:1 ✗| → composer require spatie/laravel-medialibrary:^10.7.15
./composer.json has been updated
Running composer update spatie/laravel-medialibrary
Loading composer repositories with package information                                                                                                                                                        Updating dependencies                                 
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires spatie/laravel-medialibrary ^10.7.15 -> satisfiable by spatie/laravel-medialibrary[10.7.15].
    - spatie/laravel-medialibrary 10.7.15 requires illuminate/conditionable 9.18|^10.0 -> found illuminate/conditionable[v9.18.0, v10.0.0, ..., 10.x-dev] but these were not loaded, likely because it conflicts with another require.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

(also, using the --with-all-dependencies flag as suggested there doesn't help either)

@ziming
Copy link
Contributor

ziming commented Mar 30, 2023

Same problem here cannot upgrade to 10.7.15 nor downgrade to 10.7.13

@Swapkumbhar31
Copy link

Same problem here cannot upgrade to 10.7.15 nor downgrade to 10.7.13

try lowering version further, 10.5.2 worked for me.

@Gavrisimo
Copy link

I wasn't able to upgrade to 10.7.15 because it just kept on resolving 10.7.14 as the highest version.

If I set 10.7.15 as the version for composer to use I get this:

/var/www/brain # composer upgrade
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires spatie/laravel-medialibrary 10.7.15 -> satisfiable by spatie/laravel-medialibrary[10.7.15].
    - Conclusion: don't install laravel/framework v9.32.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.33.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.34.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.35.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.35.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.3 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.4 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.37.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.38.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.39.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.40.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.40.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.41.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.42.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.42.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.42.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.43.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.44.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.45.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.45.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.46.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.47.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.48.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.49.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.50.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.50.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.50.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.51.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.3 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.4 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.5 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.31.0 (conflict analysis result)
    - spatie/laravel-medialibrary 10.7.15 requires illuminate/conditionable 9.18|^10.0 -> satisfiable by illuminate/conditionable[v9.18.0, v10.0.0, ..., 10.x-dev].
    - Only one of these can be installed: illuminate/conditionable[v9.0.0-beta.4, ..., 9.x-dev, v10.0.0, ..., 10.x-dev], laravel/framework[v9.31.0, ..., 9.x-dev]. laravel/framework replaces illuminate/conditionable and thus cannot coexist with it.
    - Root composer.json requires laravel/framework ^9.31 -> satisfiable by laravel/framework[v9.31.0, ..., 9.x-dev].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

If I try to put 10.7.13 I get this:

/var/www/brain # composer upgrade
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires spatie/laravel-medialibrary 10.7.13 -> satisfiable by spatie/laravel-medialibrary[10.7.13].
    - Conclusion: don't install laravel/framework v9.32.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.33.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.34.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.35.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.35.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.3 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.36.4 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.37.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.38.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.39.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.40.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.40.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.41.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.42.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.42.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.42.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.43.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.44.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.45.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.45.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.46.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.47.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.48.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.49.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.50.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.50.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.50.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.51.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.3 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.4 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.52.5 (conflict analysis result)
    - Conclusion: don't install laravel/framework v9.31.0 (conflict analysis result)
    - spatie/laravel-medialibrary 10.7.13 requires illuminate/conditionable 9.18|^10.0 -> satisfiable by illuminate/conditionable[v9.18.0, v10.0.0, ..., 10.x-dev].
    - Only one of these can be installed: illuminate/conditionable[v9.0.0-beta.4, ..., 9.x-dev, v10.0.0, ..., 10.x-dev], laravel/framework[v9.31.0, ..., 9.x-dev]. laravel/framework replaces illuminate/conditionable and thus cannot coexist with it.
    - Root composer.json requires laravel/framework ^9.31 -> satisfiable by laravel/framework[v9.31.0, ..., 9.x-dev].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

I believe that the root of this issue is in this PR: https://github.com/spatie/laravel-medialibrary/pull/3162/files

"illuminate/conditionable": "9.18|^10.0",

That 9.18 is missing ^ so it's forcing the specific version.

@Gavrisimo
Copy link

I resolved this issue after few hours of debugging last night simply by downgrading to 10.7.12

"spatie/laravel-medialibrary": "10.7.12",

@Gavrisimo
Copy link

Ah right, the reason why it might've worked for some is that they are on laravel 10 and this is only showing up if you're using laravel 9 as we still are:

/var/www/brain # composer show laravel/framework
name     : laravel/framework
descrip. : The Laravel Framework.
keywords : framework, laravel
versions : * v9.52.5

@freekmurze
Copy link
Member

That 9.18 is missing ^ so it's forcing the specific version.

I've just tagged 10.7.16 that fixes that problem. Anything between Laravel 9.18 and 10 is now allowed too.

@Gavrisimo
Copy link

Updated to 10.7.16 and we're good! Thanks @freekmurze

@Jam0r85
Copy link

Jam0r85 commented Mar 30, 2023

Yep can confirm 10.7.16 is working for me too. Thank you for the quick turn around and help.

@dnnp2011
Copy link

All good here as well!
In a world where problems and bugs are inevitable, a fast response and prompt turn around are highly valued ❤️

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

No branches or pull requests

10 participants