{"id":13408137,"url":"https://github.com/php-censor/php-censor","last_synced_at":"2025-05-14T07:09:26.081Z","repository":{"id":37484371,"uuid":"78023529","full_name":"php-censor/php-censor","owner":"php-censor","description":"PHP Censor is an open source self-hosted continuous integration server for PHP projects.","archived":false,"fork":false,"pushed_at":"2025-05-04T04:35:37.000Z","size":25599,"stargazers_count":683,"open_issues_count":23,"forks_count":146,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-05-04T05:19:13.964Z","etag":null,"topics":["ci","continuous-integration","database-testing","hacktoberfest","php","php-censor","phpcensor","phpci","self-hosted","testing","unit-testing"],"latest_commit_sha":null,"homepage":"http://php-censor.info","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/php-censor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-01-04T14:39:00.000Z","updated_at":"2025-04-09T04:14:30.000Z","dependencies_parsed_at":"2023-02-12T17:00:25.203Z","dependency_job_id":"ebf5c43d-8c08-4fb3-b1ca-796853643c85","html_url":"https://github.com/php-censor/php-censor","commit_stats":{"total_commits":2480,"total_committers":220,"mean_commits":"11.272727272727273","dds":0.564516129032258,"last_synced_commit":"10006f6f4aae57e7fb397717ba9117a41eb9e53d"},"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/php-censor%2Fphp-censor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/php-censor%2Fphp-censor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/php-censor%2Fphp-censor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/php-censor%2Fphp-censor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/php-censor","download_url":"https://codeload.github.com/php-censor/php-censor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092787,"owners_count":22013290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci","continuous-integration","database-testing","hacktoberfest","php","php-censor","phpcensor","phpci","self-hosted","testing","unit-testing"],"created_at":"2024-07-30T20:00:50.983Z","updated_at":"2025-05-14T07:09:21.055Z","avatar_url":"https://github.com/php-censor.png","language":"PHP","funding_links":[],"categories":["Software","Build And Release System","PHP","Multiple badges","Examples","Software Development"],"sub_categories":["Continuous Integration \u0026 Continuous Deployment","Misc","Continuous Integration"],"readme":"[![Minimum PHP version: 7.4.0](https://img.shields.io/badge/php-7.4.0%2B-blue.svg?label=PHP)](https://packagist.org/packages/php-censor/php-censor)\n[![Actions](https://github.com/php-censor/php-censor/actions/workflows/ci.yaml/badge.svg)](https://github.com/php-censor/php-censor/actions)\n[![PHP Censor](http://ci.php-censor.info/build-status/image/2?branch=master\u0026label=PHP%20Censor)](http://ci.php-censor.info/build-status/view/2?branch=master)\n[![Codecov](https://codecov.io/gh/php-censor/php-censor/branch/master/graph/badge.svg)](https://codecov.io/gh/php-censor/php-censor)\n[![Latest Version](https://img.shields.io/packagist/v/php-censor/php-censor.svg?label=Version)](https://packagist.org/packages/php-censor/php-censor)\n[![Total downloads](https://img.shields.io/packagist/dt/php-censor/php-censor.svg?label=Downloads)](https://packagist.org/packages/php-censor/php-censor)\n[![License](https://img.shields.io/packagist/l/php-censor/php-censor.svg?label=License)](https://packagist.org/packages/php-censor/php-censor)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg width=\"500\" height=\"auto\" src=\"docs/images/php-censor-black.png\" alt=\"PHP Censor\" /\u003e\n\u003c/p\u003e\n\n**PHP Censor** is an open source, self-hosted, continuous integration server for PHP projects \n([PHPCI](https://github.com/dancryer/PHPCI) fork). [Official twitter @php_censor](https://twitter.com/php_censor).\n\nPHP Censor versions:\n\n|        Version        |  Latest  |    Branch     |                               Status                               | Minimal PHP Version |\n|:---------------------:|:--------:|:-------------:|:------------------------------------------------------------------:| :-----------------: |\n|  `1.0` (Morty Smith)  | `1.0.16` | `release-1.0` |                   Old version (**UNSUPPORTED**)                    | `\u003e=5.6, \u003c8.0`       |\n|  `1.1` (Birdperson)   | `1.1.6`  | `release-1.1` |                   Old version (**UNSUPPORTED**)                    | `\u003e=5.6, \u003c8.0`       |\n| `1.2` (Summer Smith)  | `1.2.4`  | `release-1.2` |                   Old version (**UNSUPPORTED**)                    | `\u003e=5.6, \u003c8.0`       |\n|  `1.3` (Jerry Smith)  | `1.3.7`  | `release-1.3` |                   Old version (**UNSUPPORTED**)                    | `\u003e=5.6, \u003c8.0`       |\n| `2.0` (Rick Sanchez)  | `2.0.14` | `release-2.0` | Last stable version ([Upgrade from v1 to v2](docs/UPGRADE_2.0.md)) | `\u003e=7.4`             |\n| `2.1` (Mr. Meeseeks)  | `2.1.6`  | `release-2.1` |                       Current stable version                       | `\u003e=7.4`             |\n|         `2.2`         |   WIP    |   `master`    |                    Feature minor version (WIP)                     | `\u003e=7.4`             |\n\n[![Dashboard](docs/screenshots/dashboard.png)](docs/screenshots/dashboard.png)\n\nMore [screenshots](docs/en/screenshots.md).\n\n* [System requirements](#system-requirements)\n* [Features](#features)\n* [Changelog](#changelog)\n* [Roadmap](#roadmap)\n* [Installing](#installing)\n* [Updating](#updating)\n* [Configuring project](#configuring-project)\n* [Migrations](#migrations)\n* [Code style](#code-style)\n* [Tests](#tests)\n* [Documentation](#documentation)\n* [License](#license)\n\n## System requirements\n\n* Unix-like OS (**Windows isn't supported**);\n\n* PHP 7.4+ (with OpenSSL support and enabled functions: `exec()`, `shell_exec()` and `proc_open()`);\n\n* Web-server (Nginx or Apache2);\n\n* Database (MySQL/MariaDB or PostgreSQL);\n\n* Beanstalkd queue;\n\n## Features\n\n* Clone project from [GitHub](docs/en/sources/github.md), [Bitbucket](docs/en/sources/bitbucket.md) (Git/Hg), \n[GitLab](docs/en/sources/gitlab.md), [Git](docs/en/sources/git.md), Hg (Mercurial), SVN (Subversion) or from local \ndirectory;\n\n* Set up and tear down database tests for [PostgreSQL](docs/en/plugins/pgsql.md), [MySQL](docs/en/plugins/mysql.md) or \n[SQLite](docs/en/plugins/sqlite.md);\n\n* Install [Composer](docs/en/plugins/composer.md) dependencies;\n\n* Run tests for PHPUnit, Atoum, Behat, Codeception and PHPSpec;\n\n* Check code via Lint, PHPParallelLint, Pdepend, PHPCodeSniffer, PHPCpd, PHPCsFixer, PHPDocblockChecker, PHPLoc, \nPHPMessDetector, PHPTalLint and TechnicalDebt;\n\n* Run through any combination of the other [supported plugins](docs/en/README.md#plugins), including Campfire, \nCleanBuild, CopyBuild, Deployer, Env, Git, Grunt, Gulp, PackageBuild, Phar, Phing, Shell and Wipe;\n\n* Send notifications to Email, XMPP, Slack, IRC, Flowdock and \n[Telegram](docs/en/plugins/telegram_notify.md);\n\n* Use your LDAP-server for authentication;\n\n## Changelog\n\n[Versions changelog](CHANGELOG.md).\n\n## Roadmap\n\nSee [milestones](https://github.com/php-censor/php-censor/milestones).\n\n## Installing\n\nSee [Installing](docs/en/installing.md) section in documentation;\n\n## Updating\n\nSee [Updating](docs/en/updating.md) section in documentation;\n\n## Configuring project\n\nThere are several ways to set up the project:\n\n* Add project without any project config (Runs \"zero-config\" plugins, including: Composer, TechnicalDebt, PHPLoc, \nPHPCpd, PHPCodeSniffer, PHPMessDetector, PHPDocblockChecker, PHPParallelLint, PHPUnit and Codeception);\n\n* Similar to [Travis CI](https://travis-ci.org), to support PHP Censor in your project, you simply need to add a \n`.php-censor.yml` file to the root of your repository;\n\n* Add project config in PHP Censor project page (And it will cancel file config from project repository);\n\nThe project config should look something like this:\n\n```yml\nsetup:\n  composer:\n    action:    \"install\"\n    directory: \".\"\ntest:\n  php_unit:\n    config: \"phpunit.xml\"\n  php_mess_detector:\n    allow_failures: true\n  php_code_sniffer:\n    standard: \"PSR2\"\n  php_cpd:\n    allow_failures: true\ncomplete:\n  email_notify:\n    default_mailto_address: admin@php-censor.local\n```\n\nMore details about [configuring project](docs/en/configuring_project.md) in documentation.\n\n## Migrations\n\nRun to apply latest migrations:\n\n```bash\ncd /path/to/php-censor\n./bin/console php-censor-migrations:migrate\n```\n\nRun to create a new migration:\n\n```bash\ncd /path/to/php-censor\n./bin/console php-censor-migrations:create NewMigrationName\n```\n\n## Code style\n\n```bash\ncd /path/to/php-censor\n\n./vendor/bin/php-cs-fixer fix --allow-risky=yes\n```\n\n## Tests\n\n```bash\ncd /path/to/php-censor\n\n./vendor/bin/phpunit --configuration ./phpunit.xml.dist --coverage-html ./tests/runtime/coverage -vvv --colors=always\n```\n\nFor Phar plugin tests set `phar.readonly` setting to Off (`0`) in `php.ini` config. Otherwise the tests will be skipped.  \n\nFor database tests create an empty databases on 'localhost' with user/password for MySQL/PostgreSQL and set env \nvariables from `phpunit.xml.dist` config. For example:\n\n```shell\n#!/usr/bin/env bash\n\npsql --username=\"test\" --host=\"127.0.0.1\" --echo-all --command=\"DROP DATABASE IF EXISTS \\\"php-censor-test\\\";\"\npsql --username=\"test\" --host=\"127.0.0.1\" --echo-all --command=\"CREATE DATABASE \\\"php-censor-test\\\";\"\n\nmysql --user=\"test\" --password=\"test\" --host=\"127.0.0.1\" --verbose --execute=\"CREATE DATABASE IF NOT EXISTS \\`php-censor-test\\`;\"\n\nexport SKIP_DB_TESTS=0;\\\nexport POSTGRESQL_DBNAME=php-censor-test;\\\nexport POSTGRESQL_USER=test;\\\nexport POSTGRESQL_PASSWORD=test;\\\nexport MYSQL_DBNAME=php-censor-test;\\\nexport MYSQL_USER=test;\\\nexport MYSQL_PASSWORD=test;\\\nvendor/bin/phpunit --configuration=phpunit.xml.dist --verbose\n```\n\n## Documentation\n\n[Full PHP Censor documentation](docs/en/README.md).\n\n## License\n\nPHP Censor is open source software licensed under the [BSD-2-Clause license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphp-censor%2Fphp-censor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphp-censor%2Fphp-censor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphp-censor%2Fphp-censor/lists"}