github-security-report 0.14.1__tar.gz → 0.14.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {github_security_report-0.14.1 → github_security_report-0.14.2}/PKG-INFO +10 -5
- {github_security_report-0.14.1 → github_security_report-0.14.2}/README.md +9 -4
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/_version.py +2 -2
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/copilot.py +5 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/queries.py +12 -3
- {github_security_report-0.14.1 → github_security_report-0.14.2}/.gitignore +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/LICENSE +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/LICENSES/Apache-2.0.txt +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/pyproject.toml +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/scripts/README.md +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/authors.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/categories.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/classify.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/__main__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/app.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/boundary.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/modes.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/options.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/outputs.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/publish.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/cli/serialise.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/alerts.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/batch_errors.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/endpoints.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/errors.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/org_reads.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/parsers.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/reads.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/transport.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/client/writes.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/collect/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/collect/context.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/collect/extras.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/collect/org.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/collect/protocols.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/collect/repo.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/config/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/config/loader.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/config/models.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/config/order.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/config/schema.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/gating.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/gitctx.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/issues.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/layout.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/models.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/ordering.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/posture/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/posture/enablement.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/posture/facts.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/posture/releases.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/pulls/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/pulls/columns.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/pulls/counting.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/pulls/presentation.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/pulls/table.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/py.typed +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/remediate.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/render/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/render/html.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/render/markdown.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/render/slack.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/render/slack_limits.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/render/terminal.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/report/__init__.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/report/aggregate.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/report/display.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/report/signals.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/report/tables.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/rulesets.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/runner.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/scope.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/secret_patterns.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/severity.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/summary.py +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/templates/index.html.j2 +0 -0
- {github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/templates/report.html.j2 +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: github-security-report
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.2
|
|
4
4
|
Summary: Security and quality reporting across GitHub organisations
|
|
5
5
|
Project-URL: Homepage, https://github.com/lfreleng-actions/github-security-report-action
|
|
6
6
|
Project-URL: Repository, https://github.com/lfreleng-actions/github-security-report-action
|
|
@@ -789,10 +789,15 @@ pull request that cannot progress until somebody responds. The count also feeds
|
|
|
789
789
|
the row ranking, so a backlog awaiting review outranks an untouched one of the
|
|
790
790
|
same size.
|
|
791
791
|
|
|
792
|
-
The scan reads
|
|
793
|
-
most expensive part of the prefetch (see the cost figures above).
|
|
794
|
-
|
|
795
|
-
|
|
792
|
+
The scan reads the **newest 20 review threads per pull request**, which is the
|
|
793
|
+
single most expensive part of the prefetch (see the cost figures above). The
|
|
794
|
+
newest end is deliberate: GitHub returns review threads oldest-first and offers
|
|
795
|
+
no way to order them, so reading from the front would window the threads a
|
|
796
|
+
review has already worked through — the resolved ones — and report a pull
|
|
797
|
+
request still waiting on its latest round as clear. Unanswered feedback is the
|
|
798
|
+
recent kind. Where a pull request carries more threads than the window and none
|
|
799
|
+
of the collected ones qualifies, it is treated as **indeterminate** rather than
|
|
800
|
+
clear — see below.
|
|
796
801
|
|
|
797
802
|
#### Automation backlog thresholds
|
|
798
803
|
|
|
@@ -745,10 +745,15 @@ pull request that cannot progress until somebody responds. The count also feeds
|
|
|
745
745
|
the row ranking, so a backlog awaiting review outranks an untouched one of the
|
|
746
746
|
same size.
|
|
747
747
|
|
|
748
|
-
The scan reads
|
|
749
|
-
most expensive part of the prefetch (see the cost figures above).
|
|
750
|
-
|
|
751
|
-
|
|
748
|
+
The scan reads the **newest 20 review threads per pull request**, which is the
|
|
749
|
+
single most expensive part of the prefetch (see the cost figures above). The
|
|
750
|
+
newest end is deliberate: GitHub returns review threads oldest-first and offers
|
|
751
|
+
no way to order them, so reading from the front would window the threads a
|
|
752
|
+
review has already worked through — the resolved ones — and report a pull
|
|
753
|
+
request still waiting on its latest round as clear. Unanswered feedback is the
|
|
754
|
+
recent kind. Where a pull request carries more threads than the window and none
|
|
755
|
+
of the collected ones qualifies, it is treated as **indeterminate** rather than
|
|
756
|
+
clear — see below.
|
|
752
757
|
|
|
753
758
|
#### Automation backlog thresholds
|
|
754
759
|
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.14.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 14,
|
|
21
|
+
__version__ = version = '0.14.2'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 14, 2)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -50,6 +50,11 @@ def _copilot_unresolved(node: dict) -> bool | None:
|
|
|
50
50
|
every thread was seen. This mirrors the rule ``mergeable`` and the check
|
|
51
51
|
rollup already follow: not established is not the same as nothing to report.
|
|
52
52
|
|
|
53
|
+
The window holds the *newest* threads (see ``_REVIEW_THREAD_WINDOW``), which
|
|
54
|
+
is what makes ``True`` reachable on a long review: unanswered feedback is
|
|
55
|
+
the recent kind, so a truncated window that finds nothing is a weak reading
|
|
56
|
+
rather than the usual one.
|
|
57
|
+
|
|
53
58
|
An outdated thread still counts. GitHub marks a thread outdated when the
|
|
54
59
|
code beneath it changes but does not resolve it, so the feedback remains
|
|
55
60
|
unanswered -- which is exactly what the column reports.
|
|
@@ -120,8 +120,17 @@ _ASSIGNEE_WINDOW = 10
|
|
|
120
120
|
# without this connection and 57, 89 or 151 with a window of 5, 10 or 20. At 20
|
|
121
121
|
# a 118-repository organisation costs ~755 points of the 5,000-point hourly
|
|
122
122
|
# budget, which leaves room for the several organisations a scheduled run
|
|
123
|
-
# covers
|
|
124
|
-
#
|
|
123
|
+
# covers.
|
|
124
|
+
#
|
|
125
|
+
# The window is taken with ``last``, not ``first``, and which end it is anchored
|
|
126
|
+
# to decides whether it can answer the question at all. ``reviewThreads`` is
|
|
127
|
+
# ordered oldest-first and accepts no ``orderBy``, so ``first`` collects the
|
|
128
|
+
# threads a review has already worked through -- exactly the ones most likely to
|
|
129
|
+
# have been resolved. A pull request that has answered dozens of rounds and is
|
|
130
|
+
# now waiting on the latest would fill the window with settled threads and
|
|
131
|
+
# report the outstanding ones as never seen. Unresolved feedback ages into
|
|
132
|
+
# resolution rather than the other way round, so the newest threads are where
|
|
133
|
+
# the column's answer lives. Same node cost, opposite blind spot.
|
|
125
134
|
#
|
|
126
135
|
# ``totalCount`` rides along free of node cost and is what keeps the bounded
|
|
127
136
|
# window honest -- a pull request carrying more threads than the window returned
|
|
@@ -173,7 +182,7 @@ fragment RepoData on Repository {{
|
|
|
173
182
|
authorAssociation
|
|
174
183
|
author {{ __typename login }}
|
|
175
184
|
assignees(first: {_ASSIGNEE_WINDOW}) {{ nodes {{ login }} }}
|
|
176
|
-
reviewThreads(
|
|
185
|
+
reviewThreads(last: {_REVIEW_THREAD_WINDOW}) {{
|
|
177
186
|
totalCount
|
|
178
187
|
nodes {{
|
|
179
188
|
isResolved
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/gating.py
RENAMED
|
File without changes
|
{github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/gitctx.py
RENAMED
|
File without changes
|
{github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/issues.py
RENAMED
|
File without changes
|
{github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/layout.py
RENAMED
|
File without changes
|
{github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/runner.py
RENAMED
|
File without changes
|
{github_security_report-0.14.1 → github_security_report-0.14.2}/src/github_security_report/scope.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|