Repository navigation
Feat(report): Add the Issues: Assigned to Me table - #230
Merged
ModeSevenIndustrialSolutions merged 1 commit intoOct 29, 2026
Merged
ModeSevenIndustrialSolutions merged 1 commit into
ModeSevenIndustrialSolutions merged 1 commit into
Conversation
ModeSevenIndustrialSolutions
previously approved these changes
Oct 29, 2026
There was a problem hiding this comment.
🟡 Changes recommended
The assigned-issue table can report an unjustifiably exact age and misleading colouring when an unreadable node may conceal an older assigned issue.
1 open issue
What changed in this PR
Adds an Issues: Assigned to Me table alongside the existing personal pull-request queue, addressing #224. It reuses collected issue data and defaults to terminal-only visibility.
Changes:
- Collects issue assignees and builds a viewer-filtered table with partial-window handling.
- Integrates the category into configuration, ordering, collection, and JSON output.
- Documents visibility controls and adds tests for filtering and report integration.
| File | Description |
|---|---|
tests/test_layout.py |
Tests placement after GitHub Issues. |
tests/test_issues.py |
Tests assignment filtering, counts, truncation, and age. |
tests/test_config.py |
Tests terminal-only defaults. |
tests/test_config_order.py |
Updates expected default ordering. |
tests/test_collect.py |
Tests personal-queue collection guards. |
tests/test_client.py |
Tests assignee queries and parsing. |
tests/test_cli.py |
Tests publication and hiding; distinguishes queue titles. |
src/github_security_report/report/aggregate.py |
Registers the assigned-issues table. |
src/github_security_report/models.py |
Adds issue assignee data. |
src/github_security_report/issues.py |
Shares table construction and adds assignment filtering. |
src/github_security_report/issue_presentation.py |
Extracts shared issue-table presentation helpers. |
src/github_security_report/config/order.py |
Places assigned issues after GitHub Issues. |
src/github_security_report/config/models.py |
Sets terminal-only category defaults. |
src/github_security_report/collect/extras.py |
Builds the table when a viewer is identified. |
src/github_security_report/collect/context.py |
Updates collection-option documentation. |
src/github_security_report/client/queries.py |
Requests assignees in the existing issue query. |
src/github_security_report/client/parsers.py |
Parses issue assignee logins. |
src/github_security_report/cli/serialise.py |
Adds the assigned_issues JSON field. |
src/github_security_report/categories/tables.py |
Defines category labels and description. |
src/github_security_report/categories/keys.py |
Adds the category key. |
README.md |
Documents the table, visibility controls, and collection limits. |
Review effort: Balanced
Mirror Pull Requests -> Assigned to Me for issues: a new github_issues_assigned category repeats the GitHub Issues table narrowed to the open issues assigned to the account the report ran as. It shares the PR version's rules: terminal-only by default, absent under a bot or App token, and governed by the standard enabled/outputs/top_n/sort toggles and --hide. The issues connection in the batched prefetch now requests each issue's assignees, parsed into IssueRef.assignees as lower-cased logins. No new HTTP request is made. By GitHub's formula (connection requests / 100) the extra connection adds 25 requests per repository, about 1.25 points per five-repository batch, so the measured 4 points should become about 5; this was computed, not measured, as the session had no GitHub token. The Issues builder now runs over an optional viewer filter, so both tables share one body and the same columns. In the assigned table Total counts the assigned issues in the window, since totalCount is not assignee-filtered, and a repository whose backlog exceeds the window with none of the viewer's issues inside it is unknown rather than clean, as in the PR version. The presentation helpers move to issue_presentation.py to keep issues.py under 400 lines. Tests and code land together: mypy checks tests/, so expected-fail tests naming the new key, field and builder would fail the type-check hook before the code exists. Review round 1 (Copilot, thread on issue_presentation.py): the parser only flagged a gap before the window's first survivor, so in the assigned table an unreadable node after an unassigned issue but before the first match was ignored and the match's age reported as exact and coloured, though the node could be an older assigned issue. The parser now records how many readable issues precede the first gap (RepoGraphData.issue_gap, replacing oldest_issue_unreadable), and the Oldest age is unknown whenever the first selected issue does not sit before it. The whole-backlog table behaves as before; regression tests cover a gap before and after the first match. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: lf-releng-code-monkey-bot[bot] <332050256+lf-releng-code-monkey-bot[bot]@users.noreply.github.com>
lf-releng-code-monkey-bot
Bot
dismissed
ModeSevenIndustrialSolutions’s stale review
via
October 29, 2026 14:12
82dbe6f
lf-releng-code-monkey-bot
Bot
force-pushed
the
code-monkey/issue-224
branch
from
October 29, 2026 14:12
3d5a09c to
82dbe6f
Compare
ModeSevenIndustrialSolutions
approved these changes
Oct 29, 2026
ModeSevenIndustrialSolutions
merged commit Oct 29, 2026
cc54075
into
lfreleng-actions:main
28 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Closes #224
Authored by an AI agent; human review required
claude-opus-5.5via GitHub Copilot CLIe792fe993c32741fe3a679331524b10555b7681auv run pytest -q tests/test_issues.py tests/test_client.pyuv run pytest -q -xprek run --files README.md src/github_security_report/client/parsers.py src/github_security_report/issue_presentation.py src/github_security_report/models.py tests/test_client.py tests/test_issues.pyPATH=.venv/bin:$PATH aislop scan --base e792fe9 --json . (0 diagnostics, no engine skipped)git commit --amend -s -F <msg> (prek pre-commit and gitlint commit-msg hooks)The
github-code-monkey-botworkflow opened this pull request.Nobody has merged it; a maintainer must review it first.
Review findings on this pull request are answered by a later revision round of this workflow, up to ten rounds; a maintainer must act on any finding that remains after that, and reviews every round before merge.
Round 1 of revision, on its base.
Adds an Issues: Assigned to Me table (
github_issues_assigned) for #224. It mirrors Pull Requests → Assigned to Me: it repeats the GitHub Issues table, with the same columns, narrowed to the open issues assigned to the account the report runs as.What it does
assigneeson the existing batched issues connection and parses them intoIssueRef.assignees. It makes no new HTTP request.build_assigned_issues_tableshares one table body withbuild_issues_table.Totalcounts only the assigned issues inside the 25-issue window. A repository whose backlog runs past the window and has none of the viewer's issues inside it is reported as unknown, not clean.enabled/outputs/top_n/sorttoggles and--hide. It sits after GitHub Issues in BAU and is written toreport.jsonasassigned_issues.Changed in review round 1
Oldestage it could not justify. If an unreadable issue node came after an unassigned issue but before the first assigned one, the age was shown as exact and coloured, even though the unreadable node could be an older assigned issue. The parser now records where the first unreadable node sits (RepoGraphData.issue_gap, which replacesoldest_issue_unreadable).Oldestreadsunknownwhenever such a node precedes the first selected issue. The whole-backlog table behaves as before. Regression tests cover a gap before and after the first match, plus the parser's gap position.Validation
uv run pytest -q: 1458 passedprek run --files <changed files>: clean, gitlint includedaislop scan --base e792fe9with ruff on PATH: zero diagnostics, no engine skippedFor reviewers
unknownOldest caveat in the table description changed to cover both causes.