Skip to content

TO-51: API supports reviewers in environments#599

Open
almeidaraul wants to merge 18 commits intomainfrom
TO-51/api-supports-reviewers-in-environments
Open

TO-51: API supports reviewers in environments#599
almeidaraul wants to merge 18 commits intomainfrom
TO-51/api-supports-reviewers-in-environments

Conversation

@almeidaraul
Copy link
Contributor

@almeidaraul almeidaraul commented Feb 27, 2026

Add API support to reviewers in environments i.e. change endpoints to reflect those changes in previous PRs

Base automatically changed from TO-51/add-reviewer-list-to-environments to main March 13, 2026 15:21
@almeidaraul almeidaraul marked this pull request as ready for review March 13, 2026 15:21
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds API support for environment review “reviewers” by extending the environment-reviews response schema and ensuring the relevant relationships are eagerly loaded so reviewer data is returned consistently.

Changes:

  • Extend ArtefactBuildEnvironmentReviewResponse to include a reviewers field and add a dedicated reviewer response model.
  • Eager-load ArtefactBuildEnvironmentReview.reviewers in the GET and single-review PATCH endpoints.
  • Update/extend controller tests and OpenAPI schema to reflect the new reviewers field.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
backend/tests/data_generator.py Allows generating environment reviews with attached reviewers for tests.
backend/tests/controllers/artefacts/test_environment_reviews.py Updates expected payloads to include reviewers and adds new reviewer-focused tests.
backend/test_observer/controllers/artefacts/models.py Adds reviewer response schema and includes reviewers in environment review response model.
backend/test_observer/controllers/artefacts/environment_reviews.py Ensures reviewers are eagerly loaded for GET and single-review PATCH responses.
backend/schemata/openapi.json Updates OpenAPI components to document the new reviewer schema and field.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +387 to +399
def test_get_environment_reviews_includes_reviewers(test_client: TestClient, generator: DataGenerator):
a = generator.gen_artefact(StageName.beta)
ab = generator.gen_artefact_build(a)
e = generator.gen_environment("env1")
user1 = generator.gen_user(name="User One", email="user1@test.com")
user2 = generator.gen_user(name="User Two", email="user2@test.com")
review = generator.gen_artefact_build_environment_review(ab, e, reviewers=[user1, user2])

response = make_authenticated_request(
lambda: test_client.get(f"/v1/artefacts/{a.id}/environment-reviews"),
Permission.view_environment_review,
)

Comment on lines +181 to 197
class EnvironmentReviewReviewerResponse(BaseModel):
model_config = ConfigDict(from_attributes=True)

id: int
launchpad_handle: str | None = None
email: str
name: str


class ArtefactBuildEnvironmentReviewResponse(BaseModel):
id: int
review_decision: list[ArtefactBuildEnvironmentReviewDecision]
review_comment: str
environment: EnvironmentResponse
artefact_build: ArtefactBuildMinimalResponse
reviewers: list[EnvironmentReviewReviewerResponse] = []

review_comment: str
environment: EnvironmentResponse
artefact_build: ArtefactBuildMinimalResponse
reviewers: list[EnvironmentReviewReviewerResponse] = []
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