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 docs/src/content/docs/agent-factory-status.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ These are experimental agentic workflows used by the GitHub Next team to learn,
| [Issue Summary to Notion](https://github.com/github/gh-aw/blob/main/.github/workflows/notion-issue-summary.md) | copilot | [![Issue Summary to Notion](https://github.com/github/gh-aw/actions/workflows/notion-issue-summary.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/notion-issue-summary.lock.yml) | - | - |
| [Issue Triage Agent](https://github.com/github/gh-aw/blob/main/.github/workflows/issue-triage-agent.md) | copilot | [![Issue Triage Agent](https://github.com/github/gh-aw/actions/workflows/issue-triage-agent.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/issue-triage-agent.lock.yml) | - | - |
| [jsweep - JavaScript Unbloater](https://github.com/github/gh-aw/blob/main/.github/workflows/jsweep.md) | copilot | [![jsweep - JavaScript Unbloater](https://github.com/github/gh-aw/actions/workflows/jsweep.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/jsweep.lock.yml) | - | - |
| [Layout Specification Maintainer](https://github.com/github/gh-aw/blob/main/.github/workflows/layout-spec-maintainer.md) | copilot | [![Layout Specification Maintainer](https://github.com/github/gh-aw/actions/workflows/layout-spec-maintainer.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/layout-spec-maintainer.lock.yml) | `0 7 * * 1-5` | - |
| [Layout Specification Maintainer](https://github.com/github/gh-aw/blob/main/.github/workflows/layout-spec-maintainer.md) | copilot | [![Layout Specification Maintainer](https://github.com/github/gh-aw/actions/workflows/layout-spec-maintainer.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/layout-spec-maintainer.lock.yml) | `0 7 * * 1` | - |
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change updates the documented schedule for Layout Specification Maintainer, but the PR title/description don’t mention any agent-factory-status doc updates. Please either document this in the PR description or move it to a separate PR to keep the change set focused.

Copilot uses AI. Check for mistakes.
| [Lockfile Statistics Analysis Agent](https://github.com/github/gh-aw/blob/main/.github/workflows/lockfile-stats.md) | claude | [![Lockfile Statistics Analysis Agent](https://github.com/github/gh-aw/actions/workflows/lockfile-stats.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/lockfile-stats.lock.yml) | - | - |
| [MCP Inspector Agent](https://github.com/github/gh-aw/blob/main/.github/workflows/mcp-inspector.md) | copilot | [![MCP Inspector Agent](https://github.com/github/gh-aw/actions/workflows/mcp-inspector.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/mcp-inspector.lock.yml) | - | - |
| [Mergefest](https://github.com/github/gh-aw/blob/main/.github/workflows/mergefest.md) | copilot | [![Mergefest](https://github.com/github/gh-aw/actions/workflows/mergefest.lock.yml/badge.svg)](https://github.com/github/gh-aw/actions/workflows/mergefest.lock.yml) | - | `/mergefest` |
Expand Down
7 changes: 4 additions & 3 deletions docs/src/content/docs/reference/frontmatter-full.md
Original file line number Diff line number Diff line change
Expand Up @@ -3528,9 +3528,10 @@ rate-limit:
events: []
# Array of strings

# Optional list of roles that are exempt from rate limiting. Users with any of
# these roles will not be subject to rate limiting checks. Common roles: 'admin',
# 'maintain', 'write', 'triage', 'read'.
# Optional list of roles that are exempt from rate limiting. Defaults to ['admin',
# 'maintain', 'write'] if not specified. Users with any of these roles will not be
# subject to rate limiting checks. To apply rate limiting to all users, set to an
# empty array: []
Comment on lines +3531 to +3534
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This documentation change (rate-limit ignored-roles default behavior) isn’t mentioned in the PR title/description, which currently frames the change as test-only. Please either update the PR description to include this doc update, or split it into a separate PR so the scope is clear.

Copilot uses AI. Check for mistakes.
# (optional)
ignored-roles: []
# Array of strings
Expand Down
140 changes: 140 additions & 0 deletions pkg/parser/schema_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1144,6 +1144,146 @@ func TestValidateMainWorkflowFrontmatterWithSchema(t *testing.T) {
wantErr: true,
errContains: "maxProperties",
},
{
name: "valid: workflow_dispatch with all valid input types",
frontmatter: map[string]any{
"on": map[string]any{
"workflow_dispatch": map[string]any{
"inputs": map[string]any{
"string_input": map[string]any{
"description": "String input",
"type": "string",
"default": "default value",
},
"choice_input": map[string]any{
"description": "Choice input",
"type": "choice",
"options": []string{"option1", "option2", "option3"},
"default": "option1",
},
"boolean_input": map[string]any{
"description": "Boolean input",
"type": "boolean",
"default": true,
},
"number_input": map[string]any{
"description": "Number input",
"type": "number",
"default": 42,
},
"environment_input": map[string]any{
"description": "Environment input",
"type": "environment",
"default": "production",
},
},
},
},
},
wantErr: false,
},
{
name: "invalid: workflow_dispatch with invalid input type 'text'",
frontmatter: map[string]any{
"on": map[string]any{
"workflow_dispatch": map[string]any{
"inputs": map[string]any{
"test_input": map[string]any{
"description": "Test input",
"type": "text",
},
},
},
},
},
wantErr: true,
errContains: "value must be one of 'string', 'choice', 'boolean', 'number', 'environment'",
},
Comment on lines +1199 to +1201
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same errContains string is duplicated across multiple new invalid-type test cases, which makes the tests harder to update if the enum wording changes. Consider factoring this into a shared constant/variable (or generating the cases in a small loop) to avoid repeating the exact message in several places.

Copilot uses AI. Check for mistakes.
{
name: "invalid: workflow_dispatch with invalid input type 'int'",
frontmatter: map[string]any{
"on": map[string]any{
"workflow_dispatch": map[string]any{
"inputs": map[string]any{
"test_input": map[string]any{
"description": "Test input",
"type": "int",
},
},
},
},
},
wantErr: true,
errContains: "value must be one of 'string', 'choice', 'boolean', 'number', 'environment'",
},
{
name: "invalid: workflow_dispatch with invalid input type 'bool'",
frontmatter: map[string]any{
"on": map[string]any{
"workflow_dispatch": map[string]any{
"inputs": map[string]any{
"test_input": map[string]any{
"description": "Test input",
"type": "bool",
},
},
},
},
},
wantErr: true,
errContains: "value must be one of 'string', 'choice', 'boolean', 'number', 'environment'",
},
{
name: "invalid: workflow_dispatch with invalid input type 'select'",
frontmatter: map[string]any{
"on": map[string]any{
"workflow_dispatch": map[string]any{
"inputs": map[string]any{
"test_input": map[string]any{
"description": "Test input",
"type": "select",
},
},
},
},
},
wantErr: true,
errContains: "value must be one of 'string', 'choice', 'boolean', 'number', 'environment'",
},
{
name: "invalid: workflow_dispatch with invalid input type 'dropdown'",
frontmatter: map[string]any{
"on": map[string]any{
"workflow_dispatch": map[string]any{
"inputs": map[string]any{
"test_input": map[string]any{
"description": "Test input",
"type": "dropdown",
},
},
},
},
},
wantErr: true,
errContains: "value must be one of 'string', 'choice', 'boolean', 'number', 'environment'",
},
{
name: "invalid: workflow_dispatch with invalid input type 'checkbox'",
frontmatter: map[string]any{
"on": map[string]any{
"workflow_dispatch": map[string]any{
"inputs": map[string]any{
"test_input": map[string]any{
"description": "Test input",
"type": "checkbox",
},
},
},
},
},
wantErr: true,
errContains: "value must be one of 'string', 'choice', 'boolean', 'number', 'environment'",
},
{
name: "valid metadata with various key-value pairs",
frontmatter: map[string]any{
Expand Down
Loading