Source control integration plugin framework for MantisBT, including support for Github, Gitlab, Bitbucket, Gitweb, Cgit, Subversion, Mercurial and more

Overview

Mantis Source Integration

Gitter

Copyright (c) 2008 - 2012 John Reese - https://noswap.com
Copyright (c) 2012 - 2020 MantisBT Team - [email protected]

Released under the MIT license

Description

The Source plugin provides a flexible framework for fully integrating any sort of Version Control System (VCS) with Mantis, including support for multiple repositories, changesets or revisions, and file path tracking. It has many features already, such as importing repository history and optional support for remote check-ins or imports, and utilizes a class-based API to access objects in the database.

Initial support is included for Subversion and Git repositories using the following extension plugins:

  • SourceBitBucket: Git repositories hosted on BitBucket.
  • SourceCgit: Git repositories accessible via a cgit web frontend installation.
  • SourceGithub: Git repositories hosted on GitHub.
  • SourceGitlab: Git repositories hosted on GitLab.
  • SourceAzureDevOps: Git repositories hosted on Azure DevOps Services Repos.
  • SourceGitphp: Git repositories accessible via a Gitphp web frontend installation.
  • SourceGitweb: Git repositories accessible via a GitWeb web frontend installation.
  • SourceHgWeb: Mercurial repositories accessible via a HgWeb frontend installation.
  • SourceSFSVN: SVN repositories hosted on SourceForge.
  • SourceSVN: SVN repositories locally accessible by the SVN binaries.
  • SourceViewVC: SVN repositories accessible via a ViewVC web frontend installation.
  • SourceVisualSVNServer: SVN repositories hosted on a VisualSVN Server installation, with support for URL linking from MantisBT to VisualSVN Server's built-in web frontend.
  • SourceWebSVN: SVN repositories accessible via a WebSVN web frontend installation.

Support for additional source control tools should be rather straightforward to implement due to the flexibility inherent in the integration framework and API.

Requirements

The Source Integration framework requires MantisBT version 2.21.0 or higher.

VCS plugins

Some VCS plugins have additional, specific requirements:

Installation

Compatibility

The Source Integration framework's version numbering follows Semantic Versioning. Major version increments indicate a change in the minimum required MantisBT version.

See the Change log for detailed revision history.

Depending on which version of MantisBT you are using, please make sure to get the appropriate version of the source code. Use release tags, or the relevant branch in the Plugin's GitHub repository, as per the table below:

MantisBT version Tags Branch Notes
2.x v2.* master Current release
1.3.x v1.* master-1.3.x Support ended 2020-12-31
1.2.x v0.* master-1.2.x Support ended 2017-06-30

Setup instructions

  1. Download the appropriate version (see Compatibility section above) or clone a copy of the source code and checkout the correct branch.

  2. Copy the primary Source plugin (the Source/ directory) into your Mantis installation's plugins/ directory.

  3. Copy all the remaining plugins, or just the appropriate ones for your repositories, into your Mantis installation's plugins/ directory.

  4. While logged into your Mantis installation as an administrator, go to 'Manage' -> "Manage Plugins".

  5. In the "Available Plugins" list, you'll find the "Source Control Integration" and additional plugins:

    a. First, click the "Install" link for the "Source Control Integration" plugin.

    b. Next, click the "Install" link next to any additional Source Control plugins appropriate for your repositories.

  6. Click on the "Source Control Integration" plugin to configure it.

    NOTE: an API Key must be set up to import changesets via shell. To generate a random key, run

     openssl rand -hex 12
    
  7. Go to "Repositories" and enter your repository name, select the repository type, and click "Create Repository" to begin adding your first repository.

  8. Configure the repository, following the specific documentation for the relevant plugin extension:

  9. Once configured, click the "Return to Repository" link and click either the "Import Everything" or "Import Newest Data" button to perform initial import of repository changesets and verify configuration.

  10. Once satisfied that your repository is configured & working correctly, you can automate the import of new changesets by configuring a cron job on the web server where your Mantis installation resides, as follows:

    • import via curl (could run into timeouts on large repositories, or block your webserver)

      " ">
        curl "http://host.domain.tld/mantisbt/plugin.php?page=Source/import&id=all&api_key=
             
              "
      
             
    • import via shell

        php-cgi -f plugin.php page=Source/import id=all api_key=
             
      
             

      Please be aware of the difference between php-cgi and php-cli. The import won't run with php-cli.

    This will import new changesets for all configured repositories.

  11. You can also configure event-driven import of new changesets. Many source control systems support configurable hooks or triggers which can be used to notify the Source plugin that new commits or revisions are available for import. This improves user experience by eliminating delays between source control commits and MantisBT state updates.

    Refer to the configuration documentation for the relevant plugin extension(s) for more information.

  12. Add additional repositories as needed.

