name: Discord Notification on: push: jobs: notify: runs_on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 2 - name: Send Discord Embed run: | REPO_NAME="${{ gitea.repository }}" BRANCH="${{ gitea.ref_name }}" AUTHOR="${{ gitea.actor }}" COMMIT_SHA="${{ gitea.sha }}" SHORT_SHA="${COMMIT_SHA:0:7}" COMMIT_URL="${{ gitea.server_url }}/${REPO_NAME}/commit/${COMMIT_SHA}" TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ") COMMIT_MSG=$(git log -1 --pretty=format:'%s' | head -c 200) FILES_CHANGED=$(git diff --stat HEAD~1 HEAD 2>/dev/null | tail -1 || echo "premier commit") FILE_COUNT=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | wc -l || echo "0") FILES_LIST=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | head -15 | sed 's/^/• /' || echo "• premier commit") if [ "$FILE_COUNT" -gt 15 ]; then REMAINING=$((FILE_COUNT - 15)) FILES_LIST=$(printf '%s\n... et %s autres fichiers' "$FILES_LIST" "$REMAINING") fi # Escape for JSON COMMIT_MSG_ESC=$(echo "$COMMIT_MSG" | sed 's/\\/\\\\/g; s/"/\\"/g; s/\t/\\t/g') FILES_CHANGED_ESC=$(echo "$FILES_CHANGED" | sed 's/\\/\\\\/g; s/"/\\"/g; s/\t/\\t/g') FILES_LIST_ESC=$(echo "$FILES_LIST" | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/\\/\\\\/g; s/"/\\"/g' | sed 's/\\\\\\\\/\\\\/g') cat > /tmp/discord.json <