feat: add completion status to Cubic AI review comments (#26891)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Keith Williams
2026-01-15 16:11:56 +00:00
committed by GitHub
co-authored by Devin AI
parent adb7509d96
commit 23ee05743e
+43 -1
View File
@@ -149,6 +149,7 @@ jobs:
- name: Post comment with Devin session link
if: steps.extract-prompt.outputs.has-prompt == 'true' && env.SESSION_URL != ''
id: post-comment
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -160,9 +161,50 @@ jobs:
? `### Devin AI is addressing Cubic AI's review feedback\n\nA Devin session has been created to address the issues identified by Cubic AI.\n\n[View Devin Session](${sessionUrl})`
: `### Devin AI is addressing Cubic AI's review feedback\n\nNew feedback has been sent to the existing Devin session.\n\n[View Devin Session](${sessionUrl})`;
await github.rest.issues.createComment({
const { data: comment } = await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: message
});
core.setOutput('comment-id', comment.id);
- name: Send completion instructions to Devin
if: steps.extract-prompt.outputs.has-prompt == 'true' && env.SESSION_URL != '' && steps.post-comment.outputs.comment-id != ''
env:
DEVIN_API_KEY: ${{ secrets.DEVIN_API_KEY }}
run: |
SESSION_ID="${EXISTING_SESSION_ID:-}"
if [ -z "$SESSION_ID" ]; then
SESSION_ID=$(cat /tmp/devin-response.json | jq -r '.session_id // .id // empty')
fi
if [ -z "$SESSION_ID" ]; then
echo "No session ID found, skipping completion instructions"
exit 0
fi
COMMENT_ID="${{ steps.post-comment.outputs.comment-id }}"
MESSAGE="IMPORTANT: When you have finished addressing Cubic AI's feedback (whether you pushed changes or not), you MUST update the GitHub comment to show completion status.
Use the GitHub API to update comment ID ${COMMENT_ID} on PR #${{ github.event.pull_request.number }} in repository ${{ github.repository }}.
Add a completion status section at the bottom of the comment:
- If you pushed changes: Add '\n\n---\n:white_check_mark: Pushed commit [\`{SHORT_HASH}\`](https://github.com/${{ github.repository }}/commit/{FULL_HASH})' where {SHORT_HASH} is the first 7 characters of the commit hash and {FULL_HASH} is the full commit hash.
- If no changes were needed: Add '\n\n---\n:white_check_mark: No changes pushed'
To update the comment, use: gh api repos/${{ github.repository }}/issues/comments/${COMMENT_ID} -X PATCH -f body='<updated comment body>'"
HTTP_CODE=$(curl -s -o /tmp/devin-instructions-response.json -w "%{http_code}" -X POST "https://api.devin.ai/v1/sessions/${SESSION_ID}/message" \
-H "Authorization: Bearer ${DEVIN_API_KEY}" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg message "$MESSAGE" '{message: $message}')")
if [ "$HTTP_CODE" -lt 200 ] || [ "$HTTP_CODE" -ge 300 ]; then
echo "Warning: Failed to send completion instructions to Devin session: HTTP $HTTP_CODE"
cat /tmp/devin-instructions-response.json
else
echo "Completion instructions sent to Devin session successfully"
fi