--- name: "release-please-manifest-action" description: >- Opinionated action for running release-please in manifest mode with optional support to authenticate as a GitHub App. author: "jimeh" inputs: token: description: >- GitHub token used to authenticate. required: false default: ${{ github.token }} app-id: description: >- ID of the GitHub App to use for authentication. If set, takes precedence over token input. required: false private-key: description: >- Private key of the GitHub App (can be Base64 encoded). Required when app-id is provided. required: false installation-id: description: >- ID of the installation for which the app token will be requested. Defaults to the ID of the repository's installation. permissions: description: >- JSON-stringified permissions granted to the app token. Defaults to all the GitHub app permissions, see: https://docs.github.com/en/rest/apps/apps#create-an-installation-access-token-for-an-app github-api-url: description: Configure github API URL. required: false default: ${{ github.api_url }} repository: description: >- The full name of the repository to operate on in owner/repo format. Defaults to the current repository. default: ${{ github.repository }} default-branch: description: >- Branch to open pull release PR against. Defaults to the repository's default branch. required: false default: "" config-file: description: Pat to config file within the project. required: false default: ".github/release-please-config.json" manifest-file: description: Path to manifest file within the project. required: false default: ".github/.release-please-manifest.json" outputs: release_created: description: "Whether or not a release was created." value: ${{ steps.release-please.outputs.release_created }} releases_created: description: "Whether or not a release was created." value: ${{ steps.release-please.outputs.releases_created }} id: description: "Release ID." value: ${{ steps.release-please.outputs.id }} name: description: "Release name." value: ${{ steps.release-please.outputs.name }} tag_name: description: "Release tag name." value: ${{ steps.release-please.outputs.tag_name }} sha: description: "Release sha" value: ${{ steps.release-please.outputs.sha }} body: description: "Release body." value: ${{ steps.release-please.outputs.body }} html_url: description: "Release URL." value: ${{ steps.release-please.outputs.html_url }} draft: description: "Whether or not the release is a draft." value: ${{ steps.release-please.outputs.draft }} upload_url: description: "Release upload URL." value: ${{ steps.release-please.outputs.upload_url }} path: description: "Path that was released." value: ${{ steps.release-please.outputs.path }} version: description: "Version that was released." value: ${{ steps.release-please.outputs.version }} major: description: "Major version that was released." value: ${{ steps.release-please.outputs.major }} minor: description: "Minor version that was released." value: ${{ steps.release-please.outputs.minor }} patch: description: "Patch version that was released." value: ${{ steps.release-please.outputs.patch }} paths_released: description: "Paths that were released." value: ${{ steps.release-please.outputs.paths_released }} pr: description: "Pull request number." value: ${{ steps.release-please.outputs.pr }} prs: description: "Pull request numbers." value: ${{ steps.release-please.outputs.prs }} release-please: description: "All outputs from release-please action as a JSON string." value: ${{ toJSON(steps.release-please.outputs) }} runs: using: "composite" steps: - uses: tibdex/github-app-token@v1 if: inputs.app-id != null && inputs.app-id != '' id: github-app-token with: app_id: ${{ inputs.app-id }} installation_id: ${{ inputs.installation-id }} github_api_url: ${{ inputs.github-api-url }} permissions: ${{ inputs.permissions }} private_key: ${{ inputs.private-key }} repository: ${{ github.repository }} - name: Determine which token to use id: token run: |- echo "token=${APP_TOKEN:-$INPUT_TOKEN}" >> "$GITHUB_OUTPUT" env: APP_TOKEN: "${{ steps.github-app-token.outputs.token }}" INPUT_TOKEN: "${{ inputs.token }}" shell: bash - uses: google-github-actions/release-please-action@v3 id: release-please with: command: manifest token: ${{ steps.token.outputs.token }} default-branch: ${{ inputs.default-branch }} config-file: ${{ inputs.config-file }} manifest-file: ${{ inputs.manifest-file }} github-api-url: ${{ inputs.github-api-url }} github-graphql-url: ${{ inputs.github-api-url }} repo-url: ${{ inputs.repository }}