# ######################################################################## #
#               WARNING: AUTO-GENERATED FILE - DO NOT EDIT!                #
#                                                                          #
# Please be advised that this is an auto-generated file and should NOT be  #
#       modified. Any changes made to this file WILL BE OVERWRITTEN.       #
#                                                                          #
#     To make changes to the contents of this file, please modify the      #
# action.template.yml file instead. This will ensure that your changes are #
#              properly reflected in the auto-generated file.              #
# ######################################################################## #
name: mc-publish
description: Your one-stop GitHub Action for seamless Minecraft project
  publication across various platforms.
author: Kir-Antipov
branding:
  color: purple
  icon: box
types:
  input:
    name: McPublishInput
    description: The input parameters for the action.
  output:
    name: McPublishOutput
    description: The output parameters provided by the action.
groups:
  input:
    modrinth:
      type: ModrinthUploadRequest
      description: Options used to publish Minecraft projects to Modrinth.
    curseforge:
      type: CurseForgeUploadRequest
      description: Options used to publish Minecraft projects to CurseForge.
    github:
      type: GitHubUploadRequest
      description: Options used to publish Minecraft projects to GitHub.
  output:
    modrinth:
      type: ModrinthUploadReport
      description: Report detailing the status of the project published on Modrinth.
    curseforge:
      type: CurseForgeUploadReport
      description: Report detailing the status of the project published on CurseForge.
    github:
      type: GitHubUploadReport
      description: Report detailing the status of the project published on GitHub.
