Skip to content

Upload — Publish-CurseForgeProjectFile #28

Description

Parent: #12

Implement Publish-CurseForgeProjectFile for uploading new project files to CurseForge.

Acceptance criteria:

  • Publish-CurseForgeProjectFile uploads a file to a project via POST /projects/{projectId}/upload-file
  • -ProjectId (mandatory), -FilePath (mandatory), -Metadata (hashtable) parameters
  • Metadata includes: changelog, changelogType, displayName, parentFileID, gameVersions[], releaseType, relations
  • Handles multipart/form-data with file binary + metadata JSON
  • Returns the created file response as a typed object
  • CurseForgeUploadFileResponse class created
  • -WhatIf and -Confirm support via SupportsShouldProcess
  • Unit tests cover parameter validation and metadata serialization

  • Create src/classes/public/CurseForgeUploadFileResponse.ps1
  • Create src/functions/public/Upload/Publish-CurseForgeProjectFile.ps1
  • Create tests/Upload/Publish-CurseForgeProjectFile.Tests.ps1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions