Skip to content

feat(stovepipe): Expose project issue APIs - #1051

Merged
prathshenoy merged 1 commit into
prath.shenoy/feat/stovepipe-project-issue-controllerfrom
prath.shenoy/feat/stovepipe-project-issue-api
Nov 9, 2026
Merged

prathshenoy merged 1 commit into
prath.shenoy/feat/stovepipe-project-issue-controllerfrom
prath.shenoy/feat/stovepipe-project-issue-api

Conversation

@prathshenoy

@prathshenoy prathshenoy commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

What:

  • Expose both request-scoped attribution lookups through the service API.

Why:

  • Let clients query the issues affecting a project and the projects affected by an issue. The read controller provides this behavior, but service bindings and wiring are needed to make it available through the API.

Test Plan

  • Add unit tests.

Revert Plan

  • Revert this PR. It adds read-only APIs without changing schemas or stored data.

Issue Links

Stack

  1. feat(stovepipe): Define issue project attribution #1046
  2. feat(stovepipe): Store project issue attribution #1047
  3. feat(stovepipe): Add request project issue lookup #1048
  4. feat(stovepipe): Materialize project issue lookup #1049
  5. feat(stovepipe): Add scoped attribution reads #1053
  6. feat(stovepipe): Add project issue controller #1054
  7. feat(stovepipe): Expose project issue APIs #1051

@prathshenoy
prathshenoy added this pull request to stack #1052 November 9, 2026 15:11
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-issue-api branch from 0bf7827 to 864c125 Compare November 9, 2026 17:02
@prathshenoy
prathshenoy removed this pull request from stack #1052 November 9, 2026 17:09
@prathshenoy prathshenoy changed the title feat(stovepipe): Add project issue lookups feat(stovepipe): Expose project issue APIs Nov 9, 2026
@prathshenoy
prathshenoy added this pull request to stack #1055 November 9, 2026 17:15
@prathshenoy
prathshenoy removed this pull request from stack #1055 November 9, 2026 18:57
@prathshenoy
prathshenoy changed the base branch from prath.shenoy/feat/stovepipe-record-project-issues to prath.shenoy/feat/stovepipe-project-issue-controller November 9, 2026 18:57
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-issue-api branch from 864c125 to 6de295f Compare November 9, 2026 18:58
@prathshenoy
prathshenoy added this pull request to stack #1056 November 9, 2026 18:58
## Summary
**What**:
- Expose both request-scoped attribution lookups through the service API.

**Why**:
- Let clients query the issues affecting a project and the projects affected by an issue. The read controller provides this behavior, but service bindings and wiring are needed to make it available through the API.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR. It exposes read-only behavior without changing schemas or stored data.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)
@prathshenoy
prathshenoy force-pushed the prath.shenoy/feat/stovepipe-project-issue-api branch from 6de295f to 62feeed Compare November 9, 2026 19:15
@prathshenoy
prathshenoy marked this pull request as ready for review November 9, 2026 19:47
@prathshenoy
prathshenoy added this pull request to the merge queue Nov 9, 2026
Merged via the queue into main with commit efa0e29 Nov 9, 2026
60 checks passed
@prathshenoy
prathshenoy deleted the prath.shenoy/feat/stovepipe-project-issue-api branch November 9, 2026 21:04
Tmwakalasya pushed a commit to Tmwakalasya/submitqueue that referenced this pull request Nov 11, 2026
## Summary
**What**:
- Define project attribution for confirmed build issues.

**Why**:
- Identify which failures affect each project. Existing project-status
results describe a project's health but do not identify the individual
issues behind that result. This contract provides the per-issue project
associations needed to build project issue views.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR. No runtime wiring or stored data changes depend on
this contract yet.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)

## Stack
1. uber#1046
1. uber#1047
1. uber#1048
1. uber#1049
1. uber#1053
1. uber#1054
1. uber#1050
1. uber#1051
Tmwakalasya pushed a commit to Tmwakalasya/submitqueue that referenced this pull request Nov 11, 2026
## Summary
**What**:
- Add immutable storage for per-validation issue-to-project attribution.
- Define a request-history event identifying completed attribution
recording.

**Why**:
- Give project–issue views a durable source they can replay. Existing
issue history does not retain which projects each issue affects, so
these records provide the associations needed for both lookup
directions.
- Distinguish completed recording from partial writes. A completed
request may have no associations, so an empty set of stored rows is not
enough to establish completion.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR. No runtime producer or materializer is wired to the
new source yet.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)

## Stack
1. uber#1046
1. uber#1047
1. uber#1048
1. uber#1049
1. uber#1053
1. uber#1054
1. uber#1051
Tmwakalasya pushed a commit to Tmwakalasya/submitqueue that referenced this pull request Nov 11, 2026
## Summary
**What**:
- Add storage for listing a project's attributed issues within a
request.

**Why**:
- Support viewing the failures behind a project's result for a
particular validation. Attribution is recorded by issue, so finding one
project's issues otherwise requires reading all of the request's
associations. A project-first lookup makes that listing a bounded read.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR. No runtime producer or API reads the new lookup yet.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)

## Stack
1. uber#1046
1. uber#1047
1. uber#1048
1. uber#1049
1. uber#1053
1. uber#1054
1. uber#1051
Tmwakalasya pushed a commit to Tmwakalasya/submitqueue that referenced this pull request Nov 11, 2026
## Summary
**What**:
- Add a materializer that retains per-request issue-to-project
associations and creates their reverse lookups.

**Why**:
- Make both query directions recoverable when recording is interrupted.
An association can be saved before its reverse lookup is written;
replaying the same pair repairs the missing lookup without duplicating
either row. This provides the write path for the recording-stage
integration.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR. The helper is not wired into processing yet, and no
schemas or existing write paths change.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)

## Stack
1. uber#1046
1. uber#1047
1. uber#1048
1. uber#1049
1. uber#1053
1. uber#1054
1. uber#1051
Tmwakalasya pushed a commit to Tmwakalasya/submitqueue that referenced this pull request Nov 11, 2026
## Summary
**What**:
- Add bounded reads for the projects attributed to one issue within a
request.

**Why**:
- Avoid reading every association in a request just to find one issue's
affected projects. Restricting the read to that issue provides the
efficient lookup needed by the read controller.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR. It adds a read operation without changing schemas or
stored data.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)

## Stack
1. uber#1046
1. uber#1047
1. uber#1048
1. uber#1049
1. uber#1053
1. uber#1054
1. uber#1051
Tmwakalasya pushed a commit to Tmwakalasya/submitqueue that referenced this pull request Nov 11, 2026
## Summary
**What**:
- Add request-scoped issue/project lookup behavior with completion
checks and pagination.

**Why**:
- Put the completion and pagination rules in one place before exposing
the API. This keeps partially written associations hidden and lets both
lookup directions read bounded pages without copying that logic into
transport handlers.

## Test Plan
- [x] Add unit tests.

## Revert Plan
- Revert this PR. The read controller is not wired into the service yet,
and no schemas or stored data change.

## Issue Links
- [CODEM-632](https://linear.app/uber/issue/CODEM-632/projects-issues)

## Stack
1. uber#1046
1. uber#1047
1. uber#1048
1. uber#1049
1. uber#1053
1. uber#1054
1. uber#1051
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants