原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [],
"is_fork": true,
"size_kb": 19688,
"has_wiki": true,
"homepage": "http://satpy.readthedocs.org/en/latest/",
"languages": {
"Python": 1790616,
"Gherkin": 10395
},
"pushed_at": "2026-06-04T07:40:01Z",
"created_at": "2017-01-26T15:44:41Z",
"owner_type": "User",
"updated_at": "2019-02-27T14:17:54Z",
"description": "Python package for earth-observing satellite data processing",
"is_archived": false,
"is_disabled": false,
"license_spdx": "GPL-3.0",
"default_branch": "master",
"license_spdx_raw": "GPL-3.0",
"primary_language": "Python",
"significant_languages": [
"Python"
]
},
"owner": {
"blog": null,
"name": "Nina",
"type": "User",
"login": "ninahakansson",
"company": null,
"location": "Sweden",
"followers": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/6160529?v=4",
"created_at": "2013-12-11T11:32:27Z",
"is_verified": null,
"public_repos": 15,
"account_age_days": 4610
},
"license": {
"state": "standard",
"spdx_id": "GPL-3.0",
"raw_spdx": "GPL-3.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v0.3.1",
"kind": "patch",
"published_at": "2017-01-16T19:23:42Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2016-12-13T21:11:36Z"
},
{
"tag": "v0.2.1",
"kind": "patch",
"published_at": "2016-12-08T07:35:42Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2016-11-21T21:05:51Z"
}
],
"recent_commits": [
{
"oid": "a6cc153ef82fc09e1809202fa393d2e37199d5ef",
"body": null,
"is_bot": false,
"headline": "Editorial fixes after flake8 diff test",
"author_name": "Nina.Hakansson",
"author_login": null,
"committed_at": "2019-02-27T14:17:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aa113b62b32fd2980b371c81b390259d54986494",
"body": "Signed-off-by: Nina.Hakansson <a001865@c21515.ad.smhi.se>",
"is_bot": false,
"headline": "Fixing start and end times",
"author_name": "Nina.Hakansson",
"author_login": null,
"committed_at": "2019-02-27T13:56:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef5dc2cbc76c6147707f68a466b92baebc2057fd",
"body": "Add DNB satellite angles (DNB_SENZ, DNB_SENA) to VIIRS SDR reader",
"is_bot": false,
"headline": "Merge pull request #627 from simonrp84/master",
"author_name": "Martin Raspaud",
"author_login": "mraspaud",
"committed_at": "2019-02-25T13:07:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48be626ad4a9988cee5552a91cbd316a1c06920e",
"body": null,
"is_bot": false,
"headline": "Update to viirs reader to also load satellite angles for DNB datasets",
"author_name": "simonrp84",
"author_login": "simon-sat",
"committed_at": "2019-02-21T09:41:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a49bf6c99bd33c04fdd37ec515a0e2ad964def9",
"body": "Simplify feature request template",
"is_bot": false,
"headline": "Merge pull request #618 from djhoese/githbub-feature-template",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-18T19:13:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5cd57243445e412ed2774841887ee3e945b10433",
"body": "Add FAQ items on number of workers and threads",
"is_bot": false,
"headline": "Merge pull request #621 from pnuu/doc-faq-threading",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-18T00:36:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1e83d92e8061f4e29e28e925664635c6ef8f87e0",
"body": null,
"is_bot": false,
"headline": "Fix typos and reword parts of threading faqs",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-17T16:55:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1ecc93abdc49732090335a23497888509c5678ca",
"body": null,
"is_bot": false,
"headline": "Add FAQ items on nuberr of workers and threads",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-02-17T16:27:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab4905a4642cf3151516d0b261b3ec8c141bb703",
"body": null,
"is_bot": false,
"headline": "Simplify feature request template",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-15T15:43:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a54decd8ee4f7aeb0c8d6aec33f48cd179ed2864",
"body": null,
"is_bot": false,
"headline": "Update release notes for 0.12 release",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-15T14:42:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "060b245cf48614453da5f16d1bd3fd7da0121e26",
"body": "Fix pyresample import of parse_area_file for new version of pyresample",
"is_bot": false,
"headline": "Merge pull request #612 from djhoese/bugfix-pyresample-parse-import",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-15T02:18:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85758ba806969f75e8cd0b4896ccbbbfcdf9e455",
"body": "Fix geotiff writer being unimportable if gdal isn't installed",
"is_bot": false,
"headline": "Merge pull request #616 from djhoese/bugfix-geotiff-writer-import",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-14T19:21:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "baf5f42789b3b2eab6a224e63e7b223601b2b0ee",
"body": null,
"is_bot": false,
"headline": "Fix geotiff writer being unimportable if gdal isn't installed",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-14T18:39:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f55d08a68699cec06411bf5b7bcefdd932feb8b3",
"body": "Fix confusing error in abi_l1b reader when file fails to open",
"is_bot": false,
"headline": "Merge pull request #615 from djhoese/bugfix-abi-l1b-bad-file",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-13T19:05:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "57c7d215ef85528b27f38e1cef059e2c95b1e598",
"body": "Add 'crop' and 'save_datasets' to MultiScene",
"is_bot": false,
"headline": "Merge pull request #613 from djhoese/feature-mscn-crop-save-datasets",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-13T17:46:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c16c2ec99cab4b12c272e9309892376d0bde7c8",
"body": null,
"is_bot": false,
"headline": "Fix confusing error in abi_l1b reader when file fails to open",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-13T17:45:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68b8f7043e2318f0ca25352cd95cdc21c14a6c0c",
"body": null,
"is_bot": false,
"headline": "Add multiscene save_datasets example",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-13T16:39:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f71873ae540ca619e953aa7060644204fa6b0434",
"body": null,
"is_bot": false,
"headline": "Update multiscene sphinx page to reflect changes to save_animation",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-13T16:31:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a7117aa95d6b6f34505cab4046d653790736c0b",
"body": null,
"is_bot": false,
"headline": "Remove unused glob import",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-13T14:29:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "be9500db2d62731a92318eda5f008f40618ad51e",
"body": null,
"is_bot": false,
"headline": "Remove unused crop_area from multiscene tests",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-13T14:29:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ae25051c88cd78bd6f69c0008f6c3b7e3c8dfdf",
"body": null,
"is_bot": false,
"headline": "Add tests for multiscene crop and save_datasets",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-13T14:26:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "297a369227e9578cb444d90f3b508fd48e2b25b0",
"body": "Support for reduced resolution OLCI data",
"is_bot": false,
"headline": "Merge pull request #614 from simonrp84/master",
"author_name": "Martin Raspaud",
"author_login": "mraspaud",
"committed_at": "2019-02-13T07:40:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "65de49f56a88f906c283e48b8b4562673819ad5f",
"body": "…ead.",
"is_bot": false,
"headline": "Allows both full (EFR) and reduced (ERR) resolution OLCI data to be r…",
"author_name": "simonrp84",
"author_login": "simon-sat",
"committed_at": "2019-02-12T11:03:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b8888d44d0307f735b934cfc23adbde4f1c6fb08",
"body": null,
"is_bot": false,
"headline": "Fix indentation",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-11T15:33:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db56100a4097864eab87e2ae8bb9a29e92846e5f",
"body": null,
"is_bot": false,
"headline": "Fix pyresample import of parse_area_file for new version of pyresample",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-11T15:22:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "99f33b04f89a34d2c3ab3dfc850bbc5c1f8171b5",
"body": null,
"is_bot": false,
"headline": "Remove logic for creating a new dask client when using multiscene",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-11T15:20:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8080a7e1696b1a71bb947f41d4ce23a5318d8420",
"body": null,
"is_bot": false,
"headline": "Pass delayed object to multiscene save_datasets",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T19:45:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f712ce11a4248f18a6ff8195d9b7b374a9f5c23",
"body": null,
"is_bot": false,
"headline": "Try pushing save_datasets multiscene jobs from main thread",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T18:00:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "696a1cc8bcd1c23c3b89f0bf1c49e29db64efb10",
"body": null,
"is_bot": false,
"headline": "Try submitting save_datasets directly to dask distributed",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T17:46:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b0b66b7e0eeabe8014493d4d1841e1fd5992af3",
"body": null,
"is_bot": false,
"headline": "Fix non-serializable map_blocks calls throughout satpy",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T17:18:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ac83182078145b332ad30130759c012f592a4a1",
"body": null,
"is_bot": false,
"headline": "Remove old _mean method from native resampler",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T16:12:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7332c62c65cdf9818a0b8b975d4c07e1f19d019f",
"body": null,
"is_bot": false,
"headline": "Move _mean4 internal functions so they can be serialized",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T16:00:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7981e2b6f597689993e323c9dba00e1bcb85270c",
"body": null,
"is_bot": false,
"headline": "Add MultiScene crop and save_datasets methods",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T15:41:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71d215cffc2eede19dc908987e0f5ed24bcb603a",
"body": "Add ability to use dask distributed when generating animation videos",
"is_bot": false,
"headline": "Merge pull request #609 from djhoese/feature-distributed-animations",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T14:03:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "24205cf01bcce50cd4a57856f3bcd4b9dd8ba8d7",
"body": null,
"is_bot": false,
"headline": "Try mocking client in multiscene distributed tests",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-09T03:29:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dba3fddc08ef33555680cfa70ec6318aff3d72a5",
"body": null,
"is_bot": false,
"headline": "Fix python 2 import of queue in MultiScene",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-07T21:17:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6da5cc2b63266b86565d658dc14faf0449069b1b",
"body": null,
"is_bot": false,
"headline": "Remove distributed multiscene test to see if tests pass",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-07T18:36:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bb67a55b79eb3911db1470f421b0b690bc46badc",
"body": null,
"is_bot": false,
"headline": "Try disabling diagnostics dashboard to fix tests",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T23:42:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "40f8c24baaac20b9434361e4e16d8ffc91f066c9",
"body": null,
"is_bot": false,
"headline": "Clean up old multiscene animation saving code",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T21:16:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c264eef651e15e2f93f7bd27ff79b060b000911",
"body": "Fix enhancements using dask delayed on internal functions",
"is_bot": false,
"headline": "Merge pull request #605 from djhoese/bugfix-delayed-enhancements",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T20:57:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "007b16837847559c452d664199e881f4e7d10c4d",
"body": null,
"is_bot": false,
"headline": "Cleanup distributed and simple frame processing in MultiScene",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T19:06:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d82aec3514dbdb67a0dd1f7a5554b119877a1538",
"body": "Fix VIIRS 'histogram_dnb' compositor not returning new data",
"is_bot": false,
"headline": "Merge pull request #607 from djhoese/bugfix-viirs-histogram-dnb",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T14:08:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3c385058a7020177d28bbfecd829f0a68083ae12",
"body": null,
"is_bot": false,
"headline": "Lower tolerance for histogram dnb test",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T03:55:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54b8f2a80c77be3b1af04e8545b7c3d706c6930f",
"body": null,
"is_bot": false,
"headline": "Allow for small differences in histogram_dnb test",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T03:32:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "261269536a542b45c5fc25530834cc670997b91f",
"body": null,
"is_bot": false,
"headline": "Use distributed's gather to clean up code",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T03:30:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f10c2e95b3904a281f3b452b3139e3f7952a6b76",
"body": null,
"is_bot": false,
"headline": "Fix VIIRS 'histogram_dnb' compositor not returning new data",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-06T02:56:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5da5573685a0e0ea27835fc011230287e546680",
"body": null,
"is_bot": false,
"headline": "Use threaded queue for loading multiscene animation frames",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-05T16:24:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "07a4b89e2b61bdad5ec1e25f3f992611c3e388f1",
"body": null,
"is_bot": false,
"headline": "Add proof of concept multiscene save_animation using dask distributed",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-05T02:25:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b1d7cff6dab19c7f4f091f48537a4ac82fb8157c",
"body": "Internal functions are not dask serializable and fail on multi-process\nschedulers.",
"is_bot": false,
"headline": "Fix enhancements using dask delayed on internal functions",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-02-04T17:51:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7cbb032e585f33e6dbe1cac41f45efe302d59361",
"body": "…sets\n\nFix MultiScene save_animation not using dataset IDs correctly",
"is_bot": false,
"headline": "Merge pull request #602 from djhoese/bugfix-multiscene-animation-data…",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-31T16:52:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db7ce9dcd624f7b4bb10d38f9d608a77758bd677",
"body": "Fix #601",
"is_bot": false,
"headline": "Fix MultiScene save_animation not using dataset IDs correctly",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-31T16:20:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5426659d1b89973d4a285c138ebee08264a85b5",
"body": "Fix resample reduce_data bug introduced in #582",
"is_bot": false,
"headline": "Merge pull request #600 from djhoese/bugfix-reduce-data",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-31T00:42:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d46766293654d868e958591e6f8aa3f27ca11e14",
"body": null,
"is_bot": false,
"headline": "Fix resample reduce_data bug introduced in #582",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-30T23:59:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ea26c9b997192d95859d63495ebad9d8ba58306c",
"body": "Add group_files and from_files utility functions for creating Scenes from multiple files",
"is_bot": false,
"headline": "Merge pull request #576 from djhoese/feature-group-files",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-29T19:28:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "269117a3394e84a836fc82e473b1bcb5e7746b11",
"body": "Add utility functions for generating GeoViews plots",
"is_bot": false,
"headline": "Merge pull request #567 from djhoese/geoviews_cherry",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-29T19:24:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b354fedcb4eb0f4399c6102c2480be136b79face",
"body": "Add 'reduce_data' keyword argument to disable cropping before resampling",
"is_bot": false,
"headline": "Merge pull request #582 from pnuu/feature-optional-datareduction",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-29T19:23:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "111a9eed6d9df407f10f962fc0a3a5e880fa884f",
"body": null,
"is_bot": false,
"headline": "Add tests for multiscene blending functions",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-29T18:06:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4051e057c8e01357a9006e1684731c6ca4538fbf",
"body": null,
"is_bot": false,
"headline": "Add basic tests for geoviews method",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-29T17:52:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e14dde2262a7a63e8cd9b173bd31d830730ee28d",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into geoviews_cherry",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-29T01:15:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "453a71379ab9543eb946f50cd9c32659d3332bb4",
"body": "Fix AHI HSD test to work with newer versions of pyresample",
"is_bot": false,
"headline": "Merge pull request #599 from djhoese/bugfix-ahi-hsd-test",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-28T21:24:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d3b9dbb85867ca54c24f9fbdecc1e93c772a11b5",
"body": null,
"is_bot": false,
"headline": "Fix geoviews links in quickstart docs",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-28T18:41:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "666b4cfa17890ddb9b20375ac25486d3ad659378",
"body": null,
"is_bot": false,
"headline": "Fix AHI HSD test to work with newer versions of pyresample",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-28T17:49:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b0a292fe281936a6587711836b18deb46b5f0bad",
"body": null,
"is_bot": false,
"headline": "Update MultiScene blending documentation",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-28T17:43:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee1ee7deb9f7715a7d11cb32c6bdb6339986c08a",
"body": null,
"is_bot": false,
"headline": "Update release notes for 0.11.2 release",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-28T16:47:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "729b0679dadf1cd8973bef3ad09c910c6897d250",
"body": "Fix VIIRS SDR masking and distracting colors in composites",
"is_bot": false,
"headline": "Merge pull request #572 from pnuu/bugfix-viirs-sdr-masking",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-01-28T07:29:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "60ffcd1076c6f8bce92c238d7b9263b322899f07",
"body": "This reverts commit 63c74743",
"is_bot": false,
"headline": "Revert \"Mask values less than equal to zero\"",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-27T16:50:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a32193659f85c5f5754c9bba2681f165403eb4d",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into feature-optional-datareduction",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-27T15:27:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "02d9e9105953bee9cad2e4f982d187eec94b0fd8",
"body": "Fix sunz_corrected modifier adding unnecessary x and y coordinates",
"is_bot": false,
"headline": "Merge pull request #593 from djhoese/bugfix-sunz-corrected-coords",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-27T15:10:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b413cd6c5655f9648f03ab6fc4726849d4cf6006",
"body": "Fix VIIRS L1B reader not using standard 'y' and 'x' dimension names",
"is_bot": false,
"headline": "Merge pull request #594 from djhoese/bugfix-viirs-l1b-dims",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-27T15:10:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a6683410f85bfdf4dd1a62ab2ee7df7b7d39fe08",
"body": "* Force rasterio version to fix PROJ4 to WKT change\r\n\r\nSee https://github.com/pydata/xarray/pull/2715\r\n\r\n* Try escaping quotes in travis CI\r\n\r\n* Try single quotes in travis reqs\r\n\r\n* Try no quotes in travis config",
"is_bot": false,
"headline": "Force rasterio version to fix PROJ4 to WKT change (#595)",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-27T15:07:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c3bb7315e7db956cebe55b1192a4ba189a744605",
"body": null,
"is_bot": false,
"headline": "Add 'reduce_data' kwarg to scn.resample()",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-01-26T08:24:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5aba5ec16c4047ef71fef75db6e3fe7fc115852",
"body": null,
"is_bot": false,
"headline": "Simplify masking logic in GenericCompositor",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-26T04:00:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4377291cbef3438e2989a08c1dc54637b35e69a5",
"body": null,
"is_bot": false,
"headline": "Add explicit tests for coords in sunz corrector",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-26T01:24:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf4a79ea5fc208590e86da5d5f781a00342c09e0",
"body": null,
"is_bot": false,
"headline": "Fix sunz_corrected modifier adding unnecessary x and y coordinates",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T21:57:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "78c891782bf66caf9923dd1bce0e2d981c86af51",
"body": null,
"is_bot": false,
"headline": "Fix VIIRS L1B reader not using standard 'y' and 'x' dimension names",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T21:54:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87d7ac1dfd0df65810b9c29a15f7571d496d1997",
"body": null,
"is_bot": false,
"headline": "Add 'group_keys' to ABI/AHI reader yaml files for group_files",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T18:06:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5c5f0c59bb130cc01b2f0c51e330f16f48f3b9d8",
"body": "Fix masking of AHI HSD space pixels",
"is_bot": false,
"headline": "Merge pull request #592 from sfinkens/fix_531",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T17:55:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e473030fa02cb00163a988db00e98f9508d73050",
"body": "Add FAQ page to docs",
"is_bot": false,
"headline": "Merge pull request #590 from djhoese/doc-faq",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T17:38:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "16feb7e9d48954599fe8b77f9f135314fdcadab8",
"body": "Fix dask deprecation warning for sharedict in multiscene",
"is_bot": false,
"headline": "Merge pull request #591 from djhoese/bugfix-dask-sharedict-deprecate",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T17:37:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9aec74e08da3024c6f3896869fe9038d3d41056e",
"body": null,
"is_bot": false,
"headline": "Fix Stickler issues",
"author_name": "Stephan Finkensieper",
"author_login": "sfinkens",
"committed_at": "2019-01-25T17:25:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1ad5fc3287c49d26797e29ae6565ac8f4acdeac8",
"body": null,
"is_bot": false,
"headline": "Refactor read_band() to facilitate testing",
"author_name": "Stephan Finkensieper",
"author_login": "sfinkens",
"committed_at": "2019-01-25T17:05:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d6824aed6b5eabe7014f68795e716fb5b4c744d4",
"body": null,
"is_bot": false,
"headline": "Use geostationary mask from readers.utils",
"author_name": "Stephan Finkensieper",
"author_login": "sfinkens",
"committed_at": "2019-01-25T16:38:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6539687e82d2b767ec1f1da4a425a4d60941a8d1",
"body": "PyCharm told me it wasn't being used",
"is_bot": false,
"headline": "Fix accidental removal of chain import",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T15:58:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "521da87713f833ae75c7fed8ff128d3ab3da1b3a",
"body": null,
"is_bot": false,
"headline": "Fix dask deprecation warning for sharedict in multiscene",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T15:19:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b60273e111186392c2698a9e901bf5ff7375d675",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into feature-group-files",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T15:12:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b4cb681068a2e9322041cad8d1c0aea2844115cd",
"body": null,
"is_bot": false,
"headline": "Add FAQ page to docs",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-25T15:12:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "73c1600ff84eb0c79ac07c5df965cb77f8c7931f",
"body": "Fix start_time type in seviri_l1b_nc reader",
"is_bot": false,
"headline": "Merge pull request #588 from BENR0/fix_start_time_seviri_l1b_nc_reader",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-24T13:32:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c2a7427e95dc8d4317ac867f4d53331024ff297",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into bugfix-viirs-sdr-masking",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-01-24T05:57:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fc4540254f10cf16544ef8103758502715941cc",
"body": null,
"is_bot": false,
"headline": "Merge branch 'master' into feature-optional-datareduction",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-01-24T05:56:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d83abd8d92b624b85132d0ed6a4d9a6d2d6cc869",
"body": "Fix geotiff writer not using fill_value from writer YAML config",
"is_bot": false,
"headline": "Merge pull request #585 from djhoese/bugfix-geotiff-fill-value",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-23T19:34:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8d1a14c9301e4a650ad0e6964b62184e7ea24d9c",
"body": null,
"is_bot": false,
"headline": "Fix remove datetime to string function in seviri_l1b_nc reader",
"author_name": "ro",
"author_login": "BENR0",
"committed_at": "2019-01-23T15:36:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d011adfb6368fc73ba86fed0fd3ec1913ec29878",
"body": "Fix dask not importing sharedict automatically in dask 1.1+",
"is_bot": false,
"headline": "Merge pull request #589 from djhoese/bugfix-dask-sharedict",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-23T15:04:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "88479113d2b8d88d6fd0c8dcbcef43e941ddd71b",
"body": null,
"is_bot": false,
"headline": "Fix dask not importing sharedict automatically in dask 1.1+",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-23T14:41:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5f13bab53d2c1fe3f25b63f156c6c8c0d0907fb2",
"body": "Trying to write out geotiff files from data loaded with seviri_l1b_nc\nreader gives Error because the reader sets start_time and end_time as\nstring instead of datetime. This commit fixes this error.",
"is_bot": false,
"headline": "Fix start_time type in seviri_l1b_nc reader",
"author_name": "ro",
"author_login": "BENR0",
"committed_at": "2019-01-23T13:33:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4716b4e80f10af47007aa38e91f4147b594baf4d",
"body": null,
"is_bot": false,
"headline": "Add tests for disabling data reduction",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-01-23T08:50:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83e27760abb0692fea0373d8c9c20171d551079f",
"body": null,
"is_bot": false,
"headline": "Move data reduction to a separate method",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-01-23T08:46:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af1fe04f7b2684a3db120aee8e1187de07aa2e29",
"body": null,
"is_bot": false,
"headline": "Fix geotiff writer not using fill_value from writer YAML config",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-22T18:19:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "630cc37b9ef94bc02dce6c804a81443f326e20f7",
"body": "Fix AreaDefinition usage to work with newer versions of pyresample",
"is_bot": false,
"headline": "Merge pull request #554 from djhoese/bugfix-new-resample",
"author_name": "David Hoese",
"author_login": "djhoese",
"committed_at": "2019-01-22T17:44:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "569cae33ff328af7f59b3a2e71185ab5a08768c9",
"body": null,
"is_bot": false,
"headline": "Change log level of data reduction disabling from info to debug",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-01-22T13:38:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "51a982365a0c7016e5d649f73809c4f6f8a6bf6d",
"body": null,
"is_bot": false,
"headline": "Make 'reduce_data' explicit kwarg",
"author_name": "Panu Lahtinen",
"author_login": "pnuu",
"committed_at": "2019-01-22T13:38:29Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 4,
"commits_last_year": 0,
"latest_release_at": "2017-01-16T19:23:42Z",
"latest_release_tag": "v0.3.1",
"releases_from_tags": true,
"days_since_last_push": 52,
"active_weeks_last_year": 0,
"days_since_latest_release": 3477,
"mean_days_between_releases": 18.6
},
"community": {
"has_readme": false,
"has_license": false,
"has_description": false,
"has_contributing": false,
"health_percentage": null,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": []
},
"popularity": {
"forks": 0,
"stars": 0,
"watchers": 1,
"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": [
"doc/Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 80716,
"source_files_sampled": 144,
"oversized_source_files": 2,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"setup.cfg",
"setup.py"
],
"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": [
"pypi"
],
"dependencies": [],
"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": 0,
"merged_prs": 0,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 2,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "mraspaud",
"commits": 1865,
"avatar_url": "https://avatars.githubusercontent.com/u/167802?v=4"
},
{
"type": "User",
"login": "djhoese",
"commits": 1289,
"avatar_url": "https://avatars.githubusercontent.com/u/1828519?v=4"
},
{
"type": "User",
"login": "pnuu",
"commits": 314,
"avatar_url": "https://avatars.githubusercontent.com/u/3170788?v=4"
},
{
"type": "User",
"login": "adybbroe",
"commits": 202,
"avatar_url": "https://avatars.githubusercontent.com/u/169069?v=4"
},
{
"type": "User",
"login": "loerum",
"commits": 73,
"avatar_url": "https://avatars.githubusercontent.com/u/197779?v=4"
},
{
"type": "User",
"login": "sfinkens",
"commits": 64,
"avatar_url": "https://avatars.githubusercontent.com/u/1991007?v=4"
},
{
"type": "User",
"login": "wroberts4",
"commits": 39,
"avatar_url": "https://avatars.githubusercontent.com/u/38170479?v=4"
},
{
"type": "User",
"login": "sjoro",
"commits": 21,
"avatar_url": "https://avatars.githubusercontent.com/u/36533519?v=4"
},
{
"type": "User",
"login": "m4sth0",
"commits": 14,
"avatar_url": "https://avatars.githubusercontent.com/u/5738472?v=4"
},
{
"type": "User",
"login": "BENR0",
"commits": 13,
"avatar_url": "https://avatars.githubusercontent.com/u/12115839?v=4"
}
],
"contributors_sampled": 30,
"top_contributor_share": 0.47
},
"quality_signals": {
"has_ci": false,
"has_tests": true,
"ci_workflows": [],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 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": null,
"reason": "no pull request found",
"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/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 9 contributing companies or organizations",
"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": 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": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"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": "no SAST tool detected",
"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": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "a6cc153ef82fc09e1809202fa393d2e37199d5ef",
"ran_at": "2026-07-26T19:01:05Z",
"aggregate_score": 3,
"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": null,
"oldest_open_prs": [],
"last_merged_pr_at": null,
"ci_last_conclusion": null,
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/ninahakansson/satpy",
"host": "github.com",
"name": "satpy",
"owner": "ninahakansson"
},
"metrics": {
"overall": {
"key": "overall",
"band": "critical",
"name": "Overall health",
"note": "Abandonment Policy applies a 85% multiplier to weighted overall health.",
"notes": [
{
"code": "abandonment_overall_adjustment",
"params": {
"cap": 0,
"pct": 85
}
}
],
"value": 26,
"inputs": {
"security": 30,
"vitality": 30,
"community": 12,
"governance": 37,
"engineering": 38,
"abandonment_cap": null,
"abandonment_state": "at_risk",
"abandonment_multiplier": 85,
"weighted_overall_before_abandonment": 30,
"overall_after_abandonment_multiplier": 26
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "at_risk",
"name": "Vitality",
"value": 30,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "critical",
"name": "Development activity",
"note": null,
"notes": [],
"value": 18,
"inputs": {
"commits_last_year": 0,
"human_commit_share": 1,
"days_since_last_push": 52,
"active_weeks_last_year": 0
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 52 days ago",
"points": 18,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 52
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "0/52 weeks with commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 0
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "0 commits in the last year",
"points": 0,
"status": "missed",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 0
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "at_risk",
"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": 48,
"inputs": {
"releases_count": 4,
"latest_release_tag": "v0.3.1",
"releases_from_tags": true,
"days_since_latest_release": 3477,
"mean_days_between_releases": 18.6
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "4 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 4
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 3477 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "release_recency",
"params": {
"days": 3477
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~18.6 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 18.6
}
}
],
"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": 85,
"inputs": {
"cap": null,
"state": "at_risk",
"guards": [
"no_open_demand"
],
"signals": [
"release_stall",
"scorecard_unmaintained"
],
"red_flag": true,
"multiplier_pct": 85,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": 0,
"unanswered_open_issues": 0,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 2706,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "no human commit for 2706 days; 2 unmet obligation(s): releases stalled, Scorecard reports it unmaintained",
"points": 85,
"status": "partial",
"details": [
{
"code": "abandonment_flagged",
"params": {
"days": 2706,
"count": 2,
"signals": "releases stalled, Scorecard reports it unmaintained"
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 12,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 0,
"watchers": 1,
"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": "1 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 1
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "critical",
"name": "Community health",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"has_readme": false,
"has_license": false,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (GPL-3.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "GPL-3.0"
}
}
],
"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": 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": 37,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 30,
"top_contributor_share": 0.47
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 47% of commits",
"points": 11.9,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 47
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "30 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 30
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 9 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "critical",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution",
"pr_acceptance"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"merged_prs": 0,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0
},
"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": "no decided pull requests or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_decided_prs_or_data",
"params": {}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 45,
"inputs": {
"followers": 4,
"owner_type": "User",
"is_verified": null,
"owner_login": "ninahakansson",
"public_repos": 15,
"account_age_days": 4610
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "4 followers of ninahakansson",
"points": 5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 4,
"login": "ninahakansson"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "15 public repos, account ~12 yr old",
"points": 20.8,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 15
}
},
{
"code": "account_age_years",
"params": {
"years": 12
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "at_risk",
"name": "Engineering Quality",
"value": 38,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "at_risk",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 30,
"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": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": "http://satpy.readthedocs.org/en/latest/",
"has_readme": false,
"has_docs_dir": true,
"has_description": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "http://satpy.readthedocs.org/en/latest/",
"points": 15,
"status": "met",
"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": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 30,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"dangerous_workflow",
"packaging",
"pinned_dependencies",
"signed_releases",
"token_permissions"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 30,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 12,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 6,
"scorecard_aggregate": 3
},
"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": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 9 contributing companies or organizations",
"points": 2.5,
"status": "met",
"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": "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 detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"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": "no SAST tool detected",
"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": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"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": 10
},
"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": "at_risk",
"name": "AI Readiness",
"value": 36,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 16,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.31,
"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": "31 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 16.5,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 31,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"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": 44,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [
"doc/Makefile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "doc/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "doc/Makefile"
}
}
],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"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": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"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": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "moderate",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"primary_language": "Python",
"largest_source_bytes": 80716,
"source_files_sampled": 144,
"oversized_source_files": 2
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Python without a type-check config",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_typecheck_config_language",
"params": {
"language": "Python"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "2/144 source files over 60KB",
"points": 54.2,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 144,
"oversized": 2
}
}
],
"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": [
"Community profile unavailable",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-26T19:01:21.484844Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/ninahakansson/satpy.svg",
"full_name": "ninahakansson/satpy",
"license_state": "standard",
"license_spdx": "GPL-3.0"
}