inputs:
  modrinth-id:
    type: string
    description: The unique identifier of your Modrinth project.
    required: false
    default: ${undefined}
  modrinth-featured:
    type: boolean
    description: Set to true to feature the version on Modrinth; false otherwise.
    required: false
    default: ${undefined}
  modrinth-unfeature-mode:
    type: platforms.modrinth.ModrinthUnfeatureMode
    description: Sets the behavior for unfeaturing older Modrinth versions.
    default: subset
    required: false
  modrinth-token:
    type: utils.security.SecureString
    description: Your Modrinth API token.
    required: false
    default: ${undefined}
  curseforge-id:
    type: string
    description: The unique identifier of your CurseForge project.
    required: false
    default: ${undefined}
  curseforge-token:
    type: utils.security.SecureString
    description: Your CurseForge API token.
    required: false
    default: ${undefined}
  github-tag:
    type: string
    description: The tag name for the release where assets will be uploaded.
    required: false
    default: ${undefined}
  github-generate-changelog:
    type: boolean
    description: Set to true to generate a changelog automatically for this release;
      false otherwise. Ignored if the GitHub Release already exists.
    required: false
    default: ${undefined}
  github-draft:
    type: boolean
    description: Set to true to create a draft release; false otherwise. Ignored if
      the GitHub Release already exists.
    required: false
    default: ${undefined}
  github-prerelease:
    type: boolean
    description: Set to true to mark the release as a prerelease; false otherwise.
      Ignored if the GitHub Release already exists.
    required: false
    default: ${undefined}
  github-commitish:
    type: string
    description: Defines the commitish value that determines where the Git tag is
      created from. Can be any branch or commit SHA. Ignored if the Git tag
      already exists.
    required: false
    default: ${undefined}
  github-discussion:
    type: string
    description: If specified, creates and links a discussion of the specified
      **existing** category to the release. Ignored if the GitHub Release
      already exists.
    required: false
    default: ${undefined}
  github-token:
    type: utils.security.SecureString
    description: Your GitHub API token.
    required: false
    default: ${undefined}
  files:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    description: An array of globs determining which files to upload.
    default: |
      build/libs/!(*-@(dev|sources|javadoc)).jar
      build/libs/*-@(dev|sources|javadoc).jar
    required: false
  files-primary:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    redirect: files
    description: A glob determining the primary files to upload.
    deprecationMessage: Please, use 'files' instead.
    required: false
    default: ${undefined}
  files-secondary:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    redirect: void
    description: A glob determining the secondary files to upload.
    deprecationMessage: Please, use 'files' instead.
    required: false
    default: ${undefined}
  name:
    type: string
    description: The name of the version.
    required: false
    default: ${undefined}
  version:
    type: string
    description: The version number.
    required: false
    default: ${undefined}
  version-type:
    type: utils.versioning.VersionType
    description: The version type - alpha, beta, or release.
    required: false
    default: ${undefined}
  changelog:
    type: string
    description: The changelog for this version.
    required: false
    default: ${undefined}
  changelog-file:
    type: string;utils/io/file-info->{readAllText}
    redirect: changelog
    description: A glob pointing to the changelog file.
    required: false
    default: ${undefined}
  loaders:
    type: string[]?separator=/\s%2B/
    description: An array of supported mod loaders.
    required: false
    default: ${undefined}
  game-versions:
    type: string[]
    description: An array of supported Minecraft versions.
    required: false
    default: ${undefined}
  dependencies:
    type: dependencies.Dependency[]
    description: An array of dependencies required by your project.
    required: false
    default: ${undefined}
  version-resolver:
    type: games.GameVersionFilter:fromVersionResolver
    redirect: game-version-filter
    description: Controls the method used to automatically resolve game versions.
    deprecationMessage: Please, use 'game-version-filter' instead.
    required: false
    default: ${undefined}
  game-version-filter:
    type: games.GameVersionFilter
    description: Controls the method used to filter game versions.
    default: releases
    required: false
  java:
    type: utils.java.JavaVersion[]
    description: An array of Java versions compatible with your project.
    required: false
    default: ${undefined}
  retry-attempts:
    description: Defines the maximum number of asset publishing attempts.
    type: number
    default: 2
    required: false
  retry-delay:
    description: Specifies the delay (in milliseconds) between asset publishing attempts.
    type: number
    default: 10000
    required: false
  fail-mode:
    type: utils.errors.FailMode
    description: Controls how the action responds to errors during the mod
      publishing process.
    default: fail
    required: false
  modrinth-files:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    description: An array of globs determining which files to upload.
    default: ${undefined}
    required: false
  curseforge-files:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    description: An array of globs determining which files to upload.
    default: ${undefined}
    required: false
  github-files:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    description: An array of globs determining which files to upload.
    default: ${undefined}
    required: false
  modrinth-files-primary:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    redirect: modrinth-files
    description: A glob determining the primary files to upload.
    deprecationMessage: Please, use 'files' instead.
    required: false
    default: ${undefined}
  curseforge-files-primary:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    redirect: curseforge-files
    description: A glob determining the primary files to upload.
    deprecationMessage: Please, use 'files' instead.
    required: false
    default: ${undefined}
  github-files-primary:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    redirect: github-files
    description: A glob determining the primary files to upload.
    deprecationMessage: Please, use 'files' instead.
    required: false
    default: ${undefined}
  modrinth-files-secondary:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    redirect: modrinth-void
    description: A glob determining the secondary files to upload.
    deprecationMessage: Please, use 'files' instead.
    required: false
    default: ${undefined}
  curseforge-files-secondary:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    redirect: curseforge-void
    description: A glob determining the secondary files to upload.
    deprecationMessage: Please, use 'files' instead.
    required: false
    default: ${undefined}
  github-files-secondary:
    type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
    redirect: github-void
    description: A glob determining the secondary files to upload.
    deprecationMessage: Please, use 'files' instead.
    required: false
    default: ${undefined}
  modrinth-name:
    type: string
    description: The name of the version.
    required: false
    default: ${undefined}
  curseforge-name:
    type: string
    description: The name of the version.
    required: false
    default: ${undefined}
  github-name:
    type: string
    description: The name of the version.
    required: false
    default: ${undefined}
  modrinth-version:
    type: string
    description: The version number.
    required: false
    default: ${undefined}
  curseforge-version:
    type: string
    description: The version number.
    required: false
    default: ${undefined}
  github-version:
    type: string
    description: The version number.
    required: false
    default: ${undefined}
  modrinth-version-type:
    type: utils.versioning.VersionType
    description: The version type - alpha, beta, or release.
    required: false
    default: ${undefined}
  curseforge-version-type:
    type: utils.versioning.VersionType
    description: The version type - alpha, beta, or release.
    required: false
    default: ${undefined}
  github-version-type:
    type: utils.versioning.VersionType
    description: The version type - alpha, beta, or release.
    required: false
    default: ${undefined}
  modrinth-changelog:
    type: string
    description: The changelog for this version.
    required: false
    default: ${undefined}
  curseforge-changelog:
    type: string
    description: The changelog for this version.
    required: false
    default: ${undefined}
  github-changelog:
    type: string
    description: The changelog for this version.
    required: false
    default: ${undefined}
  modrinth-changelog-file:
    type: string;utils/io/file-info->{readAllText}
    redirect: modrinth-changelog
    description: A glob pointing to the changelog file.
    required: false
    default: ${undefined}
  curseforge-changelog-file:
    type: string;utils/io/file-info->{readAllText}
    redirect: curseforge-changelog
    description: A glob pointing to the changelog file.
    required: false
    default: ${undefined}
  github-changelog-file:
    type: string;utils/io/file-info->{readAllText}
    redirect: github-changelog
    description: A glob pointing to the changelog file.
    required: false
    default: ${undefined}
  modrinth-loaders:
    type: string[]?separator=/\s%2B/
    description: An array of supported mod loaders.
    required: false
    default: ${undefined}
  curseforge-loaders:
    type: string[]?separator=/\s%2B/
    description: An array of supported mod loaders.
    required: false
    default: ${undefined}
  github-loaders:
    type: string[]?separator=/\s%2B/
    description: An array of supported mod loaders.
    required: false
    default: ${undefined}
  modrinth-game-versions:
    type: string[]
    description: An array of supported Minecraft versions.
    required: false
    default: ${undefined}
  curseforge-game-versions:
    type: string[]
    description: An array of supported Minecraft versions.
    required: false
    default: ${undefined}
  github-game-versions:
    type: string[]
    description: An array of supported Minecraft versions.
    required: false
    default: ${undefined}
  modrinth-dependencies:
    type: dependencies.Dependency[]
    description: An array of dependencies required by your project.
    required: false
    default: ${undefined}
  curseforge-dependencies:
    type: dependencies.Dependency[]
    description: An array of dependencies required by your project.
    required: false
    default: ${undefined}
  github-dependencies:
    type: dependencies.Dependency[]
    description: An array of dependencies required by your project.
    required: false
    default: ${undefined}
  modrinth-version-resolver:
    type: games.GameVersionFilter:fromVersionResolver
    redirect: modrinth-game-version-filter
    description: Controls the method used to automatically resolve game versions.
    deprecationMessage: Please, use 'game-version-filter' instead.
    required: false
    default: ${undefined}
  curseforge-version-resolver:
    type: games.GameVersionFilter:fromVersionResolver
    redirect: curseforge-game-version-filter
    description: Controls the method used to automatically resolve game versions.
    deprecationMessage: Please, use 'game-version-filter' instead.
    required: false
    default: ${undefined}
  github-version-resolver:
    type: games.GameVersionFilter:fromVersionResolver
    redirect: github-game-version-filter
    description: Controls the method used to automatically resolve game versions.
    deprecationMessage: Please, use 'game-version-filter' instead.
    required: false
    default: ${undefined}
  modrinth-game-version-filter:
    type: games.GameVersionFilter
    description: Controls the method used to filter game versions.
    default: ${undefined}
    required: false
  curseforge-game-version-filter:
    type: games.GameVersionFilter
    description: Controls the method used to filter game versions.
    default: ${undefined}
    required: false
  github-game-version-filter:
    type: games.GameVersionFilter
    description: Controls the method used to filter game versions.
    default: ${undefined}
    required: false
  modrinth-java:
    type: utils.java.JavaVersion[]
    description: An array of Java versions compatible with your project.
    required: false
    default: ${undefined}
  curseforge-java:
    type: utils.java.JavaVersion[]
    description: An array of Java versions compatible with your project.
    required: false
    default: ${undefined}
  github-java:
    type: utils.java.JavaVersion[]
    description: An array of Java versions compatible with your project.
    required: false
    default: ${undefined}
  modrinth-retry-attempts:
    description: Defines the maximum number of asset publishing attempts.
    type: number
    default: ${undefined}
    required: false
  curseforge-retry-attempts:
    description: Defines the maximum number of asset publishing attempts.
    type: number
    default: ${undefined}
    required: false
  github-retry-attempts:
    description: Defines the maximum number of asset publishing attempts.
    type: number
    default: ${undefined}
    required: false
  modrinth-retry-delay:
    description: Specifies the delay (in milliseconds) between asset publishing attempts.
    type: number
    default: ${undefined}
    required: false
  curseforge-retry-delay:
    description: Specifies the delay (in milliseconds) between asset publishing attempts.
    type: number
    default: ${undefined}
    required: false
  github-retry-delay:
    description: Specifies the delay (in milliseconds) between asset publishing attempts.
    type: number
    default: ${undefined}
    required: false
  modrinth-fail-mode:
    type: utils.errors.FailMode
    description: Controls how the action responds to errors during the mod
      publishing process.
    default: ${undefined}
    required: false
  curseforge-fail-mode:
    type: utils.errors.FailMode
    description: Controls how the action responds to errors during the mod
      publishing process.
    default: ${undefined}
    required: false
  github-fail-mode:
    type: utils.errors.FailMode
    description: Controls how the action responds to errors during the mod
      publishing process.
    default: ${undefined}
    required: false
outputs:
  modrinth-id:
    type: string
    description: The unique identifier of your Modrinth project.
  modrinth-version:
    type: string
    description: The unique identifier of the version published on Modrinth by this action.
  modrinth-url:
    type: string
    description: The URL directing to the newly published version on Modrinth.
  modrinth-files:
    type: platforms.UploadedFile[]
    description: Array of objects, each containing details about the files published
      for the new version on Modrinth, such as file `name`, `id`, and download
      `url`.
  curseforge-id:
    type: number
    description: The unique identifier of your CurseForge project.
  curseforge-version:
    type: number
    description: The unique identifier of the version published on CurseForge by
      this action.
  curseforge-url:
    type: string
    description: The URL directing to the newly published version on CurseForge.
  curseforge-files:
    type: platforms.UploadedFile[]
    description: Array of objects, each containing details about the files published
      for the new version on CurseForge, such as file `name`, `id`, and download
      `url`.
  github-repo:
    type: string
    description: The full repository name on GitHub, formatted as 'username/repository'.
  github-tag:
    type: string
    description: The Git tag associated with the new or updated release published on GitHub.
  github-url:
    type: string
    description: The URL directing to the newly published version on GitHub.
  github-files:
    type: platforms.UploadedFile[]
    description: Array of objects, each containing details about the files published
      for the new version on GitHub, such as file `name`, `id`, and download
      `url`.
runs:
  using: node16
  main: dist/index.js