Skip to content

Release 0.138.6#3334

Closed
odlbot wants to merge 7 commits intoreleasefrom
release-candidate
Closed

Release 0.138.6#3334
odlbot wants to merge 7 commits intoreleasefrom
release-candidate

Conversation

@odlbot
Copy link
Contributor

@odlbot odlbot commented Feb 25, 2026

James Kachel

Chris Chudzicki

cp-at-mit

@github-actions
Copy link

OpenAPI Changes

Show/hide ## Changes for v0.yaml:
## Changes for v0.yaml:
53 changes: 14 error, 0 warning, 39 info
error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/discounts/{parent_lookup_discount}/products/
		added 'subschema #3' to the 'results/items/product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API POST /api/v0/discounts/{parent_lookup_discount}/products/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '201'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API PATCH /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API PUT /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/orders/history/
		added 'subschema #3' to the 'results/items/lines/items/product/allOf[#/components/schemas/Product]/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/orders/history/{id}/
		added 'subschema #3' to the 'lines/items/product/allOf[#/components/schemas/Product]/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/products/
		added 'subschema #3' to the 'results/items/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/products/all/
		added 'subschema #3' to the 'results/items/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API POST /api/v0/products/all/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '201'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API PATCH /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API PUT /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/products/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

info	[api-schema-removed] 	
	in components/schemas
		removed the schema 'PaginatedV2ProgramList'

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/course_runs/
		added the required property '/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/course_runs/{id}/
		added the required property 'enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/courses/
		added the required property 'results/items/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/courses/{id}/
		added the required property 'courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API POST /api/v1/enrollments/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API PATCH /api/v1/enrollments/{id}/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API PUT /api/v1/enrollments/{id}/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/program_enrollments/
		added the required property '/items/program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API DELETE /api/v1/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API DELETE /api/v1/program_enrollments/{id}/
		added the required property 'program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/program_enrollments/{id}/
		added the required property 'program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/programs/
		added the required property 'results/items/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v1/programs/{id}/
		added the required property 'courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/course_certificates/{cert_uuid}/
		added the required property 'course_run/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/course_certificates/{cert_uuid}/
		added the required property 'course_run/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/courses/
		added the required property 'results/items/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/courses/
		added the required property 'results/items/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/courses/{id}/
		added the required property 'courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/courses/{id}/
		added the required property 'programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API POST /api/v2/enrollments/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API POST /api/v2/enrollments/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.coursepage
		added the required property 'items/items/course_details/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		added the required property '/oneOf[#/components/schemas/CoursePageItem]/course_details/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		added the required property 'results/items/products' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		added the required property 'products' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API POST /api/v2/verified_program_enrollments/{program_id}/{courserun_id}/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v0.yaml	
	in API POST /api/v2/verified_program_enrollments/{program_id}/{courserun_id}/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '201' status



## Changes for v1.yaml:
53 changes: 14 error, 0 warning, 39 info
error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v0/discounts/{parent_lookup_discount}/products/
		added 'subschema #3' to the 'results/items/product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v0/discounts/{parent_lookup_discount}/products/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '201'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API PUT /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v0/orders/history/
		added 'subschema #3' to the 'results/items/lines/items/product/allOf[#/components/schemas/Product]/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v0/orders/history/{id}/
		added 'subschema #3' to the 'lines/items/product/allOf[#/components/schemas/Product]/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v0/products/
		added 'subschema #3' to the 'results/items/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v0/products/all/
		added 'subschema #3' to the 'results/items/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v0/products/all/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '201'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API PUT /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v0/products/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

info	[api-schema-removed] 	
	in components/schemas
		removed the schema 'PaginatedV2ProgramList'

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/course_runs/
		added the required property '/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/course_runs/{id}/
		added the required property 'enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/courses/
		added the required property 'results/items/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/courses/{id}/
		added the required property 'courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/enrollments/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/enrollments/{id}/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API PUT /api/v1/enrollments/{id}/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/program_enrollments/
		added the required property '/items/program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API DELETE /api/v1/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API DELETE /api/v1/program_enrollments/{id}/
		added the required property 'program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/program_enrollments/{id}/
		added the required property 'program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/programs/
		added the required property 'results/items/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/programs/{id}/
		added the required property 'courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/course_certificates/{cert_uuid}/
		added the required property 'course_run/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/course_certificates/{cert_uuid}/
		added the required property 'course_run/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/courses/
		added the required property 'results/items/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/courses/
		added the required property 'results/items/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/courses/{id}/
		added the required property 'courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/courses/{id}/
		added the required property 'programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v2/enrollments/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v2/enrollments/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.coursepage
		added the required property 'items/items/course_details/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		added the required property '/oneOf[#/components/schemas/CoursePageItem]/course_details/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		added the required property 'results/items/products' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		added the required property 'products' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v2/verified_program_enrollments/{program_id}/{courserun_id}/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v2/verified_program_enrollments/{program_id}/{courserun_id}/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '201' status



## Changes for v2.yaml:
53 changes: 14 error, 0 warning, 39 info
error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v0/discounts/{parent_lookup_discount}/products/
		added 'subschema #3' to the 'results/items/product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API POST /api/v0/discounts/{parent_lookup_discount}/products/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '201'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API PATCH /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API PUT /api/v0/discounts/{parent_lookup_discount}/products/{id}/
		added 'subschema #3' to the 'product/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v0/orders/history/
		added 'subschema #3' to the 'results/items/lines/items/product/allOf[#/components/schemas/Product]/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v0/orders/history/{id}/
		added 'subschema #3' to the 'lines/items/product/allOf[#/components/schemas/Product]/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v0/products/
		added 'subschema #3' to the 'results/items/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v0/products/all/
		added 'subschema #3' to the 'results/items/purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API POST /api/v0/products/all/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '201'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API PATCH /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API PUT /api/v0/products/all/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

error	[response-property-one-of-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v0/products/{id}/
		added 'subschema #3' to the 'purchasable_object' response property 'oneOf' list for the response status '200'

info	[api-schema-removed] 	
	in components/schemas
		removed the schema 'PaginatedV2ProgramList'

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/course_runs/
		added the required property '/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/course_runs/{id}/
		added the required property 'enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/courses/
		added the required property 'results/items/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/courses/{id}/
		added the required property 'courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API POST /api/v1/enrollments/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API PATCH /api/v1/enrollments/{id}/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API PUT /api/v1/enrollments/{id}/
		added the required property 'run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/program_enrollments/
		added the required property '/items/program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API DELETE /api/v1/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API DELETE /api/v1/program_enrollments/{id}/
		added the required property 'program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V1CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/program_enrollments/{id}/
		added the required property 'program/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/programs/
		added the required property 'results/items/courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v1/programs/{id}/
		added the required property 'courses/allOf[#/components/schemas/V1CourseWithCourseRuns]/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/course_certificates/{cert_uuid}/
		added the required property 'course_run/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/course_certificates/{cert_uuid}/
		added the required property 'course_run/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/courses/
		added the required property 'results/items/courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/courses/
		added the required property 'results/items/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/courses/{id}/
		added the required property 'courseruns/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/courses/{id}/
		added the required property 'programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/enrollments/
		added the required property '/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API POST /api/v2/enrollments/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API POST /api/v2/enrollments/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.coursepage
		added the required property 'items/items/course_details/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		added the required property '/oneOf[#/components/schemas/CoursePageItem]/course_details/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_enrollments/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		added the required property '/items/enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		added the required property 'enrollments/items/run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		added the required property 'results/items/products' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		added the required property 'products' to the response with the '200' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API POST /api/v2/verified_program_enrollments/{program_id}/{courserun_id}/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/course/allOf[#/components/schemas/V2Course]/programs/items/enrollment_modes' to the response with the '201' status

info	[response-required-property-added] at head/openapi/specs/v2.yaml	
	in API POST /api/v2/verified_program_enrollments/{program_id}/{courserun_id}/
		added the required property 'run/allOf[#/components/schemas/V2CourseRunWithCourse]/enrollment_modes' to the response with the '201' status



Unexpected changes? Ensure your branch is up-to-date with main (consider rebasing).

Comment on lines 804 to 810
# Get the details from each Product.
product_versions, product_object_ids, product_content_types = [], [], []
for product in products:
product_versions.append(Version.objects.get_for_object(product).first())
product_versions.append(Version.objects.get_for_object(product).get())
product_object_ids.append(product.object_id)
product_content_types.append(product.content_type_id)

Copy link

Choose a reason for hiding this comment

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

Bug: Using .get() on Version.objects.get_for_object(product) will raise an exception if a product has zero or multiple versions, crashing the checkout process.
Severity: CRITICAL

Suggested Fix

Revert the change from .get() back to .first(). The .first() method correctly handles cases where zero or multiple versions exist by returning None or the first object, which is the established pattern in the codebase.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: ecommerce/models.py#L804-L810

Potential issue: The change from `.first()` to `.get()` on the
`Version.objects.get_for_object(product)` queryset will cause an unhandled exception
during checkout. If a product has been updated, it will have multiple versions, causing
`.get()` to raise a `MultipleObjectsReturned` exception. In the less likely case that a
product has no versions, it will raise a `DoesNotExist` exception. Since this code
executes during order creation, either exception will crash the checkout process and
prevent the user from completing their purchase.

Did we get this right? 👍 / 👎 to inform future reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants