Skip to content

API routes referencing a specific issue should use the issue `iid`

Timothy Andrew requested to merge 28251-mr-and-issue-iids-for-api-v4 into master

What does this MR do?

  • Use Issues and MR iids instead of id for API v4 routes of the form /projects/:project_id/issues/:issue_id

Are there points in the code the reviewer needs to double check?

  • Make sure there aren't any endpoints that need to be migrated to IID that aren't covered by this MR.
  • Make sure v3 compatibility is maintained.

Why was this MR needed?

  • This change makes the API more closely resemble the routes of the web interface.
  • Since this is a breaking change, this should go into API v4.

Tasks

  • Implementation
    • Modify routes in lib/api/issues
    • Modify routes in lib/api/merge_requests
    • Any other instances of :merge_request_id
      • Merge request diffs
      • Award emoji
      • Todos API
      • TimeTrackingEndpoints
    • Any other instances of :issue_id
      • Award emoji
      • Todos API
      • TimeTrackingEndpoints
  • Tests
    • Added
    • Passing
  • Meta
    • CHANGELOG entry created
    • Branch has no merge conflicts with master
    • Squashed related commits together
    • Added screenshots
    • Check for clean merge with EE
    • Documentation added/updated
      • Merge requests API
      • Issues API
      • Award emoji API
      • Todos API
      • Time tracking endpoints
      • Update v3-to-v4 document
  • Follow-up
    • Sanity check from command line
    • Verify that V3 API is unaffected
      • Backport "time tracking endpoints" to v3
      • Any other V3 backports to be made?
    • Verify that award emoji conflict was resolved correctly
    • Verify that conflicts on EE branch were resolved correctly
  • Review
    • Reviewer
    • Maintainer
  • Wait for merge

Merge request reports