feat(licenses): add API endpoints for license package CRUD (edit, delete, archive) #388

Open
opened 2026-06-01 09:19:53 +00:00 by jmiller · 1 comment
Owner

Summary

The API has package list and create but is missing edit, delete, and archive endpoints.

Requirements

  • PATCH /api/v1/repos/{owner}/{repo}/license-packages/{id} — edit package
  • DELETE /api/v1/repos/{owner}/{repo}/license-packages/{id} — delete package
  • POST /api/v1/repos/{owner}/{repo}/license-packages/{id}/archive — archive/unarchive
  • Master package protection (reject edit/delete on Master (Internal))
  • Proper permission checks (admin for edit, owner/site-admin for delete)

Test Plan

  • Edit package name/description via API
  • Delete package via API as admin
  • Archive package via API
  • Try edit master package → verify 403
  • Try delete as non-admin → verify 403

🤖 Generated with Claude Code

## Summary The API has package list and create but is missing edit, delete, and archive endpoints. ## Requirements - `PATCH /api/v1/repos/{owner}/{repo}/license-packages/{id}` — edit package - `DELETE /api/v1/repos/{owner}/{repo}/license-packages/{id}` — delete package - `POST /api/v1/repos/{owner}/{repo}/license-packages/{id}/archive` — archive/unarchive - Master package protection (reject edit/delete on Master (Internal)) - Proper permission checks (admin for edit, owner/site-admin for delete) ## Test Plan - [ ] Edit package name/description via API - [ ] Delete package via API as admin - [ ] Archive package via API - [ ] Try edit master package → verify 403 - [ ] Try delete as non-admin → verify 403 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Author
Owner

Testing Plan — API Package CRUD

API

  • PATCH /license-packages/{id} → 200, updated fields
  • PATCH master package → 403 rejected
  • DELETE /license-packages/{id} → 204
  • DELETE master package → 403 rejected
  • POST /license-packages/{id}/archive → 200
  • POST /license-packages/{id}/unarchive → 200
  • Archive master package → 403 rejected
  • All endpoints require admin auth

🤖 Generated with Claude Code

## Testing Plan — API Package CRUD ### API - [ ] PATCH /license-packages/{id} → 200, updated fields - [ ] PATCH master package → 403 rejected - [ ] DELETE /license-packages/{id} → 204 - [ ] DELETE master package → 403 rejected - [ ] POST /license-packages/{id}/archive → 200 - [ ] POST /license-packages/{id}/unarchive → 200 - [ ] Archive master package → 403 rejected - [ ] All endpoints require admin auth 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jmiller added the pending: testing label 2026-06-01 10:13:52 +00:00
jmiller reopened this issue 2026-06-02 11:21:42 +00:00
Sign in to join this conversation.
No labels pending: testing
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoGitea#388