JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [],
"is_fork": true,
"size_kb": 14699,
"has_wiki": true,
"homepage": "https://openresty.org",
"languages": {
"C": 1388420,
"Lua": 57005,
"Perl": 13519,
"Shell": 4017,
"DTrace": 2269,
"Makefile": 25
},
"pushed_at": "2020-07-06T02:33:43Z",
"created_at": "2015-12-16T05:30:25Z",
"owner_type": "User",
"updated_at": "2021-07-16T09:37:35Z",
"description": "Embed the Power of Lua into NGINX HTTP servers",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "master",
"license_spdx_raw": null,
"primary_language": "C",
"significant_languages": [
"C"
]
},
"owner": {
"blog": null,
"name": "Thibault Charbonnier",
"type": "User",
"login": "thibaultcha",
"company": null,
"location": null,
"followers": 637,
"avatar_url": "https://avatars.githubusercontent.com/u/1125431?v=4",
"created_at": "2011-10-13T12:24:25Z",
"is_verified": null,
"public_repos": 76,
"account_age_days": 5400
},
"license": {
"state": "absent",
"spdx_id": null,
"raw_spdx": null,
"file_present": false,
"scorecard_found": false,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v0.9.19",
"kind": "patch",
"published_at": "2015-11-11T09:49:24Z"
},
{
"tag": "v0.9.18",
"kind": "patch",
"published_at": "2015-11-04T14:42:39Z"
},
{
"tag": "v0.9.17",
"kind": "patch",
"published_at": "2015-10-27T09:11:14Z"
},
{
"tag": "v0.9.16",
"kind": "patch",
"published_at": "2015-06-23T14:25:43Z"
},
{
"tag": "v0.9.15",
"kind": "patch",
"published_at": "2015-02-18T23:29:39Z"
},
{
"tag": "v0.9.14",
"kind": "patch",
"published_at": "2015-01-21T22:24:58Z"
},
{
"tag": "v0.9.13",
"kind": "patch",
"published_at": "2014-11-22T05:09:29Z"
},
{
"tag": "v0.9.12",
"kind": "patch",
"published_at": "2014-09-03T03:48:16Z"
},
{
"tag": "v0.9.11",
"kind": "patch",
"published_at": "2014-08-16T20:36:35Z"
},
{
"tag": "v0.9.10",
"kind": "patch",
"published_at": "2014-07-08T20:47:41Z"
},
{
"tag": "v0.9.9",
"kind": "patch",
"published_at": "2014-07-01T04:21:03Z"
},
{
"tag": "v0.9.8",
"kind": "patch",
"published_at": "2014-06-01T04:45:29Z"
},
{
"tag": "v0.9.7",
"kind": "patch",
"published_at": "2014-04-07T00:04:11Z"
},
{
"tag": "v0.9.6",
"kind": "patch",
"published_at": "2014-03-20T20:18:51Z"
},
{
"tag": "v0.9.5",
"kind": "patch",
"published_at": "2014-03-12T22:50:02Z"
},
{
"tag": "v0.9.4",
"kind": "patch",
"published_at": "2014-01-10T23:13:54Z"
},
{
"tag": "v0.9.3",
"kind": "patch",
"published_at": "2013-12-14T21:29:06Z"
},
{
"tag": "v0.9.2",
"kind": "patch",
"published_at": "2013-11-06T20:05:58Z"
},
{
"tag": "v0.9.1",
"kind": "patch",
"published_at": "2013-10-29T19:05:54Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2013-09-30T03:39:13Z"
},
{
"tag": "v0.8.10",
"kind": "patch",
"published_at": "2013-09-22T21:52:32Z"
},
{
"tag": "v0.8.9",
"kind": "patch",
"published_at": "2013-09-15T20:46:28Z"
},
{
"tag": "v0.8.8",
"kind": "patch",
"published_at": "2013-09-08T23:51:32Z"
},
{
"tag": "v0.8.7",
"kind": "patch",
"published_at": "2013-09-02T19:58:33Z"
},
{
"tag": "v0.8.6",
"kind": "patch",
"published_at": "2013-08-06T23:21:39Z"
},
{
"tag": "v0.8.5",
"kind": "patch",
"published_at": "2013-07-18T19:53:33Z"
},
{
"tag": "v0.8.4",
"kind": "patch",
"published_at": "2013-07-11T06:09:09Z"
},
{
"tag": "v0.8.3",
"kind": "patch",
"published_at": "2013-06-20T23:02:01Z"
},
{
"tag": "v0.8.2",
"kind": "patch",
"published_at": "2013-05-23T19:21:18Z"
},
{
"tag": "v0.8.1",
"kind": "patch",
"published_at": "2013-04-26T19:27:52Z"
},
{
"tag": "v0.8.0",
"kind": "minor",
"published_at": "2013-04-23T19:29:14Z"
},
{
"tag": "v0.7.21",
"kind": "patch",
"published_at": "2013-04-16T23:17:17Z"
},
{
"tag": "v0.7.20",
"kind": "patch",
"published_at": "2013-04-09T23:59:46Z"
},
{
"tag": "v0.7.19",
"kind": "patch",
"published_at": "2013-03-27T19:41:19Z"
},
{
"tag": "v0.7.18",
"kind": "patch",
"published_at": "2013-03-25T05:15:48Z"
},
{
"tag": "v0.7.17",
"kind": "patch",
"published_at": "2013-03-11T19:23:08Z"
},
{
"tag": "v0.7.16",
"kind": "patch",
"published_at": "2013-02-23T06:43:34Z"
},
{
"tag": "v0.7.15",
"kind": "patch",
"published_at": "2013-02-13T05:59:26Z"
},
{
"tag": "v0.7.14",
"kind": "patch",
"published_at": "2013-01-29T00:37:30Z"
},
{
"tag": "v0.7.13",
"kind": "patch",
"published_at": "2013-01-04T00:55:34Z"
},
{
"tag": "v0.7.12",
"kind": "patch",
"published_at": "2012-12-30T05:29:42Z"
},
{
"tag": "v0.7.11",
"kind": "patch",
"published_at": "2012-12-28T01:37:11Z"
},
{
"tag": "v0.7.10",
"kind": "patch",
"published_at": "2012-12-26T05:51:53Z"
},
{
"tag": "v0.7.9",
"kind": "patch",
"published_at": "2012-12-23T06:58:51Z"
},
{
"tag": "v0.7.8",
"kind": "patch",
"published_at": "2012-12-09T07:39:19Z"
},
{
"tag": "v0.7.7",
"kind": "patch",
"published_at": "2012-12-08T08:06:42Z"
},
{
"tag": "v0.7.6",
"kind": "patch",
"published_at": "2012-12-05T23:24:58Z"
},
{
"tag": "v0.7.5",
"kind": "patch",
"published_at": "2012-11-20T22:57:52Z"
},
{
"tag": "v0.7.4",
"kind": "patch",
"published_at": "2012-11-11T20:35:00Z"
},
{
"tag": "v0.7.3",
"kind": "patch",
"published_at": "2012-10-31T00:12:17Z"
},
{
"tag": "v0.7.2",
"kind": "patch",
"published_at": "2012-10-17T22:20:37Z"
},
{
"tag": "v0.7.1",
"kind": "patch",
"published_at": "2012-10-14T03:02:59Z"
},
{
"tag": "v0.7.0",
"kind": "minor",
"published_at": "2012-10-11T00:26:54Z"
},
{
"tag": "v0.6.10",
"kind": "patch",
"published_at": "2012-10-06T02:48:53Z"
},
{
"tag": "v0.6.9",
"kind": "patch",
"published_at": "2012-10-03T01:08:01Z"
},
{
"tag": "v0.6.8",
"kind": "patch",
"published_at": "2012-09-29T03:33:38Z"
},
{
"tag": "v0.6.7",
"kind": "patch",
"published_at": "2012-09-27T05:10:30Z"
},
{
"tag": "v0.6.6",
"kind": "patch",
"published_at": "2012-09-20T21:54:17Z"
},
{
"tag": "v0.6.5",
"kind": "patch",
"published_at": "2012-09-15T20:16:22Z"
},
{
"tag": "v0.6.4",
"kind": "patch",
"published_at": "2012-09-10T04:30:41Z"
},
{
"tag": "v0.6.3",
"kind": "patch",
"published_at": "2012-08-26T06:55:22Z"
},
{
"tag": "v0.6.2",
"kind": "patch",
"published_at": "2012-08-22T22:25:54Z"
},
{
"tag": "v0.6.1",
"kind": "patch",
"published_at": "2012-08-19T23:14:01Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2012-08-18T16:17:24Z"
},
{
"tag": "v0.5.14",
"kind": "patch",
"published_at": "2012-08-14T05:22:25Z"
},
{
"tag": "v0.5.13",
"kind": "patch",
"published_at": "2012-08-12T18:18:23Z"
},
{
"tag": "v0.5.12",
"kind": "patch",
"published_at": "2012-08-04T23:56:24Z"
},
{
"tag": "v0.5.11",
"kind": "patch",
"published_at": "2012-07-31T04:57:17Z"
},
{
"tag": "v0.5.10",
"kind": "patch",
"published_at": "2012-07-30T06:46:25Z"
},
{
"tag": "v0.5.9",
"kind": "patch",
"published_at": "2012-07-26T18:20:41Z"
},
{
"tag": "v0.5.8",
"kind": "patch",
"published_at": "2012-07-21T17:59:41Z"
}
],
"recent_commits": [
{
"oid": "028c0d4951c7ad99dabf32b3a931d8caac7a5c63",
"body": null,
"is_bot": false,
"headline": "doc: mentioned that 1.17.8 is the latest NGINX core version tested.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2020-01-22T23:16:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c06793c3e1431b24332b8b0239cc43df43361941",
"body": null,
"is_bot": false,
"headline": "travis-ci: bumped the NGINX core to 1.17.8.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2020-01-22T22:22:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d328e5620eaebe3e61fb7ce795a39ede5ce81f46",
"body": "…derr.",
"is_bot": false,
"headline": "tests: 025-codecache.t: updated a test case to avoid error logs in st…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2020-01-22T22:20:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c2390abb584e7aa69894e7d8a6acc7dd7879a753",
"body": "… NGINX module's main_conf.\"\n\nThis reverts commit 09484e8fda2f1c1970a898a8c08111af13d69930.",
"is_bot": false,
"headline": "Revert \"bugfix: ensured 'init_worker_by_lua*' does not mutate another…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2020-01-17T22:46:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3286454308863f4ea8d0090c900da3ab74bd1fa",
"body": "… without PCRE support.",
"is_bot": false,
"headline": "change: we now ignore 'lua_regex_*' directives when NGINX is compiled…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2020-01-14T00:32:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f518e7d92314b961cada4c9ba9e45d15f7b25f7",
"body": null,
"is_bot": false,
"headline": "travis-ci: bumped OpenSSL to 1.0.2u.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2020-01-06T22:26:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "760f7073da87da23bb4f024943089edfad35c72e",
"body": "… API.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "feature: implemented the FFI interface for the 'ngx_req.add_header()'…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-12-03T19:15:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c5b11d73785fa72291e3280e293b3e0cfab57db",
"body": null,
"is_bot": false,
"headline": "tests: 124-init-worker.t: fixed a few failing test cases.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-12-03T00:13:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a3ac3f557eed7efa3460d0870684f18d232adf5f",
"body": "…ined.\n\nNo need to check if `nginx_version` is defined, as of NGINX 1.6.0+\n(today's minimum supported core version), always is.",
"is_bot": false,
"headline": "style: updated 'nginx_version' guard macros assuming it is always def…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-09-30T22:07:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "771eb231e59770f544055633992f3cac10c890d9",
"body": "…defined in NGINX 1.6.0+\n\nNGINX 1.6.0+ (the minimum NGINX core version supported as of this\ncommit) already defines it.",
"is_bot": false,
"headline": "misc: ngx_http_lua_util.h: removed 'ngx_str_set' definition as it is …",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-09-30T22:07:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d1e55394ea70be0a95d2e429fce489fbb263a50c",
"body": "…fixed styling issues.",
"is_bot": false,
"headline": "misc: removed dead code, guard non-OpenResty LuaJIT definitions, and …",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-09-30T22:07:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "478bae6fc14359fe5b07f66f9fa721efe3eb0a9b",
"body": null,
"is_bot": false,
"headline": "doc: readme: mentioned that the latest tested NGINX core is 1.17.4.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-09-27T23:20:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e593c335ffff5af1f3465bc6a71500951222331",
"body": null,
"is_bot": false,
"headline": "travis-ci: bumped the NGINX core to 1.17.4.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-09-27T23:18:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69780f676900fb861cc4fa116e6dbe28d805da74",
"body": null,
"is_bot": false,
"headline": "bugfix: config: fallback to '--undefined' option for ld 2.25 and below.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-09-24T22:04:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d062170e94141b236483d86067cdb0d0a596353d",
"body": "… APIs.",
"is_bot": false,
"headline": "feature: implemented the 'ngx.crc32_short' and 'ngx.crc32_long' C FFI…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-09-13T17:46:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "50dabbc3ae2e4123a004ba68c92ef889026df0b4",
"body": null,
"is_bot": false,
"headline": "travis-ci: bumped OpenSSL versions to 1.0.2t, 1.1.0l, and 1.1.1d.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-09-12T17:55:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd1e0f89e495bcec9e930cb8c3525e953baa6f4a",
"body": null,
"is_bot": false,
"headline": "feat: config: added a check for Lua language version 5.1.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-28T20:59:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b224957f696af2a3d642b3a5380f3227b327b03",
"body": "…ADME.",
"is_bot": false,
"headline": "doc: readme: minor updates to align with the ngx_stream_lua module RE…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-27T22:47:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c943b9447784439153a2f4adec69f2fd6520d10",
"body": null,
"is_bot": false,
"headline": "tests: 087-udp-socket.t: removed a duplicated test case.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-27T22:47:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70484bcbe4a0dcc67137df6387b3a7bed205fff8",
"body": "…_lua module.",
"is_bot": false,
"headline": "tweaks: ported adjustments and missing test cases from the ngx_stream…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-27T22:47:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "315330ac099a35f5f17a0d453b7c001fe1181148",
"body": "…ed on all platforms.\n\n- fix the LuaJIT FFI check (tested on Linux and Darwin)\n- fix static libpcre builds on Darwin\n- ensure previous config scripts do not make the LuaJIT check fail",
"is_bot": false,
"headline": "bugfix: config: ensured LuaJIT FFI check and static PCRE builds succe…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-27T21:04:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a190736a58674086c3a27bf71a7993383fffb55",
"body": null,
"is_bot": false,
"headline": "change: removed error logging on coroutine runtime errors.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-13T01:55:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a892b8d5dc1fe3eb21882b318a1e3260330ad5c",
"body": null,
"is_bot": false,
"headline": "bugfix: coroutine.wrap: propagate errors to the parent coroutine.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-13T01:55:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c658e22606c504b96e6408554cac8c1fefcfd0ea",
"body": "…read.kill()' and 'ngx.socket.udp' in 'ssl_certificate_by_lua*'.",
"is_bot": false,
"headline": "tests: 139-ssl-cert.t: added test cases asserting support for 'ngx.th…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-12T23:21:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97f0101e525b8f0c0f125ab50e381c936f0c2f10",
"body": "…ssion_fetch_by_lua*.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "feature: enabled the 'ngx.thread' and 'ngx.socket.udp' APIs in ssl_se…",
"author_name": "Tom Thorogood",
"author_login": "tmthrgd",
"committed_at": "2019-08-12T23:13:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97431d814114b5f94c5076557fbab3e0624b900f",
"body": "A follow-up commit to 947fa00 in which removed the `NGX_LUA_NO_FFI_API`\nmacro. Doing so prevents the `cln` variable from being declared, which\nit previously was before even with such older NGINX core versions.",
"is_bot": false,
"headline": "bugfix: fixed compilation with NGINX cores < 1.11.11",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-09T20:06:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "189ba24ef4ebdeced25fe2994fbf4b03113225fb",
"body": "…ction's definition.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "feature: when a timer fails to run we now log the location of its fun…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-08-08T23:39:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b9e53f74812cb9694397a4f3c3795989fc2962e",
"body": "…)' on a sub-process when a light thread is waiting on it.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "feature: ngx.pipe: allowed for calling resty.core 'ngx_pipe.shutdown(…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-08-07T18:32:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8573c1c5d88a9d0438a4c51f8b74163e47dc1be1",
"body": "…_pipe.spawn()'.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "feature: ngx.pipe: allowed for specifying timeouts in resty.core 'ngx…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-08-07T01:23:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d154e5a7c1cbb7810d0224862e577fc8a6b8e3ac",
"body": "…d grammatical issues.\n\n* Removed mentions of PUC-Rio Lua, or hints that this module may work\n with it.\n* Clarified that this module only supports LuaJIT 2.x starting with\n v0.10.16.\n* Clarified that the terms \"Lua\" and \"LuaJIT\" are used interchangeably\n in this document.\n* Consistently capitalized \"Nginx\".\n* Many styling and grammatical fixes.",
"is_bot": false,
"headline": "doc: readme: removed all mentions of PUC-Rio Lua and fixed styling an…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-05T23:16:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5135a051162e58a30fe65af97b14d7fb7dac354",
"body": "…1.6.0).",
"is_bot": false,
"headline": "change: removed compatibility code for unsupported NGINX versions (< …",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-05T22:23:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "947fa0088b7a0387f43eb016436a2e4462eb5746",
"body": "…are available.",
"is_bot": false,
"headline": "change: retired the old CFunction API when newer FFI implementations …",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-05T22:23:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "60736e686ac5ca5af9a5bf118cb9bd4a9126cefc",
"body": "…ty_core' directive is deprecated.",
"is_bot": false,
"headline": "change: 'resty.core' is now mandatorily loaded, and the 'lua_load_res…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-05T22:23:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a96e99ab1a770d261fa9eecbd9c7d112f39aa34b",
"body": "…is supported.",
"is_bot": false,
"headline": "change: we now prevent compilation with PUC-Rio Lua; only LuaJIT 2.x …",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-05T22:23:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f270642bfd3fc252a278a48860ff168d65be703",
"body": "Fix #1572",
"is_bot": false,
"headline": "bugfix: fixed file cache key size allocation.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-05T22:19:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b3822b18c3ac0b2d4d61a02b32d10a6207e1a4d",
"body": "…ttp_lua_pipe.c.",
"is_bot": false,
"headline": "bugfix: added missing arguments to an 'ngx_log_error()' call in ngx_h…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-01T21:50:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9fa316f50b980eb2e26a8271e9927359ba77b95e",
"body": "…cleanup()' to align with the meta_lua module.",
"is_bot": false,
"headline": "tweak: updated the debug log in 'ngx_http_lua_socket_tcp_conn_op_ctx_…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-01T21:50:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba182dd599d5383e53c5b8837c565f3ee42aa806",
"body": "…ule.",
"is_bot": false,
"headline": "style: fixed some minor styling issues to align with the meta_lua mod…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-01T21:50:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eed28fca8d46dd0cf5d5486b6545e943a30c8415",
"body": "…cp' table.",
"is_bot": false,
"headline": "optimize: fixed the pre-allocated number of keys in the 'ngx.socket.t…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-01T21:50:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c25b7bea9eae8ab14d3bd6ac4a68ad1a348a238",
"body": "…ngx_api' function.\n\nThis function was removed in 5078b14431f612693a4d468f200b792d128347d6.",
"is_bot": false,
"headline": "optimize: removed declaration of obsolete 'ngx_http_lua_inject_logby_…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-08-01T21:50:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d313bf8dea8d697cffa8fd08224febd0db3d6046",
"body": "… platforms.\n\nFollow-up commit to 2014dd80fe4f299ad68c3b60a2c5f846b4286b6f",
"is_bot": false,
"headline": "bugfix: ensured the 'pcre_version' symbol is also preserved on Darwin…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-27T17:39:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c618d0d2391f493a3394a3978957ee3de449100c",
"body": "…to a recent commit.\n\nA follow-up commit to 39c2ead3cb7efae4456494ea27a348fa1eca6c5c.",
"is_bot": false,
"headline": "bugfix: fixed compilation errors encountered with ngx_stream_lua due …",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-27T16:48:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "881bf91da6853446398cebc1b2d6a01f8d7939d6",
"body": "…ntain '\\r' and '\\n' characters.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "bugfix: ensured arguments of APIs mutating response headers do not co…",
"author_name": "doujiang24",
"author_login": "doujiang24",
"committed_at": "2019-07-25T23:50:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "246ec8ac482d13770c545f2cf59355df50ce843b",
"body": null,
"is_bot": false,
"headline": "refactor: simplified Lua chunk and file cache key generation.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-25T21:56:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f45908cd32025d107c84f16aed5f6829aabcf536",
"body": "…mponent.",
"is_bot": false,
"headline": "refactor: reduced cache key size by removing unnecessary chunkname co…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-25T21:56:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd83c656d55c573caf186c0f2cd603191a724e33",
"body": "… directives with identical Lua chunks produce distinct cache keys.",
"is_bot": false,
"headline": "tests: codecache.t: moved and reinforced a test case ensuring *by_lua…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-25T21:56:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0c755ed892f4586536e7a0ad482e5a3feaa22ab9",
"body": "…ures code cache key.",
"is_bot": false,
"headline": "bugfix: ensured set_by_lua_file with nginx variables re-computes clos…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-25T21:56:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39c2ead3cb7efae4456494ea27a348fa1eca6c5c",
"body": "…' to avoid the costly 'lj_str_new()'.",
"is_bot": false,
"headline": "optimize: improved code cache lookup performance by using 'luaL_ref()…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-25T21:56:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf11f67d8cddec3554baf7c4c0142b2f1db984ab",
"body": "…_file directives containing NGINX variables.",
"is_bot": false,
"headline": "tests: codecache.t: added tests for code cache behavior with *_by_lua…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-25T21:56:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e42f9b5f6520d7d5f51b6742134377f66bcdf841",
"body": "…tificate_by_lua*' documentation.",
"is_bot": false,
"headline": "doc: updated the section on OpenSSL and NGINX patches in the 'ssl_cer…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-25T17:39:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09484e8fda2f1c1970a898a8c08111af13d69930",
"body": "…odule's main_conf.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "bugfix: ensured 'init_worker_by_lua*' does not mutate another NGINX m…",
"author_name": "wangfakang",
"author_login": "wangfakang",
"committed_at": "2019-07-25T04:58:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b6875300b7bd2425fd6f93de1e55e47685425b18",
"body": null,
"is_bot": false,
"headline": "doc: mentioned that we support NGINX 1.17.x.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-18T00:18:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cf77a42c4ec4cc87734c0179fde972e7f2d204f7",
"body": "Signed-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "doc: removed TODO items that have been taken care of.",
"author_name": "doujiang24",
"author_login": "doujiang24",
"committed_at": "2019-07-18T00:17:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de60e555a3463f78a05f91ac28641d623f556c2f",
"body": null,
"is_bot": false,
"headline": "travis: added OpenSSL 1.1.1c to the tests matrix.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-17T20:38:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "467f0134dbf53737a0cf26de7ccb2c35bd490d85",
"body": "…session_fetch_by_lua*' can yield when reading early data.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "tests: added tests asserting that 'ssl_certificate_by_lua*' and 'ssl_…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-07-17T20:35:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d3dbc0c8102a9978d649c99e3261d93aac547378",
"body": "…_lua*' when using TLS 1.3.\n\nPreviously, we used the OpenSSL 1.1.1 ClientHello callback to do ssl\nsession fetching non-blockingly. However, this way cannot handle an edge\ncase: the ssl session resumption via session ticket might fail, and the\nclient fallbacks to session ID resumption. The ClientHell\n[…]\n ID is not so profitable. If someone needs\nthis feature, they can contribute it themselves.\n\nThanks Yongjian Xu and crasyangel for their help.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "bugfix: skipped 'ssl_session_store_by_lua*' and 'ssl_session_fetch_by…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-07-17T20:35:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2014dd80fe4f299ad68c3b60a2c5f846b4286b6f",
"body": "…hen PCRE is statically linked.\n\nWhen using `--with-pcre=...`, NGINX is statically linked against\nlibpcre.a. Since `pcre_version()` is unused, its symbol is stripped by\nthe linker. Because lua-resty-core's `resty.core.regex` module needs it,\nwe here ensure that the symbol is entered as undefined in our final\nbinary.\n\nThis should not be an issue for win32 builds since\n`--export-all-symbols` is already set.",
"is_bot": false,
"headline": "bugfix: ensured the 'pcre_version' symbol is preserved as undefined w…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-12T00:06:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "277d382f51067c0550a8264cb278e1364ba40e9c",
"body": null,
"is_bot": false,
"headline": "api: bumped API version to 0.10.16.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-12T00:06:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2524330e59f0a385a9c77d4d1b957476dce7cb33",
"body": null,
"is_bot": false,
"headline": "travis-ci: bumped the NGINX core version to 1.17.1.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-11T19:39:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "65bdd4a838a72dc7d9dedc2add58b72aa3a5dfd1",
"body": "… failures from 'crit' to 'info'.\n\nSee NGINX commit\nhttps://github.com/nginx/nginx/commit/99d7bb690924e60e9e03096ac5e507111f7c182d\nwhich landed in 1.15.10.",
"is_bot": false,
"headline": "tests: 139-ssl-cert-by.t: downgraded error log level of SSL handshake…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-11T19:39:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e974ba96150d0f5493f7e41c7523f1a3c2e0bef",
"body": "…SSL and NGINX core patches.",
"is_bot": false,
"headline": "doc: updated ssl_session_fetch_by_lua_block documentation around Open…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-02T19:07:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b0c7373917c63af3a06474df0ff9f1a65939d3e1",
"body": "…lua*.\"\n\nThis reverts commit a38d9066787f6fe311135fc512004b1bc19ba1ac.\n\nAs put by @spacewander:\n\n> Previously, we used ClientHello callback to do ssl session fetching\nnon-blockingly. However, this way can not handle an edge case: the ssl\nsession resumption via session ticket might fail, and the clie\n[…]\nor TLS\n1.3 connections.\n\nSee:\n\nhttps://github.com/openresty/lua-nginx-module/issues/1539\nhttps://github.com/openresty/lua-nginx-module/pull/1540\nhttps://github.com/openresty/lua-nginx-module/pull/1544",
"is_bot": false,
"headline": "Revert \"feature: added OpenSSL 1.1.1 support to ssl_session_fetch_by_…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-07-02T18:57:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "81344434aa625878cb33bf0090a8c951a0979a64",
"body": null,
"is_bot": false,
"headline": "doc: fixed a mistake in ngx.location.capture() example in README.md.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-06-28T00:08:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32dd6a34a17d6f1f094552a45c204ef614f5fbb5",
"body": null,
"is_bot": false,
"headline": "style: fixed a minor alignment issue in ngx_http_lua_ssl_certby.c.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-06-15T00:21:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "59b6430f7b7c407e15b19035c566a56cfd2eb3e8",
"body": null,
"is_bot": false,
"headline": "bugfix: LuaJIT sets currentline to -1 if it is unavailable.",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-06-05T12:20:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a38d9066787f6fe311135fc512004b1bc19ba1ac",
"body": "See openresty/openresty#456.\r\n\r\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "feature: added OpenSSL 1.1.1 support to ssl_session_fetch_by_lua*.",
"author_name": "罗泽轩",
"author_login": "spacewander",
"committed_at": "2019-06-05T02:19:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a5872969cce758eedbd0e750522afb877734195",
"body": null,
"is_bot": false,
"headline": "travis-ci: bumped OpenSSL to 1.0.2s and 1.1.0k.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-06-05T00:58:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "33a5517c9c4e1a6d1415c2a59a51b0f75e3c8b04",
"body": null,
"is_bot": false,
"headline": "tweak: fixed some warnings from the clang static code analyzer.",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-06-03T03:20:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4102b82cd0971c93663fe89eabd75b73741c4213",
"body": "…nors 'lua_package_path'.",
"is_bot": false,
"headline": "tests: 161-load-resty-core.t: added a test asserting the directive ho…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-05-28T17:57:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1882c30a087168051a8292d0fcd199c0408da814",
"body": "Thanks Antoine for the reminder in #1534.",
"is_bot": false,
"headline": "doc: we now work with nginx 1.14.x and 1.15.x.",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-05-27T17:40:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7afd56c66284db64d2dde74e6d9c11d06668e38",
"body": "…pe spawn() FFI API.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "feature: added support for specifying environment variables in ngx.pi…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-05-24T16:46:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c756b385dc6812b8e7a90f9a690f16a775792c9",
"body": null,
"is_bot": false,
"headline": "doc: fixed a mistake in tcpsock:receiveany() example in README.md.",
"author_name": "Luke Gorrie",
"author_login": "lukego",
"committed_at": "2019-05-22T22:06:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "30678fd5b9bbe344920278916f73cc0eb946db19",
"body": "… default cipher.",
"is_bot": false,
"headline": "tests: ssl-socket.t: fixed a failing test case due to openresty.org's…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-05-22T22:02:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "441c7f626ae934a7d385a020ecce664a26792adf",
"body": null,
"is_bot": false,
"headline": "tests: re-enabled a test case for using ngx.re.match in init_by_lua*.",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-05-20T19:16:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28cf5ce3b6ec8e7ab44eadac9cc1c3b6f5c387ba",
"body": null,
"is_bot": false,
"headline": "feature: added the FFI API for 'str_replace_char()'.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-05-07T23:02:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f87d1f16516b9cc2a78690eee863d38310db5533",
"body": null,
"is_bot": false,
"headline": "bugfix: ngx.pipe: cleared the pending event after aborting the uthread.",
"author_name": "罗泽轩",
"author_login": "spacewander",
"committed_at": "2019-05-06T00:36:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86941a706bb8522aee973640305ed3e443ae57e6",
"body": "…ua suite.\n\nIn to-ngx_lua, the paths to lua-resty-core and lua-resty-lrucache are\nnot included by default, but is still required for Nginx to start due to\nthe default value of `lua_load_resty_core`.\n\nHence, we always provide those paths via the `LUA_PATH` env variable. In\nnon-to-* suites, those paths will thus be present twice, so the regexes\ntake that into consideration.",
"is_bot": false,
"headline": "tests: 123-lua-path.t: fixed a few test cases failing in EC2 to-ngx_l…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-04-28T19:48:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7be0a4dc9325e35bcfe33e967ba0654e5fe80153",
"body": "Signed-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "doc: fixed a typo in README.md.",
"author_name": "Keith Walsh",
"author_login": "coderbydesign",
"committed_at": "2019-04-28T19:42:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61e4d0aac8974b8fad1b5b93d0d3d694d257d328",
"body": null,
"is_bot": false,
"headline": "tests: fixed a few failing test cases due to loading resty.core.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-04-09T20:39:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fccf383ae8a4b9d53487b0dfe1f3d92a11239a13",
"body": null,
"is_bot": false,
"headline": "tests: fixed default lua path to load resty.core from many test cases.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-04-09T20:39:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87f0a09a60e6a51c99cd896dc02229f9b87e2607",
"body": "….core by default.",
"is_bot": false,
"headline": "feat: implemented the lua_load_resty_core directive which loads resty…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-04-09T20:39:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ac6f3f67dad6ba9ce2eea85285c5177bcf9d589",
"body": null,
"is_bot": false,
"headline": "doc: fixed a typo in a comment from ngx_http_lua_common.h.",
"author_name": "uudiin",
"author_login": "uudiin",
"committed_at": "2019-04-08T23:28:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "95a2e59bfb466e220d69d9953f29b12464ad687e",
"body": null,
"is_bot": false,
"headline": "tests: removed obsolete drizzle upstream block in init.t.",
"author_name": "Datong Sun",
"author_login": "dndx",
"committed_at": "2019-04-08T23:24:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12d991e182ec0e742b200405b65150cba8659e3d",
"body": null,
"is_bot": false,
"headline": "api: bumped API version to 0.10.15.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-03-26T16:36:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "afeeb84b0840061d52e3e5686dd00142139ecd31",
"body": "…syslog.\n\nFix https://github.com/openresty/lua-resty-shell/issues/7.",
"is_bot": false,
"headline": "bugfix: ngx.pipe: fixed a segfault when error_log is configured with …",
"author_name": "罗泽轩",
"author_login": "spacewander",
"committed_at": "2019-03-10T00:30:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2bc20ccb04a1e87dc9b22fb84173995ae33b0ed3",
"body": null,
"is_bot": false,
"headline": "travis-ci: switch to xenial image",
"author_name": "Ilya Shipitsin",
"author_login": "chipitsine",
"committed_at": "2019-03-09T19:35:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "15b01c66f737f2b6ea4dcd3dfb525c2f2c023fcb",
"body": null,
"is_bot": false,
"headline": "tests: fixed the tests using iscribblet.org which would time out now.",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-03-09T19:35:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a92cf7255cf5132fc887bfccc937eebb29b30a14",
"body": null,
"is_bot": false,
"headline": "tests: fixed failures due to recent CDN changes.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-02-27T06:37:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "83ca6b57ae5ede2b9ff987babff323e5814cebaf",
"body": null,
"is_bot": false,
"headline": "doc: bumped version to 0.10.14.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-02-24T06:14:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee47e55eb5c36ef8eb7937a232f3ec0fcd22ec33",
"body": "… exited abnormally.",
"is_bot": false,
"headline": "bugfix: ngx.pipe: proc:wait() returns false only when the sub-process…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-02-21T03:50:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c368af2f0784b1472741ad7be834ab4853bba1a8",
"body": "…orker process.\n\nThe handler for this signal falls-through to a graceful shutdown in\ndaemonized worker processes.",
"is_bot": false,
"headline": "tests: 159-sa-restart.t: avoided sending SIGWINCH to the test nginx w…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-02-19T18:36:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "761ddca72deb4595ff93df7840dfa39854126123",
"body": "Signed-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "bugfix: ensured we cleanup up aborted queued connect operations.",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-02-16T00:43:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8edb21abcc4ee3ccc2d50c63bbc7c3ca4553b374",
"body": "…ated with the socket pool.\n\nSigned-off-by: Thibault Charbonnier <thibaultcha@me.com>",
"is_bot": false,
"headline": "bugfix: only update connections count when cosockets are truly associ…",
"author_name": "spacewander",
"author_login": "spacewander",
"committed_at": "2019-02-16T00:43:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd90f4e8252e9d06419317fdf525b55c65e15a50",
"body": null,
"is_bot": false,
"headline": "doc: one followup tweak.",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-02-08T20:20:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ebab2b8a3cbf6d79eeced86fa2ae1497f0d12e6",
"body": null,
"is_bot": false,
"headline": "doc: emphasized that this module is a core component of OpenResty.",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-02-08T20:18:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cf887654a2ac36b6747c54a11f50ca56f88d6dbd",
"body": "…ed tests.",
"is_bot": false,
"headline": "tests: switched to 127.0.0.2 instead of agentzh.org for timeout-relat…",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-02-08T03:19:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01735c27fe2ffa9185bc3f9b8d0162f6b263717f",
"body": null,
"is_bot": false,
"headline": "tests: hardened a few flaky test cases from recent CI runs.",
"author_name": "Thibault Charbonnier",
"author_login": "thibaultcha",
"committed_at": "2019-02-07T20:08:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70dd0bee4c69c5dd7f87f848606d94b0f721a7f5",
"body": "… when a local dns server is running.",
"is_bot": false,
"headline": "tests: fixed a test case in 068-socket-keepalive.t which always fails…",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-02-07T19:42:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9750a81731b5ab3fd29881eb1c1e8b0061a96e73",
"body": null,
"is_bot": false,
"headline": "tests: fixed new test failure due to openresty.org server changes.",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-02-07T19:32:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b2af4d36906dea4404bbc9ca00800900bbbf6eb9",
"body": "… source checksum as part of the Lua code cache key. thanks Oleg A. Mamontov for the report in #1428.\n\nFix #1428.",
"is_bot": false,
"headline": "bugfix: inlined Lua code snippets in nginx.conf failed to use the Lua…",
"author_name": "Yichun Zhang (agentzh)",
"author_login": "agentzh",
"committed_at": "2019-02-05T01:53:05Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 71,
"commits_last_year": 0,
"latest_release_at": "2015-11-11T09:49:24Z",
"latest_release_tag": "v0.9.19",
"releases_from_tags": true,
"days_since_last_push": 2211,
"active_weeks_last_year": 0,
"days_since_latest_release": 3910,
"mean_days_between_releases": 54.5
},
"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": 1,
"stars": 3,
"watchers": 1,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 1
},
"star_history": 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": [
"misc/recv-until-pm/Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 182978,
"source_files_sampled": 116,
"oversized_source_files": 4,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [],
"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": [],
"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": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "agentzh",
"commits": 2907,
"avatar_url": "https://avatars.githubusercontent.com/u/56241?v=4"
},
{
"type": "User",
"login": "chaoslawful",
"commits": 159,
"avatar_url": "https://avatars.githubusercontent.com/u/56617?v=4"
},
{
"type": "User",
"login": "thibaultcha",
"commits": 99,
"avatar_url": "https://avatars.githubusercontent.com/u/1125431?v=4"
},
{
"type": "User",
"login": "spacewander",
"commits": 52,
"avatar_url": "https://avatars.githubusercontent.com/u/4161644?v=4"
},
{
"type": "User",
"login": "doujiang24",
"commits": 20,
"avatar_url": "https://avatars.githubusercontent.com/u/570391?v=4"
},
{
"type": "User",
"login": "jinglong",
"commits": 15,
"avatar_url": "https://avatars.githubusercontent.com/u/853403?v=4"
},
{
"type": "User",
"login": "chipitsine",
"commits": 13,
"avatar_url": "https://avatars.githubusercontent.com/u/2217296?v=4"
},
{
"type": "User",
"login": "zhuzhaoyuan",
"commits": 13,
"avatar_url": "https://avatars.githubusercontent.com/u/74670?v=4"
},
{
"type": "User",
"login": "liseen",
"commits": 13,
"avatar_url": "https://avatars.githubusercontent.com/u/94178?v=4"
},
{
"type": "User",
"login": "bakins",
"commits": 9,
"avatar_url": "https://avatars.githubusercontent.com/u/205350?v=4"
}
],
"contributors_sampled": 71,
"top_contributor_share": 0.849
},
"quality_signals": {
"has_ci": false,
"has_tests": false,
"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 24 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": 0,
"reason": "license file not 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": 7,
"reason": "3 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "028c0d4951c7ad99dabf32b3a931d8caac7a5c63",
"ran_at": "2026-07-26T17:13:31Z",
"aggregate_score": 2.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/thibaultcha/lua-nginx-module",
"host": "github.com",
"name": "lua-nginx-module",
"owner": "thibaultcha"
},
"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": 18,
"inputs": {
"security": 23,
"vitality": 17,
"community": 3,
"governance": 35,
"engineering": 21,
"abandonment_cap": null,
"abandonment_state": "at_risk",
"abandonment_multiplier": 85,
"weighted_overall_before_abandonment": 21,
"overall_after_abandonment_multiplier": 18
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "critical",
"name": "Vitality",
"value": 17,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "critical",
"name": "Development activity",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"commits_last_year": 0,
"human_commit_share": 1,
"days_since_last_push": 2211,
"active_weeks_last_year": 0
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 2211 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "push_recency",
"params": {
"days": 2211
}
}
],
"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": 40,
"inputs": {
"releases_count": 71,
"latest_release_tag": "v0.9.19",
"releases_from_tags": true,
"days_since_latest_release": 3910,
"mean_days_between_releases": 54.5
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "71 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 71
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 3910 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "release_recency",
"params": {
"days": 3910
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~54.5 days",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 54.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": 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": 2376,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "no human commit for 2376 days; 2 unmet obligation(s): releases stalled, Scorecard reports it unmaintained",
"points": 85,
"status": "partial",
"details": [
{
"code": "abandonment_flagged",
"params": {
"days": 2376,
"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": 3,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 5,
"inputs": {
"forks": 1,
"stars": 3,
"watchers": 1,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "3 stars",
"points": 4.9,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 3
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "1 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 1
}
}
],
"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": 1,
"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": "no license file detected",
"points": 0,
"status": "missed",
"details": [
{
"code": "license_absent",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 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": 35,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 36,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 71,
"top_contributor_share": 0.849
},
"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 85% of commits",
"points": 3.4,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 85
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "71 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 71
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 24 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": "moderate",
"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": 69,
"inputs": {
"followers": 637,
"owner_type": "User",
"is_verified": null,
"owner_login": "thibaultcha",
"public_repos": 76,
"account_age_days": 5400
},
"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": "637 followers of thibaultcha",
"points": 20.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 637,
"login": "thibaultcha"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "76 public repos, account ~14 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 76
}
},
{
"code": "account_age_years",
"params": {
"years": 14
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "critical",
"name": "Engineering Quality",
"value": 21,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "critical",
"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": 1,
"inputs": {
"has_ci": false,
"has_tests": false,
"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": 0,
"status": "missed",
"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": "https://openresty.org",
"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": "https://openresty.org",
"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": "critical",
"name": "Security",
"value": 23,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"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": 23,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 12,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 6,
"scorecard_aggregate": 2.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 24 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 not detected",
"points": 0,
"status": "missed",
"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": "3 existing vulnerabilities detected",
"points": 5.2,
"status": "partial",
"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": 25
},
"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": 46,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.93,
"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": "93 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 93,
"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": 32,
"inputs": {
"has_nix": false,
"has_tests": false,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"misc/recv-until-pm/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": "misc/recv-until-pm/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "misc/recv-until-pm/Makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "C (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "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": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 98,
"inputs": {
"primary_language": "C",
"largest_source_bytes": 182978,
"source_files_sampled": 116,
"oversized_source_files": 4
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "C (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "4/116 source files over 60KB",
"points": 53.1,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 116,
"oversized": 4
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"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-26T17:13:46.982223Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/thibaultcha/lua-nginx-module.svg",
"full_name": "thibaultcha/lua-nginx-module",
"license_state": "absent",
"license_spdx": null
}