Skip to content

Commit 95901e2

Browse files
authored
Merge pull request #174 from buildkite/pipe-1882-add-support-for-ignore-branch-filters-in-create-build-tool
feat: allow disabling of branch filtering when creating a build
2 parents e675ca6 + f5d2b09 commit 95901e2

File tree

2 files changed

+26
-17
lines changed

2 files changed

+26
-17
lines changed

pkg/buildkite/builds.go

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -505,13 +505,14 @@ type Entry struct {
505505
}
506506

507507
type CreateBuildArgs struct {
508-
OrgSlug string `json:"org_slug"`
509-
PipelineSlug string `json:"pipeline_slug"`
510-
Commit string `json:"commit"`
511-
Branch string `json:"branch"`
512-
Message string `json:"message"`
513-
Environment []Entry `json:"environment"`
514-
MetaData []Entry `json:"metadata"`
508+
OrgSlug string `json:"org_slug"`
509+
PipelineSlug string `json:"pipeline_slug"`
510+
Commit string `json:"commit"`
511+
Branch string `json:"branch"`
512+
Message string `json:"message"`
513+
IgnoreBranchFilters bool `json:"ignore_branch_filters"`
514+
Environment []Entry `json:"environment"`
515+
MetaData []Entry `json:"metadata"`
515516
}
516517

517518
func CreateBuild(client BuildsClient) (tool mcp.Tool, handler mcp.TypedToolHandlerFunc[CreateBuildArgs], scopes []string) {
@@ -535,6 +536,10 @@ func CreateBuild(client BuildsClient) (tool mcp.Tool, handler mcp.TypedToolHandl
535536
mcp.Required(),
536537
mcp.Description("The commit message for the build"),
537538
),
539+
mcp.WithBoolean("ignore_branch_filters",
540+
mcp.Description("Whether to ignore branch filters when triggering the build"),
541+
mcp.DefaultBool(false),
542+
),
538543
mcp.WithArray("environment",
539544
mcp.Items(
540545
map[string]any{
@@ -581,16 +586,18 @@ func CreateBuild(client BuildsClient) (tool mcp.Tool, handler mcp.TypedToolHandl
581586
defer span.End()
582587

583588
createBuild := buildkite.CreateBuild{
584-
Commit: args.Commit,
585-
Branch: args.Branch,
586-
Message: args.Message,
587-
Env: convertEntries(args.Environment),
588-
MetaData: convertEntries(args.MetaData),
589+
Commit: args.Commit,
590+
Branch: args.Branch,
591+
Message: args.Message,
592+
Env: convertEntries(args.Environment),
593+
MetaData: convertEntries(args.MetaData),
594+
IgnorePipelineBranchFilters: args.IgnoreBranchFilters,
589595
}
590596

591597
span.SetAttributes(
592598
attribute.String("org", args.OrgSlug),
593599
attribute.String("pipeline_slug", args.PipelineSlug),
600+
attribute.Bool("ignore_branch_filters", args.IgnoreBranchFilters),
594601
)
595602

596603
build, _, err := client.Create(ctx, args.OrgSlug, args.PipelineSlug, createBuild)

pkg/buildkite/builds_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,7 @@ func TestCreateBuild(t *testing.T) {
574574
assert.Equal("pipeline", pipeline)
575575
assert.Equal("abc123", b.Commit)
576576
assert.Equal("Test build", b.Message)
577+
assert.True(b.IgnorePipelineBranchFilters)
577578

578579
// Return created build
579580
return buildkite.Build{
@@ -602,11 +603,12 @@ func TestCreateBuild(t *testing.T) {
602603
request := createMCPRequest(t, map[string]any{})
603604

604605
args := CreateBuildArgs{
605-
OrgSlug: "org",
606-
PipelineSlug: "pipeline",
607-
Commit: "abc123",
608-
Message: "Test build",
609-
Branch: "main",
606+
OrgSlug: "org",
607+
PipelineSlug: "pipeline",
608+
Commit: "abc123",
609+
Message: "Test build",
610+
Branch: "main",
611+
IgnoreBranchFilters: true,
610612
Environment: []Entry{
611613
{Key: "ENV_VAR", Value: "value"},
612614
},

0 commit comments

Comments
 (0)