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/blog-auditor.lock.yml

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

2 changes: 1 addition & 1 deletion .github/workflows/cloclo.lock.yml

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

2 changes: 1 addition & 1 deletion .github/workflows/daily-multi-device-docs-tester.lock.yml

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

81 changes: 71 additions & 10 deletions .github/workflows/dependabot-go-checker.lock.yml

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

67 changes: 64 additions & 3 deletions .github/workflows/dependabot-go-checker.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Checks for Go module dependency updates and analyzes Dependabot PRs for compatibility and breaking changes
description: Checks for Go module and NPM dependency updates and analyzes Dependabot PRs for compatibility and breaking changes
on:
schedule:
# Run every other business day: Monday, Wednesday, Friday at 9 AM UTC
Expand Down Expand Up @@ -30,14 +30,15 @@ tools:
bash: [":*"]

---
# Dependabot Go Module Dependency Checker
# Dependabot Dependency Checker

## Objective
Check for available Go module updates using Dependabot, evaluate their safety, and create issues for safe updates.
Check for available Go module and NPM dependency updates using Dependabot, evaluate their safety, and create issues for safe updates.

## Current Context
- **Repository**: ${{ github.repository }}
- **Go Module File**: `go.mod` in repository root
- **NPM Packages**: Check for `@playwright/mcp` updates in constants.go

## Your Tasks

Expand All @@ -50,6 +51,19 @@ Check for available Go module updates using Dependabot, evaluate their safety, a
- Security vulnerability information (if any)
- Changelog or release notes (if available via web-fetch)

### Phase 1.5: Check Playwright NPM Package Updates
1. Check the current `@playwright/mcp` version in `pkg/constants/constants.go`:
- Look for `DefaultPlaywrightVersion` constant
- Extract the current version number
2. Check for newer versions on NPM:
- Use web-fetch to query `https://registry.npmjs.org/@playwright/mcp`
- Compare the latest version with the current version in constants.go
- Get release information and changelog if available
3. Evaluate the update:
- Check if it's a patch, minor, or major version update
- Look for breaking changes in release notes
- Consider security fixes and improvements

### Phase 2: Evaluate Update Safety
For each dependency update, evaluate:

Expand Down Expand Up @@ -206,3 +220,50 @@ go mod tidy
- Test system-specific functionality
- Verify cross-platform compatibility
```

### Example 3: Playwright NPM Package Update

```markdown
## Summary
Update `@playwright/mcp` package from 1.56.1 to 1.57.0

## Current State
- **Package**: @playwright/mcp
- **Current Version**: 1.56.1 (in pkg/constants/constants.go - DefaultPlaywrightVersion)
- **Proposed Version**: 1.57.0
- **Update Type**: Minor

## Safety Assessment
✅ **Safe to update**
- Minor version update (1.56.1 -> 1.57.0)
- No breaking changes mentioned in release notes
- Includes bug fixes and new features
- Backward compatible

## Changes
- Added support for new Playwright features
- Improved MCP server stability
- Bug fixes in browser automation
- Performance improvements

