原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 54439,
"has_wiki": true,
"homepage": null,
"languages": {
"C#": 877206
},
"pushed_at": "2026-07-26T17:34:01Z",
"created_at": "2014-04-14T15:56:33Z",
"owner_type": "Organization",
"updated_at": "2026-07-26T17:34:07Z",
"description": "Extension to the official Selenium dotnet webdriver ",
"is_archived": false,
"is_disabled": false,
"license_spdx": "Apache-2.0",
"default_branch": "main",
"license_spdx_raw": "Apache-2.0",
"primary_language": "C#",
"significant_languages": [
"C#"
]
},
"owner": {
"blog": "http://appium.io",
"name": "Appium",
"type": "Organization",
"login": "appium",
"company": null,
"location": "worldwide",
"followers": 1305,
"avatar_url": "https://avatars.githubusercontent.com/u/3221291?v=4",
"created_at": "2013-01-09T01:48:37Z",
"is_verified": null,
"public_repos": 111,
"account_age_days": 4947
},
"license": {
"state": "standard",
"spdx_id": "Apache-2.0",
"raw_spdx": "Apache-2.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v8.3.2",
"kind": "patch",
"published_at": "2026-07-18T20:25:53Z"
},
{
"tag": "v8.3.1",
"kind": "patch",
"published_at": "2026-07-05T20:07:02Z"
},
{
"tag": "v8.3.0",
"kind": "minor",
"published_at": "2026-06-18T14:08:43Z"
},
{
"tag": "v8.2.0",
"kind": "minor",
"published_at": "2026-03-29T20:55:26Z"
},
{
"tag": "v8.1.0",
"kind": "minor",
"published_at": "2026-02-13T20:43:41Z"
},
{
"tag": "v8.0.1",
"kind": "patch",
"published_at": "2025-10-06T20:41:47Z"
},
{
"tag": "v8.0.0",
"kind": "major",
"published_at": "2025-05-31T21:02:11Z"
},
{
"tag": "v7.2.0",
"kind": "minor",
"published_at": "2025-03-16T21:58:25Z"
},
{
"tag": "v7.1.0",
"kind": "minor",
"published_at": "2025-02-15T20:56:51Z"
},
{
"tag": "v7.0.0",
"kind": "major",
"published_at": "2024-12-27T21:26:26Z"
},
{
"tag": "v6.0.1",
"kind": "patch",
"published_at": "2024-11-15T22:03:11Z"
},
{
"tag": "v6.0.0",
"kind": "major",
"published_at": "2024-10-19T20:03:13Z"
},
{
"tag": "v5.2.0",
"kind": "minor",
"published_at": "2024-09-15T04:25:18Z"
},
{
"tag": "v5.1.0",
"kind": "minor",
"published_at": "2024-07-28T20:02:27Z"
},
{
"tag": "v5.0.0",
"kind": "major",
"published_at": "2024-06-15T21:03:52Z"
},
{
"tag": "v5.0.0-rc.8",
"kind": "prerelease",
"published_at": "2024-04-26T21:21:22Z"
},
{
"tag": "v5.0.0-rc.7",
"kind": "prerelease",
"published_at": "2024-03-29T20:58:22Z"
},
{
"tag": "v5.0.0-rc.6",
"kind": "prerelease",
"published_at": "2024-03-03T21:23:50Z"
},
{
"tag": "v5.0.0-rc.5",
"kind": "prerelease",
"published_at": "2024-01-26T23:00:43Z"
},
{
"tag": "v5.0.0-rc.4",
"kind": "prerelease",
"published_at": "2023-12-29T22:22:54Z"
},
{
"tag": "v5.0.0-rc.3",
"kind": "prerelease",
"published_at": "2023-12-24T04:39:11Z"
},
{
"tag": "v5.0.0-rc.2",
"kind": "prerelease",
"published_at": "2023-11-16T23:08:46Z"
},
{
"tag": "v5.0.0-rc.1",
"kind": "prerelease",
"published_at": "2023-09-06T13:01:27Z"
},
{
"tag": "v4.4.5",
"kind": "patch",
"published_at": "2023-05-05T18:01:26Z"
},
{
"tag": "v5.0.0-beta04",
"kind": "prerelease",
"published_at": "2023-04-29T20:02:34Z"
},
{
"tag": "v5.0.0-beta03",
"kind": "prerelease",
"published_at": "2023-01-06T15:08:56Z"
},
{
"tag": "v4.4.0",
"kind": "minor",
"published_at": "2022-10-26T23:04:59Z"
},
{
"tag": "v5.0.0-beta02",
"kind": "prerelease",
"published_at": "2022-10-26T23:37:52Z"
},
{
"tag": "v4.3.2",
"kind": "patch",
"published_at": "2022-07-01T16:33:51Z"
},
{
"tag": "v5.0.0-beta01",
"kind": "prerelease",
"published_at": "2021-10-21T15:41:54Z"
},
{
"tag": "v5.0.0-alpha2",
"kind": "prerelease",
"published_at": "2021-10-19T17:12:24Z"
},
{
"tag": "v5.0.0alpha",
"kind": "other",
"published_at": "2021-10-17T04:25:31Z"
},
{
"tag": "v4.3.1",
"kind": "patch",
"published_at": "2021-01-14T16:49:11Z"
},
{
"tag": "v4.3.0",
"kind": "minor",
"published_at": "2021-01-14T12:29:37Z"
},
{
"tag": "v4.2.1",
"kind": "patch",
"published_at": "2020-09-19T13:24:06Z"
},
{
"tag": "v4.2.0",
"kind": "minor",
"published_at": "2020-09-13T16:15:17Z"
},
{
"tag": "4.1.1",
"kind": "patch",
"published_at": "2019-11-19T12:27:31Z"
},
{
"tag": "4.1.0",
"kind": "minor",
"published_at": "2019-11-14T03:23:20Z"
},
{
"tag": "4.0",
"kind": "other",
"published_at": "2019-09-02T18:59:53Z"
},
{
"tag": "v4.0.0.6-beta",
"kind": "other",
"published_at": "2019-04-15T16:03:16Z"
},
{
"tag": "v4.0.0.5-beta",
"kind": "other",
"published_at": "2019-01-26T01:32:33Z"
},
{
"tag": "v4.0.0.4-beta",
"kind": "other",
"published_at": "2018-10-15T08:51:06Z"
},
{
"tag": "v4.0.0.3-beta",
"kind": "other",
"published_at": "2018-10-01T10:16:56Z"
},
{
"tag": "v4.0.0.2-beta",
"kind": "other",
"published_at": "2018-09-22T20:43:10Z"
},
{
"tag": "4.0.0.1-beta",
"kind": "other",
"published_at": "2018-01-15T22:00:38Z"
},
{
"tag": "1.2.0.8",
"kind": "other",
"published_at": "2015-01-13T18:08:00Z"
},
{
"tag": "1.2.0.5",
"kind": "other",
"published_at": "2014-09-25T17:17:17Z"
},
{
"tag": "1.2.0.4x",
"kind": "other",
"published_at": "2014-09-17T01:43:00Z"
}
],
"recent_commits": [
{
"oid": "43f90016761502816c5c12b19ed24afa785a3693",
"body": "…098)",
"is_bot": false,
"headline": "docs: replace appiumpro.com references with HeadSpin blog mirrors (#1…",
"author_name": "ian zhang",
"author_login": "alaahong",
"committed_at": "2026-07-26T17:34:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b48a01adb21adf2dcf739cf40151aa7d54b32f0",
"body": "* feat(ios): implement syslog broadcast support in IOSDriver\n\nWire the existing IListensToSyslogMessages interface into IOSDriver,\nmirroring the Android logcat broadcast implementation. Adds WebSocket-based\nreal-time iOS syslog streaming via the Appium\nws://<host>:<port>/ws/session/<id>/appium/devic\n[…]\ned.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Lqd5nmE69tYMpCVYZ8ySrT\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: Add WebSocket-based syslog broadcast support for iOS (#1096)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-21T06:32:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2737765a537001c44cd33ff2248925a89a7eede5",
"body": "* chore: Bump Selenium.WebDriver from 4.44.0 to 4.46.0\n\n---\nupdated-dependencies:\n- dependency-name: Selenium.WebDriver\n dependency-version: 4.46.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\n\n* docs: updat\n[…]\neplace Unreleased with 8.3.2 in compatibility matrix\n\n---------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "chore: Bump Selenium.WebDriver from 4.45.0 to 4.46.0 (#1085)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-18T20:04:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "daf0f814f20aed905b0c24287410d3129ab70a8d",
"body": "---\nupdated-dependencies:\n- dependency-name: NUnit3TestAdapter\n dependency-version: 6.2.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "test: Bump NUnit3TestAdapter from 6.1.0 to 6.2.0 (#1030)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-18T19:30:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b02240511904930400ac4462448482fafe7e1579",
"body": "…090)\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.SourceLink.GitHub\n dependency-version: 10.0.301\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor-bl <dblayzer@gmail.com>",
"is_bot": true,
"headline": "chore: Bump Microsoft.SourceLink.GitHub from 10.0.300 to 10.0.301 (#1…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-18T19:29:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0c62c058753fe6612ef2234c1159048e721f7878",
"body": "Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n dependency-version: '\n[…]\nte:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor-bl <dblayzer@gmail.com>",
"is_bot": true,
"headline": "ci(deps): Bump actions/setup-node from 6 to 7 (#1089)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-18T18:42:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9cbdd1ef87be534f3d66464ed5e899ff015f252b",
"body": "---\nupdated-dependencies:\n- dependency-name: System.Text.Json\n dependency-version: 10.0.10\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor-bl <dblayzer@gmail.com>",
"is_bot": true,
"headline": "test: Bump System.Text.Json from 10.0.9 to 10.0.10 (#1094)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-18T18:41:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "292fd7c0e7d505e17efa9f9dcd14d074b10a1ed7",
"body": "…DriverWait (#1095)",
"is_bot": false,
"headline": "test: Fix IndexOutOfRange in ActionsChainsTest by adding explicit Web…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-18T06:31:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f0554d3879671fa77d4140095d2dfe41b6b57920",
"body": "* test(ios): fix flaky CanBackgroundAppToDeactivation test using WebDriverWait\n\n* test(ios): temporarily disable implicit wait around explicit wait\n\n* test(ios): refactor to use WaitForElement for all explicit checks\n\n* test(ios): capture and restore previous implicit wait\n\n* test(ios): use captured implicit wait for explicit wait timeout",
"is_bot": false,
"headline": "test(ios): fix flaky CanBackgroundAppToDeactivation test (#1088)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-16T06:59:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4f5d64a6b5cd31356813be1d3fe9cb0dd9041c1",
"body": "…rkflow (#1087)\n\n* chore(ci): correct release-drafter configuration and add validation workflow\n\n* chore(ci): use dry-run instead of disable-autolabeler in validation workflow\n\n* chore(ci): update validate-release-drafter per PR comments\n\n* chore(ci): migrate release-drafter config to v7 schema\n\n* chore(ci): explicitly set commitish to default branch to fix fallback warning\n\n* chore(ci): remove trailing whitespace in release-drafter.yml",
"is_bot": false,
"headline": "chore(ci): migrate release-drafter config to v7 and add validation wo…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-15T04:45:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "37edd4ffa78925b119d8ebda6a73c29f6ace93a4",
"body": "* ci: improve android emulator stability with ATD and more RAM\n\n* ci: fix cache key and revert to google_apis",
"is_bot": false,
"headline": "chore: improve android emulator stability in CI (#1086)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-14T06:40:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b40c704ebedee5454cc22c3d8745f83583112a4",
"body": "Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 6 to 7.\n- [Release notes](https://github.com/release-drafter/release-drafter/releases)\n- [Commits](https://github.com/release-drafter/release-drafter/compare/v6...v7)\n\n---\nupdated-dependencies:\n- depende\n[…]\n>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>\nCo-authored-by: Dor-bl <dblayzer@gmail.com>",
"is_bot": true,
"headline": "ci(deps): Bump release-drafter/release-drafter from 6 to 7 (#1022)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-14T05:09:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1daae5cf5c90165ba07957f6a86cd945f19dc097",
"body": null,
"is_bot": false,
"headline": "chore: remove prerelease identifier from release-drafter (#1083)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-12T14:22:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c8976d3e2644af3530885f4605931055e5e836d4",
"body": "…n (#1081)\n\n* Refactor complex conditional in DirectConnect.GetUri\n\n- Extracted complex null and protocol checks into a private 'IsValid' property.\n- Improved 'GetUri' readability by using the 'IsValid' property and string interpolation.\n- Added XML documentation for the new 'IsValid' property.\n\n* Address PR comments: Use UriBuilder and validate port\n\n* Address PR comments: add port range check and update XML doc",
"is_bot": false,
"headline": "refactor: DirectConnect.GetUri for improved readability and validatio…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-12T06:59:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c776a447004c881661247254fbb282f80171ef74",
"body": null,
"is_bot": false,
"headline": "chore: add Chore/Maintenance to PR template (#1084)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-12T01:49:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49aa6f490ecc111b79eb75b90fc3fe5b813fa045",
"body": null,
"is_bot": false,
"headline": "docs: remove obsolete CI badges (#1082)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-12T01:49:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "da7be5c10bd4c4f3e0b26b2f353e3fc231918714",
"body": "---\nupdated-dependencies:\n- dependency-name: Selenium.WebDriver\n dependency-version: 4.45.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.norepl\n[…]\n>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>\nCo-authored-by: Dor-bl <dblayzer@gmail.com>\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: Bump Selenium.WebDriver from 4.44.0 to 4.45.0 (#1063)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-11T21:25:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0620c956a6f11128a28a09088df1f7ffd613ae1e",
"body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.NET.Test.Sdk\n dependency-version: 18.7.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "test: Bump Microsoft.NET.Test.Sdk from 18.0.1 to 18.7.0 (#1071)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-11T09:41:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c18737b1394bcf3733cdebebc067df6f9b9edeb9",
"body": "Bumps [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild) from 2 to 3.\n- [Release notes](https://github.com/microsoft/setup-msbuild/releases)\n- [Commits](https://github.com/microsoft/setup-msbuild/compare/v2...v3)\n\n---\nupdated-dependencies:\n- dependency-name: microsoft/setup-msbuil\n[…]\n>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>\nCo-authored-by: Dor-bl <dblayzer@gmail.com>",
"is_bot": true,
"headline": "ci(deps): Bump microsoft/setup-msbuild from 2 to 3 (#1027)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-11T09:40:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ed4f62d619e3555f32de375591e9c554dad0c351",
"body": "---\nupdated-dependencies:\n- dependency-name: System.Drawing.Common\n dependency-version: 10.0.9\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>\nCo-authored-by: Dor-bl <dblayzer@gmail.com>",
"is_bot": true,
"headline": "chore: Bump System.Drawing.Common from 10.0.8 to 10.0.9 (#1062)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-11T09:40:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d3a733411011d7c1c7ab5a6f270a39496aa5614",
"body": null,
"is_bot": false,
"headline": "test: stabilize CanActivateAppFromBackgroundTest (#1080)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-11T06:08:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "50ed05f29534c6f76fdd0451589a0c4c25291d1c",
"body": "---\nupdated-dependencies:\n- dependency-name: NUnit.Analyzers\n dependency-version: 4.14.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>\nCo-authored-by: Dor-bl <dblayzer@gmail.com>",
"is_bot": true,
"headline": "test: Bump NUnit.Analyzers from 4.11.2 to 4.14.0 (#1072)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-10T22:11:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "19522e53043c9b8a5d7ee6b742d64f2c16717312",
"body": "… (#1075)\n\n* 🔒 Fix path traversal and arbitrary file overwrite vulnerability\n\n* Added path validation to SaveVisualizationAsFile\n* Ensured file path stays within the allowed executing directory\n* Prevented relative path traversal (..) and absolute path manipulation\n\n* Address review comments on Save\n[…]\ne names\n\n* Address follow-up review comment: cache reserved device names as static readonly field\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "security: Fix path traversal vulnerability in SaveVisualizationAsFile…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-10T22:08:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "56b6a021a2a0d462d552b10bb71b511892a9acd6",
"body": "* fix: increase adbExecTimeout in Android ClipboardTest to 60s\n\n* fix: remove redundant appium: prefix from adbExecTimeout capability",
"is_bot": false,
"headline": "test(android): increase adbExecTimeout in ClipboardTest (#1079)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-10T07:11:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dc64d5eaa791f026bf51594baf10af8b0a416f8d",
"body": "… (#1077)\n\n* test: Bump NUnit from 4.5.1 to 4.6.1\n\n---\nupdated-dependencies:\n- dependency-name: NUnit\n dependency-version: 4.6.1\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\n\n* fix: Resolve NUnit 4.6.1 compi\n[…]\ncalls\n\n* Address review comments on GeolocationTests\n\n---------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "test: Bump NUnit from 4.5.1 to 4.6.1 and resolve compiler ambiguities…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-09T05:33:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "aa0a7714052e76cb2603f28193db187b23345813",
"body": "…1061)\n\n* ⚡ Optimize ToDictionary() in PointerInputDevice\n\nReplace LINQ ToList().ForEach() with a standard foreach loop when appending extra attributes.\nThis avoids an unnecessary O(N) memory allocation and improves execution speed for dictionary translation.\n\n* ⚡ Optimize ToDictionary() in PointerI\n[…]\nnding\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "perf: Optimize ToDictionary() performance and clean up unused code (#…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-07T20:33:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ef9c465b76f6cc66ce04a41fc144b14c1ff1aaf1",
"body": "… (#1038)\n\n* Add integration and unit tests for AppiumElement.GetProperty\n\n- Implement GetProperty and GetDomProperty in TestableAppiumElement helper\n- Add unit tests for GetProperty caching in AppiumElementCacheTest.cs\n- Add integration test for GetProperty in Android ElementTest.cs\n- Remove TODO c\n[…]\nndroid/ElementTest.cs\n\n* Address remaining Copilot review comments regarding cache assertions, naming and region labels\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "test: Add integration and unit tests for GetProperty in AppiumElement…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-07-07T05:24:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "09706a6c0a9eecdfb9a981ee744fe3b2d60e845f",
"body": "---\nupdated-dependencies:\n- dependency-name: System.Text.Json\n dependency-version: 10.0.9\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "test: Bump System.Text.Json from 10.0.7 to 10.0.9 (#1073)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-06T19:15:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5f9d64d2e91190aac1fd8bf881ef60564ac6618",
"body": "…ulator (#1060)\n\n* Fix android BrowserTests: switch emulator target to google_apis_playstore\n\n* Fix android tests: revert to google_apis, skip BrowserTests (Chrome unavailable)\n\n* Skip BrowserTests only in CI, keep local Chrome coverage\n\nUse the Env.IsCiEnvironment() + Assert.Ignore() pattern alread\n[…]\nso the\ntest still runs locally where Chrome is available.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: Dor-bl <dor.blayzer@cropx.com>",
"is_bot": false,
"headline": "Fix BrowserTests timeout: skip BrowserTests fixture on google_apis em…",
"author_name": "Copilot",
"author_login": "Copilot",
"committed_at": "2026-07-05T20:43:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "72d8747ff6a611d07660fd92b5d70cc61966ece5",
"body": "Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependenc\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): Bump actions/cache from 5 to 6 (#1069)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-25T02:02:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "96e64775ce533ec62c01a9d919507d2f908262b7",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v6...v7)\n\n---\nupdated-dependenc\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): Bump actions/checkout from 6 to 7 (#1070)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-25T02:02:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fa2b0722ba7b462c8426f9643b56f76a377b8f6e",
"body": "…lApp\" (#1068)",
"is_bot": false,
"headline": "fix: Use correct parameter for appium-xcuitest-driver \"mobile: instal…",
"author_name": "broetchenrackete36",
"author_login": "broetchenrackete36",
"committed_at": "2026-06-24T07:35:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d89bae902ba8b30720bb038aea19456f19b807a",
"body": "…(#1049)\n\n* perf: Optimize WebSocket handler invocation in StringWebSocketClient\n\nRefactored StringWebSocketClient to use standard C# events instead of\nList<Action<...>> for internal handler management. This eliminates\nredundant array allocations via .ToArray() during every message, error,\nconnectio\n[…]\naude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "perf: Optimize WebSocket handler invocation in StringWebSocketClient …",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-06-19T05:13:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "25ab227ac9f00f3bd882523e265f540a8f91cc2d",
"body": "* docs: add missing 8.2.0 entry to compatibility matrix\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* docs: fill in missing versions in compatibility matrix\n\nAdd 8.1.0, 8.0.0, 7.2.0, 7.1.0, 6.0.1, and 5.2.0 entries that were\nmissing from the Selenium compatibility matrix.\n\nCo-Authore\n[…]\nium binding\n\nKeep only the latest version per Selenium binding version.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update compatibility matrix (#1067)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-06-19T05:13:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1b4bb545433a9a3a5f01feedf4256d0ab4b2b4cb",
"body": "---\nupdated-dependencies:\n- dependency-name: System.Text.Json\n dependency-version: 10.0.7\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "test: Bump System.Text.Json from 10.0.2 to 10.0.7 (#1047)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-18T22:05:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f27e35224b342d0b74b2209dfd104a6218d78b80",
"body": "Bumps [NuGet/setup-nuget](https://github.com/nuget/setup-nuget) from 2 to 4.\n- [Release notes](https://github.com/nuget/setup-nuget/releases)\n- [Commits](https://github.com/nuget/setup-nuget/compare/v2...v4)\n\n---\nupdated-dependencies:\n- dependency-name: NuGet/setup-nuget\n dependency-version: '4'\n \n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): bump NuGet/setup-nuget from 2 to 4 (#1044)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-18T21:41:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1c1c9b2a2983451602e3511efbb4d4002b8c2371",
"body": "* docs: update README for v8.3.0 release\n\nUpdate compatibility matrix from 8.2.1 to 8.3.0 and update the signed\nassembly note to reflect that strong-signing is now supported, following\nSelenium 4.44.0's introduction of strong-signing for Selenium.WebDriver.dll.\n\nCo-Authored-By: Claude Sonnet 4.6 <no\n[…]\n.\nRemoving the note until proper strong-signing support is implemented.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: update README for v8.3.0 release (#1065)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-06-18T21:24:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f3c3defc9c8c33934b1d9ef1d2c1137ea4791b11",
"body": "…053)\n\n* Update dependencies, refactor tests, and modernize code\n\n- Bump and fix Selenium 4.44.0 breaking changes\n- Bump package versions in main and test projects\n- Update copyright year to 2026\n- Remove ICommandExecutor from AppiumLocalService\n- Modernize code with target-typed new and object init\n[…]\nusers.noreply.github.com>\n\n* cleanup\n\n* revert test project package versions\n\n* fixes from review\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "feat: support selenium 4.44.0, refactor tests, and modernize code (#1…",
"author_name": "Jonathan Dean",
"author_login": "kelmelzer",
"committed_at": "2026-06-04T04:51:09Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f5f016fd02bd17d9b232b9a1021439fadf7b3eaf",
"body": "* feat: add integration tests for AppiumElement.GetProperty\n\n- Added GetProperty method to TestableAppiumElement helper.\n- Added unit tests for GetProperty caching in AppiumElementCacheTest.\n- Added Android integration test for GetProperty in ElementTest.\n- Removed TODO comment for integration tests\n[…]\nnding\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "test: add integration tests for AppiumElement.GetProperty (#1050)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-05-03T22:05:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "37634edc9715bb2d9cdabb58c0823245ade53bf2",
"body": "…035)\n\n* perf: optimize OptionCollector by reducing redundant ToDictionary() calls\n\n- Refactored `ParseCapabilitiesIfWindows` and `ParseCapabilitiesIfUNIX` to accept a pre-computed dictionary instead of calling `ToDictionary()` internally.\n- Updated `Arguments` property getter to call `ToDictionary(\n[…]\nerations and memory pressure.\n\n* fix: initialize result list with an empty array instead of List<string>\n\n* test: add AddCapabilities_MergesCapabilitiesWhenCalledMultipleTimes test for OptionCollector",
"is_bot": false,
"headline": "feat: Optimize OptionCollector by reducing dictionary allocations (#1…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-03-30T05:01:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "523bfa5a8dc0d9398646764fb9c9f1f92cffb316",
"body": "Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifac\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): Bump actions/upload-artifact from 6 to 7 (#1015)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-29T20:48:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e5976b10746961d387ef7fa152cb2ef13eb82efd",
"body": "* test: add iOS category attribute to multiple test classes\n\n* Update test/integration/IOS/OrientationTest.cs\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\n\n* Update test/integration/IOS/ClipboardTest.cs\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "test: add iOS category attribute to multiple test classes (#1033)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-03-28T12:07:35Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "34df403615417082ea4010e6eacb86950e46214e",
"body": "* feat: add iOS launchAppWithArguments\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\n\n* fix: correct script formatting in launchApp command\n\n---------\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "feat: add iOS launchAppWithArguments (#1031)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-03-28T12:06:56Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4bd21d15a47892dc97b7f95287b335ab595648a3",
"body": "…e (#1026)\n\n* ⚡ Optimize ToDictionary() in PointerInputDevice\n\nReplace LINQ ToList().ForEach() with a standard foreach loop when appending extra attributes.\nThis avoids an unnecessary O(N) memory allocation and improves execution speed for dictionary translation.\n\n* ⚡ Optimize ToDictionary() in Poin\n[…]\nwhen appending extra attributes.\nThis avoids an unnecessary O(N) memory allocation and improves execution speed for dictionary translation.\n\n* chore: remove unused Linq namespace in PointerInputDevice",
"is_bot": false,
"headline": "Optimize ToDictionary() for improved performance in PointerInputDevic…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-03-28T12:06:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "65cda30d763659910eb89667cbf853ac1bb541cd",
"body": "Added functional and unit test badges to README.",
"is_bot": false,
"headline": "Update README with test status badges (#1034)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-03-28T05:26:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5a419a6a984ff46c142c523eb98ebabc04301379",
"body": "Bumps [android-actions/setup-android](https://github.com/android-actions/setup-android) from 3 to 4.\n- [Release notes](https://github.com/android-actions/setup-android/releases)\n- [Commits](https://github.com/android-actions/setup-android/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): bump android-actions/setup-android from 3 to 4 (#1028)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-27T21:01:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "eeb57cceaae65ac3102a9ff1374cd22369d59996",
"body": "---\nupdated-dependencies:\n- dependency-name: NUnit\n dependency-version: 4.5.1\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "test: Bump NUnit from 4.4.0 to 4.5.1 (#1019)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-27T10:57:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fd04ce88cb7e07368eeb1518a1cf71c2b9735ae",
"body": "Bumps [dorny/test-reporter](https://github.com/dorny/test-reporter) from 2 to 3.\n- [Release notes](https://github.com/dorny/test-reporter/releases)\n- [Changelog](https://github.com/dorny/test-reporter/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/dorny/test-reporter/compare/v2...v3)\n\n---\nup\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): bump dorny/test-reporter from 2 to 3 (#1029)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-27T10:41:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "130b634d88f76e84cc10d5628c1b85fa8510cc28",
"body": "The manual loop and `Trim()` call for command-line arguments has been replaced with `string.Join(\" \", argList)`, which is more efficient as it reduces intermediate string allocations and copy operations.\n\nChanges:\n- Replaced string concatenation in a loop with `string.Join` in `src/Appium.Net/Appium/Service/AppiumServiceBuilder.cs`.\n- Removed unnecessary `Trim()` call as `string.Join` only inserts separators between elements.",
"is_bot": false,
"headline": "perf: optimize string concatenation in AppiumServiceBuilder (#1025)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-03-23T06:07:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67a336d35fc9310f9a6d640093df73b42f3448f4",
"body": "Bumps [futureware-tech/simulator-action](https://github.com/futureware-tech/simulator-action) from 4 to 5.\n- [Release notes](https://github.com/futureware-tech/simulator-action/releases)\n- [Changelog](https://github.com/futureware-tech/simulator-action/blob/main/CHANGELOG.md)\n- [Commits](https://git\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): Bump futureware-tech/simulator-action from 4 to 5 (#1016)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-22T21:05:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b92cb9b7084376840f7f83f144d8ad91590831f6",
"body": "Added a 250ms delay in the PingAsync wait loop to significantly reduce CPU usage when waiting for the Appium server to start.\n\nAlso updated the loop condition from bitwise AND (&) to logical AND (&&) for better short-circuiting behavior.\n\nBaseline (without delay): ~1600 iterations/sec\nOptimized (with delay): ~4 iterations/sec (near-zero CPU usage)",
"is_bot": false,
"headline": "⚡ [performance] Optimize busy wait in PingAsync with Task.Delay (#1017)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-03-22T21:03:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d41a40e31ad660c3cdd44b74f9328ef1a09b0568",
"body": "* test: add app uninstall\n\n* use before/teardown",
"is_bot": false,
"headline": "test: add app uninstall to improve the test stability (#1012)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2026-02-24T06:57:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b2b901fba7139c1d84f240ad653ab71ecce9f3e",
"body": "* Initial plan\n\n* Implement graceful shutdown for AppiumLocalService on Windows\n\nCo-authored-by: Dor-bl <59066376+Dor-bl@users.noreply.github.com>\n\n* Address code review feedback: improve error handling and comments\n\nCo-authored-by: Dor-bl <59066376+Dor-bl@users.noreply.github.com>\n\n* Further improv\n[…]\nmization. The timeout value is utilized in the `DestroyProcess` method for graceful shutdown on Windows.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "fix: Stop local appium process with SIGTERM (#1006)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-02-13T20:37:14Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e706a8507e0d7bf9220bbeb76290e32b61eaff5e",
"body": null,
"is_bot": false,
"headline": "docs: set note about deps version (#1005)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2026-02-06T05:53:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c84ea08f5cbf9db4ef28d102cf7dd2e5ac9025e",
"body": "---\nupdated-dependencies:\n- dependency-name: System.Text.Json\n dependency-version: 10.0.2\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: Bump System.Text.Json from 10.0.1 to 10.0.2 (#1003)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-02-06T05:45:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "73a9af7086f21c54b9aad443e7c7f53d05a3be3a",
"body": "---\nupdated-dependencies:\n- dependency-name: NUnit3TestAdapter\n dependency-version: 6.1.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "test: Bump NUnit3TestAdapter from 6.0.1 to 6.1.0 (#1002)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-02-05T08:59:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5fac61491f176efc301109f33539d55b442c6016",
"body": null,
"is_bot": false,
"headline": "ci: set prefix for bot",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2026-02-05T08:44:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f2ce4239d390488509543e7c38efb3dd93883f3f",
"body": "---\nupdated-dependencies:\n- dependency-name: System.Text.Json\n dependency-version: 10.0.1\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": true,
"headline": "test: Bump System.Text.Json from 9.0.0 to 10.0.1 (#983)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-10T22:12:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53d64040469581c50438f91bde6a2ad89cd1315a",
"body": "---\nupdated-dependencies:\n- dependency-name: NUnit3TestAdapter\n dependency-version: 6.0.1\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>",
"is_bot": true,
"headline": "test: Bump NUnit3TestAdapter from 4.6.0 to 6.0.1 (#984)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-10T03:12:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc93546c2a67c767c3aa150d165f31b9ab7aafdc",
"body": "---\nupdated-dependencies:\n- dependency-name: NUnit.Analyzers\n dependency-version: 4.11.2\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: Bump NUnit.Analyzers from 4.7.0 to 4.11.2 (#972)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-09T07:25:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69d75c6b970a84ad455d0a4ce67e2720d4c7ac35",
"body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.NET.Test.Sdk\n dependency-version: 18.0.1\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": true,
"headline": "chore: Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.0.1 (#971)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-08T06:40:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77d67ee77b8ae34f929ae70dfb3f200092f94f05",
"body": "Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependenc\n[…]\nr\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": true,
"headline": "ci: [github-actions] Bump actions/cache from 4 to 5 (#998)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-07T06:55:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b5af1e530a2a7d2cf1cc5232bd62796798c9a976",
"body": "Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v4...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n dependency-version: '\n[…]\nr\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": true,
"headline": "ci(deps): bump actions/setup-node from 4 to 6 (#1001)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-07T06:55:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a0f128064d658c1e66bd27ee1c4216598b2a9df1",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v4...v6)\n\n---\nupdated-dependenc\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci: [github-actions] Bump actions/checkout from 4 to 6 (#996)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-06T05:30:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7106ef2e20b34bddb0052733e0c8bfb2831ac2bf",
"body": "Bumps [dorny/test-reporter](https://github.com/dorny/test-reporter) from 1 to 2.\n- [Release notes](https://github.com/dorny/test-reporter/releases)\n- [Changelog](https://github.com/dorny/test-reporter/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/dorny/test-reporter/compare/v1...v2)\n\n---\nup\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci: [github-actions] Bump dorny/test-reporter from 1 to 2 (#997)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-06T05:29:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d441f7aca3c754a163fb8667c9fae34d2e878ae4",
"body": null,
"is_bot": false,
"headline": "ci: update prefix for github actions update",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2026-01-06T03:09:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70181de8eab2ef3fd214ce3acf8e65e5c780a991",
"body": "Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifac\n[…]\nr\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": true,
"headline": "ci: [github-actions] Bump actions/upload-artifact from 4 to 6 (#1000)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-06T03:08:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bd9b3a949f95c0a34167fa73870357c260c3d286",
"body": "Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 4 to 5.\n- [Release notes](https://github.com/actions/setup-dotnet/releases)\n- [Commits](https://github.com/actions/setup-dotnet/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-dotnet\n dependency-\n[…]\nr\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": true,
"headline": "[github-actions] Bump actions/setup-dotnet from 4 to 5 (#999)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-06T03:07:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "94fc335571294aa5c7d135a40c8de6ecda5a6f10",
"body": "* ci: run custom commands as android\n\n* do not use \\ for android execution",
"is_bot": false,
"headline": "ci: run custom commands as android (#995)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2026-01-06T02:45:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d3d957d704b795dc7789fbb10c672e32985f9270",
"body": "---\nupdated-dependencies:\n- dependency-name: NUnit\n dependency-version: 4.4.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Dor Blayzer <59066376+Dor-bl@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": true,
"headline": "test: Bump NUnit from 4.3.2 to 4.4.0 (#975)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-05T06:04:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9efe516bf8ad494648e5132ab425370cd851a453",
"body": "* ci: rename yml file\n\n* ci: add for ios\n\n* fix ios version\n\n* add options to launch simulator\n\n* use prebuilt wda\n\n* use 32 instead\n\n* add skip for unstable test case\n\n* use old iphone os\n\n* use lts/*",
"is_bot": false,
"headline": "ci: add func test for ios (#994)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2026-01-05T02:17:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "edd968d25087b4c880af752fd987ee9777705f50",
"body": "* ci: add functional-test\n\n* modify the order\n\n* run one line\n\n* skip failed tests on CI for now\n\n* fix a couple of errors\n\n* add espresso driver and relaxed-security\n\n* add wait for\n\n* format\n\n* skip some tests\n\n* skip tests more because of slow CI\n\n* add log\n\n* modify a bit\n\n* keep old logs\n\n* add enforceAppInstall to run espresso properly\n\n* add skip",
"is_bot": false,
"headline": "ci: add functional-test for android (#993)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2026-01-04T06:12:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a38b863e375437e8cfbc9f545e6d9c966046fa31",
"body": null,
"is_bot": false,
"headline": "fix: remove iosWebviewApp from app sources and constants (#992)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2026-01-01T20:25:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01b2749bc75388b4b789b601628ed92a0274a82b",
"body": "…A (#991)",
"is_bot": false,
"headline": "fix: Fix ParseCapabilitiesIfUNIX for macOS/Linux and convert CI to GH…",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2026-01-01T20:21:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cf9bb938611fc1515c16727d7dc4b8c479979123",
"body": "* feat: implement StartActivity method for Android activities\n\n* feat: validate intent parameter in activity launch method\n\n* feat: simplify CurrentActivityTest by using StartActivity method directly\n\n* feat: add optional arguments parameter to StartActivity method for enhanced flexibility\n\n* feat: add StartActivityWithDictionaryTest to validate activity launch with arguments\n\n---------\n\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": false,
"headline": "feat: implement StartActivity method for Android activities (#986)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2025-12-31T18:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6f94f2fdf7cbd9cf7bf336d6130b3acff39713b1",
"body": "…(#987)\n\n* download test app instead of getting them from local\n\n* add package reference\n\n* remove no reference apps\n\n* chore: update tests\n\n* remove no longer used app\n\n* add error handling\n\n* fix CancelationToken usage with .net 4.8\n\n* remove no reference apks",
"is_bot": false,
"headline": "test: download test apps from our repos and remove removal test apps …",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2025-12-31T17:59:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71447da0f0671ad0daa0df2bf6f0187bdeb7162d",
"body": "* fix: Rename LaunchTimeout capability to wdaLaunchTimeout",
"is_bot": false,
"headline": "fix: capability name behind LaunchTimeout for xcuitest (#989)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2025-12-31T17:58:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d60d3388dc1f16d8cef6ec61ec6183234eb5907",
"body": "* feat: implement AppiumElementCacheTest with caching behavior for tag names\n\n* refactor: simplify capability retrieval in AppiumElementCacheTest\n\n* test: add TestableAppiumElement class for unit testing caching behavior",
"is_bot": false,
"headline": "test: add AppiumElementCacheTest (#985)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2025-12-27T09:13:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f567f28fe42f4966d55bf755451772132bb92eb4",
"body": null,
"is_bot": false,
"headline": "Fix compatibility matrix in readme (#978)",
"author_name": "Nikolay Borisenko",
"author_login": "nvborisenko",
"committed_at": "2025-12-14T21:44:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5657846aa3b6a6c0e8939ee01ee63b5767ba0da1",
"body": "* feat: add InstallApp method for Android and iOS, including tests for installation scenarios\n\n* fix: improve error handling in Dispose method of InstallAppTest\n\n* fix: remove unused AppiumOptions instantiation in InstallAppTest\n\n* fix: correct typo in region name from 'Device Kesys' to 'Device Keys'\n\n* fix: update documentation link for mobile: installApp in AndroidCommandExecutionHelper",
"is_bot": false,
"headline": "feat: add InstallApp method for Android and iOS (#974)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2025-11-25T19:57:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6f16c474f35b0d7c52229a263aa8d4ca3c6d7488",
"body": "* feat: Implement logcat message broadcasting via WebSocket in AndroidDriver\n\n* test: Add integration tests for logcat message broadcasting in AndroidDriver\n\n* test: Enhance logcat broadcast error handling in LogcatBroadcastTests\n\n* test: Add LogcatBroadcastTests for logcat message broadcasting func\n[…]\naddress\n\n* fix: Enhance WebDriverException message with timestamp for WebSocket connection failures\n\n* fix: Update host variable in CanStartLogcatBroadcastWithCustomHost test to use a fixed IP address",
"is_bot": false,
"headline": "feat: Add WebSocket-based log broadcast support for Android (#969)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2025-11-25T19:53:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a777b426ab8faf5594c9a6a30eb6933f07c105b6",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v5...v6)\n\n---\nupdated-dependenc\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "[github-actions] Bump actions/checkout from 5 to 6 (#976)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-11-25T16:01:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e94fbe3fa3e499c766ae5d8aeb0b32985fee702f",
"body": "… and Selenium Binding 4.36.0 (#973)",
"is_bot": false,
"headline": "docs: update compatibility matrix to include Appium .NET Client 8.0.1…",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2025-11-18T03:50:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fdc94cbec512860f0371963a39a3954128c12a14",
"body": "Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 4 to 5.\n- [Release notes](https://github.com/actions/setup-dotnet/releases)\n- [Commits](https://github.com/actions/setup-dotnet/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-dotnet\n dependency-\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "[github-actions] Bump actions/setup-dotnet from 4 to 5 (#962)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-11-15T21:28:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "52d62029f0a9dac0c8cacb9d69f2a01bc8a3fe2a",
"body": "* Reuse an Selenium ICustomDriverCommandExecutor in Appium dotnet client with custom commands\n\nImplement #567.\nNow Appium dotnet has an interface ICustomDriverCommandExecutor for registering/executing custom commands.\nAppiumDriver implements this interface, reusing Selenium’s extensibility.\nUsers ca\n[…]\nored-by: Copilot <175728472+Copilot@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": false,
"headline": "feat: Custom commands execution with ICustomDriverCommandExecutor (#965)",
"author_name": "Alena T. (Vasilionak)",
"author_login": "seriousQA",
"committed_at": "2025-10-18T10:36:59Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b3ebc07b50a63a5a06b3a0bf77f84d2609775747",
"body": "---\nupdated-dependencies:\n- dependency-name: Selenium.WebDriver\n dependency-version: 4.36.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump Selenium.WebDriver from 4.35.0 to 4.36.0 (#964)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-10-07T02:31:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "07c4d7b9d798bc68c7e8738bd355a71fd6b933c0",
"body": "* test: add bidi test\n\n* use newer webdriver deps\n\n* simplify the test code\n\n* Update Appium.Net.csproj\n\n* add redundant spaces to reduce diff\n\n* Use newer selenium webdriver\n\n* Use Task.Delay\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\n\n* Use ?\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\n\n* Update BiDiTests.cs\n\n* add try/catch to ignore exceptions here\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "chore: add bidi test with newser selenium webdriver dependency (#955)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2025-08-27T23:09:29Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4e7ac27ef11898463fa1822b5bf73204b2e06796",
"body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.NET.Test.Sdk\n dependency-version: 17.14.1\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: Bump Microsoft.NET.Test.Sdk from 17.13.0 to 17.14.1 (#956)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-08-19T08:07:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3aec6af44601cd6ea5474b2b9022ccf5987e4fe3",
"body": "…eAssemblies (#930)\n\nBumps [NUnit.Analyzers](https://github.com/nunit/nunit.analyzers) and [Microsoft.NETFramework.ReferenceAssemblies](https://github.com/Microsoft/dotnet). These dependencies needed to be updated together.\n\nUpdates `NUnit.Analyzers` from 4.6.0 to 4.7.0\n- [Release notes](https://git\n[…]\nirect:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "build(deps): bump NUnit.Analyzers and Microsoft.NETFramework.Referenc…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-08-17T00:17:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b9dee8be1182283710a58e0578bbe691529dc1e3",
"body": "Bumps [Selenium.WebDriver](https://github.com/SeleniumHQ/selenium) from 4.29.0 to 4.32.0.\n- [Release notes](https://github.com/SeleniumHQ/selenium/releases)\n- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.29.0...selenium-4.32.0)\n\n---\nupdated-dependencies:\n- dependency-name: Sel\n[…]\nr\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": true,
"headline": "build(deps): bump Selenium.WebDriver in /src/Appium.Net (#940)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-08-15T13:54:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "439f9901c01a4d6c680fc91ffb09257e1a3f5b10",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v4...v5)\n\n---\nupdated-dependenc\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "[github-actions] bump actions/checkout from 4 to 5 (#954)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-08-12T10:58:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c0b4fb14c38bdfbd3545f820bb1cd7e2887c9bec",
"body": "* XML comments fixes\n\nInspired by appium#733.\n\n* Update src/Appium.Net/Appium/iOS/IOSStartScreenRecordingOptions.cs\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\n\n* Update src/Appium.Net/Appium/ScreenOrientationExtensions.cs\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "chore: XML comments fixes (#951)",
"author_name": "Alena T. (Vasilionak)",
"author_login": "seriousQA",
"committed_at": "2025-08-03T14:49:37Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "28415f8378acd86cf59c6bd5b12a6435d1d997a6",
"body": "* XML comments fixes\n\nIn AppiumCommandExecutionHelper.cs\nInspired by #733.\n\n* Improve XML documentation for clipboard interface\n\nUpdated parameter descriptions in IHasClipboard interface methods to provide clearer information about expected arguments. Also enabled nullable context in AndroidDriver for improved code safety.\n\n* Update IHasClipboard.cs\n\n---------\n\nCo-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>",
"is_bot": false,
"headline": "chore: Fix XML comments in AppiumCommandExecutionHelper.cs (#950)",
"author_name": "Alena T. (Vasilionak)",
"author_login": "seriousQA",
"committed_at": "2025-07-28T21:27:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d7e6af76f0a821941f9f4ae0773b4d9e43319450",
"body": "* feat: use mobile:background\n\n* pdate clipboard stuff\n\n* simplify a bit\n\n* turn\n\n* query app state\n\n* add /se\n\n* update for device time\n\n* update for system bar\n\n* device density command\n\n* gps\n\n* replace android smulator stuff\n\n* activities\n\n* pressKeys\n\n* long press\n\n* keyboards\n\n* touch id etc\n\n\n[…]\ns.noreply.github.com>\n\n* update readme\n\n* modify the readme format\n\n* add xml doc\n\n* extract to private methods for press key code stuff\n\n* fix table format\n\n* add xml doc\n\n* update readme\n\n* fix typo",
"is_bot": false,
"headline": "BREAKING CHANGE: use extension commands for deprecated endpoints (#939)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2025-05-28T16:01:19Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "47224dcb29aae00fb6f3a166b784943e054fbacb",
"body": "* chore: add todo comments in AppiumCommand.cs for future reference\n\n* update todo for win",
"is_bot": false,
"headline": "chore: add todo comments in AppiumCommand.cs for future reference (#938)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2025-05-04T07:16:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3674f95b451b7b6de1952d683698c7e95d2f4423",
"body": "* Add RelaxSslValidation property and IsModified method\n\nAdded a new property `RelaxSslValidation` to the `AppiumClientConfig` class to allow users to specify whether SSL validation should be relaxed. Introduced a new method `IsModified` that checks if the current configuration has been modified fro\n[…]\nsion-specific tests\n\n* Directly setting callback when enabling the relax SSL Validation.\n\n* Consolidate cleanup logic in RelaxSslValidationTest\n\n* Simplify exception handling in RelaxSslValidationTest",
"is_bot": false,
"headline": "feat: Add support for Relax SSL validation (#922)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2025-03-16T21:56:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "05e24048ff2d9f585bc1d229844ddadbec11d26a",
"body": "* Add AppiumClientConfigTest to pipeline\n\n* Change unit tests from .NET 6 to .NET 8",
"is_bot": false,
"headline": "ci: Fix .NET Core run and add AppiumClientConfigTest to pipeline (#923)",
"author_name": "Dor Blayzer",
"author_login": "Dor-bl",
"committed_at": "2025-03-16T21:19:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2b7f116481182838f12e8092d32709bc3cb7f298",
"body": "Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest).\n\nUpdates `Microsoft.NET.Test.Sdk` from 17.12.0 to 17.13.0\n- [Release notes](https://github.com/microsoft/vstest/releases)\n- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)\n- [Commits](https://github.com/\n[…]\nirect:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "build(deps): bump Microsoft.NET.Test.Sdk from 17.12.0 to 17.13.0(#903)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-03-15T21:48:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e3d55d0aa0e85886e791edab8c8de915d1b5b8dd",
"body": "* fix: ToLower/ToUpper to ToLowerInvariant/ToUpperInvariant\n\n* keep extra spaces\n\n* remove automatic new line by GH\n\n* remove new line by GitHub editor\n\n* keep extra tab\n\n* keep extra space\n\n* keep extra spaces/tabs more\n\n* last extra space",
"is_bot": false,
"headline": "fix: ToLower/ToUpper to ToLowerInvariant/ToUpperInvariant (#921)",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2025-03-13T23:04:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12647aacc97547583cb8f134131bb24bb7aa9120",
"body": "…920)\n\n* fix: use ToUpper in clipboard\n\n* Update AppiumCommandExecutionHelper.cs",
"is_bot": false,
"headline": "fix: use ToLowerInvariant in clipboard to follow invariant culture (#…",
"author_name": "Kazuaki Matsuo",
"author_login": "KazuCocoa",
"committed_at": "2025-03-13T23:04:11Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 48,
"commits_last_year": 93,
"latest_release_at": "2026-07-18T20:25:53Z",
"latest_release_tag": "v8.3.2",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 27,
"days_since_latest_release": 8,
"mean_days_between_releases": 63.1
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 100,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "Appium.WebDriver",
"exists": true,
"license": null,
"keywords": [
"Appium",
"Webdriver",
"device",
"automation"
],
"ecosystem": "nuget",
"matches_repo": null,
"registry_url": "https://www.nuget.org/packages/Appium.WebDriver",
"is_deprecated": false,
"latest_version": "8.3.2",
"repository_url": null,
"versions_count": 45,
"total_downloads": 27811387,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-18T20:27:44.550000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 8
}
]
},
"popularity": {
"forks": 185,
"stars": 399,
"watchers": 45,
"fork_history": {
"days": [
{
"date": "2014-04-27",
"count": 1
},
{
"date": "2014-09-08",
"count": 1
},
{
"date": "2014-09-23",
"count": 1
},
{
"date": "2014-09-24",
"count": 1
},
{
"date": "2014-10-13",
"count": 1
},
{
"date": "2014-10-14",
"count": 1
},
{
"date": "2014-11-03",
"count": 1
},
{
"date": "2015-02-04",
"count": 1
},
{
"date": "2015-04-01",
"count": 1
},
{
"date": "2015-04-13",
"count": 1
},
{
"date": "2015-05-06",
"count": 1
},
{
"date": "2015-05-14",
"count": 1
},
{
"date": "2015-06-17",
"count": 1
},
{
"date": "2015-06-18",
"count": 1
},
{
"date": "2015-06-22",
"count": 1
},
{
"date": "2015-06-29",
"count": 2
},
{
"date": "2015-07-02",
"count": 1
},
{
"date": "2015-07-18",
"count": 1
},
{
"date": "2015-08-26",
"count": 1
},
{
"date": "2015-09-26",
"count": 1
},
{
"date": "2015-10-20",
"count": 1
},
{
"date": "2015-10-21",
"count": 1
},
{
"date": "2015-10-26",
"count": 1
},
{
"date": "2015-11-17",
"count": 1
},
{
"date": "2015-12-16",
"count": 1
},
{
"date": "2015-12-21",
"count": 1
},
{
"date": "2016-01-13",
"count": 1
},
{
"date": "2016-04-06",
"count": 1
},
{
"date": "2016-04-08",
"count": 1
},
{
"date": "2016-04-14",
"count": 1
},
{
"date": "2016-06-30",
"count": 2
},
{
"date": "2016-07-05",
"count": 1
},
{
"date": "2016-07-10",
"count": 1
},
{
"date": "2016-07-25",
"count": 1
},
{
"date": "2016-09-06",
"count": 1
},
{
"date": "2016-09-20",
"count": 1
},
{
"date": "2016-09-29",
"count": 1
},
{
"date": "2016-11-20",
"count": 1
},
{
"date": "2017-01-06",
"count": 1
},
{
"date": "2017-01-23",
"count": 1
},
{
"date": "2017-02-03",
"count": 1
},
{
"date": "2017-04-17",
"count": 2
},
{
"date": "2017-05-22",
"count": 1
},
{
"date": "2017-06-17",
"count": 1
},
{
"date": "2017-07-07",
"count": 2
},
{
"date": "2017-07-10",
"count": 1
},
{
"date": "2017-07-28",
"count": 1
},
{
"date": "2017-09-01",
"count": 1
},
{
"date": "2017-09-06",
"count": 1
},
{
"date": "2017-09-20",
"count": 1
},
{
"date": "2017-10-05",
"count": 1
},
{
"date": "2017-10-16",
"count": 1
},
{
"date": "2017-10-20",
"count": 1
},
{
"date": "2017-10-24",
"count": 1
},
{
"date": "2017-11-20",
"count": 1
},
{
"date": "2017-12-09",
"count": 1
},
{
"date": "2017-12-31",
"count": 1
},
{
"date": "2018-01-03",
"count": 1
},
{
"date": "2018-01-25",
"count": 1
},
{
"date": "2018-02-20",
"count": 1
},
{
"date": "2018-02-23",
"count": 1
},
{
"date": "2018-03-13",
"count": 1
},
{
"date": "2018-03-22",
"count": 1
},
{
"date": "2018-03-23",
"count": 1
},
{
"date": "2018-03-30",
"count": 1
},
{
"date": "2018-04-04",
"count": 1
},
{
"date": "2018-04-12",
"count": 1
},
{
"date": "2018-04-24",
"count": 2
},
{
"date": "2018-06-26",
"count": 1
},
{
"date": "2018-08-05",
"count": 1
},
{
"date": "2018-08-06",
"count": 1
},
{
"date": "2018-08-10",
"count": 1
},
{
"date": "2018-08-23",
"count": 1
},
{
"date": "2018-09-12",
"count": 1
},
{
"date": "2018-09-20",
"count": 1
},
{
"date": "2018-10-13",
"count": 1
},
{
"date": "2018-10-18",
"count": 1
},
{
"date": "2018-10-21",
"count": 1
},
{
"date": "2018-10-23",
"count": 1
},
{
"date": "2018-10-27",
"count": 1
},
{
"date": "2018-11-18",
"count": 1
},
{
"date": "2018-11-19",
"count": 1
},
{
"date": "2018-11-27",
"count": 1
},
{
"date": "2018-12-04",
"count": 1
},
{
"date": "2018-12-18",
"count": 1
},
{
"date": "2019-01-18",
"count": 1
},
{
"date": "2019-01-28",
"count": 1
},
{
"date": "2019-02-26",
"count": 1
},
{
"date": "2019-03-07",
"count": 1
},
{
"date": "2019-03-11",
"count": 1
},
{
"date": "2019-04-18",
"count": 1
},
{
"date": "2019-04-20",
"count": 1
},
{
"date": "2019-06-04",
"count": 1
},
{
"date": "2019-06-14",
"count": 1
},
{
"date": "2019-08-23",
"count": 1
},
{
"date": "2019-09-02",
"count": 1
},
{
"date": "2019-09-03",
"count": 1
},
{
"date": "2019-09-06",
"count": 1
},
{
"date": "2019-09-12",
"count": 1
},
{
"date": "2019-10-28",
"count": 1
},
{
"date": "2019-11-04",
"count": 1
},
{
"date": "2019-11-07",
"count": 1
},
{
"date": "2019-12-02",
"count": 1
},
{
"date": "2019-12-06",
"count": 1
},
{
"date": "2020-01-09",
"count": 1
},
{
"date": "2020-01-16",
"count": 1
},
{
"date": "2020-02-26",
"count": 1
},
{
"date": "2020-03-22",
"count": 1
},
{
"date": "2020-03-27",
"count": 1
},
{
"date": "2020-07-16",
"count": 1
},
{
"date": "2020-07-31",
"count": 1
},
{
"date": "2020-08-07",
"count": 1
},
{
"date": "2020-08-17",
"count": 1
},
{
"date": "2020-08-31",
"count": 1
},
{
"date": "2020-09-04",
"count": 1
},
{
"date": "2020-10-30",
"count": 1
},
{
"date": "2020-11-20",
"count": 1
},
{
"date": "2020-12-19",
"count": 1
},
{
"date": "2020-12-21",
"count": 1
},
{
"date": "2021-01-08",
"count": 1
},
{
"date": "2021-01-14",
"count": 1
},
{
"date": "2021-01-27",
"count": 1
},
{
"date": "2021-04-20",
"count": 1
},
{
"date": "2021-07-02",
"count": 1
},
{
"date": "2021-07-04",
"count": 1
},
{
"date": "2021-07-10",
"count": 1
},
{
"date": "2021-09-10",
"count": 1
},
{
"date": "2021-09-13",
"count": 2
},
{
"date": "2021-11-08",
"count": 1
},
{
"date": "2021-12-20",
"count": 1
},
{
"date": "2022-01-21",
"count": 1
},
{
"date": "2022-01-22",
"count": 1
},
{
"date": "2022-03-01",
"count": 1
},
{
"date": "2022-03-16",
"count": 1
},
{
"date": "2022-03-26",
"count": 1
},
{
"date": "2022-04-14",
"count": 1
},
{
"date": "2022-05-04",
"count": 1
},
{
"date": "2022-06-01",
"count": 1
},
{
"date": "2022-06-21",
"count": 1
},
{
"date": "2022-07-01",
"count": 1
},
{
"date": "2022-07-18",
"count": 1
},
{
"date": "2022-07-29",
"count": 1
},
{
"date": "2022-08-28",
"count": 1
},
{
"date": "2022-09-14",
"count": 1
},
{
"date": "2022-11-09",
"count": 1
},
{
"date": "2023-01-08",
"count": 1
},
{
"date": "2023-01-12",
"count": 1
},
{
"date": "2023-01-14",
"count": 1
},
{
"date": "2023-02-09",
"count": 1
},
{
"date": "2023-02-23",
"count": 1
},
{
"date": "2023-03-26",
"count": 1
},
{
"date": "2023-06-20",
"count": 1
},
{
"date": "2023-07-02",
"count": 1
},
{
"date": "2023-10-12",
"count": 1
},
{
"date": "2024-02-09",
"count": 1
},
{
"date": "2024-02-14",
"count": 1
},
{
"date": "2024-02-29",
"count": 1
},
{
"date": "2024-06-04",
"count": 1
},
{
"date": "2024-06-16",
"count": 1
},
{
"date": "2024-06-20",
"count": 1
},
{
"date": "2024-07-02",
"count": 1
},
{
"date": "2024-07-25",
"count": 1
},
{
"date": "2024-10-06",
"count": 1
},
{
"date": "2024-10-17",
"count": 1
},
{
"date": "2024-11-28",
"count": 1
},
{
"date": "2025-07-20",
"count": 1
},
{
"date": "2026-07-26",
"count": 1
}
],
"complete": true,
"collected": 173,
"total_forks": 185
},
"star_history": null,
"open_issues_and_prs": 10
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"src/Appium.Net/Appium.Net.csproj",
"test/integration/Appium.Net.Integration.Tests.csproj"
],
"largest_source_bytes": 66751,
"source_files_sampled": 208,
"oversized_source_files": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "Newtonsoft.Json",
"direct": false,
"version": "10.0.3",
"severity": "high",
"ecosystem": "nuget",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-5crp-9r3c-p9vr"
],
"fixed_version": "13.0.1",
"advisory_count": 1,
"oldest_advisory_days": 1495
},
{
"name": "Newtonsoft.Json",
"direct": false,
"version": "11.0.2",
"severity": "high",
"ecosystem": "nuget",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-5crp-9r3c-p9vr"
],
"fixed_version": "13.0.1",
"advisory_count": 1,
"oldest_advisory_days": 1495
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 2
},
"advisory_count": 2,
"affected_count": 2,
"assessed_count": 29,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [],
"dependencies": [
{
"name": "Microsoft.SourceLink.GitHub",
"manifest": "src/Appium.Net/Appium.Net.csproj",
"ecosystem": "nuget",
"version_constraint": "10.0.301"
},
{
"name": "Selenium.WebDriver",
"manifest": "src/Appium.Net/Appium.Net.csproj",
"ecosystem": "nuget",
"version_constraint": "4.46.0"
},
{
"name": "System.Drawing.Common",
"manifest": "src/Appium.Net/Appium.Net.csproj",
"ecosystem": "nuget",
"version_constraint": "10.0.9"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "Microsoft.SourceLink.GitHub",
"direct": true,
"version": "10.0.301",
"ecosystem": "nuget"
},
{
"name": "Selenium.WebDriver",
"direct": true,
"version": "3.13.0",
"ecosystem": "nuget"
},
{
"name": "Selenium.WebDriver",
"direct": true,
"version": "3.14.0",
"ecosystem": "nuget"
},
{
"name": "Selenium.WebDriver",
"direct": true,
"version": "3.8.0",
"ecosystem": "nuget"
},
{
"name": "Selenium.WebDriver",
"direct": true,
"version": "4.46.0",
"ecosystem": "nuget"
},
{
"name": "System.Drawing.Common",
"direct": true,
"version": "10.0.9",
"ecosystem": "nuget"
},
{
"name": "Castle.Core",
"direct": false,
"version": "4.2.1",
"ecosystem": "nuget"
},
{
"name": "Castle.Core",
"direct": false,
"version": "4.3.1",
"ecosystem": "nuget"
},
{
"name": "DotNetSeleniumExtras.PageObjects",
"direct": false,
"version": "3.11.0",
"ecosystem": "nuget"
},
{
"name": "Microsoft.CodeAnalysis.FxCopAnalyzers",
"direct": false,
"version": "2.6.2-beta2",
"ecosystem": "nuget"
},
{
"name": "Microsoft.CodeQuality.Analyzers",
"direct": false,
"version": "2.6.2-beta2",
"ecosystem": "nuget"
},
{
"name": "Microsoft.NET.Test.Sdk",
"direct": false,
"version": "15.9.0",
"ecosystem": "nuget"
},
{
"name": "Microsoft.NET.Test.Sdk",
"direct": false,
"version": "18.7.0",
"ecosystem": "nuget"
},
{
"name": "Microsoft.NetCore.Analyzers",
"direct": false,
"version": "2.6.2-beta2",
"ecosystem": "nuget"
},
{
"name": "Microsoft.NetFramework.Analyzers",
"direct": false,
"version": "2.6.2-beta2",
"ecosystem": "nuget"
},
{
"name": "Newtonsoft.Json",
"direct": false,
"version": "10.0.3",
"ecosystem": "nuget"
},
{
"name": "Newtonsoft.Json",
"direct": false,
"version": "11.0.2",
"ecosystem": "nuget"
},
{
"name": "NUnit",
"direct": false,
"version": "3.10.1",
"ecosystem": "nuget"
},
{
"name": "NUnit",
"direct": false,
"version": "3.11.0",
"ecosystem": "nuget"
},
{
"name": "NUnit",
"direct": false,
"version": "4.6.1",
"ecosystem": "nuget"
},
{
"name": "NUnit.Analyzers",
"direct": false,
"version": "4.14.0",
"ecosystem": "nuget"
},
{
"name": "NUnit3TestAdapter",
"direct": false,
"version": "3.11.0",
"ecosystem": "nuget"
},
{
"name": "NUnit3TestAdapter",
"direct": false,
"version": "6.2.0",
"ecosystem": "nuget"
},
{
"name": "Selenium.Support",
"direct": false,
"version": "3.13.0",
"ecosystem": "nuget"
},
{
"name": "Selenium.Support",
"direct": false,
"version": "3.14.0",
"ecosystem": "nuget"
},
{
"name": "Selenium.Support",
"direct": false,
"version": "3.8.0",
"ecosystem": "nuget"
},
{
"name": "System.Net.Http",
"direct": false,
"version": "4.3.4",
"ecosystem": "nuget"
},
{
"name": "System.Text.Json",
"direct": false,
"version": "10.0.10",
"ecosystem": "nuget"
},
{
"name": "Text.Analyzers",
"direct": false,
"version": "2.6.2-beta2",
"ecosystem": "nuget"
}
],
"collected": true,
"truncated": false,
"total_count": 29,
"direct_count": 6,
"indirect_count": 23
}
},
"maintainership": {
"issues": {
"open_prs": 3,
"merged_prs": 534,
"open_issues": 7,
"closed_ratio": 0.983,
"closed_issues": 400,
"closed_unmerged_prs": 136
},
"bus_factor": 2,
"bot_contributors": 3,
"top_contributors": [
{
"type": "User",
"login": "TikhomirovSergey",
"commits": 223,
"avatar_url": "https://avatars.githubusercontent.com/u/4927589?v=4"
},
{
"type": "User",
"login": "Dor-bl",
"commits": 212,
"avatar_url": "https://avatars.githubusercontent.com/u/59066376?v=4"
},
{
"type": "User",
"login": "Astro03",
"commits": 108,
"avatar_url": "https://avatars.githubusercontent.com/u/5010872?v=4"
},
{
"type": "User",
"login": "sebv",
"commits": 82,
"avatar_url": "https://avatars.githubusercontent.com/u/418288?v=4"
},
{
"type": "User",
"login": "laolubenson",
"commits": 81,
"avatar_url": "https://avatars.githubusercontent.com/u/14160265?v=4"
},
{
"type": "User",
"login": "KazuCocoa",
"commits": 19,
"avatar_url": "https://avatars.githubusercontent.com/u/5511591?v=4"
},
{
"type": "User",
"login": "TroyWalshProf",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/2066107?v=4"
},
{
"type": "User",
"login": "stoneman",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/741710?v=4"
},
{
"type": "User",
"login": "manoj9788",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/1823178?v=4"
},
{
"type": "User",
"login": "rajfidel",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/577594?v=4"
}
],
"contributors_sampled": 50,
"top_contributor_share": 0.267
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"functional-test.yml",
"main.yml",
"release-drafter.yml",
"release-nuget.yml",
"unit-test.yml",
"validate-release-drafter.yml"
],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 3,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 10,
"reason": "all changesets reviewed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 13 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "43f90016761502816c5c12b19ed24afa785a3693",
"ran_at": "2026-07-27T02:28:26Z",
"aggregate_score": 6.9,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-26T17:34:13Z",
"oldest_open_prs": [
{
"number": 1092,
"created_at": "2026-07-15T20:23:55Z",
"last_comment_at": "2026-07-17T07:20:24Z",
"last_comment_author": "Dor-bl"
},
{
"number": 1093,
"created_at": "2026-07-15T20:23:58Z",
"last_comment_at": "2026-07-17T07:20:23Z",
"last_comment_author": "Dor-bl"
},
{
"number": 1097,
"created_at": "2026-07-22T20:22:43Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-26T17:34:02Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 255,
"created_at": "2018-08-10T12:10:53Z",
"last_comment_at": "2023-04-28T12:42:03Z",
"last_comment_author": "Dor-bl"
},
{
"number": 944,
"created_at": "2025-06-24T20:04:35Z",
"last_comment_at": "2026-01-14T23:20:17Z",
"last_comment_author": "jrod567"
},
{
"number": 952,
"created_at": "2025-08-02T22:10:07Z",
"last_comment_at": "2026-03-27T09:44:30Z",
"last_comment_author": "nvborisenko"
},
{
"number": 981,
"created_at": "2025-12-15T06:06:21Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1032,
"created_at": "2026-03-27T13:35:28Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1058,
"created_at": "2026-05-31T21:28:52Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1066,
"created_at": "2026-06-18T14:32:30Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/appium/dotnet-client",
"host": "github.com",
"name": "dotnet-client",
"owner": "appium"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": "High-Risk Jurisdiction Policy applies a 50% multiplier to weighted overall health and gives it an At risk ceiling of 49.",
"notes": [
{
"code": "jurisdiction_overall_adjustment",
"params": {
"cap": 49,
"pct": 50
}
}
],
"value": 37,
"inputs": {
"security": 47,
"vitality": 86,
"community": 84,
"governance": 82,
"engineering": 64,
"high_risk_jurisdiction_cap": 49,
"high_risk_jurisdiction_multiplier": 50,
"weighted_overall_before_jurisdiction": 74,
"overall_after_jurisdiction_multiplier": 37
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 86,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"commits_last_year": 93,
"human_commit_share": 0.59,
"days_since_last_push": 0,
"active_weeks_last_year": 27
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "27/52 weeks with commits",
"points": 18.7,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 27
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "93 commits in the last year",
"points": 17.7,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 93
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 92,
"inputs": {
"releases_count": 48,
"latest_release_tag": "v8.3.2",
"releases_from_tags": false,
"days_since_latest_release": 8,
"mean_days_between_releases": 63.1
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "48 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 48
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 8 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 8
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~63.1 days",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 63.1
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 0,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 0 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 0
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "good",
"name": "Community & Adoption",
"value": 84,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "good",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"forks": 185,
"stars": 399,
"watchers": 45,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "399 stars",
"points": 42.2,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 399
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "185 forks",
"points": 18.9,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 185
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "45 watchers",
"points": 9.1,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 45
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "excellent",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 97,
"inputs": {
"packages": [
"Appium.WebDriver"
],
"dependents": null,
"ecosystems": "nuget",
"total_downloads": 27811387,
"monthly_downloads": null
},
"components": [
{
"key": "total_downloads",
"name": "Total downloads",
"detail": "27,811,387 downloads all-time across nuget",
"points": 77.4,
"status": "partial",
"details": [
{
"code": "downloads_total",
"params": {
"count": 27811387,
"ecosystems": "nuget"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "good",
"name": "Sustainability & Governance",
"value": 82,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 50,
"top_contributor_share": 0.267
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 27% of commits",
"points": 16.5,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 27
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "50 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 50
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 13 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"merged_prs": 534,
"open_issues": 7,
"closed_issues": 400,
"issue_closed_ratio": 0.983,
"closed_unmerged_prs": 136
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "98% of issues closed",
"points": 46,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 98
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "534/670 decided PRs merged",
"points": 30.5,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 534,
"decided": 670
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "all changesets reviewed",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"followers": 1305,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "appium",
"public_repos": 111,
"account_age_days": 4947
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "1,305 followers of appium",
"points": 22.4,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 1305,
"login": "appium"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "111 public repos, account ~13 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 111
}
},
{
"code": "account_age_years",
"params": {
"years": 13
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"Appium.WebDriver"
],
"ecosystems": "nuget",
"any_deprecated": false,
"min_days_since_publish": 8
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on nuget",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "nuget"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 8 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 8
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "45 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 45
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 64,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 74,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "6 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 6
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": false,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 47,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized. High-Risk Jurisdiction Policy applies a 50% multiplier to Security posture and gives it an At risk ceiling of 49.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "jurisdiction_posture_adjustment",
"params": {
"cap": 49,
"pct": 50
}
}
],
"value": 34,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 6.9,
"high_risk_jurisdiction_cap": 49,
"high_risk_jurisdiction_multiplier": 50,
"security_posture_after_multiplier": 34,
"security_posture_before_jurisdiction": 69
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "all changesets reviewed",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 13 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 29 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories",
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 29
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 2,
"affected_packages": 2,
"assessed_packages": 29,
"unassessed_packages": 0,
"affected_by_severity": "high 2",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 29,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "moderate",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 50,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": true,
"exposures": [
{
"role": "top_contributor",
"count": 1,
"country": "Russia"
}
],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 17
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "Russia: top_contributor (1)",
"points": 50,
"status": "partial",
"details": [
{
"code": "jurisdiction_exposure",
"params": {
"role": "top_contributor",
"count": 1,
"country": "Russia"
}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 62,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "59 of 59 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 59,
"sampled": 59
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 64,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.18,
"toolchain_manifests": [
"src/Appium.Net/Appium.Net.csproj",
"test/integration/Appium.Net.Integration.Tests.csproj"
],
"dependency_bot_commit_share": 0.41
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "src/Appium.Net/Appium.Net.csproj, test/integration/Appium.Net.Integration.Tests.csproj (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "src/Appium.Net/Appium.Net.csproj, test/integration/Appium.Net.Integration.Tests.csproj"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "C# (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C#"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "18 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 18,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "41 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 41,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "C#",
"largest_source_bytes": 66751,
"source_files_sampled": 208,
"oversized_source_files": 1
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "C# (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C#"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "1/208 source files over 60KB",
"points": 54.7,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 208,
"oversized": 1
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-27T02:29:02.037576Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/appium/dotnet-client.svg",
"full_name": "appium/dotnet-client",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}