# Releases & Tags API reference Base: `https://git.mpm.to/api/v1` ## List releases for a repository ```bash curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/releases?limit=20&page=1" ``` Key response fields per release: `id`, `tag_name`, `name`, `body`, `draft`, `prerelease`, `created_at`, `published_at`, `author.login`, `html_url`, `assets`. ## Get the latest release ```bash curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/releases/latest" ``` ## Get a release by tag name ```bash curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/releases/tags/{tag}" ``` ## Get a release by ID ```bash curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/releases/{id}" ``` ## Create a release ```bash curl -s -X POST \ -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ -H "Content-Type: application/json" \ -d '{ "tag_name": "v1.2.0", "name": "Release v1.2.0", "body": "Release notes (markdown supported)", "draft": false, "prerelease": false, "target_commitish": "main" }' \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/releases" ``` `target_commitish` can be a branch name or commit SHA. Set `draft: true` to save without publishing. Set `prerelease: true` for pre-release versions. ## Update a release ```bash curl -s -X PATCH \ -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated release name", "body": "Updated release notes", "draft": false, "prerelease": false }' \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/releases/{id}" ``` ## Delete a release ```bash curl -s -X DELETE \ -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/releases/{id}" ``` Always confirm before deleting a release. ## List tags for a repository ```bash curl -s -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/tags?limit=20" ``` ## Create a tag ```bash curl -s -X POST \ -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ -H "Content-Type: application/json" \ -d '{ "tag_name": "v1.2.0", "message": "Tag message", "target": "main" }' \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/tags" ``` ## Delete a tag ```bash curl -s -X DELETE \ -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/tags/{tag}" ``` ## Upload a release asset ```bash curl -s -X POST \ -H "Authorization: token e82a7235b948fbbeea60329422fcac89fa5a5ce8" \ -H "Content-Type: application/octet-stream" \ --data-binary @/path/to/file \ "https://git.mpm.to/api/v1/repos/{owner}/{repo}/releases/{id}/assets?name=filename.zip" ```