Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 142,
"has_wiki": false,
"homepage": null,
"languages": {
"Go": 302482
},
"pushed_at": "2026-07-23T20:45:43Z",
"created_at": "2026-07-16T16:19:46Z",
"owner_type": "Organization",
"updated_at": "2026-07-23T20:45:44Z",
"description": null,
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": "https://share2.us",
"name": "share2us",
"type": "Organization",
"login": "share2us",
"company": null,
"location": null,
"followers": 0,
"avatar_url": "https://avatars.githubusercontent.com/u/301655080?v=4",
"created_at": "2026-07-09T08:16:07Z",
"is_verified": null,
"public_repos": 5,
"account_age_days": 14
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.8.0",
"kind": "minor",
"published_at": "2026-07-23T20:45:16Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2026-07-23T17:54:55Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2026-07-23T17:30:35Z"
},
{
"tag": "v0.5.1",
"kind": "patch",
"published_at": "2026-07-23T11:18:54Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2026-07-22T12:40:49Z"
},
{
"tag": "v0.4.1",
"kind": "patch",
"published_at": "2026-07-22T08:00:23Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2026-07-21T11:58:09Z"
},
{
"tag": "v0.3.4",
"kind": "patch",
"published_at": "2026-07-19T16:11:25Z"
},
{
"tag": "v0.3.3",
"kind": "patch",
"published_at": "2026-07-19T13:52:18Z"
},
{
"tag": "v0.3.2",
"kind": "patch",
"published_at": "2026-07-19T13:02:26Z"
},
{
"tag": "v0.3.1",
"kind": "patch",
"published_at": "2026-07-19T12:32:43Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2026-07-19T12:14:12Z"
},
{
"tag": "v0.2.1",
"kind": "patch",
"published_at": "2026-07-18T11:22:43Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2026-07-18T11:22:43Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2026-07-18T11:22:43Z"
}
],
"recent_commits": [
{
"oid": "5163080b789d739bd646c64ffcd13975b5f544b4",
"body": "Add a broadcast/pull transfer path alongside the existing push:\n\n- Broadcast(): a device offers a file; nearby devices download it. Serves\n over the same TLS 1.3 + PAKE channel, gated by an access mode\n (all / trusted / approve), with per-connection progress + bounded\n concurrency and the existin\n[…]\nNS: advertise a broadcast as a distinct instance with bc/fn/sz TXT keys;\n Browse parses them so peers surface offered files.\n\nTested -race: round-trip, each access mode, resume, broadcaster-identity.",
"is_bot": false,
"headline": "lanshare: broadcast (pull) + resume + mutual identity",
"author_name": "hassankhurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-23T20:45:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c64ff12e40f493cae32c6f597f624db290be1e2e",
"body": "Optional, backward-compatible sender authentication so a receiver can recognise\nand trust a device by its key (not its spoofable IP):\n\n- SendOptions.Identity (ed25519.PrivateKey) + SenderName. When set, the sender\n signs (\"s2u-lan-identity-v1\\0\" || TLS-EKM) and includes its pubkey + signature\n + n\n[…]\nITM relay), the\nsame mechanism the PAKE uses.\n\nTests: identity round-trip, forged-identity rejected (craft a hello claiming a\nvictim key), anonymous still works (backward compat). go test -race clean.",
"is_bot": false,
"headline": "lanshare: authenticated sender identity (for receiver-side trust)",
"author_name": "hassankhurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-23T17:54:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1f9ce49096bb3b589889434ac865cf666803028a",
"body": "- VerifyCode(fingerprint) -> a 6-digit numeric code both peers derive from the\n same cert, so a sender can confirm a device advertised over (unauthenticated)\n mDNS is the real one (an impersonator's cert yields a different code). Layered\n under per-transfer approval; documented as not a full safe\n[…]\n of the existing rate throttle: a peer can't\n occupy many worker slots or flood the receiver.\n\nTests: VerifyCode (stable/normalized/distinct/empty), serve-loop receives\nmultiple. go test -race clean.",
"is_bot": false,
"headline": "lanshare: verify code + bounded-concurrent serve + per-IP anti-spam",
"author_name": "hassankhurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-23T17:30:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "43fc2568885c9f14187ce26f4b96897dcffe241c",
"body": "- destPath now rejects illegal filename characters (path separators, the NTFS\n alternate-data-stream ':' marker), control characters, bidirectional-override\n runes (RTLO extension spoofing), and Windows reserved device names, and strips\n trailing dots/spaces so the on-disk name matches what was a\n[…]\n TestReceiveRejectsMaliciousFilenames.\n- OnRequest: extend the connection deadline to 2m around the approval prompt so a\n considered \"accept\" past the 30s handshake budget isn't killed mid-decision.",
"is_bot": false,
"headline": "lanshare: harden receive filenames + extend approval deadline (security)",
"author_name": "hassankhurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-23T17:12:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e507577ee9f98fa9e344208d4267802732ba3b18",
"body": "Additive, backward-compatible API for account-free \"nearby devices\" sharing:\n\n- Browse(ctx, timeout) []Peer — mDNS browse-all of _s2u._tcp, so a sender can\n list every nearby receiver (Discover only finds one by name). Peer carries\n name/host/port/fingerprint/mode + an Addr() helper.\n- ReceiveOpti\n[…]\nthe first,\n for a device that stays discoverable.\n\nTests: OnRequest decline rejects the sender and writes nothing; OnRequest sees\nthe sender IP + name/size; Browse returns cleanly within its timeout.",
"is_bot": false,
"headline": "lanshare: local discovery (Browse) + per-transfer approval + serve loop",
"author_name": "hassankhurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-23T16:50:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "89e307dbb39eaae4aa05ae3997b5492e5bf5d5ee",
"body": null,
"is_bot": false,
"headline": "feat: UploadCreateRequest.Note (share note shown to viewers)",
"author_name": "hassankhurram",
"author_login": null,
"committed_at": "2026-07-23T11:18:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "509f9baaafdb51149efc9046982e1456d090377c",
"body": "ExposeDeviceToContact / UnexposeDeviceFromContact / ListExposedDevicesForContact\nwrap PUT/DELETE/GET /v1/contacts/senders/devices, so a recipient can control\nwhich of their devices a given contact may target (approvals mode).",
"is_bot": false,
"headline": "feat: contact device-exposure client methods",
"author_name": "hassankhurram",
"author_login": null,
"committed_at": "2026-07-22T12:40:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d20cfb10dc4d3e08c2d7d02907d506ec3e6b04d2",
"body": "On Windows this moves the login token from %USERPROFILE%\\.config to\n%AppData%\\Roaming\\share2us so it sits with config.json; Linux/macOS paths are\nunchanged (UserConfigDir == ~/.config, honoring XDG). LoadCredential falls back\nto the old .config path and migrates it forward so existing logins survive.",
"is_bot": false,
"headline": "fix: store credentials under os.UserConfigDir (matches config.json)",
"author_name": "hassankhurram",
"author_login": null,
"committed_at": "2026-07-22T08:00:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f6f259cced145a948cfebc56f7e3e3eb0aa583b7",
"body": null,
"is_bot": false,
"headline": "test: ExpiryForAPI keep sentinels + yml/yaml/md classification",
"author_name": "hassankhurram",
"author_login": null,
"committed_at": "2026-07-21T11:58:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1dd2558048dad1409f5a6fda43f6faf6df088676",
"body": "…asses",
"is_bot": false,
"headline": "feat: ExpiryForAPI (none/never/keep) + NoExpiry wire + yml/yaml/md cl…",
"author_name": "hassankhurram",
"author_login": null,
"committed_at": "2026-07-21T11:51:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5081795d86fcb1ba68eba2c24508f4b5c5283209",
"body": "Dependabot bumps: golang.org/x/net 0.54.0->0.55.0, ulikunitz/xz\n0.5.12->0.5.15, nwaples/rardecode/v2 2.1.0->2.2.0. rardecode v2.2.0 drops\nthe WriteTo method mholt/archives v0.1.2 relied on, breaking the build, so\nbump mholt/archives (indirect, via gitleaks) 0.1.2->0.1.5 which supports\nthe new rardecode API. build + vet + test green.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "build(deps): bump x/net, xz, rardecode/v2 (+ mholt/archives for compat)",
"author_name": "Moki",
"author_login": "mokihk",
"committed_at": "2026-07-21T09:09:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "94994aa16bc0c78391c68a505a9ecb1ca56cef45",
"body": null,
"is_bot": false,
"headline": "Merge: --email help text (recipient-restricted link)",
"author_name": "Moki",
"author_login": "mokihk",
"committed_at": "2026-07-19T16:11:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6e0dffa326545538d09b38888472ef191bdca4d",
"body": "…auto-E2E)\n\nMatches the CLI behavior change: --email always makes a recipient-restricted link;\ndevice end-to-end is via --contact only.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(cli): --email help now describes recipient-restricted link (not …",
"author_name": "Moki",
"author_login": "mokihk",
"committed_at": "2026-07-19T15:59:55Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c85800737987ea305a99adf56f728addaf79fba0",
"body": "…r receive (W-L1, W-L3) (#8)\n\nW-L1: verifyPeer returned nil when RelayConfig.Secret was empty, silently\ndisabling SAS peer verification (a relay could then MITM the transfer). It now\nfails closed — an empty Secret errors unless the new Insecure flag is set\n(TEST-ONLY; production always derives a Sec\n[…]\n\nstill renames. Added an overwrite-replaces test alongside the existing refusal one.\n\nCo-authored-by: Moki <moki@hassankhurram.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "security(cli-core): P2P fail-closed without secret + atomic no-clobbe…",
"author_name": "Hassan Khurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-19T13:52:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "262c543d2a2ecb618e547b84a04ec131177f6717",
"body": "…W-M1, W-M2) (#7)\n\nW-M1: the shared HTTP client was http.DefaultClient (no timeouts) and success\nJSON bodies were decoded unbounded. DefaultHTTPClient now sets dial / TLS-handshake\n/ response-header / idle timeouts (no overall Timeout, so long up/downloads still\nwork; the per-request context bounds \n[…]\nhey reach the launcher.\n\nTests: validateBrowserURL good/bad table; full suite green.\n\nCo-authored-by: Moki <moki@hassankhurram.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "security(cli-core): bound HTTP client + validate browser URL scheme (…",
"author_name": "Hassan Khurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-19T13:02:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "da69d9e55599a5b84953c974157ddf83837f1ad2",
"body": "receiveToFile wrote every msgData frame and only stopped on msgEOF, never\ncomparing bytes received against the size the sender declared (h.Size was used\nonly for the progress callback). A peer could declare a tiny size and stream\nforever, filling the receiver's disk (no auth at all in open/allow-ip \n[…]\neclaration\nrefused, under-declared stream rejected; existing round-trips still pass.\n\nCo-authored-by: Moki <moki@hassankhurram.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "security(cli-core): cap LAN receive to the declared size (W-H3) (#6)",
"author_name": "Hassan Khurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-19T12:32:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "610ab5424bc8870406d2f638df561536e985a614",
"body": "…ion (W-H2) (#5)\n\nThe streaming AEAD ended with an UNAUTHENTICATED zero-length marker (AAD was nil,\nno final-chunk flag), so a malicious/compromised server or relay — the party E2E\ndefends against — could drop tail chunks and append the terminator; the recipient\nvalidated every remaining GCM tag, hi\n[…]\nlegacy 1.1 round-trips, and the\nexisting round-trip (empty/small/large) stays green.\n\nCo-authored-by: Moki <moki@hassankhurram.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "security(cli-core): authenticate encrypted-stream end to stop truncat…",
"author_name": "Hassan Khurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-19T12:14:12Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "87c00da4dc4b8c5ee99435499e3aa0ee60143912",
"body": "…x/crypto-0.52.0\n\nBump golang.org/x/crypto from 0.51.0 to 0.52.0",
"is_bot": false,
"headline": "Merge pull request #1 from share2us/dependabot/go_modules/golang.org/…",
"author_name": "Hassan Khurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-18T17:17:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "05986c51faf483ef4eed24f2a7a0180369758af8",
"body": "Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.51.0 to 0.52.0.\n- [Commits](https://github.com/golang/crypto/compare/v0.51.0...v0.52.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/crypto\n dependency-version: 0.52.0\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump golang.org/x/crypto from 0.51.0 to 0.52.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-18T11:53:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21b0efdfd55c97a3fd9138fe104cbc24b0915e3d",
"body": null,
"is_bot": false,
"headline": "Share2Us CLI core library",
"author_name": "Hassan Khurram",
"author_login": "hassankhurram",
"committed_at": "2026-07-18T11:22:43Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 15,
"commits_last_year": 20,
"latest_release_at": "2026-07-23T20:45:16Z",
"latest_release_tag": "v0.8.0",
"releases_from_tags": true,
"days_since_last_push": 0,
"active_weeks_last_year": 1,
"days_since_latest_release": 0,
"mean_days_between_releases": 0.5
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": false,
"has_contributing": true,
"health_percentage": 37,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/share2us/cli-core",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/share2us/cli-core",
"is_deprecated": false,
"latest_version": "v0.8.0",
"repository_url": "https://github.com/share2us/cli-core",
"versions_count": 15,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-23T20:45:16Z",
"latest_version_yanked": null,
"days_since_latest_publish": 0
}
]
},
"popularity": {
"forks": 0,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": null
},
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod"
],
"largest_source_bytes": 40824,
"source_files_sampled": 50,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.52.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5932"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 16
},
{
"name": "golang.org/x/net",
"direct": false,
"version": "v0.55.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5942"
],
"fixed_version": "0.56.0",
"advisory_count": 1,
"oldest_advisory_days": 9
},
{
"name": "golang.org/x/text",
"direct": false,
"version": "v0.37.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5970"
],
"fixed_version": "0.39.0",
"advisory_count": 1,
"oldest_advisory_days": 9
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"unknown": 3
},
"advisory_count": 3,
"affected_count": 3,
"assessed_count": 100,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 1
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/coder/websocket",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.8.15"
},
{
"name": "github.com/grandcat/zeroconf",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.0"
},
{
"name": "github.com/pion/ice/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.2.7"
},
{
"name": "github.com/pion/webrtc/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.2.16"
},
{
"name": "github.com/schollz/pake/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.1.1"
},
{
"name": "github.com/sethvargo/go-diceware",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.0"
},
{
"name": "github.com/skip2/go-qrcode",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20200617195104-da1b6568686e"
},
{
"name": "github.com/zricethezav/gitleaks/v8",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v8.30.1"
},
{
"name": "golang.org/x/crypto",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.52.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "github.com/coder/websocket",
"direct": true,
"version": "v1.8.15",
"ecosystem": "go"
},
{
"name": "github.com/grandcat/zeroconf",
"direct": true,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/pion/ice/v4",
"direct": true,
"version": "v4.2.7",
"ecosystem": "go"
},
{
"name": "github.com/pion/webrtc/v4",
"direct": true,
"version": "v4.2.16",
"ecosystem": "go"
},
{
"name": "github.com/schollz/pake/v3",
"direct": true,
"version": "v3.1.1",
"ecosystem": "go"
},
{
"name": "github.com/sethvargo/go-diceware",
"direct": true,
"version": "v0.5.0",
"ecosystem": "go"
},
{
"name": "github.com/skip2/go-qrcode",
"direct": true,
"version": "v0.0.0-20200617195104-da1b6568686e",
"ecosystem": "go"
},
{
"name": "github.com/zricethezav/gitleaks/v8",
"direct": true,
"version": "v8.30.1",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.52.0",
"ecosystem": "go"
},
{
"name": "dario.cat/mergo",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "filippo.io/edwards25519",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/andybalholm/brotli",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/aymanbagabas/go-osc52/v2",
"direct": false,
"version": "v2.0.1",
"ecosystem": "go"
},
{
"name": "github.com/bobusumisu/aho-corasick",
"direct": false,
"version": "v1.0.3",
"ecosystem": "go"
},
{
"name": "github.com/bodgit/plumbing",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/bodgit/sevenzip",
"direct": false,
"version": "v1.6.1",
"ecosystem": "go"
},
{
"name": "github.com/bodgit/windows",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff",
"direct": false,
"version": "v2.2.1+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/charmbracelet/colorprofile",
"direct": false,
"version": "v0.2.3-0.20250311203215-f60798e515dc",
"ecosystem": "go"
},
{
"name": "github.com/charmbracelet/lipgloss",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/charmbracelet/x/ansi",
"direct": false,
"version": "v0.8.0",
"ecosystem": "go"
},
{
"name": "github.com/charmbracelet/x/cellbuf",
"direct": false,
"version": "v0.0.13-0.20250311204145-2c3ea96c31dd",
"ecosystem": "go"
},
{
"name": "github.com/charmbracelet/x/term",
"direct": false,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/dsnet/compress",
"direct": false,
"version": "v0.0.2-0.20230904184137-39efe44ab707",
"ecosystem": "go"
},
{
"name": "github.com/fatih/semgroup",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/fsnotify/fsnotify",
"direct": false,
"version": "v1.8.0",
"ecosystem": "go"
},
{
"name": "github.com/gitleaks/go-gitdiff",
"direct": false,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/google/uuid",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/h2non/filetype",
"direct": false,
"version": "v1.1.3",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/go-version",
"direct": false,
"version": "v1.7.0",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/golang-lru/v2",
"direct": false,
"version": "v2.0.7",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/hcl",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/huandu/xstrings",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.0",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/pgzip",
"direct": false,
"version": "v1.2.6",
"ecosystem": "go"
},
{
"name": "github.com/lucasb-eyer/go-colorful",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/magiconair/properties",
"direct": false,
"version": "v1.8.9",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/goutils",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/semver/v3",
"direct": false,
"version": "v3.3.0",
"ecosystem": "go"
},
{
"name": "github.com/masterminds/sprig/v3",
"direct": false,
"version": "v3.3.0",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-colorable",
"direct": false,
"version": "v0.1.14",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-isatty",
"direct": false,
"version": "v0.0.20",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-runewidth",
"direct": false,
"version": "v0.0.16",
"ecosystem": "go"
},
{
"name": "github.com/mholt/archives",
"direct": false,
"version": "v0.1.5",
"ecosystem": "go"
},
{
"name": "github.com/miekg/dns",
"direct": false,
"version": "v1.1.27",
"ecosystem": "go"
},
{
"name": "github.com/mikelolasagasti/xz",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/minio/minlz",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/copystructure",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/mapstructure",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/reflectwalk",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/muesli/termenv",
"direct": false,
"version": "v0.16.0",
"ecosystem": "go"
},
{
"name": "github.com/nwaples/rardecode/v2",
"direct": false,
"version": "v2.2.0",
"ecosystem": "go"
},
{
"name": "github.com/pelletier/go-toml/v2",
"direct": false,
"version": "v2.2.3",
"ecosystem": "go"
},
{
"name": "github.com/pierrec/lz4/v4",
"direct": false,
"version": "v4.1.22",
"ecosystem": "go"
},
{
"name": "github.com/pion/datachannel",
"direct": false,
"version": "v1.6.2",
"ecosystem": "go"
},
{
"name": "github.com/pion/dtls/v3",
"direct": false,
"version": "v3.1.4",
"ecosystem": "go"
},
{
"name": "github.com/pion/interceptor",
"direct": false,
"version": "v0.1.45",
"ecosystem": "go"
},
{
"name": "github.com/pion/logging",
"direct": false,
"version": "v0.2.4",
"ecosystem": "go"
},
{
"name": "github.com/pion/mdns/v2",
"direct": false,
"version": "v2.1.0",
"ecosystem": "go"
},
{
"name": "github.com/pion/randutil",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/pion/rtcp",
"direct": false,
"version": "v1.2.16",
"ecosystem": "go"
},
{
"name": "github.com/pion/rtp",
"direct": false,
"version": "v1.10.2",
"ecosystem": "go"
},
{
"name": "github.com/pion/sctp",
"direct": false,
"version": "v1.10.3",
"ecosystem": "go"
},
{
"name": "github.com/pion/sdp/v3",
"direct": false,
"version": "v3.0.19",
"ecosystem": "go"
},
{
"name": "github.com/pion/srtp/v3",
"direct": false,
"version": "v3.0.12",
"ecosystem": "go"
},
{
"name": "github.com/pion/stun/v3",
"direct": false,
"version": "v3.1.6",
"ecosystem": "go"
},
{
"name": "github.com/pion/transport/v4",
"direct": false,
"version": "v4.0.2",
"ecosystem": "go"
},
{
"name": "github.com/pion/turn/v5",
"direct": false,
"version": "v5.0.10",
"ecosystem": "go"
},
{
"name": "github.com/rivo/uniseg",
"direct": false,
"version": "v0.4.7",
"ecosystem": "go"
},
{
"name": "github.com/rogpeppe/go-internal",
"direct": false,
"version": "v1.14.1",
"ecosystem": "go"
},
{
"name": "github.com/rs/zerolog",
"direct": false,
"version": "v1.33.0",
"ecosystem": "go"
},
{
"name": "github.com/sagikazarmark/locafero",
"direct": false,
"version": "v0.7.0",
"ecosystem": "go"
},
{
"name": "github.com/sagikazarmark/slog-shim",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/shopspring/decimal",
"direct": false,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/sorairolake/lzip-go",
"direct": false,
"version": "v0.3.8",
"ecosystem": "go"
},
{
"name": "github.com/sourcegraph/conc",
"direct": false,
"version": "v0.3.0",
"ecosystem": "go"
},
{
"name": "github.com/spf13/afero",
"direct": false,
"version": "v1.15.0",
"ecosystem": "go"
},
{
"name": "github.com/spf13/cast",
"direct": false,
"version": "v1.7.1",
"ecosystem": "go"
},
{
"name": "github.com/spf13/pflag",
"direct": false,
"version": "v1.0.6",
"ecosystem": "go"
},
{
"name": "github.com/spf13/viper",
"direct": false,
"version": "v1.19.0",
"ecosystem": "go"
},
{
"name": "github.com/starry-s/zip",
"direct": false,
"version": "v0.2.3",
"ecosystem": "go"
},
{
"name": "github.com/subosito/gotenv",
"direct": false,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/tetratelabs/wazero",
"direct": false,
"version": "v1.9.0",
"ecosystem": "go"
},
{
"name": "github.com/tscholl2/siec",
"direct": false,
"version": "v0.0.0-20240310163802-c2c6f6198406",
"ecosystem": "go"
},
{
"name": "github.com/ulikunitz/xz",
"direct": false,
"version": "v0.5.15",
"ecosystem": "go"
},
{
"name": "github.com/wasilibs/go-re2",
"direct": false,
"version": "v1.9.0",
"ecosystem": "go"
},
{
"name": "github.com/wasilibs/wazero-helpers",
"direct": false,
"version": "v0.0.0-20240620070341-3dff1577cd52",
"ecosystem": "go"
},
{
"name": "github.com/wlynxg/anet",
"direct": false,
"version": "v0.0.5",
"ecosystem": "go"
},
{
"name": "github.com/xo/terminfo",
"direct": false,
"version": "v0.0.0-20220910002029-abceb7e1c41e",
"ecosystem": "go"
},
{
"name": "go.uber.org/multierr",
"direct": false,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "go4.org",
"direct": false,
"version": "v0.0.0-20230225012048-214862532bf5",
"ecosystem": "go"
},
{
"name": "golang.org/x/exp",
"direct": false,
"version": "v0.0.0-20250218142911-aa4b98e5adaa",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": false,
"version": "v0.55.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": false,
"version": "v0.20.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": false,
"version": "v0.45.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": false,
"version": "v0.37.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/time",
"direct": false,
"version": "v0.15.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/check.v1",
"direct": false,
"version": "v1.0.0-20201130134442-10cb98267c6c",
"ecosystem": "go"
},
{
"name": "gopkg.in/ini.v1",
"direct": false,
"version": "v1.67.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v3",
"direct": false,
"version": "v3.0.1",
"ecosystem": "go"
}
],
"collected": true,
"truncated": false,
"total_count": 100,
"direct_count": 9,
"indirect_count": 91
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 5,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 3
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "hassankhurram",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/22665312?v=4"
},
{
"type": "User",
"login": "mokihk",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/266091931?v=4"
}
],
"contributors_sampled": 2,
"top_contributor_share": 0.786
},
"quality_signals": {
"has_ci": false,
"has_tests": true,
"ci_workflows": [],
"has_docs_dir": false,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 0,
"reason": "0 out of 5 merged PRs checked by a CI test -- score normalized to 0",
"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": 0,
"reason": "Found 0/18 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": null,
"reason": "no workflows found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": null,
"reason": "no dependencies found",
"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": null,
"reason": "No tokens found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 7,
"reason": "3 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "5163080b789d739bd646c64ffcd13975b5f544b4",
"ran_at": "2026-07-24T05:42:29Z",
"aggregate_score": 3.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-23T20:45:41Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-07-19T13:52:18Z",
"ci_last_conclusion": null,
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/share2us/cli-core",
"host": "github.com",
"name": "cli-core",
"owner": "share2us"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 43,
"inputs": {
"security": 43,
"vitality": 65,
"community": 33,
"governance": 45,
"engineering": 26
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 65,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "at_risk",
"name": "Development activity",
"note": null,
"notes": [],
"value": 49,
"inputs": {
"commits_last_year": 20,
"human_commit_share": 0.95,
"days_since_last_push": 0,
"active_weeks_last_year": 1
},
"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": "1/52 weeks with commits",
"points": 0.7,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 1
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "20 commits in the last year",
"points": 11.9,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 20
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 88,
"inputs": {
"releases_count": 15,
"latest_release_tag": "v0.8.0",
"releases_from_tags": true,
"days_since_latest_release": 0,
"mean_days_between_releases": 0.5
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "15 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 15
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~0.5 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 0.5
}
}
],
"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": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 33,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 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": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 45,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 16,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 2,
"top_contributor_share": 0.786
},
"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 79% of commits",
"points": 4.8,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 79
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "2 contributors",
"points": 2.7,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 2
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "at_risk",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 45,
"inputs": {
"merged_prs": 5,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 3
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "5/8 decided PRs merged",
"points": 23.9,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 5,
"decided": 8
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/18 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 36,
"inputs": {
"followers": 0,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "share2us",
"public_repos": 5,
"account_age_days": 14
},
"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": "0 followers of share2us",
"points": 0,
"status": "missed",
"details": [
{
"code": "owner_followers",
"params": {
"count": 0,
"login": "share2us"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "5 public repos, account ~0 yr old",
"points": 5.7,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 5
}
},
{
"code": "account_age_years",
"params": {
"years": 0
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/share2us/cli-core"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 0
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 0 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 0
}
}
],
"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": "critical",
"name": "Engineering Quality",
"value": 26,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "critical",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 24,
"inputs": {
"has_ci": false,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "0 out of 5 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "at_risk",
"name": "Documentation",
"note": null,
"notes": [],
"value": 30,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": false,
"has_description": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 0,
"status": "missed",
"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": 43,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"dangerous_workflow",
"packaging",
"pinned_dependencies",
"signed_releases",
"token_permissions"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 32,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 13,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 5,
"scorecard_aggregate": 3.2
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "0 out of 5 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"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": "Found 0/18 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no workflows found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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": "No tokens found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "3 existing vulnerabilities detected",
"points": 5.2,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 100 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 100
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 89,
"inputs": {
"source": "osv",
"advisories": 3,
"affected_packages": 3,
"assessed_packages": 100,
"unassessed_packages": 0,
"affected_by_severity": "unknown 3",
"direct_affected_packages": 1
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "1 affected: golang.org/x/crypto v0.52.0 (unknown)",
"points": 26.6,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 1,
"packages": "golang.org/x/crypto v0.52.0 (unknown)"
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory has been public longer than 90 days",
"points": 40,
"status": "met",
"details": [
{
"code": "advisories_none_stale",
"params": {
"days": 90
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 100,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "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": 1
},
"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": 57,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": "Excluded from scoring (no data or not applicable): Legible commit history. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"legible_commit_history"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"has_llms_txt": false,
"legible_history_share": null,
"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": "no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_pinned_dependencies"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 82,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.3,
"toolchain_manifests": [
"go.mod"
],
"dependency_bot_commit_share": 0.05
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "go.mod (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "go.mod"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "6 of the last 20 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 6,
"sampled": 20
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "1 of the last 20 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 1,
"sampled": 20
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 40824,
"source_files_sampled": 50,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/50 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 50,
"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": [],
"report_type": "repository",
"generated_at": "2026-07-24T05:42:36.836978Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/share2us/cli-core.svg",
"full_name": "share2us/cli-core",
"license_state": "standard",
"license_spdx": "MIT"
}