name: Bot agents description: Run a coding agent for approved Gitea issue/PR automation inputs: bot-type: description: Which bot to run, either `codex` or `claude` required: true author-token: description: >- Gitea token of the account that commits, pushes, and opens pull requests. The agent sees it as `GITEA_TOKEN`. required: true reviewer-token: description: >- Gitea token of the bot account that posts comments and pull request reviews. Never exposed to the agent, so it must differ from the author. required: true bot-token: description: API key or token for the selected bot required: false runs: using: composite steps: # This step assumes this is `node:24-bookworm` container. - name: Install dependencies shell: bash run: | apt-get update apt-get install -y --no-install-recommends gettext-base jq ansifilter npm install -g @openai/codex @anthropic-ai/claude-code - name: Run bot shell: bash run: bash "${ACTION_PATH}/scripts/run-${{ inputs.bot-type }}.sh" env: ACTION_PATH: ${{ gitea.action_path }} GITEA_API_URL: ${{ gitea.api_url }} GITEA_REPOSITORY: ${{ gitea.repository }} GITEA_TOKEN: ${{ inputs.author-token }} REVIEWER_TOKEN: ${{ inputs.reviewer-token }} BOT_TOKEN: ${{ inputs.bot-token }} EVENT_NAME: ${{ gitea.event_name }} ISSUE_INDEX: ${{ gitea.event.issue.number || gitea.event.pull_request.number }} COMMENT: ${{ toJSON(gitea.event.comment || gitea.event.review) }}