Composer plugin for Repman - PHP Repository Manager

Overview

Repman Composer Plugin

Minimum PHP Version Latest Stable Version buddy branch Total Downloads License

Composer plugin for Repman - PHP Repository Manager. Adds a mirror url for all your dependencies without need to update composer.lock file.

Usage

One line install, and you are ready to go:

composer global require repman-io/composer-plugin

Self-hosted Repman server

You can use this plugin even with self-hosted Repman instance. Add this config to your composer.json file:

    "extra": {
        "repman": {
            "url": "https://repman.your.company/"
        }
    }

made with ❤️ by Buddy

Comments
  • Using int for priority in event subscriber - Avoid PHP 8 Runtime exception

    Using int for priority in event subscriber - Avoid PHP 8 Runtime exception

    Due to the new way PHP handles arrays in call_user_func_array()( check here ) when passing the priority as string instead of int, PHP will throw an Error saying that "Cannot use positional argument after named argument" inside composer code.

    I tracked down the error and you can see it on this screenshot: image

    The full stack trace in other project: image

    I don't know the rationale behind prepending that '9', but it simply won't work on PHP 8. I hope if we leave it like that is still okay.

    If you guys are interested in a minimal script to test the behavior it would go like this:

    <?php
    
    call_user_func_array('array_merge', ['9'.PHP_INT_MAX => [[new stdClass(), 'someString']],  0 => []]);
    
    // casting '9'.PHP_INT_MAX to (int) won't cut it as well, since PHP will transform it back to string 
    // because it cant represent it as int.
    
    var_dump(is_string((int)'9'.PHP_INT_MAX)); // => bool(true)
    
    
    
    opened by pedro-stanaka 7
  • Reconsider min php version of 7.3 to at least 7.2

    Reconsider min php version of 7.3 to at least 7.2

    Granted 7.2 is only on security releases, but a LOT of software still runs on that version, and your min php of 7.3 locks the usage of this package manager out.

    example: Still lots of magento commerce 1 and versions of magento 2 that still runs on 7.2

    Please consider allowing 7.2

    opened by ProxiBlue 6
  • Allow PHP 8?

    Allow PHP 8?

    I dont see from composer side any impediment on using php version constraint as >= 7.2.0.

    Can we allow install from PHP 8? I can submit PR, if you guys are too busy :wink:

    opened by pedro-stanaka 3
  • Two consecutive updates

    Two consecutive updates

    Hi @akondas

    Thanks for your awesome project !

    After some head scratching, i think there is an issue with the plugin.

    When performing a composer update with no vendor/ folder, all packages have the mirrors proprety set in the .lock file.

    But, when running a second composer update all the mirrors get removed.

    image

    Have a good day, Samuel

    opened by sadortun 2
  • Allowing installation of plugin from PHP 7.2+ (incl 8.0)

    Allowing installation of plugin from PHP 7.2+ (incl 8.0)

    Closes #11

    I added a small hack for the installation test of the plugin:

    I added:

    --ignore-platform-reqs
    

    Which we will have to take out after this MR is done. I had to do this, for the test to pass on PHP 8 (because the test is referencing dev-master).

    opened by pedro-stanaka 1
  • Bump composer/composer from 2.0.13 to 2.2.12

    Bump composer/composer from 2.0.13 to 2.2.12

    Bumps composer/composer from 2.0.13 to 2.2.12.

    Release notes

    Sourced from composer/composer's releases.

    2.2.12

    • Security: Fixed command injection vulnerability in HgDriver/GitDriver (GHSA-x7cr-6qr6-2hh6 / CVE-2022-24828)
    • Fixed curl downloader not retrying when a DNS resolution failure occurs (#10716)
    • Fixed composer.lock file still being used/read when the lock config option is disabled (#10726)
    • Fixed validate command checking the lock file even if the lock option is disabled (#10723)

    2.2.11

    • Added missing config.bitbucket-oauth in composer-schema.json
    • Added --2.2 flag to self-update to pin the Composer version to the 2.2 LTS range (#10682)
    • Updated semver, jsonlint deps for minor fixes
    • Fixed generation of autoload crashing if a package has a broken path (#10688)
    • Removed dev-master=>dev-main alias from #10372 as it does not work when reloading from lock file and extracting dev deps (#10651)

    2.2.10

    • Fixed Bitbucket authorization detection due to API changes (#10657)
    • Fixed validate command warning about dist/source keys if defined (#10655)
    • Fixed deletion/handling of corrupted 0-bytes zip archives (#10666)

    2.2.9

    • Fixed regression with plugins that modify install path of packages, see docs if you are authoring such a plugin (#10621)

    2.2.8

    • Fixed files autoloading sort order to be fully deterministic (#10617)
    • Fixed pool optimization pass edge cases (#10579)
    • Fixed require command failing when self.version is used as constraint (#10593)
    • Fixed --no-ansi / undecorated output still showing color in repo warnings (#10601)
    • Performance improvement in pool optimization step (composer/semver#131)

    2.2.7

    • Allow installation together with composer/xdebug-handler ^3 (#10528)
    • Fixed support for packages with no licenses in licenses command output (#10537)
    • Fixed handling of allow-plugins: false which kept warning (#10530)
    • Fixed enum parsing in classmap generation when the enum keyword is not lowercased (#10521)
    • Fixed author parsing in init command requiring an email whereas the schema allows a name only (#10538)
    • Fixed issues in require command when requiring packages which do not exist (but are provided by something else you require) (#10541)
    • Performance improvement in pool optimization step (#10546)

    2.2.6

    • BC Break: due to an oversight, the COMPOSER_BIN_DIR env var for binaries added in Composer 2.2.2 had to be renamed to COMPOSER_RUNTIME_BIN_DIR (#10512)
    • Fixed enum parsing in classmap generation with syntax like enum foo:string without space after : (#10498)
    • Fixed package search not urlencoding the input (#10500)
    • Fixed reinstall command not firing pre-install-cmd/post-install-cmd events (#10514)
    • Fixed edge case in path repositories where a symlink: true option would be ignored on old Windows and old PHP combos (#10482)
    • Fixed test suite compatibility with latest symfony/console releases (#10499)
    • Fixed some error reporting edge cases (#10484, #10451, #10493)

    2.2.5

    • Disabled composer/package-versions-deprecated by default as it can function using Composer\InstalledVersions at runtime (#10458)
    • Fixed artifact repositories crashing if a phar file was present in the directory (#10406)
    • Fixed binary proxy issue on PHP <8 when fseek is used on the proxied binary path (#10468)

    ... (truncated)

    Changelog

    Sourced from composer/composer's changelog.

    [2.2.12] 2022-04-13

    • Security: Fixed command injection vulnerability in HgDriver/GitDriver (GHSA-x7cr-6qr6-2hh6 / CVE-2022-24828)
    • Fixed curl downloader not retrying when a DNS resolution failure occurs (#10716)
    • Fixed composer.lock file still being used/read when the lock config option is disabled (#10726)
    • Fixed validate command checking the lock file even if the lock option is disabled (#10723)

    [2.2.11] 2022-04-01

    • Added missing config.bitbucket-oauth in composer-schema.json
    • Added --2.2 flag to self-update to pin the Composer version to the 2.2 LTS range (#10682)
    • Updated semver, jsonlint deps for minor fixes
    • Fixed generation of autoload crashing if a package has a broken path (#10688)
    • Removed dev-master=>dev-main alias from #10372 as it does not work when reloading from lock file and extracting dev deps (#10651)

    [2.2.10] 2022-03-29

    • Fixed Bitbucket authorization detection due to API changes (#10657)
    • Fixed validate command warning about dist/source keys if defined (#10655)
    • Fixed deletion/handling of corrupted 0-bytes zip archives (#10666)

    [2.2.9] 2022-03-15

    • Fixed regression with plugins that modify install path of packages, see docs if you are authoring such a plugin (#10621)

    [2.2.8] 2022-03-15

    • Fixed files autoloading sort order to be fully deterministic (#10617)
    • Fixed pool optimization pass edge cases (#10579)
    • Fixed require command failing when self.version is used as constraint (#10593)
    • Fixed --no-ansi / undecorated output still showing color in repo warnings (#10601)
    • Performance improvement in pool optimization step (composer/semver#131)

    [2.2.7] 2022-02-25

    • Allow installation together with composer/xdebug-handler ^3 (#10528)
    • Fixed support for packages with no licenses in licenses command output (#10537)
    • Fixed handling of allow-plugins: false which kept warning (#10530)
    • Fixed enum parsing in classmap generation when the enum keyword is not lowercased (#10521)
    • Fixed author parsing in init command requiring an email whereas the schema allows a name only (#10538)
    • Fixed issues in require command when requiring packages which do not exist (but are provided by something else you require) (#10541)
    • Performance improvement in pool optimization step (#10546)

    [2.2.6] 2022-02-04

    • BC Break: due to an oversight, the COMPOSER_BIN_DIR env var for binaries added in Composer 2.2.2 had to be renamed to COMPOSER_RUNTIME_BIN_DIR (#10512)
    • Fixed enum parsing in classmap generation with syntax like enum foo:string without space after : (#10498)
    • Fixed package search not urlencoding the input (#10500)
    • Fixed reinstall command not firing pre-install-cmd/post-install-cmd events (#10514)
    • Fixed edge case in path repositories where a symlink: true option would be ignored on old Windows and old PHP combos (#10482)

    ... (truncated)

    Commits
    • ba61e76 Release 2.2.12
    • a1f9baa Fix 5.3/5.4 builds
    • 2ba8758 Update changelog
    • 2c40c53 Merge pull request from GHSA-x7cr-6qr6-2hh6
    • 915b97f Fix docs
    • d64e32c Merge remote-tracking branch 'ktomk/patch-validate-no-check-lock' into 2.2
    • 0a8dfe6 Clarify that autoloader-suffix should be a non-empty-string, fixes #10720 (#1...
    • bb0edce Fixed lock file being used when lock:false is in config, refs #10715 (#10726)
    • 939c998 validate lock-file if configured (#10715, --check-lock)
    • 9bfd059 Fix curl downloader to retry in case of DNS resolution failure, fixes #10716
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(1.1.2)
Owner
Repman
Repman - PHP Repository Manager with proxy and private packages
Repman
Composer Repository Manager for selling Magento 2 extension and offering composer installation for ordered packages.

Magento 2 Composer Repository Credits We got inspired by https://github.com/Genmato. Composer Repository for Magento 2 This extension works as a Magen

EAdesign 18 Dec 16, 2021
Composer registry manager that help to easily switch to the composer repository you want

CRM - Composer Registry Manager Composer Registry Manager can help you easily and quickly switch between different composer repositories. 简体中文 Install

Tao 500 Dec 29, 2022
A composer plugin, to install differenty types of composer packages in custom directories outside the default composer default installation path which is in the vendor folder.

composer-custom-directory-installer A composer plugin, to install differenty types of composer packages in custom directories outside the default comp

Mina Nabil Sami 136 Dec 30, 2022
A plugin manager for PocketMine-MP downloads plugin from PocketMine-MP official plugin repository

oh-my-pmmp A plugin manager for PocketMine-MP Getting Started Prerequisites Your server MUST RUN the latest version of PocketMine. Installation From P

thebigcrafter 6 Jan 4, 2023
Ied plugin composer - Inspired Plugin Composer: Create, publish and edit plugins from within Textpattern CMS.

ied_plugin_composer Create, publish and edit plugins from within Textpattern CMS. Creates a new page under the Extensions tab where you can edit and e

Stef Dawson 8 Oct 3, 2020
Opinionated version of Wikimedia composer-merge-plugin to work in pair with Bamarni composer-bin-plugin.

Composer Inheritance Plugin Opinionated version of Wikimedia composer-merge-plugin to work in pair with bamarni/composer-bin-plugin. Usage If you are

Théo FIDRY 25 Dec 2, 2022
Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Imposter Plugin Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins. Built with ♥ by Typ

Typist Tech 127 Dec 17, 2022
Composer Registrar Composer Plugin for Magento 2

This module add a global registration.php that replace the default glob search performed for each request to discover the components not installed from composer.

OpenGento 3 Mar 22, 2022
An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-MP.

?? RankSystem ?? An amazing Rank and Permissions Manager Description: An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-M

null 22 Nov 7, 2022
Laravel Podcast Manager is a complete podcast manager package for Laravel 5.3+ that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI.

laravelpodcast | A Laravel podcast manager package - v0.0.8 Introduction Laravel Podcast Manager is a complete podcast manager package for Laravel 5.3

Jeremy Kenedy 22 Nov 4, 2022
Laragon MultiPHP per App + PECL Module + Extension manager + Ini Manager

LMPA Laragon MultiPHP per App This tools allow you to run multiple PHP version per app with Laragon, so you can have multiple site running different p

Gilbert Paquin 8 Oct 10, 2022
Dependency graph visualization for composer.json (PHP + Composer)

clue/graph-composer Graph visualization for your project's composer.json and its dependencies: Table of contents Usage graph-composer show graph-compo

Christian Lück 797 Jan 5, 2023
Magento-composer-installer - Composer installer for Magento modules

!!! support the maintainer of this project via Patreon: https://www.patreon.com/Flyingmana Magento Composer Installer The purpose of this project is t

null 213 Sep 24, 2022
Drupal Composer Scaffold - A flexible Composer project scaffold builder

This project provides a composer plugin for placing scaffold files (like index.php, update.php, …) from the drupal/core project into their desired location inside the web root. Only individual files may be scaffolded with this plugin.

Drupal 44 Sep 22, 2022
Victor The Cleaner for Composer - This tool removes unnecessary files and directories from Composer vendor directory.

Victor The Cleaner for Composer This tool removes unnecessary files and directories from Composer vendor directory. The Cleaner leaves only directorie

David Grudl 133 Oct 26, 2022
Your private self hosted composer repository with user management

Devliver Your private self-hosted composer repository. Requirements Docker MariaDB/MySQL the running docker container has access to private git reposi

Nikita Loges 53 Dec 30, 2022
Gitlab Composer repository

Gitlab Composer repository Small script that loops through all branches and tags of all projects in a Gitlab installation and if it contains a compose

WeMakeCustom -- DEFUNCT 165 Oct 17, 2022
Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion.

Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion. HTTP API, HTTPs support, webhook handler, scheduled builds, Slack and HipChat integration.

Łukasz Lach 112 Nov 24, 2022
A plugin manager for PocketMine-MP

A plugin manager for PocketMine-MP downloads plugin from PocketMine-MP official plugin repository

Toby 6 Nov 28, 2022