## Links
- [NPM Package](https://www.npmjs.com/package/@playwright/mcp)
- [Release Notes](https://github.com/microsoft/playwright/releases/tag/v1.57.0)
- [Source Repository](https://github.com/microsoft/playwright)

## Recommended Action
```bash
# Update the constant in pkg/constants/constants.go
# Change: const DefaultPlaywrightVersion = "1.56.1"
# To: const DefaultPlaywrightVersion = "1.57.0"

# Then run tests to verify
make test-unit
```

## Testing Notes
- Run unit tests: `make test-unit`
- Verify Playwright MCP configuration generation
- Test browser automation workflows with playwright tool
- Check that version is correctly used in compiled workflows
```
2 changes: 1 addition & 1 deletion .github/workflows/unbloat-docs.lock.yml

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

3 changes: 3 additions & 0 deletions pkg/constants/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ const DefaultGitHubMCPServerVersion = "v0.20.2"
// DefaultFirewallVersion is the default version of the gh-aw-firewall (AWF) binary
const DefaultFirewallVersion = "v0.1.1"

// DefaultPlaywrightVersion is the default version of the @playwright/mcp package
const DefaultPlaywrightVersion = "1.56.1"

// DefaultBunVersion is the default version of Bun for runtime setup
const DefaultBunVersion = "1.1"

Expand Down
4 changes: 2 additions & 2 deletions pkg/workflow/custom_engine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ func TestCustomEngineRenderPlaywrightMCPConfigWithDomainConfiguration(t *testing
}

// Check that it contains Playwright MCP npx configuration
if !strings.Contains(output, "@playwright/mcp@latest") {
if !strings.Contains(output, "@playwright/mcp@1.56.1") {
t.Errorf("Expected Playwright MCP npx package in output")
}

Expand Down Expand Up @@ -352,7 +352,7 @@ func TestCustomEngineRenderPlaywrightMCPConfigDefaultDomains(t *testing.T) {
}

// Check that it contains Playwright MCP npx configuration
if !strings.Contains(output, "@playwright/mcp@latest") {
if !strings.Contains(output, "@playwright/mcp@1.56.1") {
t.Errorf("Expected Playwright MCP npx package in output")
}

Expand Down
6 changes: 3 additions & 3 deletions pkg/workflow/mcp-config.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ func renderPlaywrightMCPConfigWithOptions(yaml *strings.Builder, playwrightTool
}

// Determine version to use - respect version configuration if provided
playwrightPackage := "@playwright/mcp@latest"
if includeCopilotFields && args.ImageVersion != "" && args.ImageVersion != "latest" {
playwrightPackage := "@playwright/mcp@" + constants.DefaultPlaywrightVersion
if includeCopilotFields && args.ImageVersion != "" && args.ImageVersion != constants.DefaultPlaywrightVersion {
playwrightPackage = "@playwright/mcp@" + args.ImageVersion
}

Expand Down Expand Up @@ -203,7 +203,7 @@ func renderPlaywrightMCPConfigTOML(yaml *strings.Builder, playwrightTool any) {
yaml.WriteString(" [mcp_servers.playwright]\n")
yaml.WriteString(" command = \"npx\"\n")
yaml.WriteString(" args = [\n")
yaml.WriteString(" \"@playwright/mcp@latest\",\n")
yaml.WriteString(" \"@playwright/mcp@" + constants.DefaultPlaywrightVersion + "\",\n")
yaml.WriteString(" \"--output-dir\",\n")
yaml.WriteString(" \"/tmp/gh-aw/mcp-logs/playwright\"")
if len(args.AllowedDomains) > 0 {
Expand Down
4 changes: 2 additions & 2 deletions pkg/workflow/mcp_config_refactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func TestRenderPlaywrightMCPConfigWithOptions(t *testing.T) {
`"playwright": {`,
`"command": "npx"`,
`"args": [`,
`"@playwright/mcp@latest"`,
`"@playwright/mcp@1.56.1"`,
`"--output-dir"`,
`"/tmp/gh-aw/mcp-logs/playwright"`,
` },`,
Expand Down Expand Up @@ -269,7 +269,7 @@ func TestRenderPlaywrightMCPConfigTOML(t *testing.T) {
`[mcp_servers.playwright]`,
`command = "npx"`,
`args = [`,
`"@playwright/mcp@latest"`,
`"@playwright/mcp@1.56.1"`,
`"--output-dir"`,
`"/tmp/gh-aw/mcp-logs/playwright"`,
},
Expand Down
4 changes: 2 additions & 2 deletions pkg/workflow/mcp_config_shared_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ func TestRenderPlaywrightMCPConfigShared(t *testing.T) {
wantContains: []string{
`"playwright": {`,
`"command": "npx"`,
`"@playwright/mcp@latest"`,
`"@playwright/mcp@1.56.1"`,
`"--output-dir"`,
`"/tmp/gh-aw/mcp-logs/playwright"`,
`"--allowed-origins"`,
Expand All @@ -50,7 +50,7 @@ func TestRenderPlaywrightMCPConfigShared(t *testing.T) {
wantContains: []string{
`"playwright": {`,
`"command": "npx"`,
`"@playwright/mcp@latest"`,
`"@playwright/mcp@1.56.1"`,
},
wantEnding: "},\n",
},
Expand Down
2 changes: 1 addition & 1 deletion pkg/workflow/mcp_renderer.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ func (r *MCPConfigRendererUnified) renderPlaywrightTOML(yaml *strings.Builder, p
yaml.WriteString(" [mcp_servers.playwright]\n")
yaml.WriteString(" command = \"npx\"\n")
yaml.WriteString(" args = [\n")
yaml.WriteString(" \"@playwright/mcp@latest\",\n")
yaml.WriteString(" \"@playwright/mcp@" + constants.DefaultPlaywrightVersion + "\",\n")
yaml.WriteString(" \"--output-dir\",\n")
yaml.WriteString(" \"/tmp/gh-aw/mcp-logs/playwright\"")
if len(args.AllowedDomains) > 0 {
Expand Down
2 changes: 1 addition & 1 deletion pkg/workflow/mcp_servers.go
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ func getGitHubAllowedTools(githubTool any) []string {
}

func getPlaywrightDockerImageVersion(playwrightTool any) string {
playwrightDockerImageVersion := "latest" // Default Playwright Docker image version
playwrightDockerImageVersion := constants.DefaultPlaywrightVersion // Default Playwright package version
// Extract version setting from tool properties
if toolConfig, ok := playwrightTool.(map[string]any); ok {
if versionSetting, exists := toolConfig["version"]; exists {
Expand Down
Loading
Loading