provided current project context

This commit is contained in:
2026-01-31 19:10:27 +00:00
parent 9ffa02076d
commit e4a585aee8

View File

@@ -34,34 +34,34 @@ export const buildContext = async (orgId: number, projectId: number, user: UserR
<current_context> <current_context>
<user id="${user.id}" name="${user.name}" username="${user.username}" /> <user id="${user.id}" name="${user.name}" username="${user.username}" />
<organisation name="${organisation.name}" slug="${organisation.slug}"> <current_organisation name="${organisation.name}" slug="${organisation.slug}">
<statuses> <statuses>
${Object.entries(organisation.statuses) ${Object.entries(organisation.statuses)
.map(([name, color]) => ` <status name="${name}" color="${color}" />`) .map(([name, color]) => ` <status name="${name}" color="${color}" />`)
.join("\n")} .join("\n")}
</statuses> </statuses>
</organisation> </current_organisation>
<projects> <organisation_projects id="${organisation.id}_projects" name="Projects for ${organisation.name}" count="${projects.length}">
${projects.map((p) => ` <project key="${p.Project.key}" name="${p.Project.name}" />`).join("\n")} ${projects.map((p) => ` <project key="${p.Project.key}" name="${p.Project.name}" />`).join("\n")}
</projects> </organisation_projects>
<current_project key="${project.key}" name="${project.name}">
<sprints> <sprints>
${sprints.map((s) => ` <sprint id="${s.id}" name="${s.name}" start="${s.startDate.toUTCString()?.split("T")[0]}" end="${s.endDate?.toUTCString().split("T")[0]}" />`).join("\n")} ${sprints.map((s) => ` <sprint id="${s.id}" name="${s.name}" start="${s.startDate.toUTCString()?.split("T")[0]}" end="${s.endDate?.toUTCString().split("T")[0]}" />`).join("\n")}
</sprints> </sprints>
<all_issues count="${issues.length}"> <all_issues count="${issues.length}">
${issues.map((i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}" type="${i.Issue.type}" status="${i.Issue.status}" title="${i.Issue.title.replace(/"/g, "&quot;")}" sprint="${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "Unassigned"}" />`).join("\n")} ${issues.map((i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}" type="${i.Issue.type}" status="${i.Issue.status}" title="${i.Issue.title.replace(/"/g, "&quot;")}" sprint="${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "Unassigned"}" />`).join("\n")}
</all_issues> </all_issues>
<my_issues count="${assignedIssues.length}"> <my_issues count="${assignedIssues.length}">
${assignedIssues.map((i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}" type="${i.Issue.type}" status="${i.Issue.status}" title="${i.Issue.title.replace(/"/g, "&quot;")}" sprint="${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "Unassigned"}" />`).join("\n")} ${assignedIssues.map((i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}" type="${i.Issue.type}" status="${i.Issue.status}" title="${i.Issue.title.replace(/"/g, "&quot;")}" sprint="${sprints.find((s) => s.id === i.Issue.sprintId)?.name || "Unassigned"}" />`).join("\n")}
</my_issues> </my_issues>
<issues_by_status> <issues_by_status>
<status name="TO DO" count="${byStatus("TO DO").length}"> <status name="TO DO" count="${byStatus("TO DO").length}">
${byStatus("TO DO") ${byStatus("TO DO")
.map( .map(
(i) => (i) =>
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, "&quot;")}" />`, ` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, "&quot;")}" />`,
@@ -69,7 +69,7 @@ ${byStatus("TO DO")
.join("\n")} .join("\n")}
</status> </status>
<status name="IN PROGRESS" count="${byStatus("IN PROGRESS").length}"> <status name="IN PROGRESS" count="${byStatus("IN PROGRESS").length}">
${byStatus("IN PROGRESS") ${byStatus("IN PROGRESS")
.map( .map(
(i) => (i) =>
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, "&quot;")}" />`, ` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, "&quot;")}" />`,
@@ -77,7 +77,7 @@ ${byStatus("IN PROGRESS")
.join("\n")} .join("\n")}
</status> </status>
<status name="DONE" count="${byStatus("DONE").length}"> <status name="DONE" count="${byStatus("DONE").length}">
${byStatus("DONE") ${byStatus("DONE")
.map( .map(
(i) => (i) =>
` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, "&quot;")}" />`, ` <issue id="${i.Issue.id}" number="${i.Issue.number}" title="${i.Issue.title.replace(/"/g, "&quot;")}" />`,
@@ -87,7 +87,7 @@ ${byStatus("DONE")
</issues_by_status> </issues_by_status>
<issue_details> <issue_details>
${assignedIssues ${assignedIssues
.map( .map(
(i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}"> (i) => ` <issue id="${i.Issue.id}" number="${i.Issue.number}">
<title>${i.Issue.title.replace(/"/g, "&quot;")}</title> <title>${i.Issue.title.replace(/"/g, "&quot;")}</title>
@@ -99,5 +99,6 @@ ${assignedIssues
) )
.join("\n")} .join("\n")}
</issue_details> </issue_details>
</current_project>
</current_context>`; </current_context>`;
}; };