diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 82c4533965..e0e6a80f20 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -1409,7 +1409,7 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 env: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"close_discussion\":{\"max\":1,\"required_category\":\"Ideas\"},\"create_issue\":{\"labels\":[\"plan\",\"ai-generated\"],\"max\":6,\"title_prefix\":\"[plan] \"},\"missing_data\":{},\"missing_tool\":{}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"close_discussion\":{\"max\":1},\"create_issue\":{\"labels\":[\"plan\",\"ai-generated\"],\"max\":6,\"title_prefix\":\"[plan] \"},\"missing_data\":{},\"missing_tool\":{}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/actions/setup/js/close_discussion.cjs b/actions/setup/js/close_discussion.cjs index bf7f2e2ab4..ce36b2972a 100644 --- a/actions/setup/js/close_discussion.cjs +++ b/actions/setup/js/close_discussion.cjs @@ -152,7 +152,6 @@ async function main(config = {}) { // Extract configuration const requiredLabels = config.required_labels || []; const requiredTitlePrefix = config.required_title_prefix || ""; - const requiredCategory = config.required_category || ""; const maxCount = config.max || 10; core.info(`Close discussion configuration: max=${maxCount}`); @@ -162,9 +161,6 @@ async function main(config = {}) { if (requiredTitlePrefix) { core.info(`Required title prefix: ${requiredTitlePrefix}`); } - if (requiredCategory) { - core.info(`Required category: ${requiredCategory}`); - } // Track how many items we've processed for max limit let processedCount = 0; @@ -239,15 +235,6 @@ async function main(config = {}) { }; } - // Validate required category if configured - if (requiredCategory && discussion.category.name !== requiredCategory) { - core.warning(`Discussion #${discussionNumber} category "${discussion.category.name}" doesn't match required "${requiredCategory}"`); - return { - success: false, - error: `Category doesn't match "${requiredCategory}"`, - }; - } - // Add comment if body is provided let commentUrl; if (item.body) { diff --git a/pkg/workflow/compiler_safe_outputs_config.go b/pkg/workflow/compiler_safe_outputs_config.go index 07ef1e6e34..62d9cfd5e9 100644 --- a/pkg/workflow/compiler_safe_outputs_config.go +++ b/pkg/workflow/compiler_safe_outputs_config.go @@ -93,6 +93,9 @@ func (c *Compiler) addHandlerManagerConfigEnvVar(steps *[]string, data *Workflow if cfg.CloseOlderDiscussions { handlerConfig["close_older_discussions"] = true } + if cfg.RequiredCategory != "" { + handlerConfig["required_category"] = cfg.RequiredCategory + } if cfg.Expires > 0 { handlerConfig["expires"] = cfg.Expires } @@ -142,9 +145,6 @@ func (c *Compiler) addHandlerManagerConfigEnvVar(steps *[]string, data *Workflow if cfg.RequiredTitlePrefix != "" { handlerConfig["required_title_prefix"] = cfg.RequiredTitlePrefix } - if cfg.RequiredCategory != "" { - handlerConfig["required_category"] = cfg.RequiredCategory - } if cfg.TargetRepoSlug != "" { handlerConfig["target-repo"] = cfg.TargetRepoSlug } diff --git a/pkg/workflow/create_discussion.go b/pkg/workflow/create_discussion.go index d809a87b8f..ffe18b6067 100644 --- a/pkg/workflow/create_discussion.go +++ b/pkg/workflow/create_discussion.go @@ -18,6 +18,7 @@ type CreateDiscussionsConfig struct { TargetRepoSlug string `yaml:"target-repo,omitempty"` // Target repository in format "owner/repo" for cross-repository discussions AllowedRepos []string `yaml:"allowed-repos,omitempty"` // List of additional repositories that discussions can be created in CloseOlderDiscussions bool `yaml:"close-older-discussions,omitempty"` // When true, close older discussions with same title prefix or labels as outdated + RequiredCategory string `yaml:"required-category,omitempty"` // Required category for matching when close-older-discussions is enabled Expires int `yaml:"expires,omitempty"` // Hours until the discussion expires and should be automatically closed } @@ -89,6 +90,9 @@ func (c *Compiler) parseDiscussionsConfig(outputMap map[string]any) *CreateDiscu } if config.CloseOlderDiscussions { discussionLog.Print("Close older discussions enabled") + if config.RequiredCategory != "" { + discussionLog.Printf("Required category for close older discussions: %q", config.RequiredCategory) + } } if config.Expires > 0 { discussionLog.Printf("Discussion expiration configured: %d hours", config.Expires)