Support

The following support channels are available if you wish to file a bug report, or have questions related to use and installation:

All code contributions (bug fixes, new features and enhancements, additional VCS integration plugins) are welcome and highly encouraged, preferably as a Pull Request.

The latest source code is available on GitHub; John Reese's original project documentation can be found on his website, noswap.com.

Comments
  • shell_exec() fails to execute on IIS 10 server

    shell_exec() fails to execute on IIS 10 server

    I get this error when trying to import a repository: APPLICATION ERROR #plugin_SourceViewVC_run_svn shell_exec() failed to execute Subversion. Please use the "Back" button in your web browser to return to the previous page....

    Setup: OS: Window Server 2016 (VPS) MantisBT version: 2.6 Database: Sql Server 2014 Express PHP: 7.1.9

    Settings made in Source plugin configuration UI: SVN: Path to binary: C:\csvn\bin SVN: Command Arguments: Empty SVN: Trust All SSL certifcates: True SVN: Use Windows Start : True (tried both)

    SVN 
    opened by pedwik 39
  • WebSVN links doesn't work

    WebSVN links doesn't work

    Trying to create Mantis-SVN-WebSVN(v2.3.3) installation. Every link to WebSVN creates unrendered template pages. In this patch I changed the url's from 'websvn/action.php?path=&repo=' form to 'websvn/repo/path?op=' form At least for now it works. The only link that works not as expected is 'url_changeset' - it should create the link in form '?op=comp&compare[]=${PATH}@${REV-1}&compare[]=${PATH}@${REV}' - right now it gives link to repository snapshot at specific revision.

    opened by comargo 25
  • Updates to proc_open pipe handling

    Updates to proc_open pipe handling

    Changed the descriptorspec for the stderr pipe to 'w' (it was 'a' but this seems only applicable when streaming to a file, not a pipe) Reversed the order in which the stderr and stdout pipes are read to get around an apparent bug in the proc_open

    opened by kabadi 20
  • Incorrect datetime value when importing latest data from github

    Incorrect datetime value when importing latest data from github

    APPLICATION ERROR #401

    Database query failed. Error received from database was #1292: Incorrect datetime value: '2012-12-04T11:11:04Z' for column 'timestamp' at row 1 for the query: INSERT INTO mantis_plugin_Source_changeset_table ( repo_id, revision, parent, branch, user_id, timestamp, author, message, info, ported, author_email, committer, committer_email, committer_id ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ).

    Please use the "Back" button in your web browser to return to the previous page. There you can correct whatever problems were identified in this error or select another action. You can also click an option from the menu bar to go directly to a new section.

    opened by abma 14
  • Github integration doesn't work

    Github integration doesn't work

    Maybe Github API has been changed.

    Import data (either latest or everything) fails. The reason is that (at present) list of all commits can't be gotten from "https://api.google.com/repos/user/repo/commits/". The last slash should be removed, i.e. the right url for list of all commits is "https://api.google.com/repos/user/repo/commits".

    Tiny change in code could fix it.

    opened by grv87 12
  • Installation instructions are not clear

    Installation instructions are not clear

    Hey guys,

    I'm not sure I understand what parameters to set in Update Repository view on Mantis.

    What exactly should I specify in GitHub Application Client ID ? Should I create new OAuth app in https://github.com/settings/applications ? If yes, what call back url I'm supposed to specify ?

    Thanks.

    opened by unoexperto 12
  • Notes are added as public when fixing bugs

    Notes are added as public when fixing bugs

    When fixing bugs, a not is added in public state, and this is hard coded.

    I just hard coded it to private for my needs, but it would be nice to have this either use the default for adding bug notes, or eventually have it configurable through a new variable.

    opened by chasez 12
  • [SourceGithub] Retrieving master ... failed (Not Found).

    [SourceGithub] Retrieving master ... failed (Not Found).

    Installed everything, went through that insane setup process https://github.com/mantisbt-plugins/source-integration/blob/master/docs/CONFIGURING.SourceGithub.md Very last section "Import Everything" Retrieving master ... failed (Not Found).

    Typical.

    How do I fix this?

    Why cant you just use webhooks?

    can't reproduce 
    opened by TomLewis 11
  • Question: Link to existing repository on another server?

    Question: Link to existing repository on another server?

    We use using subversion (Collabnet Edge and with ViewVC) hosted on a Windows/IIS server, and MantisBT (ver 2.5) hosted on an Apache server, and want to hook up MantisBT to svn. Purpose: When a developer commits a change to svn, MantisBT should be notified and the ticket updated. We have installed the source integration plugins (Source, SourceSVN, and SourceViewVC). When configuring the Source plugin, there is a function "Create repository", but I do no not want to create a new repo but link to an existing. Grateful for any tips, have googled around without success.

    question 
    opened by pedwik 11
  • Mantis with GitHub

    Mantis with GitHub

    Hi, I've installed the plugins on my Mantis and tried to integrate with GitHub. But I get the following error when importing data on a repository.

    APPLICATION ERROR #401 Database query failed. Error received from database was #1048: Column 'revision' cannot be null for the query: INSERT INTO mantis_plugin_Source_changeset_table ( repo_id, revision, parent, branch, user_id, timestamp, author, message, info, ported, author_email, committer, committer_email, committer_id ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ).

    Any help will be appreciated.

    Thanks

    opened by sebigansca 11
  • [repo_manage_page] no lang fallback with plugin_lang_get_defaulted

    [repo_manage_page] no lang fallback with plugin_lang_get_defaulted

    [1]In contrast to plugin_lang_get/lang_get the paired plugin_lang_get_defaulted/lang_get_defaulted don't fallback to 'english' if a string isn't found for the current language. As I take some responsibility for that (eb25dfb), I suggest to replace plugin_lang_get_defaulted( $t_key, $t_key, t_vcs->basename ) repo_mange_page_1 with plugin_lang_get( $t_key, $t_vcs->basename ) repo_mange_page_2 [2]I would have preferred to change the underlying core lang_get_defaulted but a straightforward:

    function lang_get_defaulted( $p_string, $p_default = null, $p_lang = null ) {
    	$t_lang = $p_lang;
    
    	if( null === $t_lang ) {
    		$t_lang = lang_get_current();
    	}
    
    	# Now we'll make sure that the requested language is loaded
    	lang_ensure_loaded( $t_lang );
    
    	$t_string = lang_get( $p_string, $t_lang );
    	if ( !is_blank( $t_string ) ) {
    		return $t_string;
    	} else {
    		if( null === $p_default ) {
    			return $p_string;
    		} else {
    			return $p_default;
    		}
    	}
    }
    

    Has some ugly drawbacks: [2.1]Two calls to plugin localized strings into core(?) my_view_page [2.2]Empty label resolved to a php-page(?) manage_overview_page And there might be others.

    @dregad No probs with a PR for [1], but how to proceed with [2.x]? Currently all this probs got drawn into the kitchen sink.

    bug upstream 
    opened by obmsch 10
  • Issue using svn with svn+ssh:// protocol

    Issue using svn with svn+ssh:// protocol

    Our SVN instance is configured using svn+ssh:// protocol; everyone connects using a public key. We use virtual users - everyone specifies the same linux user on the svn server, and the authorized_keys file on the server automatically maps the private key used to log in to the appropriate user using the --tunnel-user option. Normally, from the command line, we would use something like "svn checkout svn+ssh://SVN_USER@DOMAIN_NAME/project/trunk". On the web server, I've created a virtual user for Apache's user with read-only access to svn; using "sudo -u www-data svn ls SVN_PATH/@, I get a working listing of the remote repository, so mantis should work with it. I've tried configuring the URL similarly in SourceSVN, and get the error listed below. I've also tried omitting the user, and specifying it in the "svn user" section (leaving the password blank since we use keys), and that also fails (with a different less informative error).

    I'm guessing that this isn't working because this is a fairly niche use of svn (we do this so we can have the repository externally available for remote work, without having to worry about credentials being guessed; normal user/password authentication is disabled), and to simplify deployment scripts on remote servers that pull from svn.

    I've modified mantis a few times to fix issues and extend it, and am proficient in linux administration tasks, and am a senior full-stack software developer, so I'm ok with making code changes to make this work, but I wanted to see if anyone else had tried with a configuration like this, and I just don't have it set up correctly, or had pointers on where to start looking in the plugin to make this work right.

    Error message when I try to use Import Latest Data, or Import Everything; happens immediately (I've replaced our svn user with SVN_USER below, and our domain name with DOMAIN_NAME):

    APPLICATION ERROR #plugin_SourceSVN_svn_cmd

    Subversion execution returned an error: "svn: E205000: Try 'svn help info' for more information svn: E205000: Syntax error parsing peg revision 'DOMAIN_NAME'; did you mean 'svn+ssh://SVN_USER@DOMAIN_NAME@'?". Please use the "Back" button in your web browser to return to the previous page. There you can correct whatever problems >were identified in this error or select another action. You can also click an option from the menu bar to go directly to a new >section.

    opened by shawn99452 2
  • Gitlab - update fails when branch qty > gitlab REST API pagination default setting

    Gitlab - update fails when branch qty > gitlab REST API pagination default setting

    I've a repo with 22 branches and obviously this is greater than Gitlab default -> 20. Please add at least add '&per_page=50' or may be '&per_page=100' when building the uri in the following function public function import_full( $p_repo ) {

    # Always pull back full list of repos
    $t_repoid = $p_repo->info['hub_repoid'];
    $t_uri = $this->api_uri( $p_repo, "projects/$t_repoid/repository/branches" );
    
    # My silly FIX !!! - fmancardi
    $t_uri .= '&per_page=50';
    
    

    may be there is a better solution. And maybe this '&per_page=xx' need to be added to other REST API call

    Best regards

    bug GitLab help wanted 
    opened by fmancardi 3
  • Invalid Github API token causes webhook to fail silently

    Invalid Github API token causes webhook to fail silently

    The Webhook delivery results in an HTTP 200 return code, but the response is actually a MantisBT error page: INTERNAL APPLICATION ERROR

    Delivering the payload with $g_show_detailed_errors = ON; yields additional information

    Client error: `GET https://api.github.com/rate_limit?per_page=100` resulted in a `401 Unauthorized` response:
    {
    "message": "Bad credentials",
    "documentation_url": "https://docs.github.com/rest"
    }
    

    Stack trace

    0	.../vendor/guzzlehttp/guzzle/src/Middleware.php	65	GuzzleHttp\Exception\RequestException	::	create	-
    1	.../vendor/guzzlehttp/promises/src/Promise.php	204	GuzzleHttp\Middleware	::	GuzzleHttp\{closure}	-
    2	.../vendor/guzzlehttp/promises/src/Promise.php	153	GuzzleHttp\Promise\Promise	::	callHandler	-
    3	.../vendor/guzzlehttp/promises/src/TaskQueue.php	48	GuzzleHttp\Promise\Promise	::	GuzzleHttp\Promise\{closure}	-
    4	.../vendor/guzzlehttp/promises/src/Promise.php	248	GuzzleHttp\Promise\TaskQueue	->	run	-
    5	.../vendor/guzzlehttp/promises/src/Promise.php	224	GuzzleHttp\Promise\Promise	->	invokeWaitFn	-
    6	.../vendor/guzzlehttp/promises/src/Promise.php	269	GuzzleHttp\Promise\Promise	->	waitIfPending	-
    7	.../vendor/guzzlehttp/promises/src/Promise.php	226	GuzzleHttp\Promise\Promise	->	invokeWaitList	-
    8	.../vendor/guzzlehttp/promises/src/Promise.php	62	GuzzleHttp\Promise\Promise	->	waitIfPending	-
    9	.../vendor/guzzlehttp/guzzle/src/Client.php	182	GuzzleHttp\Promise\Promise	->	wait	-
    10	.../vendor/guzzlehttp/guzzle/src/Client.php	95	GuzzleHttp\Client	->	request	-
    11	.../plugins/SourceGithub/SourceGithub.php	506	GuzzleHttp\Client	->	__call	-
    12	.../plugins/SourceGithub/SourceGithub.php	546	SourceGithubPlugin	->	api_get	-
    13	.../plugins/SourceGithub/SourceGithub.php	720	SourceGithubPlugin	->	api_json_url	-
    14	.../plugins/SourceGithub/SourceGithub.php	639	SourceGithubPlugin	->	import_commits	-
    15	.../plugins/Source/Source.API.php	524	SourceGithubPlugin	->	commit	-
    16	.../plugins/source-integration/Source/pages/checkin.php	86	SourceVCSWrapper	->	__call	-
    17	.../plugin.php	74	-	-	include	<string>'/srv/plugins/source-integration/Source/pages/checkin.php'
    

    The Guzzle RequestException should be caught and reported as a meaningful error.

    bug GitHub 
    opened by dregad 1
  • Use print_form_button() to display

    Use print_form_button() to display "Detach" buttons in view page

    Current use of print_small_button() generates a complex GET URL showing the form security token. It would be better to use print_form_button() so the token is handled as hidden form parameter.

    Moreover multiple tokens are generated (one per issue), which is not efficient,

    enhancement core upstream 
    opened by dregad 1
  • Add possibility to re-parse commit messages in case of regexps change

    Add possibility to re-parse commit messages in case of regexps change

    I'm currently trying to tune regular expressions for my repo and I found out that I cannot reparse commits for the whole repo, only do full import again. It would be nice to have such kind of button which will:

    • Go for each commit in the repo
    • Apply regexps to find linked issues
    • Unlink not-found issues and link new ones

    Maybe bullet about unlinking could be optional and available as parameter...

    feature core help wanted 
    opened by okainov 1
Releases(v2.5.2)
  • v2.5.2(Apr 28, 2022)

  • v2.5.1(Feb 10, 2022)

  • v2.5.0(Feb 5, 2022)

    Added

    • New Azure DevOps Service VCS Plugin, thanks to Stefan Gross #340
    • GitLab: Pull Request linking #353
    • Allow disabling file stats on Index page #358

    Changed

    • Minimum MantisBT version increased to 2.24.0 #350 #337 #339
    • Only show "Attach issues" column if needed #355
    • Move register() function to MantisSourcePlugin class #369
    • Remove custom plugin_lang_get_defaulted() function #339
    • GitLab: improve error handling when setting repoid #352
    • Bitbucket: use Git base class #359
    • GitHub: Use https links #357
    • GitHub: use X-Hub-Signature-Sha-256 header #361
    • GitHub: stop processing if payload contains no commits #367
    • Code cleanup

    Fixed

    • Store Changeset timestamp as UTC and display in user's timezone #317
    • Return HTTP/400 when checkin.php input is invalid #365
    • Fix missing language strings warnings #364
    • Replace deprecated html_get_status_css_class() function #350
    • Localization does not fall back to English when translation is unavailable #337
    • Bitbucket: fix changeset retrieval for branches with '/' #376
    • Bitbucket: fix incorrect branch name validation #381
    • Cgit: fix column 'revision' cannot be null when importing repository #149
    • Cgit: fix error with libravatar plugin #386
    • Cgit: fix error when parsing committer or author without email #387
    • GitHub: prevent creating Webhook if secret changed #357
    • GitHub: Only process GitHub repositories in precommit() #366
    • GitHub: Gracefully handle ping events from webhook #382
    • GitHub: Fix undefined array key warning #383
    • Gitlab: abort precommit() on invalid payload #370
    • Gitlab: System warnings when the GitLab Root is not valid #373

    Security

    • Hide sensitive information in manage repo pages #329
    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(Jan 19, 2021)

    Changed

    • Confusing documentation for GitHub Webhook Secret #345

    Fixed

    • GitLab: Fix system warning when committing #346
    • Unparenthesized a ? b : c ? d : e not supported (PHP8) #347
    • Changeset reference not processed at beginning of bugnote #351
    • On List page, "Attach issues" is shown for users with read-only access #354

    Security

    • Private issue information disclosure (CVE-2020-36192), thanks to d3vpoo1 #344
    • Only attach Issues to changeset if authorized (CVE-2020-36192) #344
    • Unprivileged user can detach private Issue from Changeset #356
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(May 19, 2020)

    Added

    • Support for VisualSVN Server, thanks to David Hopkins, FBR Ltd #313
    • Default primary branch can be configured for git-based repositories #308

    Changed

    • GitHub: use GuzzleHttp instead of cURL #336
    • SVN: improve documentation #311

    Fixed

    • GitHub: allow processing more than 30 branches #327
    • GitHub: authentication using query parameters is deprecated #335
    • SVN: Workaround to avoid data import failures due to timeout reading proc_open() buffers #333
    Source code(tar.gz)
    Source code(zip)
  • v2.3.1(Feb 13, 2020)

  • v1.6.2(Feb 13, 2020)

  • v2.3.0(Sep 6, 2019)

  • v2.2.0(Mar 26, 2019)

    Includes all changes and fixes from 1.6.0 and 1.6.1.

    Added

    • GitHub: Use AJAX to automate Webhook creation #302
    • SVN: support SVN:Log revision property changes #305

    Changed

    • Avoid going back and forth between repository manage & update pages #297
    • Give visual feedback that the repo was updated #298
    • Adjust left column width on Update Repo page #299
    • Do not use POST action on Manage Repo page Update button #300
    • GitHub: adjust oauth authorization page for MantisBT 2.x UI #293
    • GitHub: Use AJAX to revoke app token #303
    • GitHub: improve documentation #304

    Fixed

    • Display problem on narrow screens in repo_update_page #296
    • GitHub: token remains valid if Client ID or Secret change #301
    Source code(tar.gz)
    Source code(zip)
  • v1.6.1(Mar 26, 2019)

  • v1.6.0(Feb 1, 2019)

  • v2.1.5(Sep 2, 2018)

  • v1.5.9(Sep 2, 2018)

  • v2.1.4(Aug 30, 2018)

  • v1.5.8(Aug 30, 2018)

  • v2.1.3(Jul 30, 2018)

  • v1.5.7(Jul 30, 2018)

  • v2.1.2(Jun 13, 2018)

  • v1.5.6(Jun 13, 2018)

  • v2.1.1(Apr 9, 2018)

  • v1.5.5(Apr 9, 2018)

  • v2.1.0(Sep 17, 2017)

    Added

    • Display linked changesets and allow adding new ones on list page #202
    • SourceSVN documentation #250

    Changed

    • Minimum MantisBT version increased to 2.0.1
    • Search page improvements: increase size of 'Revision' field #206, use new datetime picker #223
    • Display text descriptions instead of raw keys on repository manage page #215
    • Use specific error messages instead of ERROR_GENERIC #203
    • Disable 'branch' field except for new mapping #243
    • Only display spacer row when necessary in branch mappings list #244
    • Show status color box next to issue id in view page #234
    • SVN: improve error detection & handling #247
    • WebSVN: updated German translation #225

    Fixed

    • Includes all changes and fixes from 1.5.3 and 1.5.4.
    Source code(tar.gz)
    Source code(zip)
  • v1.5.4(Sep 17, 2017)

    Changed

    • HgWeb: allow space and unicode chars in filename #219

    Fixed

    • Remove extra '(select one)' in mapping strategy selection list #238
    • Change of repo name after full import #245
    • HgWeb: fix handling of commit message lines beginning with # #233
    • HgWeb: fix errors while importing the repository #248 #249
    • SVN: make sure svn_binary() retrieves options from SourceSVN's config #241
    Source code(tar.gz)
    Source code(zip)
  • v1.5.3(Sep 14, 2017)

    Fixed

    • Git*, HgWeb: Fix SQL syntax error in 'import_full' #221
    • GitLab: fix invalid diff URL #227
    • Gitphp: replace deprecated db_query_bound() call #222
    • HgWeb: replace invalid function map() by array_map() #213
    Source code(tar.gz)
    Source code(zip)
  • v2.0.3(May 28, 2017)

    Added

    • Document requirement for cURL / shell_exec (#214)

    Fixed

    • HgWeb: replace invalid function map() by array_map() (#213)
    • Gitweb: can't retrieve changesets when protected by HTTP basic auth (#218)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.2(Mar 16, 2017)

  • v1.5.2(Mar 16, 2017)

    Changed

    • Source_FilterOption_Permalink() should not handle integer params as strings #207

    Fixed

    • Changeset reference is not processed when preceded by @-mention #204
    Source code(tar.gz)
    Source code(zip)
  • v2.0.1(Mar 6, 2017)

  • v1.5.1(Mar 6, 2017)

Easy management of Virtualization technologies including KVM, Xen, OpenVZ, Virtuozzo, and LXC/LXD including unified commands, monitoring, template management, and many more features.

ProVirted About Easy management of Virtualization technologies including KVM, Xen, OpenVZ, Virtuozzo, and LXC/LXD including unified commands, monitori

null 2 Aug 22, 2022
This plugin allows you to display code from a repository, such as Github, Gitlab or others in order to use it as a resource in the courses.

Fetch Code This plugin allows you to display code from a repository, such as Github, Gitlab or others in order to use it as a resource in the courses.

Cambá Laboratorio de Tecnología 0 Dec 26, 2021
PSpec is a testing framework for PHP, influenced by RSpec and jest. 🧪 This repo is a MIRROR of the GitLab source repository.

PSpec PSpec is a testing framework for PHP, influenced by RSpec and jest. This project is experimental and still needs a lot of work. Example // src/C

CodingPaws 0 Mar 31, 2022
Ratio plugin is a luck plugin. The more lucky you are, the more you win!

Ratio Ratio plugin is a luck plugin. The more lucky you are, the more you win Features When you break a block (Cobblestone), it gives/puts you somethi

Ali Tura Çetin 2 Apr 25, 2022
Immutable value object for IPv4 and IPv6 addresses, including helper methods and Doctrine support.

IP is an immutable value object for (both version 4 and 6) IP addresses. Several helper methods are provided for ranges, broadcast and network address

Darsyn 224 Dec 28, 2022
A Kimai 2 plugin, which send duration of cards to GitLab spend issues of timesheet.

GitLabBundle A Kimai 2 plugin, which send duration of cards to GitLab spend issues of timesheet. Installation First clone it to your Kimai installatio

LibreCode coop 9 Nov 14, 2022
This Pocketmine-MP plugin is a plugin including a complete faction system.

SimpleFaction Simple faction plugin replacing FactionsPro which is no longer updated. Commands Command Name Command Description Available for /f help

Ayzrix 33 Dec 19, 2022
Integrates the ClassicPress Plugin Directory and any plugin stored in GitHub (tagged with classicpress-plugin) in the ClassicPress Admin

ClassicPress Plugin Directory Adds a new screen in a ClassicPress Install where you can browse, install, activate, deactivate, update, delete and pagi

TukuToi 3 Dec 27, 2022
Rafel is Remote Access Tool Used to Control Victims Using WebPanel With More Advance Features..

Rafel is Remote Access Tool Used to Control Victims Using WebPanel With More Advance Features..

swagkarna 690 Dec 28, 2022
Run your WP site on github pages, php innovation award winner https://www.phpclasses.org/package/12091-PHP-Make-a-WordPress-site-run-on-GitHub-pages.html

Gitpress Run wordpress directly on github pages Gitpress won the innovation award for may 2021 Read more about this https://naveen17797.github.io/gitp

naveen 13 Nov 18, 2022
A PHP implementation of the Unleash protocol aka Feature Flags in GitLab.

A PHP implementation of the Unleash protocol aka Feature Flags in GitLab. This implementation conforms to the official Unleash standards and implement

Dominik Chrástecký 2 Aug 18, 2021
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
DiscordLookup | Get more out of Discord with Discord Lookup! Snowflake Decoder, Guild List with Stats, Invite Info and more...

DiscordLookup Get more out of Discord with Discord Lookup! Snowflake Decoder, Guild List with Stats, Invite Info and more... Website Getting Help Tool

Felix 69 Dec 23, 2022
Composer Plugin for automatically including files for easing function usage in php.

Php Inc Php inc is a composer plugin for automatically including certain files into composer's autoload and autoload-dev files config. Given a set of

Krak 5 Jan 11, 2022
Sanitize untrustworthy HTML user input (Symfony integration for https://github.com/tgalopin/html-sanitizer)

html-sanitizer is a library aiming at handling, cleaning and sanitizing HTML sent by external users (who you cannot trust), allowing you to store it and display it safely. It has sensible defaults to provide a great developer experience while still being entierely configurable.

Titouan Galopin 86 Oct 5, 2022
Allows generate class files parse from json and map json to php object, including multi-level and complex objects;

nixihz/php-object Allows generate class files parse from json and map json to php object, including multi-level and complex objects; Installation You

zhixin 2 Sep 9, 2022
Allows reflection of object attributes, including inherited and non-public ones

sebastian/object-reflector Allows reflection of object attributes, including inherited and non-public ones. Installation You can add this library as a

Sebastian Bergmann 6k Jan 4, 2023
This is an experiment to export all RFCs from the PHP wiki into Git, including the change history for each RFC (along with the date and author of each change). This is not meant to replace the wiki.

PHP Requests for Comments (RFCs) About This repository is an experiment to export all RFCs from the PHP wiki into Git, including the change history fo

Ben Ramsey 34 Jun 20, 2022
Orangescrum is a simple yet powerful free and open source project management software that helps team to organize their tasks, projects and deliver more.

Free, open source Project Management software Introduction Orangescrum is the simple yet powerful free and open source project management software tha

Orangescrum 110 Dec 30, 2022