Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/plan.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 0 additions & 13 deletions actions/setup/js/close_discussion.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -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}`);
Expand All @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down
6 changes: 3 additions & 3 deletions pkg/workflow/compiler_safe_outputs_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down Expand Up @@ -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
}
Expand Down
4 changes: 4 additions & 0 deletions pkg/workflow/create_discussion.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down Expand Up @@ -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)
Expand Down