4
4
workflow_dispatch :
5
5
inputs :
6
6
issue_url :
7
- description :' GitHub Issue URL to process'
7
+ description :" GitHub Issue URL to process"
8
8
required :true
9
9
type :string
10
10
template_name :
11
- description :' Coder template to use for workspace'
11
+ description :" Coder template to use for workspace"
12
12
required :true
13
- default :' traiage'
13
+ default :" traiage"
14
14
type :string
15
15
prefix :
16
- description :' Prefix for workspace name'
16
+ description :" Prefix for workspace name"
17
17
required :false
18
- default :' traiage'
18
+ default :" traiage"
19
19
type :string
20
20
21
21
jobs :
89
89
ISSUE_URL :${{ inputs.issue_url }}
90
90
GITHUB_TOKEN :${{ github.token }}
91
91
run :|
92
- PROMPT_FILE=/tmp/prompt.txt
92
+ PROMPT_FILE=$(mktemp)
93
93
trap 'rm -f "${PROMPT_FILE}"' EXIT
94
94
95
95
# Fetch issue description using `gh` CLI
@@ -108,7 +108,7 @@ jobs:
108
108
echo "WORKSPACE_NAME: ${WORKSPACE_NAME}"
109
109
# This command will run the prompt inside the workspace
110
110
# and exit once the agent has completed the task.
111
- PROMPT=$(cat$ PROMPT_FILE) ./scripts/traiage.sh prompt
111
+ PROMPT=$(cat"${ PROMPT_FILE}" ) ./scripts/traiage.sh prompt
112
112
113
113
-name :Create and upload archive
114
114
id :create-archive
@@ -119,27 +119,43 @@ jobs:
119
119
./scripts/traiage.sh archive
120
120
echo "archive_url=${BUCKET_PREFIX%%/}/$WORKSPACE_NAME.tar.gz" >> "${GITHUB_OUTPUT}"
121
121
122
- -name :Report results
122
+ -name :Generate a summary of the changes and post a comment on GitHub.
123
+ id :generate-summary
123
124
env :
124
- ISSUE_URL :${{ inputs.issue_url }}
125
- CONTEXT_KEY :${{ steps.extract-context.outputs.context_key }}
126
- WORKSPACE_NAME :${{ steps.create-workspace.outputs.workspace_name }}
127
125
ARCHIVE_URL :${{ steps.create-archive.outputs.archive_url }}
128
126
BUCKET_PREFIX :" gs://coder-traiage-outputs/traiage"
127
+ CONTEXT_KEY :${{ steps.extract-context.outputs.context_key }}
128
+ GITHUB_TOKEN :${{ github.token }}
129
+ GITHUB_REPOSITORY :${{ github.repository }}
130
+ ISSUE_URL :${{ inputs.issue_url }}
131
+ WORKSPACE_NAME :${{ steps.create-workspace.outputs.workspace_name }}
129
132
run :|
133
+ SUMMARY_FILE=$(mktemp)
134
+ trap 'rm -f "${SUMMARY_FILE}"' EXIT
135
+ AUTO_SUMMARY=$(./scripts/traiage.sh summary)
130
136
{
131
- echo "## TrAIage Results";
132
- echo "- **Issue URL:** ${ISSUE_URL}";
133
- echo "- **Context Key:** ${CONTEXT_KEY}";
134
- echo "- **Workspace:** ${WORKSPACE_NAME}";
135
- echo "- **Archive URL:** ${ARCHIVE_URL}";
136
-
137
- echo "To fetch the output to your own workspace:";
138
- echo '';
139
- echo '```bash';
140
- echo "BUCKET_PREFIX=${BUCKET_PREFIX} WORKSPACE_NAME=${WORKSPACE_NAME} ./scripts/traiage.sh resume";
137
+ echo "## TrAIage Results"
138
+ echo "- **Issue URL:** ${ISSUE_URL}"
139
+ echo "- **Context Key:** ${CONTEXT_KEY}"
140
+ echo "- **Workspace:** ${WORKSPACE_NAME}"
141
+ echo "- **Archive URL:** ${ARCHIVE_URL}"
142
+ echo
143
+ echo "${AUTO_SUMMARY}"
144
+ echo
145
+ echo "To fetch the output to your own workspace:"
146
+ echo
147
+ echo '```bash'
148
+ echo "BUCKET_PREFIX=${BUCKET_PREFIX} WORKSPACE_NAME=${WORKSPACE_NAME} ./scripts/traiage.sh resume"
141
149
echo '```'
142
- } >> "${GITHUB_STEP_SUMMARY}"
150
+ echo
151
+ } >> "${SUMMARY_FILE}"
152
+
153
+ if [[ "${ISSUE_URL}" == "https://github.com/${GITHUB_REPOSITORY}"* ]]; then
154
+ gh issue comment "${ISSUE_URL}" --body-file "${SUMMARY_FILE}" --create-if-none --edit-last
155
+ else
156
+ echo "Skipping comment on other repo."
157
+ fi
158
+ cat "${SUMMARY_FILE}" >> "${GITHUB_STEP_SUMMARY}"
143
159
144
160
-name :Cleanup workspace
145
161
if :steps.create-workspace.outputs.workspace_name != '' && steps.create-archive.outputs.archive_url != ''