{"id":16355412,"url":"https://github.com/alexskrypnyk/integration_report","last_synced_at":"2025-09-01T15:32:22.053Z","repository":{"id":136930752,"uuid":"280179249","full_name":"AlexSkrypnyk/integration_report","owner":"AlexSkrypnyk","description":"Drupal module to report on availability status of 3-rd party endpoints.","archived":false,"fork":false,"pushed_at":"2024-08-01T07:29:30.000Z","size":90,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"2.x","last_synced_at":"2024-12-25T18:56:02.283Z","etag":null,"topics":["drupal","integration"],"latest_commit_sha":null,"homepage":"https://www.drupal.org/project/integration_report","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlexSkrypnyk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"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},"funding":{"patreon":"alexskrypnyk"}},"created_at":"2020-07-16T14:43:39.000Z","updated_at":"2024-08-01T06:43:01.000Z","dependencies_parsed_at":"2023-12-15T06:32:18.309Z","dependency_job_id":"f1476da2-e0ea-421f-8dcd-c1bd2dc05252","html_url":"https://github.com/AlexSkrypnyk/integration_report","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexSkrypnyk%2Fintegration_report","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexSkrypnyk%2Fintegration_report/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexSkrypnyk%2Fintegration_report/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexSkrypnyk%2Fintegration_report/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexSkrypnyk","download_url":"https://codeload.github.com/AlexSkrypnyk/integration_report/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231701619,"owners_count":18413418,"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":["drupal","integration"],"created_at":"2024-10-11T01:40:48.440Z","updated_at":"2025-09-01T15:32:22.048Z","avatar_url":"https://github.com/AlexSkrypnyk.png","language":"PHP","funding_links":["https://patreon.com/alexskrypnyk"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"\" rel=\"noopener\"\u003e\n  \u003cimg width=200px height=200px src=\"https://placehold.jp/000000/ffffff/200x200.png?text=Integration+Report\u0026css=%7B%22border-radius%22%3A%22%20100px%22%7D\" alt=\"Integration Report Drupal module\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003eIntegration Report Drupal module\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub Issues](https://img.shields.io/github/issues/AlexSkrypnyk/integration_report.svg)](https://github.com/AlexSkrypnyk/integration_report/issues)\n[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/AlexSkrypnyk/integration_report.svg)](https://github.com/AlexSkrypnyk/integration_report/pulls)\n[![Build, test and deploy](https://github.com/AlexSkrypnyk/integration_report/actions/workflows/test.yml/badge.svg)](https://github.com/AlexSkrypnyk/integration_report/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/AlexSkrypnyk/integration_report/graph/badge.svg?token=8KZAR22D0H)](https://codecov.io/gh/AlexSkrypnyk/integration_report)\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/AlexSkrypnyk/integration_report)\n![LICENSE](https://img.shields.io/github/license/AlexSkrypnyk/integration_report)\n![Renovate](https://img.shields.io/badge/renovate-enabled-green?logo=renovatebot)\n\n![PHP 8.2](https://img.shields.io/badge/PHP-8.2-777BB4.svg)\n![PHP 8.3](https://img.shields.io/badge/PHP-8.3-777BB4.svg)\n![PHP 8.4](https://img.shields.io/badge/PHP-8.4-777BB4.svg)\n![Drupal 10](https://img.shields.io/badge/Drupal-10-009CDE.svg)\n![Drupal 11](https://img.shields.io/badge/Drupal-11-006AA9.svg)\n\n\u003c/div\u003e\n\n---\n\n![screenshot](https://user-images.githubusercontent.com/378794/39668688-daf598bc-5117-11e8-9d15-5459278d164e.png)\n\n## Why?\n\nIf your website has 3rd-party integration with one or multiple 3rd-party\nservices via API endpoints, this module allows to call the endpoints and\nsee all the response information within a single page.\n\nYou may also implement status check on behalf of any other Drupal module that\ndoes not have such information page.\n\n## Features\n\n- Single page for all status checks.\n- `\u003ciframe\u003e`-based status checks (useful for SSO with redirects).\n\n## Getting started\n\n1. Extend `IntegrationReport` class with your 3rd-party endpoint request\n   methods.\n2. Register this class as a service in your custom module and tag it:\n\n        services:\n          example_integration_report:\n            class: Drupal\\example\\ExampleIntegrationReport\n            tags:\n              - { name: integration_report }\n\n3. Go to `/admin/reports/integrations` to check the status.\n\nRefer to [integration_report.api.php](integration_report.api.php) and\n`modules/integration_report_example` for an implementation example.\n\n## Local development\n\n1. Install PHP with SQLite support and Composer\n3. Clone this repository\n4. Run `make build` or `ahoy build`\n\n## Building website\n\n`make build` or `ahoy build` assembles the codebase, starts the PHP server\nand provisions the Drupal website with this extension enabled. These operations\nare executed using scripts within [`.devtools`](.devtools) directory. CI uses\nthe same scripts to build and test this extension.\n\nThe resulting codebase is then placed in the `build` directory. The extension\nfiles are symlinked into the Drupal site structure.\n\nThe `build` command is a wrapper for more granular commands:\n```bash\nmake assemble     # Assemble the codebase\nmake start        # Start the PHP server\nmake provision    # Provision the Drupal website\n\nahoy assemble     # Assemble the codebase\nahoy start        # Start the PHP server\nahoy provision    # Provision the Drupal website\n```\n\nThe `provision` command is useful for re-installing the Drupal website without\nre-assembling the codebase.\n\n### Drupal versions\n\nThe Drupal version used for the codebase assembly is determined by the\n`DRUPAL_VERSION` variable and defaults to the latest stable version.\n\nYou can specify a different version by setting the `DRUPAL_VERSION` environment\nvariable before running the `make build` or `ahoy build` command:\n\n```bash\nDRUPAL_VERSION=11 make build        # Drupal 11\nDRUPAL_VERSION=11@alpha make build  # Drupal 11 alpha\nDRUPAL_VERSION=10@beta make build   # Drupal 10 beta\nDRUPAL_VERSION=11.1 make build      # Drupal 11.1\n```\n\nThe `minimum-stability` setting in the `composer.json` file is\nautomatically adjusted to match the specified Drupal version's stability.\n\n### Using Drupal project fork\n\nIf you want to use a custom fork of `drupal-composer/drupal-project`, set the\n`DRUPAL_PROJECT_REPO` environment variable before running the `make build` or\n`ahoy build` command:\n\n```bash\nDRUPAL_PROJECT_REPO=https://github.com/me/drupal-project-fork.git make build\n```\n\n### Patching dependencies\n\nTo apply patches to the dependencies, add a patch to the `patches` section of\n`composer.json`. Local patches are be sourced from the `patches` directory.\n\n### Providing `GITHUB_TOKEN`\n\nTo overcome GitHub API rate limits, you may provide a `GITHUB_TOKEN` environment\nvariable with a personal access token.\n\n### Provisioning the website\n\nThe `provision` command installs the Drupal website from the `standard`\nprofile with the extension (and any `suggest`'ed extensions) enabled. The\nprofile can be changed by setting the `DRUPAL_PROFILE` environment variable.\n\nThe website will be available at http://localhost:8000. The hostname and port\ncan be changed by setting the `WEBSERVER_HOST` and `WEBSERVER_PORT` environment\nvariables.\n\nAn SQLite database is created in `/tmp/site_integration_report.sqlite` file.\nYou can browse the contents of the created SQLite database using\n[DB Browser for SQLite](https://sqlitebrowser.org/).\n\nA one-time login link will be printed to the console.\n\n## Coding standards\n\nThe `make lint` or `ahoy lint` command checks the codebase using multiple\ntools:\n- PHP code standards checking against `Drupal` and `DrupalPractice` standards.\n- PHP code static analysis with PHPStan.\n- PHP deprecated code analysis and auto-fixing with Drupal Rector.\n- PHP code mess detection with PHPMD.\n- Twig code analysis with Twig CS Fixer.\n\nThe configuration files for these tools are located in the root of the codebase.\n\n### Fixing coding standards issues\n\nTo fix coding standards issues automatically, run the `make lint-fix` or\n`ahoy lint-fix`. This runs the same tools as `lint` command but with the\n`--fix` option (for the tools that support it).\n\n## Testing\n\nThe `make test` or `ahoy test` command runs the PHPUnit tests for this extension.\n\nThe tests are located in the `tests/src` directory. The `phpunit.xml` file\nconfigures PHPUnit to run the tests. It uses Drupal core's bootstrap file\n`core/tests/bootstrap.php` to bootstrap the Drupal environment before running\nthe tests.\n\nThe `test` command is a wrapper for multiple test commands:\n```bash\nmake test-unit        # Run Unit tests\nmake test-kernel      # Run Kernel tests\nmake test-functional  # Run Functional tests\n\nahoy test-unit        # Run Unit tests\nahoy test-kernel      # Run Kernel tests\nahoy test-functional  # Run Functional tests\n```\n\n### Running specific tests\n\nYou can run specific tests by passing a path to the test file or PHPUnit CLI\noption (`--filter`, `--group`, etc.) to the `make test` or `ahoy test` command:\n\n```bash\nmake test-unit tests/src/Unit/MyUnitTest.php\nmake test-unit -- --group=wip\n\nahoy test-unit tests/src/Unit/MyUnitTest.php\nahoy test-unit -- --group=wip\n```\n\nYou may also run tests using the `phpunit` command directly:\n\n```bash\ncd build\nphp -d pcov.directory=.. vendor/bin/phpunit tests/src/Unit/MyUnitTest.php\nphp -d pcov.directory=.. vendor/bin/phpunit --group=wip\n```\n\n---\n_This repository was created using the [Drupal Extension Scaffold](https://github.com/AlexSkrypnyk/integration_report) project template_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexskrypnyk%2Fintegration_report","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexskrypnyk%2Fintegration_report","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexskrypnyk%2Fintegration_report/lists"}