codecov / codecov-api

Code for the API of Codecov
Other
214 stars 29 forks source link

[fix] Fix duplicate key value violates unique constraint "owner_service_ids" Sentry errors #705

Closed rohitvinnakota-codecov closed 1 month ago

rohitvinnakota-codecov commented 1 month ago

Purpose/Motivation

This PR closes https://github.com/codecov/internal-issues/issues/493

We query for an owner during webhook events using get_or_create based on their service, service_id, and username. The combination of service and service_id serves as a unique key. We have cases where we have entries in the users table with no username so the get part of the get_or_create would return None and the create part attempts to create a new entry but fails due to violating the constraint. This change moves the username field to be a default argument.

Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. In 2022 this entity acquired Codecov and as result Sentry is going to need some rights from me in order to utilize my contributions in this PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

sentry-io[bot] commented 1 month ago

🔍 Existing Issues For Review

Your pull request is modifying functions with the following pre-existing issues:

📄 File: webhook_handlers/views/github.py

Function Unhandled Issue
_handle_installation_repository_events GithubAppInstallation.MultipleObjectsReturned: get() returned more than one GithubAppInstallation -- it returned 2! ...
Event Count: 22

Did you find this useful? React with a 👍 or 👎

codecov-qa[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 91.65%. Comparing base (8339939) to head (25e5b3a).

:white_check_mark: All tests successful. No failed tests found.

@@           Coverage Diff           @@
##             main     #705   +/-   ##
=======================================
  Coverage   91.65%   91.65%           
=======================================
  Files         632      632           
  Lines       16917    16917           
=======================================
  Hits        15506    15506           
  Misses       1411     1411           
Flag Coverage Δ
unit 91.65% <ø> (ø)
unit-latest-uploader 91.65% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Coverage Δ
webhook_handlers/views/github.py 99.06% <ø> (ø)

:mega: Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today!

codecov-notifications[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

:white_check_mark: All tests successful. No failed tests found.

:loudspeaker: Thoughts on this report? Let us know!

codecov-public-qa[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 91.65%. Comparing base (8339939) to head (25e5b3a).

:white_check_mark: All tests successful. No failed tests found.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #705   +/-   ##
=======================================
  Coverage   91.65%   91.65%           
=======================================
  Files         632      632           
  Lines       16917    16917           
=======================================
  Hits        15506    15506           
  Misses       1411     1411           
Flag Coverage Δ
unit 91.65% <ø> (ø)
unit-latest-uploader 91.65% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Coverage Δ
webhook_handlers/views/github.py 99.06% <ø> (ø)

Impacted file tree graph

codecov[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.98%. Comparing base (8339939) to head (25e5b3a).

Changes have been made to critical files, which contain lines commonly executed in production. Learn more

:white_check_mark: All tests successful. No failed tests found.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #705 +/- ## =========================================== Coverage 95.98000 95.98000 =========================================== Files 812 812 Lines 18254 18254 =========================================== Hits 17522 17522 Misses 732 732 ``` | [Flag](https://app.codecov.io/gh/codecov/codecov-api/pull/705/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=codecov) | Coverage Δ | | |---|---|---| | [unit](https://app.codecov.io/gh/codecov/codecov-api/pull/705/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=codecov) | `91.65% <ø> (ø)` | | | [unit-latest-uploader](https://app.codecov.io/gh/codecov/codecov-api/pull/705/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=codecov) | `91.65% <ø> (ø)` | | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=codecov#carryforward-flags-in-the-pull-request-comment) to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.