{"id":32999729,"url":"https://github.com/cloudinary/wdio-allure-ts","last_synced_at":"2025-11-23T00:02:22.527Z","repository":{"id":31176569,"uuid":"127118443","full_name":"cloudinary/wdio-allure-ts","owner":"cloudinary","description":"WebdriverIO, Allure reporter and TypeScript wrapper for UI E2E testing","archived":true,"fork":false,"pushed_at":"2023-10-01T09:45:09.000Z","size":65593,"stargazers_count":15,"open_issues_count":0,"forks_count":13,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-07-06T03:44:05.677Z","etag":null,"topics":["cloudinary-library"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudinary.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-03-28T09:41:09.000Z","updated_at":"2023-12-05T11:50:48.000Z","dependencies_parsed_at":"2023-02-18T11:17:40.730Z","dependency_job_id":"42f2b003-bb3d-41e4-a694-cdbf7a7f444e","html_url":"https://github.com/cloudinary/wdio-allure-ts","commit_stats":{"total_commits":519,"total_committers":17,"mean_commits":"30.529411764705884","dds":0.7745664739884393,"last_synced_commit":"da7bd2bad00a9b943b4734177e56c5075de49298"},"previous_names":[],"tags_count":130,"template":false,"template_full_name":null,"purl":"pkg:github/cloudinary/wdio-allure-ts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary%2Fwdio-allure-ts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary%2Fwdio-allure-ts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary%2Fwdio-allure-ts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary%2Fwdio-allure-ts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudinary","download_url":"https://codeload.github.com/cloudinary/wdio-allure-ts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary%2Fwdio-allure-ts/sbom","scorecard":{"id":293010,"data":{"date":"2025-08-11","repo":{"name":"github.com/cloudinary/wdio-allure-ts","commit":"70d8f5cb9d02137284d98b3e5d7ae4f5cc0be86d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Code-Review","score":4,"reason":"Found 12/25 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci-pr-merge.yml:1","Warn: no topLevel permission defined: .github/workflows/publish-package.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-pr-merge.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/ci-pr-merge.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-pr-merge.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/ci-pr-merge.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-pr-merge.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/ci-pr-merge.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci-pr-merge.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/ci-pr-merge.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-pr-merge.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/ci-pr-merge.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-pr-merge.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/ci-pr-merge.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci-pr-merge.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/ci-pr-merge.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-package.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/publish-package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-package.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/publish-package.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-package.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/publish-package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-package.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/publish-package.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-package.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/cloudinary/wdio-allure-ts/publish-package.yml/master?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"33 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-28mc-g557-92m7","Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-qxrj-hx23-xp82","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-ghr5-ch3p-vcr6","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-4q6p-r6v2-jvc5","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-593f-38f6-jp5m","Warn: Project is vulnerable to: GHSA-x2rg-q646-7m2v","Warn: Project is vulnerable to: GHSA-jgmv-j7ww-jx2x","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-76p7-773f-r4q5","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T18:46:14.708Z","repository_id":31176569,"created_at":"2025-08-17T18:46:14.709Z","updated_at":"2025-08-17T18:46:14.709Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285879574,"owners_count":27247109,"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","status":"online","status_checked_at":"2025-11-22T02:00:05.934Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cloudinary-library"],"created_at":"2025-11-13T13:00:27.152Z","updated_at":"2025-11-23T00:02:22.521Z","avatar_url":"https://github.com/cloudinary.png","language":"TypeScript","funding_links":[],"categories":["Tools"],"sub_categories":[],"readme":"# WebdriverIO + Allure reporter + TypeScript\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/cloudinary/wdio-allure-ts/actions/workflows/ci-pr-merge.yml?query=branch%3Amaster+event%3Apush\"\u003e\n        \u003cimg alt=\"Build Status\" src=\"https://img.shields.io/github/workflow/status/cloudinary/wdio-allure-ts/ci-pr-merge/master\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/webdriverio/cloudinary/wdio-allure-ts/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc\"\u003e\n        \u003cimg alt=\"Open issues\" src=\"http://isitmaintained.com/badge/open/cloudinary/wdio-allure-ts.svg\"\u003e\n    \u003c/a\u003e\n   \u003cimg alt=\"Version\" src=\"https://img.shields.io/npm/v/wdio-allure-ts\"\u003e\n\u003c/p\u003e\n\nUtil that blends [WebdriverIO](http://webdriver.io/ 'WebdriverIO')\n, [TypeScript](https://www.typescriptlang.org/ 'TypeScript')\nand [Allure Reporter](https://github.com/webdriverio/wdio-allure-reporter 'Allure Reporter') in to end-to-end UI testing\nsolution. It wraps the most common WebdriverIO actions, generating intuitive error messages in case of failure, custom\nlogs for the Allure Reporter, more validations for enhanced stability, and last, but not least, IntelliSense.\n\n## Getting Started\n\nYou need to install [Java JDK](https://www.oracle.com/technetwork/java/javase/downloads/index.html) 8 or\nabove, [NodeJS](https://nodejs.org/en/download)\n\nSupported browsers [Chrome](https://www.google.com/chrome)\n\n## Setup\n\n### Install this package together with helper packages\n\n```\nnpm i -D wdio-allure-ts typescript start-server-and-test chai http-server\n```\n\n### Setting last Chromedriver version to .env file\n\n```\npnpm setChromeDriverVersion\n```\n\n### Add example test\n\nSee [Examples](https://github.com/cloudinary/wdio-allure-ts/tree/237b6871b8a94506b5ed22a2da16fd43db79d153/src/test/specs)\n\nor use your own\n```typescript\n// specs/example_test.spec.ts\nimport { expect } from 'chai';\nimport { describeCommon } from '../TestHelper';\nimport { BrowserUtils } from 'wdio-allure-ts';\n\nconst { click, getAttribute, isDisplayed, waitForDisplayed, waitUntil } = BrowserUtils;\nconst getImgSrc = () =\u003e getAttribute('#myimage', 'src');\n\ndescribeCommon('Test Example', () =\u003e {\n  beforeEach(async () =\u003e {\n    // runs before each test in the block\n    await click('#displayImage'); //for example\n    await waitForDisplayed('#myimage'); //for example\n  });\n\n  it('Should display the image', async () =\u003e {\n    expect(await isDisplayed('#myimage')).to.equal(true);\n  });\n\n  it('Image should have some src eventually', async () =\u003e {\n    const testImgSrc = () =\u003e getImgSrc() === 'https://res.cloudinary.com/demo/image/upload/sample';\n    await waitUntil(testImgSrc, 'Error message for failing test', 2000);\n  });\n});\n```\n\n### Add tsconfig.json\n\n```json\n{\n  \"include\": [\"specs/**/*.ts\"]\n}\n```\n\n## Development\n\n#### Install and run tests\n\n`pnpm` install all dependencies\n\n`pnpm start:sampleApp` spin up the sample app page for testing\n\n`pnpm test` executes all tests\n\n`pnpm spec \u003cspec name\u003e`  executes specific spec file\n\n### Environment variables\n\n`PRINT_LOGS_TO_CONSOLE` - false by default. only enabled in dev configuration, since parallel tests execution will log\nto same terminal\n\n`DEFAULT_TIME_OUT` - timeout for webdriverIO actions. Default value 60 seconds\n\n`CHROME_DRIVER_VERSION`- version of chromedriver\n\n## Project Structure\n\n### Reporter\n\nLogs to both terminal and allure report\n\n### BrowserUtils\n\nwebdriverIO actions wrapper\n\n### TestUtils\n\nCommon utils for tests such as getRandomString()\n\n### SpecialKeys\n\nHolds keyboard special keys\n\n### GitUtils\n\nCommon utils for git like get the last merged files\n\n### TestRailUtils\n\nCommon utils for testrail api like update tests field\n\n### TestFilesUtils\n\nCommon utils for managing test files\n\n## Example for TestRailUtils\n\n//Update the Automation field for the last merged tests to Automated\n\n```javascript\ntry {\n  const lastMergedTestsIds = GitUtils.getLastMergedTestsIds();\n  TestRailUtil.setTestsAsAutomatedInTestrail(lastMergedTestsIds);\n} catch (error) {\n  console.log(error);\n}\n```\n\n## Example With Pure WebdriverIO\n\nNow take a look at an example of an action that, after validating that a particular element is visible, clicks it, logs every step to the Reporter, and throws meaningful errors for failures, if any.\n\n```javascript\nconst selector: string = 'someSelector';\nawait logger(`Click an element with selector: ${selector}`);\ntry {\n  await logger(`Validate element with selector ${selector} is displayed`);\n  await browser.isDisplayed(selector);\n} catch (error) {\n  throw new Error(`Tried to click not visible element, ${error}`);\n}\n\ntry {\n  await logger('Perform click action');\n  await browser.click(selector);\n} catch (error) {\n  throw new Error(`Failed to click an element by given selector ${selector}. ${error}`);\n}\n```\n\nExample with `wdio-allure-ts`:\n\n```javascript\nconst selector: string = 'someSelector';\nawait BrowserUtils.click(selector);\n```\n\nYou can see that wdio-allure-ts offers the same capabilities with much cleaner code. Because it automatically handles logging and error reporting, developers can focus on testing the business logic.\nYou can add more report logs with a simple Reporter API for log levels: step, debug, error, info, and warning. The logs are displayed on the terminal and reflected in the report.\nExample:\n\n```javascript\nimport { Reporter } from 'wdio-allure-ts';\nawait Reporter.step('Step log entry');\nawait Reporter.error('Error log entry');\n```\n\n**Terminal Output**\n\n![Terminal Output](https://cloudinary-res.cloudinary.com/image/upload/f_auto,q_auto/blog/wdio-allure-ts/terminal_report.png)\nNote the difference in the highlighted areas between the original report and the one created with `wdio-allure-ts`.\n**Original Report**\n\n![Original Report](https://cloudinary-res.cloudinary.com/image/upload/f_auto,q_auto/blog/wdio-allure-ts/allure_report_origin.png)\n\n**wdio-allure-ts Report([live report example](https://cloudinary.github.io/wdio-allure-ts-example/allure-report/index.html)):**\n\n![`wdio-allure-ts` Report](https://cloudinary-res.cloudinary.com/image/upload/f_auto,q_auto/blog/wdio-allure-ts/allure_report_updated.png)\n\n## CLI execution\n\nAdded an option to execute tests with cli.\n\ncmd:\n\n`node ./lib/helpers/runner.js`\n\nThat uses default wdio configuration `wdio.default.conf.js` if no parameters passed.\n\nAdditional available cli inputs:\n\n`--specs \"test1.js\" \"test2.js` - tests path separated by space\n\n`--config \"customConfig.js\"` - path to custom config for wdio execution\n\nCLI example:\n\n`node ./lib/helpers/runner.js --specs 'specs/TEST1.js' 'specs/TEST2.js' --config 'customConf.js'`\n\n## Services\n\nIn our package we're using following services:\n\n[Devtools](https://webdriver.io/docs/devtools-service/)\n[selenium-standalone](https://webdriver.io/docs/selenium-standalone-service/)\n\n## How to write commit message\n\nWe use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)\nFor commit message, please use a template:\n\n```\n\u003ctype\u003e[optional scope]: \u003cdescription\u003e\n\n[optional body]\n\n[optional footer(s)]\n```\n\nWe use several types:\n\n`fix:` a commit of the type fix patches a bug in your codebase (this correlates with `PATCH` in semantic versioning)\n`fix: correct minor typos in code`\n\n`feat:` a commit of the type feat introduces a new feature to the codebase (this correlates with `MINOR` in semantic\nversioning)\n`feat: add new random function`\n\n`test:` a commit of the type test introduces a new test or correcting existing tests (this correlates with `MINOR` in\nsemantic versioning)\n`test: add new test for random function`\n\n`docs:` commit of the type docs introduces adding/fixing documentation (this correlates with `MINOR` in semantic\nversioning)\n`docs: correct spelling in README`\n\n`BREAKING CHANGE:` a commit that has a footer BREAKING CHANGE:, or appends a `!` after the type/scope, introduces a\nbreaking API change (correlating with `MAJOR` in Semantic Versioning).\n\nCommit message with description and breaking change footer\n\n``` \nfeat: bump WDIO version to 7\nBREAKING CHANGE: bumping new WDIO version to 7\n```\n\nor Commit message with ! to draw attention to breaking change\n`feat!: bump WDIO version`\n\nNote: A BREAKING CHANGE can be part of commits of any type\n\n## Ready to Try?\n\nCheck out a [sample project](https://github.com/cloudinary/wdio-allure-ts-example) with a quick introduction to our\nframework and its usage on a real-world application\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudinary%2Fwdio-allure-ts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudinary%2Fwdio-allure-ts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudinary%2Fwdio-allure-ts/lists"}