#11 Feature: Releases support

Chiuso
aperto 9 mesi fa da claude · 3 commenti

Description

Add support for Gogs Releases functionality to the MCP server.

Why This Feature?

Releases allow versioning and distribution of software packages, making it easier to track and download specific versions of a project.

Requirements

  • Implement list_releases tool - List all releases for a repository
  • Add proper TypeScript types for Release objects
  • Support release metadata (tag name, name, description, attachments)
  • Update documentation with usage examples

API Endpoints to Implement

  • GET /repos/:owner/:repo/releases - List releases

Implementation Note

Currently, the Gogs API v1 documentation only shows the listing endpoint for releases. Create, update, and delete operations may not be available in the current Gogs API version. This implementation should focus on read-only access.

Related

Requested by @fszontagh in #4

API Reference

See Gogs API documentation for releases endpoints.

## Description Add support for Gogs Releases functionality to the MCP server. ## Why This Feature? Releases allow versioning and distribution of software packages, making it easier to track and download specific versions of a project. ## Requirements - Implement `list_releases` tool - List all releases for a repository - Add proper TypeScript types for Release objects - Support release metadata (tag name, name, description, attachments) - Update documentation with usage examples ## API Endpoints to Implement - `GET /repos/:owner/:repo/releases` - List releases ## Implementation Note Currently, the Gogs API v1 documentation only shows the listing endpoint for releases. Create, update, and delete operations may not be available in the current Gogs API version. This implementation should focus on read-only access. ## Related Requested by @fszontagh in #4 ## API Reference See Gogs API documentation for releases endpoints.
Claude Coding Agent ha commentato 9 mesi fa
Proprietario

@fszontagh I'm starting work on this issue now! I'll implement the list_releases tool for listing repository releases with proper TypeScript types and documentation. Since the Gogs API only supports read-only access to releases, I'll focus on the GET endpoint for listing releases.

@fszontagh I'm starting work on this issue now\! I'll implement the list_releases tool for listing repository releases with proper TypeScript types and documentation. Since the Gogs API only supports read-only access to releases, I'll focus on the GET endpoint for listing releases.
Claude Coding Agent ha commentato 9 mesi fa
Proprietario

Implementation Complete!

I've successfully implemented the releases support feature as requested in this issue. Here's what was done:

Changes Made

1. TypeScript Types Added

  • GogsRelease: Complete type definition for release objects
  • GogsReleaseAttachment: Type for release assets/attachments
  • Both types include all relevant metadata (tag name, author, timestamps, download URLs, etc.)

2. API Client Method

  • Added listReleases(owner, repo) method to gogs-client.ts
  • Implements GET /repos/:owner/:repo/releases endpoint
  • Returns properly typed array of GogsRelease objects

3. MCP Tool Registration

  • Added list_releases tool with Zod schema validation
  • Tool accepts owner and repo parameters
  • Returns formatted JSON response with all release data

4. Documentation Updates

  • README.md: Added Release Management to features list
  • README.md: Added detailed list_releases tool documentation
  • README.md: Removed releases from unimplemented endpoints table
  • CLAUDE.md: Added Release Management to MCP Tool Categories

Implementation Details

The implementation is read-only as specified in the requirements. The Gogs API v1 only documents the GET endpoint for releases, so create/update/delete operations are not included.

Release Data Returned

  • Tag name and target commitish
  • Release name and description
  • Draft and prerelease flags
  • Author information
  • Created and published timestamps
  • Array of downloadable assets with:
    • File names and sizes
    • Download counts
    • Browser download URLs
    • UUIDs for identification

Testing

✅ Project builds successfully without TypeScript errors ✅ All code follows the project's ES module conventions ✅ Documentation is complete and consistent

The feature is now ready to use! 🎉

✅ **Implementation Complete!** I've successfully implemented the releases support feature as requested in this issue. Here's what was done: ## Changes Made ### 1. TypeScript Types Added - **GogsRelease**: Complete type definition for release objects - **GogsReleaseAttachment**: Type for release assets/attachments - Both types include all relevant metadata (tag name, author, timestamps, download URLs, etc.) ### 2. API Client Method - Added `listReleases(owner, repo)` method to `gogs-client.ts` - Implements `GET /repos/:owner/:repo/releases` endpoint - Returns properly typed array of GogsRelease objects ### 3. MCP Tool Registration - Added `list_releases` tool with Zod schema validation - Tool accepts `owner` and `repo` parameters - Returns formatted JSON response with all release data ### 4. Documentation Updates - **README.md**: Added Release Management to features list - **README.md**: Added detailed `list_releases` tool documentation - **README.md**: Removed releases from unimplemented endpoints table - **CLAUDE.md**: Added Release Management to MCP Tool Categories ## Implementation Details The implementation is **read-only** as specified in the requirements. The Gogs API v1 only documents the GET endpoint for releases, so create/update/delete operations are not included. ### Release Data Returned - Tag name and target commitish - Release name and description - Draft and prerelease flags - Author information - Created and published timestamps - Array of downloadable assets with: - File names and sizes - Download counts - Browser download URLs - UUIDs for identification ## Testing ✅ Project builds successfully without TypeScript errors ✅ All code follows the project's ES module conventions ✅ Documentation is complete and consistent The feature is now ready to use! 🎉
Claude Coding Agent ha commentato 9 mesi fa
Proprietario

Summary

All tasks have been completed successfully:

  1. ✅ Added GogsRelease and GogsReleaseAttachment TypeScript types
  2. ✅ Implemented listReleases() API client method
  3. ✅ Registered list_releases MCP tool with schema validation
  4. ✅ Updated README.md with complete documentation
  5. ✅ Updated CLAUDE.md with tool category listing
  6. ✅ Built and verified compilation (no errors)
  7. ✅ Committed and pushed to repository with issue reference

Commit: 2d71787 - feat: add releases support #11

The releases feature is now fully integrated into the Gogs MCP server and ready for use! 🚀

## Summary All tasks have been completed successfully: 1. ✅ Added **GogsRelease** and **GogsReleaseAttachment** TypeScript types 2. ✅ Implemented **listReleases()** API client method 3. ✅ Registered **list_releases** MCP tool with schema validation 4. ✅ Updated **README.md** with complete documentation 5. ✅ Updated **CLAUDE.md** with tool category listing 6. ✅ Built and verified compilation (no errors) 7. ✅ Committed and pushed to repository with issue reference **Commit**: `2d71787` - feat: add releases support #11 The releases feature is now fully integrated into the Gogs MCP server and ready for use! 🚀
Sign in to join this conversation.
Nessuna milestone
Nessun assegnatario
1 Partecipanti
Caricamento...
Annulla
Salva
Non ci sono ancora contenuti.