@@ -133,89 +133,6 @@ const renderCloneCacheFinalize = (config: TemplateConfig): string =>
133133 fi
134134fi`
135135
136- const renderIssueWorkspaceAgentsResolve = ( ) : string =>
137- `ISSUE_ID="$(printf "%s" "$REPO_REF" | sed -E 's#^issue-##')"
138- ISSUE_URL=""
139- if [[ "$REPO_URL" == https://github.com/* ]]; then
140- ISSUE_REPO="$(printf "%s" "$REPO_URL" | sed -E 's#^https://github.com/##; s#[.]git$##; s#/*$##')"
141- if [[ -n "$ISSUE_REPO" ]]; then
142- ISSUE_URL="https://github.com/$ISSUE_REPO/issues/$ISSUE_ID"
143- fi
144- fi
145- if [[ -z "$ISSUE_URL" ]]; then
146- ISSUE_URL="n/a"
147- fi`
148-
149- const renderIssueWorkspaceAgentsManagedBlock = ( ) : string =>
150- `ISSUE_AGENTS_PATH="$TARGET_DIR/AGENTS.md"
151- ISSUE_MANAGED_START="<!-- docker-git:issue-managed:start -->"
152- ISSUE_MANAGED_END="<!-- docker-git:issue-managed:end -->"
153- ISSUE_MANAGED_BLOCK="$(cat <<EOF
154- $ISSUE_MANAGED_START
155- Issue workspace: #$ISSUE_ID
156- Issue URL: $ISSUE_URL
157- Workspace path: $TARGET_DIR
158-
159- Работай только над этим issue, если пользователь не попросил другое.
160- Если нужен первоисточник требований, открой Issue URL.
161- $ISSUE_MANAGED_END
162- EOF
163- )"`
164-
165- const renderIssueWorkspaceAgentsWrite = ( ) : string =>
166- `if [[ ! -e "$ISSUE_AGENTS_PATH" ]]; then
167- printf "%s\n" "$ISSUE_MANAGED_BLOCK" > "$ISSUE_AGENTS_PATH"
168- else
169- TMP_ISSUE_AGENTS_PATH="$(mktemp)"
170- if grep -qF "$ISSUE_MANAGED_START" "$ISSUE_AGENTS_PATH" && grep -qF "$ISSUE_MANAGED_END" "$ISSUE_AGENTS_PATH"; then
171- awk -v start="$ISSUE_MANAGED_START" -v end="$ISSUE_MANAGED_END" -v repl="$ISSUE_MANAGED_BLOCK" '
172- BEGIN { in_block = 0 }
173- $0 == start { print repl; in_block = 1; next }
174- $0 == end { in_block = 0; next }
175- in_block == 0 { print }
176- ' "$ISSUE_AGENTS_PATH" > "$TMP_ISSUE_AGENTS_PATH"
177- else
178- sed \
179- -e '/^# docker-git issue workspace$/d' \
180- -e '/^Issue workspace: #/d' \
181- -e '/^Issue URL: /d' \
182- -e '/^Workspace path: /d' \
183- -e '/^Работай только над этим issue, если пользователь не попросил другое[.]$/d' \
184- -e '/^Если нужен первоисточник требований, открой Issue URL[.]$/d' \
185- "$ISSUE_AGENTS_PATH" > "$TMP_ISSUE_AGENTS_PATH"
186- if [[ -s "$TMP_ISSUE_AGENTS_PATH" ]]; then
187- printf "\n" >> "$TMP_ISSUE_AGENTS_PATH"
188- fi
189- printf "%s\n" "$ISSUE_MANAGED_BLOCK" >> "$TMP_ISSUE_AGENTS_PATH"
190- fi
191- mv "$TMP_ISSUE_AGENTS_PATH" "$ISSUE_AGENTS_PATH"
192- fi
193- if [[ -e "$ISSUE_AGENTS_PATH" ]]; then
194- chown 1000:1000 "$ISSUE_AGENTS_PATH" || true
195- fi`
196-
197- const renderIssueWorkspaceAgentsExclude = ( ) : string =>
198- `EXCLUDE_PATH="$TARGET_DIR/.git/info/exclude"
199- if [[ -f "$ISSUE_AGENTS_PATH" ]]; then
200- touch "$EXCLUDE_PATH"
201- if ! grep -qx "AGENTS.md" "$EXCLUDE_PATH"; then
202- printf "%s\n" "AGENTS.md" >> "$EXCLUDE_PATH"
203- fi
204- fi`
205-
206- const renderIssueWorkspaceAgents = ( ) : string =>
207- [
208- `if [[ "$CLONE_OK" -eq 1 && "$REPO_REF" == issue-* && -d "$TARGET_DIR/.git" ]]; then` ,
209- renderIssueWorkspaceAgentsResolve ( ) ,
210- "" ,
211- renderIssueWorkspaceAgentsManagedBlock ( ) ,
212- "" ,
213- renderIssueWorkspaceAgentsWrite ( ) ,
214- "" ,
215- renderIssueWorkspaceAgentsExclude ( ) ,
216- "fi"
217- ] . join ( "\n" )
218-
219136const renderCloneBody = ( config : TemplateConfig ) : string =>
220137 [
221138 renderCloneBodyStart ( config ) ,
@@ -224,9 +141,7 @@ const renderCloneBody = (config: TemplateConfig): string =>
224141 "" ,
225142 renderCloneRemotes ( config ) ,
226143 "" ,
227- renderCloneCacheFinalize ( config ) ,
228- "" ,
229- renderIssueWorkspaceAgents ( )
144+ renderCloneCacheFinalize ( config )
230145 ] . join ( "\n" )
231146
232147const renderCloneFinalize = ( ) : string =>
0 commit comments