mirror of
https://github.com/immich-app/devtools.git
synced 2026-09-30 13:23:00 +08:00
72 lines
2.5 KiB
YAML
72 lines
2.5 KiB
YAML
name: 'Create workflow token'
|
|
description: 'Create an app token, with fallback to $\{{ github.token }}'
|
|
inputs:
|
|
client-id:
|
|
description: 'The GitHub App Client ID'
|
|
required: false
|
|
private-key:
|
|
description: 'The GitHub App private key (PEM format)'
|
|
required: false
|
|
permission-contents:
|
|
description: "Access level for repository contents. 'read' or 'write'."
|
|
required: false
|
|
permission-pull-requests:
|
|
description: "Access level for pull requests. 'read' or 'write'."
|
|
required: false
|
|
permission-issues:
|
|
description: "Access level for issues. 'read' or 'write'."
|
|
required: false
|
|
permission-actions:
|
|
description: "Access level for GitHub Actions. 'read' or 'write'."
|
|
required: false
|
|
permission-workflows:
|
|
description: "Access level for workflows. 'read' or 'write'."
|
|
required: false
|
|
permission-discussions:
|
|
description: "Access level for discussions. 'read' or 'write'."
|
|
required: false
|
|
|
|
outputs:
|
|
token:
|
|
description: 'The created token, or $\{{ github.token }} if creation failed'
|
|
value: ${{ steps.output.outputs.token }}
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- name: Require at least one permission
|
|
shell: bash
|
|
env:
|
|
PERMISSIONS: '${{ inputs.permission-contents }}${{ inputs.permission-pull-requests }}${{ inputs.permission-issues }}${{ inputs.permission-actions }}'
|
|
run: |
|
|
if [ -z "$PERMISSIONS" ]; then
|
|
echo "::error::create-workflow-token requires at least one permission-* input"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Generate a token
|
|
id: app-token
|
|
continue-on-error: true
|
|
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
|
|
with:
|
|
client-id: ${{ inputs.client-id }}
|
|
private-key: ${{ inputs.private-key }}
|
|
permission-contents: ${{ inputs.permission-contents }}
|
|
permission-pull-requests: ${{ inputs.permission-pull-requests }}
|
|
permission-issues: ${{ inputs.permission-issues }}
|
|
permission-actions: ${{ inputs.permission-actions }}
|
|
permission-workflows: ${{ inputs.permission-workflows }}
|
|
permission-discussions: ${{ inputs.permission-discussions }}
|
|
|
|
- name: Set output
|
|
id: output
|
|
shell: bash
|
|
run: |
|
|
if [ "${{ steps.app-token.outcome }}" == "success" ]; then
|
|
echo "Using generated app token"
|
|
echo "token=${{ steps.app-token.outputs.token }}" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "Falling back to github.token"
|
|
echo "token=${{ github.token }}" >> $GITHUB_OUTPUT
|
|
fi
|