|
|
@@ -327,7 +327,7 @@ namespace ClankerSaddle.Services {
|
|
|
payload.set_member_name("reference");
|
|
|
payload.begin_array();
|
|
|
foreach (var linked in references) {
|
|
|
- payload.add_value(project_node(linked, task.id));
|
|
|
+ payload.add_value(project_node(linked, task.id, true));
|
|
|
}
|
|
|
payload.end_array();
|
|
|
|
|
|
@@ -1022,7 +1022,7 @@ namespace ClankerSaddle.Services {
|
|
|
* saddle's container — one workspace per task, so concurrent
|
|
|
* tasks never share a checkout.
|
|
|
*/
|
|
|
- private static Json.Node project_node(Project project, int64 task_id) {
|
|
|
+ private static Json.Node project_node(Project project, int64 task_id, bool is_reference = false) {
|
|
|
var root_var = (Environment.get_variable("SADDLE_PROJECTS_ROOT") ?? "").strip();
|
|
|
string projects_root = root_var.length > 0 ? root_var : "/workspace";
|
|
|
var builder = new Json.Builder();
|
|
|
@@ -1032,7 +1032,9 @@ namespace ClankerSaddle.Services {
|
|
|
builder.set_member_name("git_url");
|
|
|
builder.add_string_value(project.git_url);
|
|
|
builder.set_member_name("path");
|
|
|
- builder.add_string_value(@"$(projects_root)/task-$(task_id)/$(project.name)");
|
|
|
+ builder.add_string_value(is_reference
|
|
|
+ ? @"$(projects_root)/task-$(task_id)/reference/$(project.name)"
|
|
|
+ : @"$(projects_root)/task-$(task_id)/$(project.name)");
|
|
|
builder.set_member_name("branch");
|
|
|
builder.add_string_value(project.default_branch);
|
|
|
builder.end_object();
|