Add initial files
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
|||||||
|
name: Codex Bot
|
||||||
|
description: Run Codex CLI for approved Gitea issue/PR automation
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
gitea-token:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
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
|
||||||
|
npm install -g @openai/codex
|
||||||
|
|
||||||
|
- name: Run Codex Bot
|
||||||
|
shell: bash
|
||||||
|
run: bash "${ACTION_PATH}/scripts/run-codex.sh"
|
||||||
|
env:
|
||||||
|
ACTION_PATH: ${{ gitea.action_path }}
|
||||||
|
GITEA_API_URL: ${{ gitea.api_url }}
|
||||||
|
GITEA_REPOSITORY: ${{ gitea.repository }}
|
||||||
|
GITEA_TOKEN: ${{ inputs.gitea-token }}
|
||||||
|
ISSUE_INDEX: ${{ gitea.event.issue.number }}
|
||||||
|
COMMENT_BODY: ${{ gitea.event.comment.body }}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
You are Codex running inside Gitea Actions.
|
||||||
|
|
||||||
|
First read `.codex-bot/context.md`. Treat the triggering comment body below as
|
||||||
|
the user's exact instruction.
|
||||||
|
|
||||||
|
Write your final report to stdout. It will be posted back to Gitea as a comment
|
||||||
|
automatically after Codex exits.
|
||||||
|
|
||||||
|
Install missing tools yourself when needed, including Rust, uv, Node, Deno, or
|
||||||
|
system packages.
|
||||||
|
|
||||||
|
Prefer minimal, correct changes. Run relevant checks or tests if practical.
|
||||||
|
Commit your changes locally. Do not expose secrets. Finish by reporting what
|
||||||
|
changed and what tests ran.
|
||||||
|
|
||||||
|
The triggering comment body is below.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
${COMMENT_BODY}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
git config --global user.name bot
|
||||||
|
git config --global user.email noreply@capsulizers.com
|
||||||
|
|
||||||
|
FINAL_PROMPT="$(envsubst < "${ACTION_PATH}/scripts/prompt.md")"
|
||||||
|
OUTPUT_FILE="$(mktemp)"
|
||||||
|
|
||||||
|
set +e
|
||||||
|
codex exec \
|
||||||
|
--full-auto \
|
||||||
|
--dangerously-bypass-approvals-and-sandbox \
|
||||||
|
"${FINAL_PROMPT}" > "${OUTPUT_FILE}" 2>&1
|
||||||
|
CODEX_STATUS="${?}"
|
||||||
|
set -e
|
||||||
|
|
||||||
|
COMMENT_JSON="$(jq -n --rawfile body "${OUTPUT_FILE}" '{body: $body}')"
|
||||||
|
curl --fail-with-body --silent --show-error \
|
||||||
|
-X POST \
|
||||||
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
--data "${COMMENT_JSON}" \
|
||||||
|
"${GITEA_API_URL}/repos/${GITEA_REPOSITORY}/issues/${ISSUE_INDEX}/comments"
|
||||||
|
|
||||||
|
exit "${CODEX_STATUS}"
|
||||||
Reference in New Issue
Block a user