#!/usr/bin/env bash # # Add a comment to an issue via Gitea API. The comment body is automatically # signed with: Support IA du projet Lecoffre.io / ai.support.lecoffreio@4nkweb.com # Usage: ./comment-issue.sh # Or: echo "message" | ./comment-issue.sh - # set -euo pipefail GITEA_ISSUES_DIR="${GITEA_ISSUES_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}" # shellcheck source=lib.sh source "${GITEA_ISSUES_DIR}/lib.sh" # Signature appended to every comment (same as mail replies) COMMENT_SIGNATURE=$'\n\n--\nSupport IA du projet Lecoffre.io\nai.support.lecoffreio@4nkweb.com' if [[ -n "${GITEA_COMMENT_SIGNATURE:-}" ]]; then COMMENT_SIGNATURE="${GITEA_COMMENT_SIGNATURE}" fi require_jq || exit 1 if [[ $# -lt 1 ]]; then log_err "Usage: $0 " log_err " Or: $0 - (read message from stdin)" exit 1 fi ISSUE_NUM="$1" if [[ "${2:-}" == "-" ]]; then BODY="$(cat)" else BODY="${2:-}" fi if [[ -z "$BODY" ]]; then log_err "Comment body is empty." exit 1 fi BODY="${BODY}${COMMENT_SIGNATURE}" # Escape for JSON: jq -Rs . handles newlines and quotes BODY_JSON="$(echo "$BODY" | jq -Rs .)" RESPONSE="$(gitea_api_post "/repos/${GITEA_REPO_OWNER}/${GITEA_REPO_NAME}/issues/${ISSUE_NUM}/comments" "{\"body\":${BODY_JSON}}")" if ! echo "$RESPONSE" | jq -e . &>/dev/null; then log_err "API error posting comment: ${RESPONSE:0:200}" exit 1 fi log_info "Comment added to issue #${ISSUE_NUM}."