Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 6169,
"has_wiki": false,
"homepage": "http://rnrepo.org/",
"languages": {
"CSS": 245,
"Ruby": 38224,
"Astro": 91994,
"Kotlin": 97031,
"PLpgSQL": 4659,
"JavaScript": 2146,
"TypeScript": 182923
},
"pushed_at": "2026-07-21T10:58:17Z",
"created_at": "2025-06-06T14:38:35Z",
"owner_type": "Organization",
"updated_at": "2026-07-21T12:45:11Z",
"description": "A Repository for React Native Pre-Built Artifacts",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": null,
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript",
"Kotlin",
"Astro"
]
},
"owner": {
"blog": "https://swmansion.com",
"name": "Software Mansion",
"type": "Organization",
"login": "software-mansion",
"company": null,
"location": "Kraków, Poland",
"followers": 1604,
"avatar_url": "https://avatars.githubusercontent.com/u/56880679?v=4",
"created_at": "2019-10-22T13:58:01Z",
"is_verified": null,
"public_repos": 59,
"account_age_days": 2464
},
"license": {
"state": "absent",
"spdx_id": null,
"raw_spdx": null,
"file_present": false,
"scorecard_found": false,
"profile_has_license": false
},
"activity": {
"releases": [],
"recent_commits": [
{
"oid": "d4af2edf88e5932f53d8ad4f64db5386dbe1091d",
"body": "## 📝 Description\n\nDue to failing jobs:\n-\nhttps://github.com/software-mansion/rnrepo/actions/runs/29537171571/job/87751132245",
"is_bot": false,
"headline": "update npm version to 24 (#417)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-17T09:00:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a8f8bb5382672a69457bdf43fed30ff1f72350a",
"body": "## 📝 Description\n\n- @rnrepo/build-tools@0.2.1\n- @rnrepo/expo-config-plugin@0.3.5\n\n> Note changelog for @rn/bt will be added after merging entry from #415",
"is_bot": false,
"headline": "release 0.2.1 and 0.3.5 (#416)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-16T21:44:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c241fa195e88836c08d5b32f8fe7be69eb84ca76",
"body": "## 📝 Description\n\nnew reanimated versions, remove unnecessary patch version in\nlibraries.json\n\n-\nhttps://docs.swmansion.com/react-native-worklets/docs/guides/compatibility\n-\nhttps://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility/\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Update reanimated and worklets compatibility (#414)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-16T21:40:22Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "78649d112259cb9d9d60fd4056a5319c98590e3a",
"body": "## 📝 Description\n\nIt was set as found after first try, not after a successful try",
"is_bot": false,
"headline": "Set RN version as found only when it was found (#415)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-16T21:38:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f597517072a2a8c4fedd44d32183a9e1c71ef872",
"body": "## 📝 Description\n\nFixes #412",
"is_bot": false,
"headline": "Update fingerprint pattern in docs (#413)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-15T09:21:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e0bb28c17eb18800b950cb68c1fb6e762772b12",
"body": "## 📝 Description\n\navoid failures like:\n```\nShellError: Failed with exit code 1\n exitCode: 1,\n stdout: \"\",\n stderr: \"npm error code ETARGET\\nnpm error notarget No matching version found for react-native-worklets@0.10.2 with a date before 7/5/2026, 12:20:15 PM.\\nnpm error notarget In most cases yo\n[…]\ngs/2026-07-09T12_20_15_394Z-debug-0.log\\n\",\n```\n> rnworklets were released 12h ago, so 4days-min-age failed\n\nsource:\nhttps://github.com/software-mansion/rnrepo/actions/runs/29012220481/job/86098364112",
"is_bot": false,
"headline": "dont schedule libs newer than min-release-age (#410)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-10T10:09:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8ce37a77a76f6a92e4f1b09d296f3793e33d9445",
"body": "## 📝 Description\n\nChange image source to local file in README - updated image in #403",
"is_bot": false,
"headline": "Change image source to local file in README (#411)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-10T09:30:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e9cac889292360cf92a0ad39b02d9a3cf944cd2c",
"body": "## 📝 Description\n\nThis reverts commit 4bf26c483f99bcdf9279c28a0ca0f9632f2a3c9d.\n\nreverts #405\n\nversions used from:\nhttps://www.npmjs.com/package/react-native-screens#:~:text=x%20branch.-,Support%20for%20Fabric,-Fabric%20is%20React",
"is_bot": false,
"headline": "Revert \"disable building screens until merging the fix (#405)\" (#407)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-09T11:52:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "868b9e09e3fd367c75387c4313e8df33fcc6069b",
"body": "## 📝 Description\n\ncircular dependency in android with `evaluationDependsOn(':app')` also\nremoving the artifacts\n\nFixes #408",
"is_bot": false,
"headline": "remove @notifee/react-native (#409)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-09T10:35:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4bf26c483f99bcdf9279c28a0ca0f9632f2a3c9d",
"body": "## 📝 Description\n\n- issue in https://github.com/software-mansion/rnrepo/issues/376\n- Fix in\nhttps://github.com/software-mansion/react-native-screens/pull/4224\n\nRevert of this commit in\nhttps://github.com/software-mansion/rnrepo/pull/406",
"is_bot": false,
"headline": "disable building screens until merging the fix (#405)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-06T13:41:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dfab364117d16dfbf9f90f783dfe5146a24ffbd9",
"body": "## 📝 Description\n\nremove beta label from readme png",
"is_bot": false,
"headline": "remove beta label from readme png (#403)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-06T13:41:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01adc86bfbcb631f100ea53bca778b399d5dd9fe",
"body": "## 📝 Description\n\nremove rn <0.81 since codegen builds will fail for those\n\n## 🧪 Testing\n\npatch is successfully applied for all react-native@>=0.81 versions.\n```\n PATCH COMPATIBILITY RESULTS\nRN VERSION RESULT\n──────────────────────────────────\n0.77.3 ✗ patch mismatch\n0.78.3 ✗ patch \n[…]\natch\n0.81.0 ✓\n0.81.1 ✓\n0.81.4 ✓\n0.81.5 ✓\n0.81.6 ✓\n0.82.0 ✓\n0.82.1 ✓\n0.83.0 ✓\n0.83.1 ✓\n0.83.2 ✓\n0.83.4 ✓\n0.84.0 ✓\n```",
"is_bot": false,
"headline": "remove non-codegen RN versions: <0.81 (#402)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-06T13:41:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cb7dee19b9ce3ccd0204e68ca7c504227f9d38b2",
"body": "## 📝 Description\n\nMinor to 0.2.0 since this introduces the codegen usage for android\npackages\n- @rnrepo/expo-config-plugin@0.3.4\n- @rnrepo/build-tools@0.2.0",
"is_bot": false,
"headline": "bump versions before release (#400)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-03T13:46:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f0ca2174b9616a02a19de29427e02cbec95a7a3",
"body": "## 📝 Description\n\nWhen 2 labels were added at same time ci ignored one of them because of\nonly last even was processed so only one platform was launched.\n```\n... contains(fromJSON('[\"build-ios\", \"build-expo\"]'), github.event.label.name)). \n \n[…]\ngithub.event.label.name` was kept in checker job to avoid triggering\nbuilds when other label is added, like \"bug\" etc\n\nLogic stays the same and changes are only for pr checks for dev, not\nuser-facing.",
"is_bot": false,
"headline": "fix ci example builds when 2 labels are added at the same time (#401)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-03T12:44:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c141d21b1cfa6e6b25518804417ecb7e0ca5a942",
"body": "## 📝 Description\n\n~~180 builds will be scheduled~~\n\nWAIT UNTIL RNAA migrate to worklets stable api to schedule the builds\nI have released one version to maven with request of specific\nRN+RNWorklets+RNAA so i want to keep the plugins compatible with that\nversion\n\nchanges:\n- integration with worklets \n[…]\n\n\n- tested app on ios/android and worked with \n - rn@0.85.3\n - rnaa@0.12.2\n - with expo@56\n - worklets@0.9.1 (from sources) and from prebuild\n - examples from docs (with worklets and without too)",
"is_bot": false,
"headline": "support react-native-audio-api in plugins (#399)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-03T12:34:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7fdaeeb56f71b013f715769b9ca8d9a2a80f54d3",
"body": "## 📝 Description\n\nexpo@+55/56 enables gamma, so we need to build that too",
"is_bot": false,
"headline": "build react-native-screens with gamma=true (#398)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-07-03T12:32:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "33b58954a36d8db734db2fdda7482b89c46aee96",
"body": "## 📝 Description\n\nPR adding codegen artifacts (static libs and headers) as parts of\nlibrary `.aar` and implementing:\n- packing all of it to `.aar`\n- unpacking them in client project\n- linking them instead of building them from source by:\n- removing library occurences from `Android-autolinking.cmake`\n[…]\n.81.6 ✓\n0.82.0 ✓\n0.82.1 ✓\n0.83.0 ✓\n0.83.1 ✓\n0.83.2 ✓\n0.83.4 ✓\n0.84.0 ✓\n```\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": false,
"headline": "feat: codegen in android packages (#206)",
"author_name": "Wojciech Lewicki",
"author_login": "WoLewicki",
"committed_at": "2026-06-30T14:14:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8481b5645d9aa337c54abfa54ba4b1c045d73096",
"body": "## 📝 Description\n\nSome rows show no versions supported due to selector bug\n\n## 🧪 Testing\n\nastro build with DB auth for fetching data, before:\n<img width=\"735\" height=\"605\" alt=\"Zrzut ekranu 2026-06-26 o 17 39 43\"\nsrc=\"https://github.com/user-attachments/assets/497599ad-21d9-4474-b717-1a30d2ad7a88\"\n/>\n\nafter there are libs listed",
"is_bot": false,
"headline": "fix missing/empty rows in supportedLibraries (#397)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-29T09:36:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74969b682436c692f7dbd3b80ab2637dba2f3b5b",
"body": "## 📝 Description\n\nUpgrade Xcode if needed: Xcode 26.4 is required to compile a native iOS\nproject. For EAS Build and Workflows, profiles without any specified\nimage will default to Xcode 26.4.\n- source: https://expo.dev/changelog/sdk-56#tool-version-bumps\n- failed build:\nhttps://github.com/software-\n[…]\nm taking\nthe latest 26.3, which also fixes the issue\n\n## 🧪 Testing\n\n- failed build:\nhttps://github.com/software-mansion/rnrepo/actions/runs/28091482981/job/83170331566\n- passed build on this pr checks",
"is_bot": false,
"headline": "bump xcode 26.1 -> 26.3 (#395)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-24T11:01:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "09ddd4df4adaa282ad9a7fffcc91694ae42f9383",
"body": "## 📝 Description\n\nNo more build floods should appear, so no need to use extra runners\n\nintroduced in #291",
"is_bot": false,
"headline": "Return to GH macOS runners (#394)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-24T10:15:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f50e949e247a339cbb43ddad0f962666c13673c",
"body": "## 📝 Description\n\nbump versions before release\n- @rnrepo/build-tools@0.1.6\n- @rnrepo/expo-config-plugin@0.3.3",
"is_bot": false,
"headline": "bump versions before release (#386)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-23T13:51:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e0bdb07f5ba485bf9dd668f932684e3d4a2a4881",
"body": "## 📝 Description\n\nAdding `allowList` support to both the Android Gradle plugin and iOS\nCocoaPods plugin as a complement to the existing `denyList`.\n\nWhen a project has many dependencies but only wants a subset prebuilt,\n`denyList` required listing every excluded package manually. The new\n`allowList`\n[…]\nError - RNRepo: Both 'denyList' and 'allowList' are configured\nfor iOS in rnrepo.config.json. Please use only one of them.\n ```\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": false,
"headline": "feat: add allowList support for iOS and Android (#383)",
"author_name": "lxr-mwhite",
"author_login": "lxr-mwhite",
"committed_at": "2026-06-23T13:45:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8f67ec83b4dd6fd1c0e6178065dc7bdad1606ff8",
"body": "… (#393)\n\n## 📝 Description\n\nWith removed metadata the top-level functions will not be resolved when\naar is consumed.\n- Top-level functions in nitro-modules that caused error:\n-\nhttps://github.com/mrousavy/nitro/blob/main/packages/react-native-nitro-modules/android/src/main/java/com/margelo/nitro/cor\n[…]\npo-modules-core@56.0.17\n - ❓ @expo/log-box@56.0.13\n - ❓ expo-constants@56.0.18\n - ❓ expo@56.0.12\n - ❓ react-native-reanimated@4.3.1\n - ❓ react-native-nitro-image@0.15.1\n ```",
"is_bot": false,
"headline": "Dont remove `META-INF/` and `*.kotlin_module` files when building AAR…",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-23T13:36:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d5f6b11e666fe028d8f0686b71e8c137f1dcd1eb",
"body": "## 📝 Description\n\nAdded support for:\n- react-native-quick-crypto\n-\nhttps://www.npmjs.com/package/react-native-quick-crypto?activeTab=versions\n - only for <1.0.0 since later versions uses nitro\n - #382\n- @sentry/react-native\n- https://www.npmjs.com/package/@sentry/react-native?activeTab=versions\n \n[…]\nvents@2.2.0\n - ```\n✅ Successfully built AAR for react-native-calendar-events@2.2.0 with RN\n0.85.0\n✅ Successfully built static XCFramework for\nreact-native-calendar-events@2.2.0 with RN 0.85.0\n ```",
"is_bot": false,
"headline": "Support new libs (#388)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-23T11:05:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bea61a6ff071532f2f27355cca4c3502c9e7aecf",
"body": "## 📝 Description\n\nAllow libs with license format `(<l1> AND <l2>)` to be builded (mmkv had\nthat case)\n- checks license field in package.json (like previously)\n- if grep (<l1> AND <l2>)\n - checks if both licenses are supported\n - it true, then builds and adds to .pom file both licenses \n\nI haven'\n[…]\nBSD-3-Clause-Clear, BSD-2-Clause. You can configure a custom license with MD5 hash verification in libraries.json.\n```\nafter\n```\n✅ Successfully built AAR for react-native-mmkv@3.3.0 with RN 0.83.0\n```",
"is_bot": false,
"headline": "support licenses in other SPDX format (#387)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-22T09:35:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ecc0561ad4cc1a773fc91bdfac1632f90d5f08c2",
"body": "## 📝 Description\n\nFix a YAML syntax typo in the issue template. Since GitHub doesn't\nprovide a template preview, I had to verify the fix in a fork.\n\nFixes #377\n\n## 🧪 Testing\n\n**Before:** The Bug issue template did not appear in the \"New Issue\"\ndialog.\n\n**After:** The Bug issue template is displayed correctly again.",
"is_bot": false,
"headline": "fix typo in bug-issue-template (#390)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-22T09:31:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a4f5b1a470afa090143f9f35c11c3772fd2fca5a",
"body": "## 📝 Description\n\nMany unuseful info and very annoying to fill when reporting",
"is_bot": false,
"headline": "simplify issue reports templates (#377)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-22T09:00:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b61c889326de0e625655c14ea04e3870c7a4398",
"body": "## 📝 Description\n\nRN does the same. This fixes `@notifee/react-native` ios building.\n\nRCA was the `bun.Glob` that returns files in different order than `npx\nreact-native config` so to make it reliable it will use same tools as RN\nproject.\n\npod install output:\n```\n...\nlink_native_modules! {:ios_packa\n[…]\nlibrary-ios.ts @notifee/react-native 9.1.8 0.85.0 /tmp/temp_notifee\n...\n📱 Building library pod: RNNotifee\n...\n✅ Successfully built static XCFramework for @notifee/react-native@9.1.8 with RN 0.85.0\n```",
"is_bot": false,
"headline": "find podspec via `npx react-native config` (#389)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-22T08:45:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d9ea9ac64608b700dda2f80a8b9dc6e1626818c9",
"body": "## Summary\n\nFix RNRepo prebuild dependency substitution so package names are matched\nexactly instead of by substring.\n\nThis prevents packages with shared Gradle-name prefixes from being\nsubstituted to the wrong prebuilt artifact. One concrete case is React\nNative Firebase: `react-native-firebase_app\n[…]\n\nApp Check correctly:\n```\nproject :react-native-firebase_app-check -> org.rnrepo.public:react-native-firebase_app-check:23.8.8\n```\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": false,
"headline": "Fix RNRepo prebuild substitution prefix matching (#385)",
"author_name": "Oskar Pawica",
"author_login": "pawicao",
"committed_at": "2026-06-16T13:44:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cab8793828abf98fdc9323524f9bc06199ec90c5",
"body": "## 📝 Description\n\nbump packages before release and bump expo ci version \n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
"is_bot": false,
"headline": "release build-tools@0.1.5 & expo-config-plugin@0.3.2 (#359)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-12T13:28:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "75a2384327006dea0415c9f0e8c3030cfb1f24ce",
"body": "## 📝 Description\n\nRelocate the primary cache directory from node_modules/.rnrepo-cache to:\n- default: ~/.rnrepo-cache/ \n- proviede in rnrepo.config.json[\"xcframeworksCacheDir\"]:\n\"/path/to/cache\"\n- disabled caching via rnrepo.config.json[\"xcframeworksCacheDir\"]: \"\" |\nnull\n\nso it can be cached by runner CI.\n\n#334 \n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)",
"is_bot": false,
"headline": "Move xcframework cache to project level (#338)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-12T13:15:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "930597f56af7770cb56d14f3fdcb3d0f69f0d1da",
"body": "## 📝 Description\n\nMoves the concurrency group and cancel-in-progress flag from the\nindividual Android build job to the global workflow scope.\n\nThis fixes a race condition where newer commits were being canceled\ninstead of older ones due to the `needs: check-changes` dependency. Now,\nthe entire previ\n[…]\n\n - hash: 8575dc89a2ae574c5a8c6ac330b586c8558fd396 \n - pushed when previous build was running\n - ci on this commit were cancelled (concurrency) - wrong\n - ci old commit was not cancelled - wrong",
"is_bot": false,
"headline": "move concurrency configuration to global workflow level (#370)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-12T12:53:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "666f9bb15dbf1d9fc0b973d1bbe335c8421a8c5d",
"body": "## 📝 Description\n\n- rngh@3.0.0 have introduced the Compatibility with React Native\nversions:\n-\nhttps://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/installation\n- worklets 0.7.4 have rn@0.84 \n- compatibility.json: \"react-native\": [\"0.79\", \"0.80\", \"0.81\", \"0.82\",\n\"0.83\", \"0.84\"]",
"is_bot": false,
"headline": "update rngh libraries (#375)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-12T12:53:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7587796b1551b8007b82daeeeeaea5c228798cd3",
"body": "…ods objects (#373)\n\n## 📝 Description\n\nFixes #362.\n\nOn iOS, the cocoapods plugin injects an `[AA RUN FIRST] RNREPO Build\nStart` shell-script build phase into every prebuilt pod target during\n`post_install`. Those phases were created with\n`target.new_shell_script_build_phase`, which mints UUIDs throu\n[…]\noutside rnrepo's\ncontrol and can't ship on a useful timeline; the right scope for this PR\nis for rnrepo to stop being the trigger.\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": false,
"headline": "fix(ios): mint RNREPO build-phase UUIDs without colliding with CocoaP…",
"author_name": "Konrad Armatys",
"author_login": "konrad-armatys",
"committed_at": "2026-06-12T12:45:50Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4ed353282315fa76c41c536590c59988dc45dea3",
"body": "…C++ dependency check) (#372)\n\n⚠️ This was generated by a LLM ⚠️\n## Summary\n\nFixes #371.\n\nOn debug builds, the C++ dependency compatibility check registered in\n`gradle.projectsEvaluated` iterated `PACKAGES_WITH_CPP.keys` with a\n`parallelStream()`. `checkDependencies` then realizes each subproject's\n\n[…]\nlogs. On plugin 0.2.2 the same loop failed ~40% of runs\nwith the NPE above.\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": false,
"headline": "Fix intermittent \"collector is null\" NPE in debug builds (sequential …",
"author_name": "Camille Barneaud",
"author_login": "gadcam",
"committed_at": "2026-06-12T11:49:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8575dc89a2ae574c5a8c6ac330b586c8558fd396",
"body": "## 📝 Description\n\nSwitches the build configuration detection mechanism from matching the\n`$CONFIGURATION` name to checking `$GCC_PREPROCESSOR_DEFINITIONS` for\n`DEBUG=1`.\n\nMatching solely on `$CONFIGURATION == \"Debug\"` is unreliable because\nprojects often define custom build configurations (e.g., \"St\n[…]\nh\n\n$ npx expo run:ios --configuration Custom.re\n...\n$ realpath node_modules/react-native-worklets/.rnrepo-cache/Current/dummy.h\n.../node_modules/react-native-worklets/.rnrepo-cache/Release/dummy.h\n```",
"is_bot": false,
"headline": "Detect debug configuration using GCC preprocessor definitions (#367)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-11T13:22:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "033bcc45f0c28c6dab59f0d021c957c67c5aeeec",
"body": "## 📝 Description\n\n2.25.0 and +3.0.0 builds failed due to patch applying failures. Only\ndiffs in .patch files are single lines:\n```\n$ diff react-native-gesture-handler.patch react-native-gesture-handler_2.25.0.patch\n\n62c62\n< @@ -1,65 +1,14 @@\n---\n> @@ -1,67 +1,14 @@\n95c95,97\n< - fun isSvgElement(v\n[…]\nt-native-gesture-handler_3.0.0.patch\n\n29c29\n<\n---\n>\n36,38c36,38\n<\n< if (isNewArchitectureEnabled()) {\n< srcDirs += 'fabric/src/main/java'\n---\n> }\n> }\n>\n\n```",
"is_bot": false,
"headline": "fix rngh patch for 2.25.0 and +3.0.0 (#364)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-11T13:22:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a2c1e2e2aa2b0deaf528cdea3aa0fcae0cf273eb",
"body": "## 📝 Description\n\nreduce unused pr template",
"is_bot": false,
"headline": "delete pr 'type of change' template (#365)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-11T13:21:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67ba32657885084ebb33da601bf65316cf9e5640",
"body": "## 📝 Description\n\nCloses #360\n\n## 🧪 Testing\n\n```\nbun run build-library-android.ts react-native-gesture-handler 24.1.0 0.83.6 /tmp/TEMP_fire_conf\n...\n✅ Successfully built AAR for @react-native-firebase/remote-config@24.1.0 with RN 0.83.6\n```",
"is_bot": false,
"headline": "add support for @react-native-firebase/remote-config (#366)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-11T13:21:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f368e1c522ba2b2bacc98c47387ca189bee0d1e",
"body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\n## Testing\n\nTested app\n```\nnpx @react-native-community/cli@latest init AwesomeProject_860 --version 0.86.0\n```\n\nWi\n[…]\n debug and release builds on both android and ios\n\n---------\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": true,
"headline": "[BOT] Update React Native versions (#369)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-06-10T11:35:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0f251fe2d17444fa04b9193e96d74b416bbeebd4",
"body": "## 📝 Description\n\nFixes #351.\n\nThe CocoaPods post-install hook currently injects an ExpoModulesCore\nmodule map path that assumes the prebuilt RNWorklets framework is named\n`RNWorklets.framework`. `react-native-worklets` packages the inner\nframework as `worklets.framework`, so the generated path poin\n[…]\ndulesCore should receive the module map flag pointing at the\nactual framework name inside the RNWorklets XCFramework intermediate.\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": false,
"headline": "fix: resolve worklets framework module map (#352)",
"author_name": "lmlm",
"author_login": "popsiclelmlm",
"committed_at": "2026-06-03T12:51:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d43f12344129cd7cf30de9f4faeaae0b2a58d8be",
"body": "## 📝 Description\n\nUpdate reanimated-worklets versions like defined:\n-\nhttps://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility\n-\nhttps://docs.swmansion.com/react-native-worklets/docs/guides/compatibility/\n\n## 🎯 Type of Change\n\n- [x] 🧩 New library support",
"is_bot": false,
"headline": "update reanimated@4.4 and worklets@0.9 relations (#356)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-02T11:08:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "00b19e5a4588321216d1a0f31d2fac958d16bae6",
"body": "## 📝 Description\n\nFix ogimage path for better preview in e.g. twitter posts (before was\nblank image, now should provided image appear)\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
"is_bot": false,
"headline": "Fix og-image path for twitter (#357)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-06-02T10:53:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d84f3ed91864a84556672aa5372f004c705e8c06",
"body": "## 📝 Description\n\nAdds banners to the readme. They are currently hidden.",
"is_bot": false,
"headline": "Add readme banners (#353)",
"author_name": "Paweł Małecki",
"author_login": "p-malecki",
"committed_at": "2026-06-02T10:32:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1979d191fccc3ee14bed4bbd27da99414ed53f33",
"body": "## 📝 Description\n\nReduce unnecessary builds runs for prs that change comments or minor\nstuff.\n\n#### Code explanation\n\n```\n check-changes:\n\n # this allows to run jobs on main-push and workflow_dispatch or non-draft PRs \n if: github.event_name != 'pull_request' || !github.event.pull_request.dra\n[…]\nt_name == 'pull_request' && contains(fromJSON('[\"build-android\", \"build-expo\"]'), github.event.label.name))\n```\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)",
"is_bot": false,
"headline": "trigger builds only when PR is labeled (#343)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-22T14:18:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f9935368bda264fdf36db87053dad53283513643",
"body": "## 📝 Description\n\n\n\n\nRemove iOS support for `react-native-permissions`\n\n`react-native-permissions` requires all used permissions to be\nexplicitly configured during `pod install`, which makes it impossible to\nprebuild and distribute all possible permission permutations.\n\nIncluding all permission hand\n[…]\nen.\n\nExample runtime crash:\n\n```text\nThis app has crashed because it attempted to access privacy-sensitive data without a usage description.\n```\n\n#347\n\n## 🎯 Type of Change\n\n- [x] 🧩 New library support",
"is_bot": false,
"headline": "remove support for iOS in `react-native-permissions` (#349)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-22T11:41:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ce4482b86bc983b4a24d361be6ccb58245a872a8",
"body": "## 📝 Description\n\n7d is not a vaild option (but was mentioned in\n[article](https://www.armorcode.com/blog/defending-against-npm-supply-chain-attacks-a-practical-guide)).\njust '7' is still refering to elapsed days, so no functional changes\nhere. This caused issues in packages publishing:\n-\nhttps://gi\n[…]\n/rnrepo/actions/runs/26230821967/job/77190410179\n\ndocs: https://docs.npmjs.com/cli/v11/using-npm/config#min-release-age\n\n## 🎯 Type of Change\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)",
"is_bot": false,
"headline": "exclude @rnrepo libs from 7 days npm limit (#350)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-22T09:20:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9540d97948e24ece8f32bb31ce4407844bd5c05b",
"body": "## 📝 Description\n\nBump versions before release:\n- @rnrepo/build-tools@0.1.4\n- @rnrepo/expo-config-plugin@0.3.1\n\nAnd remove any `beta` labels in docs/website\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
"is_bot": false,
"headline": "bump versions before release and removed beta labels (#344)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-21T13:55:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2000f5d22fedafb98451f10c5c297a7c7b2b3eed",
"body": "## 📝 Description\n\nbuild ts code before running it. it was failing in some ci runs:\n```\nPluginError: Unable to resolve a valid config plugin for @rnrepo/expo-config-plugin.\n• main export of @rnrepo/expo-config-plugin does not appear to be a config plugin: the following error was thrown when importing\n[…]\n/runner/work/rnrepo/rnrepo/packages/expo-config-plugin/app.plugin.js: Cannot find module './build/withRNRepoPlugin'\n```\n\n## 🎯 Type of Change\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)",
"is_bot": false,
"headline": "ci: build plugin before using in project (#342)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-21T12:03:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a0a99963a6e544c565d82aaa10ad2e99c9a3ce5a",
"body": "## 📝 Description\n\nPorts the Android `stripVersionToCore` fix from #147 to the CocoaPods\nplugin. `react-native-tvos` versions like `0.83.2-0` were being passed\nthrough unchanged when building prebuilt artifact URLs, producing 404s\non the rnrepo server (the published artifacts use the core form\n`rn0.8\n[…]\n fall back to source.\n3. **After:** plugin requests `…-rn0.83.2-…xcframework.zip` → prebuilt\nframeworks are downloaded and cached.\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": false,
"headline": "Support react-native-tvos on iOS (#345)",
"author_name": "Konrad Armatys",
"author_login": "konrad-armatys",
"committed_at": "2026-05-21T11:57:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7c6ef0a5ebe4f85d1f1a234ffd5b8c22ac21fd09",
"body": "## 📝 Description\n\nThe iOS Cocoapods plugin loaded `rnrepo.config.json` from the directory\none level above the Podfile (i.e. the package root). That works in a\nsingle-app project where the config sits next to the `ios/` folder, but\nin a monorepo where the config lives at the repo root (alongside hois\n[…]\n rnrepo.config.json from\n<repo-root>/rnrepo.config.json` followed by `⊘ Denied from pre-builds\n(...)` listing the denied packages.\n\n---------\n\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": false,
"headline": "Support global rnrepo.config.json on iOS (#346)",
"author_name": "Konrad Armatys",
"author_login": "konrad-armatys",
"committed_at": "2026-05-21T11:57:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9c6022de99875cfc4fe1947c418c6e604ec3b719",
"body": "## 📝 Description\n\nFix important issues created by cli tool `zizmor`\n\nChanges:\n- added timeouts\n- added concurrency blocks\n- added permissions blocks\n- added persist-credentials false in checkout\n- changed actions usage based on tags (like `v4`) to commits SHA (and\nverified with pinact cli)\n- changed inserting input to command to providing input as env flag\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
"is_bot": false,
"headline": "CI hardening (#341)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-21T08:42:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcb5223584cc791d984e1d0d83b893743b04474d",
"body": "## 📝 Description\n\nsecurity feature\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "use min-release-age=7d in .npmrc (#340)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-19T12:48:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "84015a4a859d50a4214b7c69c86b29dbc49ee709",
"body": "## 📝 Description\n\nIn rare cases, some build settings are defined as arrays, which can\ncause rnrepo to fail with\n\n```\n[!] An error occurred while processing the post-install hook of the Podfile.\n\nno implicit conversion of String into Array\n\n<>/node_modules/@rnrepo/build-tools/cocoapods-plugin/lib/plugin.rb:443:in 'Array#+'\n```\n\n## 🎯 Type of Change\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Handle Xcode settings in both array and string formats. (#330)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-19T12:00:24Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e37acc81f5206b3e7b4bb50384aea8c086297a45",
"body": "## 📝 Description\n\nBuild expo and rn apps to check if everything works. Build for both\nAndroid and iOS and both Debug and Release.\n\n## 🎯 Type of Change\n\n- [x] 🧪 Test addition/modification\n\n## 🧪 Testing\n\nworkflow CI passes",
"is_bot": false,
"headline": "run expo and rn app building in CI (#335)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-19T11:56:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96397136609535b9ebb433bf610423865b8a6752",
"body": "## 📝 Description\n\nold reanimated issue in ci\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)",
"is_bot": false,
"headline": "new known-issues to workflow (#331)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-19T11:55:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa5ddda035460c4c45081868e9517660e4c1d772",
"body": "## 📝 Description\n\nreduce the number of replicated log lines\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
"is_bot": false,
"headline": "resolve gradle maven repositories just once (#337)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-05-19T11:52:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ca8ce8049452d382b1a06afbd665dae7f6b8716",
"body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
"is_bot": true,
"headline": "[BOT] Update React Native versions (#332)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-05-07T08:17:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "540f098f5a2394c3bcff2689063685c47ee1bd69",
"body": "## 📝 Description\n\nRelease:\n- support for EMC\n- new reanimated@+4.3.0 support\n- incorporated maven url into plugin\n\n## Tested\n\n- Projects: \n - `$ npx create-expo-app@latest --template default@sdk-54 my-app-54`\n - `$ npx create-expo-app@latest --template default@sdk-55 my-app-55`\n- `$ npx @react\n[…]\n - / ✅ / -\n - react-native@0.84:\n - android: ✅ / - / ✅ / ✅ / -\n - ios: - / - / ✅ / ✅ / -\n - react-native@0.85:\n - android: ✅ / - / ✅ / - / -\n - ios: - / ✅ / ✅ / - / -",
"is_bot": false,
"headline": "bump versions before release (#325)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-30T12:50:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d4bced3c2ebdb182187a8464b29826aebe94f034",
"body": "…328)\n\n## 📝 Description\n\nFor example, inside a react-native-reanimated repository itself symlinks\nto react-native-reanimated package exist in `node_modules`, while the\nactual source is located in `packages/` - this results in\nreact-native-gesture-handler builded from sources due to the illusionary\na\n[…]\n_modules` from package's absolute path\n- changed `allprojects` to `subprojects` to exclude app's gradle project\nfrom being tried to be substituted\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
"is_bot": false,
"headline": "Allow packages to be resolved from locations beyond `node_modules` (#…",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-30T12:42:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "35e4619c7a45804fc407b0c5a84e4b8d976bc2df",
"body": "## 📝 Description\n\nIn `mvn deploy-file`, the `-packaging` argument was not used in version\n3.1.2 (bug) which was fixed in later versions (currently worklfow uses\n3.1.4). apache/maven-deploy-plugin/issues/576\n\nIt caused the iOS artifacts to be deployed with various extensions:\n- old and wrong: `<artif\n[…]\nns/runs/25053999050\n- publish:\nhttps://github.com/software-mansion/rnrepo/actions/runs/25054114005\n- artifacts:\nhttps://packages.rnrepo.org/snapshots/org/rnrepo/public/react-native-firebase_app/23.5.0",
"is_bot": false,
"headline": "lock the mvn cli version used in publisher (#327)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-30T09:30:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "54df3e6ca7ac503eb097bb19c944145c8de4ae00",
"body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
"is_bot": true,
"headline": "[BOT] Update React Native versions (#326)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-04-28T09:51:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "891a4df233fa5b420e4e8b773e170b30cb8a4a50",
"body": "## 📝 Description\n\nAdd another new issues to catch\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "add new issue to failed builds (#323)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-28T09:51:33Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "6c20a6fa9d7c39456f264efa3105fc9edcefabb1",
"body": "## 📝 Description\n\n\nhttps://docs.swmansion.com/react-native-reanimated/docs/guides/compatibility/\n\nwith new react-native version reanimated constraints have to be adjusted\nto avoid failed builds\n\n## 🎯 Type of Change\n\n- [x] ♻️ Refactoring (no functional changes)",
"is_bot": false,
"headline": "range reanimated@4.2.x versions (#324)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-28T09:51:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d55715081117eec89df0af95f2f8c9c7d0a8373",
"body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
"is_bot": true,
"headline": "[BOT] Update React Native versions (#322)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-04-23T09:29:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96e6125f46219f75abac01aeca7db4fa9d7a52db",
"body": "## 📝 Description\n\n- updated docs (removed mentions about adding `allprojects {repositories\n{ url ...}}}`\n- updated tests\n- added `project.uri(\"https://packages.rnrepo.org/releases\")` inside\ngradle plugin\n- troubleshooting added when project have `FAIL_ON_PROJECT_REPOS`\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)",
"is_bot": false,
"headline": "Incorporate maven url inside gradle plugin (#270)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-17T09:25:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5eca316bc4ca193be7b01f9eb92318beb8960312",
"body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
"is_bot": true,
"headline": "[BOT] Update React Native versions (#320)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-04-17T09:22:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "50fe7d2ee9acc1cda6746885c2eb0e7d214b7bf5",
"body": "## 📝 Description\n\nPod install failed when worklets were installed as a peer dependency\n\nI’d avoid tying this to the old `workletsVersion` approach in\n`libraries.json`, since that was a reanimated-specific addition for its\nbuild process. Now that reanimated has been decoupled from worklets,\nthat field is likely to be removed in the future\n\n## 🎯 Type of Change\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)",
"is_bot": false,
"headline": "Add explicit worklets installation for reanimated@4.3.0+ (#319)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-16T14:43:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fdce3d5c9fd94749a8c57839d80d8b310ff0c52c",
"body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\n## 0.85.0 changes\n\n- add new version to react-native-versions list (0.85.0)\n- install proper reanimated version fo\n[…]\n1\",\n \"react-native-screens\": \"4.24.0\"\n },\n```\n\n---------\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": true,
"headline": "[BOT] Update React Native versions (#311)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-04-16T08:04:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8893bcaa6ed5dc9b5a0beea2d72c8f9b2556eb82",
"body": "## 📝 Description\n\n- add skia unbuildable issue with source-link\n- run script with write flag\n- add gradle9.0.0 issue \n- add type 'expired' for builds with unavailable logs\n- changed type 'unknown' to ' pending' for unchecked builds\n- type 'unknown' means checked but not recognized the issue\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Add more types to failed builds investigation (#315)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-15T10:50:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c72877da1dc18eb47599e5b2de18a9b3f6ba3684",
"body": "## 📝 Description\n\nWith the release of `react-native-reanimated@4.3.0`, the library\nintroduced a stable API that eliminates the need for version-specific\nbuilds tied to `react-native-worklets`. Previously, the tooling built a\nfull variant matrix tied to specific worklets classifiers - this is no\nlong\n[…]\nd for `>=4.3.0`.\n- Both the Gradle and CocoaPods plugins were updated to skip worklets\nresolution entirely when reanimated `>= 4.3.0` is detected.\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
"is_bot": false,
"headline": "Remove worklets classifier from reanimated (#317)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-15T10:07:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1d8b66f9fef02d5cf269bf62cc3f8c2119f75965",
"body": "## 📝 Description\n\nadd new lib #310 \n\n## 🎯 Type of Change\n\n- [x] 🧩 New library support\n\n## 🧪 Testing\n\nbuilding artifacts\n```\n$ bun run packages/builder/build-library-android.ts -- \"@op-engineering/op-sqlite\" \"15.2.11\" \"0.84.0\" \"TEMP_android_opsqlite_15_2_11_rn_0_84_0\" \"\"\n# ✅ Successfully built AAR fo\n[…]\nneering/op-sqlite\" \"15.2.11\" \"0.84.0\" \"TEMP_ios_opsqlite_15_2_11_rn_0_84_0\" \"\"\n# ✅ Successfully built static XCFramework for @op-engineering/op-sqlite@15.2.11 with RN 0.84.0 \n```\n\nbuilding app - works",
"is_bot": false,
"headline": "add @op-engineering/op-sqlite (#318)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-15T09:36:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "32685b41e2641de22a36fbc85251344ca555d24a",
"body": "## 📝 Description\n\nThe script automates the investigation of build failures.\n\n**Note:** This may require adding a new database column to track which\nbuilds are unbuildable ?\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)\n\n## 🧪 Testing\n\nexample:\n```\nSUPABASE_K\n[…]\n URL -> 2\n Unknown issue -> 2\n Errors -> 0\n Retry=true builds before -> 0\n```\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "add failed builds investigation (#297)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-09T11:38:47Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ff124beb0b35887bbb58048c465f9fa5d59c2833",
"body": "## 📝 Description\n\nError:\n\nhttps://github.com/software-mansion/rnrepo/actions/runs/23974928810/job/69930351126\n```\nUncaught Error CocoaPodsError: Command `pod install` failed.\\n\n```\n\nPod install is not used in building emc and cannot be 'turn off', so it\nwill be handled in a catch\n\nexpo;\nhttps://gith\n[…]\nks the builds,\nwhich also was fixed\n\n## 🎯 Type of Change\n\n\n- [x] 🐛 Bug fix (non-breaking change which fixes an issue)\n\n## 🧪 Testing\n\nhttps://github.com/software-mansion/rnrepo/actions/runs/24179629969",
"is_bot": false,
"headline": "fix failing ci during pod install on ubuntu runners (#313)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-09T10:36:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0b36b88658ef886d9a6cf26042d094fccf053393",
"body": "## 📝 Description\n\nReanimated builds were failing due to installation of the newest\nworklets possible from peer deps, but sometimes such version was not\navailable in given rn version\n\n```\nnpm error Could not resolve dependency:\nnpm error peer react-native@\"0.81 - 0.85\" from react-native-worklets@0.8.\n[…]\n\n\n```\n$ bun run packages/builder/build-library-android.ts -- \"react-native-reanimated\" \"4.1.7\" \"0.80.0\" \"/tmp\" \"0.5.1\"\n...\n✅ Successfully built AAR for react-native-reanimated@4.1.7 with RN 0.81.4\n```",
"is_bot": false,
"headline": "Install worklets first (#312)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-09T09:11:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9d5f9ffcdd38ba95e8272a1c5b6ac1d13ab88971",
"body": "## 📝 Description\n\nCreate caching RN project in builder for each rn_version and OS.\n- added in yamls creating clean RN project (nodes installed, no build\nartifacts from previous builds)\n- if work-dir provided to script already have rnrepo_build_app then its\ncached project (always happens on CI)\n- if \n[…]\n build\n- workflow:\nhttps://github.com/software-mansion/rnrepo/actions/runs/24077312315\n- use that cache in another build\n- workflow:\nhttps://github.com/software-mansion/rnrepo/actions/runs/24077495031",
"is_bot": false,
"headline": "builder - cache rn project (#254)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-07T11:14:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "635c7e003ff0ebf9899db54d1fed835376ec0096",
"body": "## 📝 Description\n\nRevert limiting scheduler to 50 builds in #279 since we have selfhosted\nmacOS already.",
"is_bot": false,
"headline": "Revert limiting scheduler to 50 builds in #279 (#308)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-02T15:01:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c1309351c312f9d789dcee34e50dfb86469fafe",
"body": "## 📝 Description\n\nPrebuild expo-modules-core for Android only in release builds\n\nbuilding from >20k last-week builds (reduced build number from 78 to 59)\n\n## 🎯 Type of Change\n\n- [x] 🧩 New library support\n\n## 🧪 Testing\n\n- project\n - `npx create-expo-app@latest init my-app --template default@sdk-55`\n\n[…]\n \"RN\" \"0.83.2\"\n - \"expo-modules-core\" \"55.0.14\" \"RN\" \"0.83.1\"\n- expo@54\n - \"expo-modules-core\" \"3.0.29\" \"RN\" \"0.81.5\"\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Prebuild expo-modules-core for Android (#301)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-02T11:31:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0886e4910b44be8da204972407d716e4dc114ff4",
"body": "## 📝 Description\n\nAdd guide to find the problematic package in xcode16 errors\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update\n\n---------\n\nCo-authored-by: Wojciech Lewicki <wojciech.lewicki@swmansion.com>",
"is_bot": false,
"headline": "Add guide to find the problematic package in xcode16 errors (#307)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-02T11:03:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83ec171e120f722a3f75caa85f6d31864e824fd9",
"body": "## 📝 Description\n\nAdd fingerprint mismatch troubleshooting for ios\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update\n\n## Testing\n\n<img width=\"1106\" height=\"241\" alt=\"Zrzut ekranu 2026-04-2 o 12 06 34\"\nsrc=\"https://github.com/user-attachments/assets/9ad6c440-c0c7-4d63-830f-58d17d5d2461\"\n/>\n\n-readme:\n[…]\nthub.com/software-mansion/rnrepo/blob/rolkrado/fingerprints-eas/README.md#expo-prebuild-continuous-code-generation--cng\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Add fingerprint mismatch troubleshooting for ios (#302)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-04-02T11:03:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5a5338110661ece7bed87ccf075d19e5ba0bd080",
"body": "## 📝 Description\n\nbuild-tools: 0.1.2-beta.0\nexpo-config-plugin: 0.3.0-beta.2\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
"is_bot": false,
"headline": "Publish new package versions (#306)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-26T15:01:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32739c22595fe190c3c946c682feb6567b0c3a3f",
"body": "## 📝 Description\n\nFollow-up from the PR that migrated the Gradle plugin to npm.\n\nIt’s redundant since the version is already tracked as an npm package,\nand it required manual bumping and verification before each release.\n\nChanges:\n- [ BREAKING CHANGE ] - changes gradle plugin resolving in project\nfi\n[…]\nfiguration from build.gradle\n(publishing is now handled via npm instead of Maven)\n- Cleaned up redundant test imports in build.gradle\n\n## 🎯 Type of Change\n\n- [x] ♻️ Refactoring (no functional changes)",
"is_bot": false,
"headline": "[BREAKING CHANGE] Remove versioning from plugins (#299)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-26T14:26:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f6989c7dfea9ef4077e720dc9779725b7b69e087",
"body": "## 📝 Description\n\nThis PR moves iOS builds to self-hosted runners to improve build\nthroughput and reduce queue times. GitHub-hosted runners are limited and\nshared across the entire organization, which was causing delays and\nslowing down CI. The build process itself remains unchanged and the\nrunner e\n[…]\nimprovement\n\n## 🧪 Testing\n\n- https://github.com/software-mansion/rnrepo/actions/runs/22898799632\n- https://github.com/software-mansion/rnrepo/actions/runs/23184874852\n - successfully used in test app",
"is_bot": false,
"headline": "Run iOS builds on self-hosted runners (#291)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-26T14:21:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "380d96d19049f4300df23debea71433f870d6c38",
"body": "## 📝 Description\n\nNow ios will not have dangling scheduled builds\n\n## 🎯 Type of Change\n\n- [x] ✨ New feature (non-breaking change which adds functionality)\n\n## 🧪 Testing\n\n```\n📊 Done.\n Checked: 40\n Completed -> 0\n Failed -> 8\n Skipped -> 32\n Errors -> 0\n\nAFTER:\n\n📊 Done.\n Checked: 40\n Completed -> 12\n Failed -> 28\n Skipped -> 0\n Errors -> 0\n\n```\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Add ios handling in check-build-consistency (#295)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-25T15:37:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "851423c7485000494dd9bb8e09d48c1bd8953c97",
"body": "## 📝 Description\n\nThere is no warning from plugin.rb since it gets lost among numerous\nother log entries and won’t be noticed anyway.\n\n#290 \n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Troubleshooting for xcode16 (#303)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-25T11:33:08Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "77e42b5ee5823165b771badcf88cfb3714006ad1",
"body": "## 📝 Description\n\n[worklets] Versioning compatibility from:\nhttps://docs.swmansion.com/react-native-worklets/docs/guides/compatibility/\n[reanimated-3] Versioning compatibility from:\nhttps://docs.swmansion.com/react-native-reanimated/docs/3.x/guides/compatibility\n\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
"is_bot": false,
"headline": "Constraint worklets builds (#296)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-25T11:32:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de82b61d7207e7bc18ff2fe6a5e5b58435ec10f0",
"body": "## 📝 Description\n\nAvoid building for versions with fewer than 20k downloads in the past\nweek. These are typically new releases that may be quickly replaced by a\npatch fix - until 20 downloads any major issue that would require fixing\nand new patch release should probably be discovered.\n\n```\n{\n \"pac\n[…]\n: 65227,\n \"0.83.1\": 219394,\n \"0.83.2\": 417736,\n \"0.83.3\": 715,\n \"0.83.4\": 10672,\n \"0.84.0\": 111508,\n \"0.84.1\": 515617,\n }\n}\n```\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
"is_bot": false,
"headline": "Add 20k RN threshold to build (#300)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-25T11:20:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7ea5963029a94a96b5364e8f34f832a3dbac110c",
"body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\n---------\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>",
"is_bot": true,
"headline": "[BOT] Update React Native versions (#284)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-03-24T11:20:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1de3620da91e4c8dc4e8b553ed449b1d02fd788a",
"body": "## 📝 Description\n\nLint kotlin with spotless tool\n\n## 🎯 Type of Change\n\n- [x] ♻️ Refactoring (no functional changes)",
"is_bot": false,
"headline": "lint spotless kotlin (#298)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-19T15:30:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b7c4c98af41a9b1bafe25686c3fc8df0e3317051",
"body": "## 📝 Description\n\nAdd changelogs for npm packages\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update=",
"is_bot": false,
"headline": "Add changelogs for npm packages (#292)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-19T14:57:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f7369d5d0119b6d6878a9115594ffe17af1cd427",
"body": "## 📝 Description\n\nReplace the `net/http` with `system(curl, ...)`\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n## 🧪 Testing\n\n```\n# success\n[📦 RNRepo] Downloading from https://packages.rnrepo.org/releases/org/rnrepo/public/react-native-safe-area-context/5.7.0/react-native-safe-area-context-\n[…]\nps://packages.rnrepo.org/releases/org/rnrepo/public/react-native-safe-area-context/5.7.0/react-native-safe-area-context-5.7.0-rn0.81.5-debug.zip...\ncurl: (22) The requested URL returned error: 404\n```",
"is_bot": false,
"headline": "Replace the `net/http` with `system(curl, ...)` (#293)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-17T10:39:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cb4260a2ecc839c5a266b67e64f85ba82ca170f4",
"body": "## 📝 Description\n\n### iOS\n\nin exposdk@55 ExpoModulesCore direct dependency on RNWorklets was added,\nwhich resulted in:\n```\n❌ (node_modules/expo-modules-core/ios/Worklets/WorkletJSCallInvoker.h:10:10)\n\n 8 | #include <ReactCommon/RuntimeExecutor.h>\n 9 |\n> 10 | #include <worklets/WorkletRuntime/Wo\n[…]\nols\": \"<path>/rnrepo/packages/build-tools\",\n# add to app.json plugins\n# # \"@rnrepo/expo-config-plugin\",\nnpx expo install\nnpx expo prebuild\nnpx expo run android\n# success\nnpx expo run ios\n# success\n```",
"is_bot": false,
"headline": "emc worklets fix for exposdk@55 (#281)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-17T09:04:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e7d90fdc624296a6fefeabd75f48e1b1c48043c9",
"body": "## Summary\n\nThis removes the external dependency on `rubyzip`. Using\n`system(\"unzip\", ...)` is safe here because the code is designed to run\nonly on macOS, where `unzip` is available by default.\n\n## Testing\n```\n[📦 RNRepo] Extracting to /Users/radoslawrolka/BUILDLE_ANDROID/rnrepo/AwesomeProject_UNZIP\n[…]\n #286\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>\nCo-authored-by: Radosław Rolka <radoslaw.rolka@gmail.com>\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Replace the `rubyzip` dependency with `system(\"unzip\", ...)`. (#287)",
"author_name": "Insik Han",
"author_login": "Insik-Han",
"committed_at": "2026-03-17T08:55:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "15d4c85fdf544404b308150cbd7d9f43bbc970d9",
"body": "## 📝 Description\n\nBatch DB calls in scheduler to pull all builds per whole lib to remove\nwaiting for DB all the time\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement\n\n## 🧪 Testing\n\nWith unlimited schedules:\n- Before (27min)\n ```\n ✅ Done! Scheduled 560 build(s).\n 64,12s user 14,85s system 4% \n[…]\nal\n ```\n- After (1:30min)\n ```\n ✅ Done! Scheduled 559 build(s).\n 2,34s user 0,56s system 3% cpu 1:30,59 total\n ```\n\n---------\n\nCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "Batch DB calls in scheduler (#294)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-17T08:55:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "eba8919e385e16f8d090ff9e5e4c905957f5c385",
"body": "## 📝 Description\n\nBuilds were failing due to the uncompatible rea-rn versions\n\n```\n stdout: \"Configuring Pod with statically linked Frameworks\\n\\n[!] Invalid `Podfile` file: \\n[!] Invalid `RNReanimated.podspec` file: [Reanimated] React Native version is not compatible with Reanimated.\\n\\n # from /\n[…]\ntible with Reanimated 4.1.4\\n\",\n\n at new ShellPromise (75:16)\n at BunShell (191:35)\n at buildLibrary (/Users/runner/work/rnrepo/rnrepo/packages/builder/build-library-ios.ts:282:11)\n\n```",
"is_bot": false,
"headline": "Add correct reanimated installation in RNGH builds (#285)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-06T14:13:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b4c77346990de8f6acc7ef421b6047e1c7444309",
"body": "## 📝 Description\n\nIssue in hoisted node_modules - `@rnrepo/build-tools` was not resolved\n#274\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
"is_bot": false,
"headline": "Add info about manual installation of @rnrepo/build-tools (#283)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-06T11:42:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7eeda3cf2c3aff4e8631f401e12dd2c53ebd21f4",
"body": "## 📝 Description\n\n- avg one build at macos-xlarge = 20min\n- max concurent jobs on macos = 5\n- scheduler cron = every 4h\nSo limit should be (20/60) * 5 * 4 ~= 50 (calculated with advantage to\ninclude failures that takes less time and nighttime with less occupancy)\n\nRevert this change when we have custom macos runner (#280).\n\n## 🎯 Type of Change\n\n- [x] ⚡ Performance improvement",
"is_bot": false,
"headline": "schedule 50 builds per scheduler cron (#279)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-05T13:14:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "78b7ee634ec7219345696ff6beb77cc89c146ed1",
"body": "## 🚀 React Native Version Update\n\nThis PR updates the React Native versions list with newly released\nversions.\n\n_This is an automated PR generated by the daily version check workflow._\n\nCo-authored-by: radoslawrolka <128408457+radoslawrolka@users.noreply.github.com>",
"is_bot": true,
"headline": "[BOT] Update React Native versions (#265)",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-03-05T12:20:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8deb3f165bca1799339efe466dd2068baff53bf1",
"body": "## 📝 Description\n\nAdd setup verification guide in troubleshooting.md\n- android:\nhttps://github.com/software-mansion/rnrepo/blob/rolkrado/setup-verification/TROUBLESHOOTING.md#how-to-check-if-the-plugin-works\n- ios (same file, same header name):\nhttps://github.com/software-mansion/rnrepo/blob/rolkrado/setup-verification/TROUBLESHOOTING.md#how-to-check-if-the-plugin-works-1\n\n#276\n\n## 🎯 Type of Change\n\n- [x] 📚 Documentation update",
"is_bot": false,
"headline": "Setup verification in troubleshooting (#278)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-05T10:37:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c54c5b3bed1512c78c444fb9fc37768673f3033e",
"body": "## 📝 Description\n\n- added firebase/firestore to libraries.json with android config\n- added postinstall script (same as other firebase postinstall scripts)\n\nAdding firebase/firestore to android building list, since we did not\ntest the firestore on ios yet.\n\n#275 \n\n## 🎯 Type of Change\n\n- [x] 🧩 New lib\n[…]\nsks: 44 executed\n✓ Published to Maven Local successfully\n✅ Successfully built AAR for @react-native-firebase/firestore@23.8.6 with RN 0.81.4\n```\nalso builded successfully example rn-app with firestore",
"is_bot": false,
"headline": "Add firebase/firestore to android build list (#277)",
"author_name": "Radosław Rolka",
"author_login": "radoslawrolka",
"committed_at": "2026-03-05T10:34:57Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 0,
"commits_last_year": 342,
"latest_release_at": null,
"latest_release_tag": null,
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 40,
"days_since_latest_release": null,
"mean_days_between_releases": null
},
"community": {
"has_readme": true,
"has_license": false,
"has_description": true,
"has_contributing": false,
"health_percentage": 37,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "@rnrepo/build-tools",
"exists": true,
"license": "ISC",
"keywords": [
"cocoapods",
"gradle",
"react-native",
"rnrepo",
"ios",
"android",
"plugin",
"prebuilds",
"xcframework",
"aar"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@rnrepo/build-tools",
"is_deprecated": false,
"latest_version": "0.2.1",
"repository_url": "https://github.com/software-mansion/rnrepo",
"versions_count": 11,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 2,
"monthly_downloads": 89272,
"first_published_at": "2026-02-25T10:42:48.281000Z",
"latest_published_at": "2026-07-17T09:04:05.108000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 4
},
{
"name": "@rnrepo/expo-config-plugin",
"exists": true,
"license": "ISC",
"keywords": [
"react-native",
"expo",
"config",
"plugin",
"prebuilds",
"rnrepo"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@rnrepo/expo-config-plugin",
"is_deprecated": false,
"latest_version": "0.3.5",
"repository_url": "https://github.com/software-mansion/rnrepo",
"versions_count": 15,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 2,
"monthly_downloads": 86944,
"first_published_at": "2025-12-01T10:17:00.871000Z",
"latest_published_at": "2026-07-17T09:02:02.583000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 4
}
]
},
"popularity": {
"forks": 12,
"stars": 403,
"watchers": 1,
"fork_history": {
"days": [
{
"date": "2025-12-04",
"count": 2
},
{
"date": "2025-12-05",
"count": 1
},
{
"date": "2025-12-11",
"count": 1
},
{
"date": "2026-02-05",
"count": 1
},
{
"date": "2026-03-09",
"count": 1
},
{
"date": "2026-04-25",
"count": 1
},
{
"date": "2026-05-29",
"count": 1
},
{
"date": "2026-05-30",
"count": 1
},
{
"date": "2026-06-11",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-07-13",
"count": 1
}
],
"complete": true,
"collected": 12,
"total_forks": 12
},
"star_history": {
"days": [
{
"date": "2025-12-03",
"count": 61
},
{
"date": "2025-12-04",
"count": 82
},
{
"date": "2025-12-05",
"count": 20
},
{
"date": "2025-12-06",
"count": 4
},
{
"date": "2025-12-07",
"count": 3
},
{
"date": "2025-12-08",
"count": 10
},
{
"date": "2025-12-09",
"count": 2
},
{
"date": "2025-12-10",
"count": 6
},
{
"date": "2025-12-11",
"count": 6
},
{
"date": "2025-12-12",
"count": 11
},
{
"date": "2025-12-13",
"count": 6
},
{
"date": "2025-12-15",
"count": 3
},
{
"date": "2025-12-16",
"count": 1
},
{
"date": "2025-12-17",
"count": 3
},
{
"date": "2025-12-18",
"count": 2
},
{
"date": "2025-12-19",
"count": 2
},
{
"date": "2025-12-20",
"count": 2
},
{
"date": "2025-12-21",
"count": 1
},
{
"date": "2025-12-22",
"count": 2
},
{
"date": "2025-12-25",
"count": 1
},
{
"date": "2025-12-29",
"count": 1
},
{
"date": "2025-12-31",
"count": 3
},
{
"date": "2026-01-02",
"count": 3
},
{
"date": "2026-01-04",
"count": 1
},
{
"date": "2026-01-05",
"count": 3
},
{
"date": "2026-01-06",
"count": 2
},
{
"date": "2026-01-07",
"count": 1
},
{
"date": "2026-01-08",
"count": 2
},
{
"date": "2026-01-12",
"count": 2
},
{
"date": "2026-01-19",
"count": 1
},
{
"date": "2026-01-23",
"count": 2
},
{
"date": "2026-02-01",
"count": 1
},
{
"date": "2026-02-04",
"count": 1
},
{
"date": "2026-02-07",
"count": 1
},
{
"date": "2026-02-08",
"count": 1
},
{
"date": "2026-02-23",
"count": 1
},
{
"date": "2026-02-25",
"count": 1
},
{
"date": "2026-02-27",
"count": 3
},
{
"date": "2026-02-28",
"count": 1
},
{
"date": "2026-03-03",
"count": 12
},
{
"date": "2026-03-04",
"count": 11
},
{
"date": "2026-03-05",
"count": 6
},
{
"date": "2026-03-06",
"count": 3
},
{
"date": "2026-03-07",
"count": 1
},
{
"date": "2026-03-08",
"count": 1
},
{
"date": "2026-03-09",
"count": 2
},
{
"date": "2026-03-10",
"count": 8
},
{
"date": "2026-03-11",
"count": 13
},
{
"date": "2026-03-16",
"count": 1
},
{
"date": "2026-03-17",
"count": 2
},
{
"date": "2026-03-20",
"count": 1
},
{
"date": "2026-03-24",
"count": 1
},
{
"date": "2026-03-26",
"count": 1
},
{
"date": "2026-03-27",
"count": 1
},
{
"date": "2026-04-04",
"count": 1
},
{
"date": "2026-04-12",
"count": 1
},
{
"date": "2026-04-20",
"count": 1
},
{
"date": "2026-04-21",
"count": 2
},
{
"date": "2026-04-22",
"count": 1
},
{
"date": "2026-05-07",
"count": 1
},
{
"date": "2026-05-21",
"count": 6
},
{
"date": "2026-05-23",
"count": 1
},
{
"date": "2026-05-25",
"count": 2
},
{
"date": "2026-05-26",
"count": 1
},
{
"date": "2026-05-28",
"count": 3
},
{
"date": "2026-05-29",
"count": 1
},
{
"date": "2026-06-01",
"count": 23
},
{
"date": "2026-06-02",
"count": 4
},
{
"date": "2026-06-03",
"count": 4
},
{
"date": "2026-06-05",
"count": 4
},
{
"date": "2026-06-06",
"count": 1
},
{
"date": "2026-06-14",
"count": 1
},
{
"date": "2026-06-16",
"count": 1
},
{
"date": "2026-06-17",
"count": 2
},
{
"date": "2026-06-20",
"count": 1
},
{
"date": "2026-06-22",
"count": 3
},
{
"date": "2026-06-23",
"count": 4
},
{
"date": "2026-06-24",
"count": 2
},
{
"date": "2026-06-29",
"count": 3
},
{
"date": "2026-07-02",
"count": 1
},
{
"date": "2026-07-06",
"count": 1
},
{
"date": "2026-07-07",
"count": 1
},
{
"date": "2026-07-08",
"count": 1
},
{
"date": "2026-07-17",
"count": 1
},
{
"date": "2026-07-21",
"count": 1
}
],
"complete": true,
"collected": 403,
"total_stars": 403
},
"open_issues_and_prs": 8
},
"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": [
"packages/expo-config-plugin/tsconfig.json",
"packages/website/tsconfig.json",
"tsconfig.json"
],
"toolchain_manifests": [
"packages/build-tools/gradle-plugin/build.gradle"
],
"largest_source_bytes": 56925,
"source_files_sampled": 60,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "commander",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^13.1.0"
},
{
"name": "semver",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^7.7.4"
},
{
"name": "zx",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.6.0"
},
{
"name": "commander",
"manifest": "packages/builder/package.json",
"ecosystem": "npm",
"version_constraint": "^13.1.0"
},
{
"name": "@rnrepo/config",
"manifest": "packages/builder/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "zx",
"manifest": "packages/builder/package.json",
"ecosystem": "npm",
"version_constraint": "^8.6.0"
},
{
"name": "@rnrepo/config",
"manifest": "packages/database/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@supabase/supabase-js",
"manifest": "packages/database/package.json",
"ecosystem": "npm",
"version_constraint": "^2.47.0"
},
{
"name": "@expo/config-plugins",
"manifest": "packages/expo-config-plugin/package.json",
"ecosystem": "npm",
"version_constraint": "*"
},
{
"name": "@expo/config-types",
"manifest": "packages/expo-config-plugin/package.json",
"ecosystem": "npm",
"version_constraint": "*"
},
{
"name": "@rnrepo/build-tools",
"manifest": "packages/expo-config-plugin/package.json",
"ecosystem": "npm",
"version_constraint": "0.2.1"
},
{
"name": "@octokit/rest",
"manifest": "packages/publisher/package.json",
"ecosystem": "npm",
"version_constraint": "^22.0.0"
},
{
"name": "@rnrepo/config",
"manifest": "packages/publisher/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@rnrepo/database",
"manifest": "packages/publisher/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "commander",
"manifest": "packages/publisher/package.json",
"ecosystem": "npm",
"version_constraint": "^13.1.0"
},
{
"name": "zx",
"manifest": "packages/publisher/package.json",
"ecosystem": "npm",
"version_constraint": "^8.6.0"
},
{
"name": "@octokit/plugin-paginate-rest",
"manifest": "packages/scheduler/package.json",
"ecosystem": "npm",
"version_constraint": "^14.0.0"
},
{
"name": "@octokit/rest",
"manifest": "packages/scheduler/package.json",
"ecosystem": "npm",
"version_constraint": "^22.0.0"
},
{
"name": "@rnrepo/config",
"manifest": "packages/scheduler/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@rnrepo/database",
"manifest": "packages/scheduler/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "semver",
"manifest": "packages/scheduler/package.json",
"ecosystem": "npm",
"version_constraint": "^7.7.3"
},
{
"name": "astro",
"manifest": "packages/website/package.json",
"ecosystem": "npm",
"version_constraint": "^4.16.6"
},
{
"name": "lucide-astro",
"manifest": "packages/website/package.json",
"ecosystem": "npm",
"version_constraint": "^0.555.0"
},
{
"name": "shiki",
"manifest": "packages/website/package.json",
"ecosystem": "npm",
"version_constraint": "^3.17.1"
},
{
"name": "@rnrepo/database",
"manifest": "packages/website/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 8,
"merged_prs": 319,
"open_issues": 0,
"closed_ratio": 1,
"closed_issues": 64,
"closed_unmerged_prs": 27
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "radoslawrolka",
"commits": 250,
"avatar_url": "https://avatars.githubusercontent.com/u/128408457?v=4"
},
{
"type": "User",
"login": "kmagiera",
"commits": 64,
"avatar_url": "https://avatars.githubusercontent.com/u/726445?v=4"
},
{
"type": "User",
"login": "CDFN",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/41289688?v=4"
},
{
"type": "User",
"login": "sKrzysieK",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/64040819?v=4"
},
{
"type": "User",
"login": "konrad-armatys",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/109459018?v=4"
},
{
"type": "User",
"login": "mczernek",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/6090468?v=4"
},
{
"type": "User",
"login": "WoLewicki",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/32481228?v=4"
},
{
"type": "User",
"login": "gadcam",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/1693643?v=4"
},
{
"type": "User",
"login": "Insik-Han",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/63291908?v=4"
},
{
"type": "User",
"login": "pawicao",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/34246839?v=4"
}
],
"contributors_sampled": 14,
"top_contributor_share": 0.716
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"build-example-expo-app.yml",
"build-example-rn-app.yml",
"build-library-android.yml",
"build-library-ios.yml",
"check-build-consistency.yml",
"check-failed-builds.yml",
"daily-react-native-version-check.yml",
"deploy-website.yml",
"lint-and-validate.yml",
"publish-build-tools.yml",
"publish-expo-config-plugin.yml",
"publish-library-android.yml",
"publish-library-ios.yml",
"run-scheduler.yml"
],
"has_docs_dir": false,
"linter_configs": [
".eslintrc.js"
],
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 9,
"reason": "binaries present in source code",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 6,
"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 7 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 0,
"reason": "dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no 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": 0,
"reason": "license file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 20 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": 9,
"reason": "dependency not pinned by hash detected -- score normalized to 9",
"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": 0,
"reason": "security policy file not 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": 0,
"reason": "100 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "d4af2edf88e5932f53d8ad4f64db5386dbe1091d",
"ran_at": "2026-07-22T05:55:08Z",
"aggregate_score": 4.2,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-22T05:05:13Z",
"oldest_open_prs": [
{
"number": 163,
"created_at": "2025-12-09T17:27:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 217,
"created_at": "2026-01-19T09:25:20Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 238,
"created_at": "2026-01-28T11:14:00Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 314,
"created_at": "2026-04-09T13:49:47Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 333,
"created_at": "2026-05-06T11:51:52Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 348,
"created_at": "2026-05-21T10:55:29Z",
"last_comment_at": "2026-05-22T13:03:25Z",
"last_comment_author": "radoslawrolka"
},
{
"number": 396,
"created_at": "2026-06-26T03:19:47Z",
"last_comment_at": "2026-07-06T14:38:24Z",
"last_comment_author": "radoslawrolka"
},
{
"number": 418,
"created_at": "2026-07-21T11:23:23Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-17T09:00:20Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/software-mansion/rnrepo",
"host": "github.com",
"name": "rnrepo",
"owner": "software-mansion"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"security": 42,
"vitality": 56,
"community": 53,
"governance": 75,
"engineering": 76
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 56,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"commits_last_year": 342,
"human_commit_share": 0.92,
"days_since_last_push": 0,
"active_weeks_last_year": 40
},
"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": "40/52 weeks with commits",
"points": 27.7,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 40
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "342 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 342
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "critical",
"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": 1,
"inputs": {
"releases_count": 0
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "no releases published",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases_published",
"params": {}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "no releases",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases",
"params": {}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "no releases",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases",
"params": {}
}
],
"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": 4,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 4 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 4
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 53,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 51,
"inputs": {
"forks": 12,
"stars": 403,
"watchers": 1,
"growth_state": "organic",
"growth_factor_pct": 100
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "403 stars",
"points": 42.2,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 403
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "12 forks",
"points": 8.7,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 12
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "1 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 1
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "at_risk",
"name": "Community health",
"note": null,
"notes": [],
"value": 32,
"inputs": {
"has_readme": true,
"has_license": false,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"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": "no license file detected",
"points": 0,
"status": "missed",
"details": [
{
"code": "license_absent",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"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": 87,
"inputs": {
"packages": [
"@rnrepo/build-tools",
"@rnrepo/expo-config-plugin"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 176216
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "176,216 downloads/month across npm",
"points": 69.9,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 176216,
"ecosystems": "npm"
}
}
],
"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": 75,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 39,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 14,
"top_contributor_share": 0.716
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 72% of commits",
"points": 6.4,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 72
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "14 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 14
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 7 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 97,
"inputs": {
"merged_prs": 319,
"open_issues": 0,
"closed_issues": 64,
"issue_closed_ratio": 1,
"closed_unmerged_prs": 27
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "100% of issues closed",
"points": 46.8,
"status": "met",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 100
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "319/346 decided PRs merged",
"points": 35.3,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 319,
"decided": 346
}
}
],
"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": 78,
"inputs": {
"followers": 1604,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "software-mansion",
"public_repos": 59,
"account_age_days": 2464
},
"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,604 followers of software-mansion",
"points": 23,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 1604,
"login": "software-mansion"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "59 public repos, account ~6 yr old",
"points": 24.9,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 59
}
},
{
"code": "account_age_years",
"params": {
"years": 6
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"@rnrepo/build-tools",
"@rnrepo/expo-config-plugin"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 4
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "2 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 2,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 4 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 4
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "15 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 15
}
}
],
"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": "good",
"name": "Engineering Quality",
"value": 76,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "excellent",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "14 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 14
}
}
],
"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": ".eslintrc.js",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.js"
}
}
],
"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": 55,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": "http://rnrepo.org/",
"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": "http://rnrepo.org/",
"points": 15,
"status": "met",
"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": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 42,
"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.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 42,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 4.2
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 6.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 4.5,
"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 7 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "dangerous workflow patterns detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"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 not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 20 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 9",
"points": 4.5,
"status": "partial",
"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 not detected",
"points": 0,
"status": "missed",
"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": "100 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"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": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 16
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"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": 68,
"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": "92 of 92 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 92,
"sampled": 92
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 76,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"packages/expo-config-plugin/tsconfig.json",
"packages/website/tsconfig.json",
"tsconfig.json"
],
"agent_commit_share": 0.13,
"toolchain_manifests": [
"packages/build-tools/gradle-plugin/build.gradle"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "packages/build-tools/gradle-plugin/build.gradle (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "packages/build-tools/gradle-plugin/build.gradle"
}
}
],
"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": ".eslintrc.js",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.js"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "packages/expo-config-plugin/tsconfig.json, packages/website/tsconfig.json, tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "packages/expo-config-plugin/tsconfig.json, packages/website/tsconfig.json, tsconfig.json"
}
}
],
"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": "13 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 13,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 9",
"points": 9,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 56925,
"source_files_sampled": 60,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/60 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 60,
"oversized": 0
}
}
],
"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": [
"Could not fetch npm package '@rnrepo/builder' from its registry",
"Could not fetch npm package '@rnrepo/publisher' from its registry",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"deps.dev does not index npm:@rnrepo/build-tools@0.2.1; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-22T05:55:30.046426Z",
"schema_version": "0.26.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/software-mansion/rnrepo.svg",
"full_name": "software-mansion/rnrepo",
"license_state": "absent",
"license_spdx": null
}