From 6c3bae3807528a831fd0d1dbd74d073268042031 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 26 Jun 2026 12:19:42 +0000 Subject: [PATCH] Make manifest-version optional in aw.yml: add tests and update docs example Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .../docs/reference/aw-yml-package-manifest.md | 2 -- pkg/cli/add_package_manifest_test.go | 24 +++++++++++++++ pkg/cli/compile_repository_manifest_test.go | 29 +++++++++++++++++++ 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/docs/src/content/docs/reference/aw-yml-package-manifest.md b/docs/src/content/docs/reference/aw-yml-package-manifest.md index 060318b8295..8a7bab8a4fb 100644 --- a/docs/src/content/docs/reference/aw-yml-package-manifest.md +++ b/docs/src/content/docs/reference/aw-yml-package-manifest.md @@ -57,8 +57,6 @@ Missing `README.md` causes package validation to fail. ## Example ```yaml -manifest-version: "1" -min-version: v0.38.0 name: Repo Assist emoji: 🤖 description: Friendly repository automation for review and issue triage diff --git a/pkg/cli/add_package_manifest_test.go b/pkg/cli/add_package_manifest_test.go index 872a142d91f..d79db199f85 100644 --- a/pkg/cli/add_package_manifest_test.go +++ b/pkg/cli/add_package_manifest_test.go @@ -377,6 +377,30 @@ files: assert.Equal(t, []string{"workflows/review.md"}, pkg.InstallationSource) }) + t.Run("accepts manifest without manifest-version", func(t *testing.T) { + downloadPackageFileFromGitHubForHost = func(owner, repo, path, ref, host string) ([]byte, error) { + switch path { + case "aw.yml": + return []byte(`name: Repo Assist +files: + - workflows/review.md +`), nil + case "README.md": + return []byte("# Repo Assist\n"), nil + default: + return nil, createRepositoryPackageNotFoundError(path) + } + } + listPackageWorkflowFilesForHost = func(owner, repo, ref, workflowPath, host string) ([]string, error) { + t.Fatalf("unexpected scan of %s", workflowPath) + return nil, nil + } + + pkg, err := resolveRepositoryPackage(&RepoSpec{RepoSlug: "owner/repo"}, "") + require.NoError(t, err) + assert.Equal(t, []string{"workflows/review.md"}, pkg.InstallationSource) + }) + t.Run("rejects unsupported manifest-version", func(t *testing.T) { downloadPackageFileFromGitHubForHost = func(owner, repo, path, ref, host string) ([]byte, error) { if path == "aw.yml" { diff --git a/pkg/cli/compile_repository_manifest_test.go b/pkg/cli/compile_repository_manifest_test.go index 9cf78b1f76b..2549b181e3b 100644 --- a/pkg/cli/compile_repository_manifest_test.go +++ b/pkg/cli/compile_repository_manifest_test.go @@ -150,6 +150,35 @@ engine: copilot assert.Empty(t, results[0].Errors) } +func TestCompileWorkflows_AcceptsManifestWithoutManifestVersion(t *testing.T) { + tmpDir := testutil.TempDir(t, "aw-manifest-no-version-*") + originalWd, err := os.Getwd() + require.NoError(t, err) + t.Cleanup(func() { _ = os.Chdir(originalWd) }) + require.NoError(t, os.Chdir(tmpDir)) + + cmd := exec.Command("git", "init") + cmd.Dir = tmpDir + require.NoError(t, cmd.Run()) + + require.NoError(t, os.MkdirAll(filepath.Join(tmpDir, ".github", "workflows"), 0o755)) + require.NoError(t, os.WriteFile(filepath.Join(tmpDir, ".github", "workflows", "test.md"), []byte(`--- +on: workflow_dispatch +permissions: + contents: read +engine: copilot +--- + +# Test +`), 0o644)) + require.NoError(t, os.WriteFile(filepath.Join(tmpDir, "README.md"), []byte("# Repo Assist\n"), 0o644)) + require.NoError(t, os.WriteFile(filepath.Join(tmpDir, "aw.yml"), []byte(`name: Repo Assist +`), 0o644)) + + _, err = CompileWorkflows(context.Background(), CompileConfig{}) + require.NoError(t, err) +} + func TestCompileWorkflows_RequiresPackageReadme(t *testing.T) { tmpDir := testutil.TempDir(t, "aw-manifest-readme-*") originalWd, err := os.Getwd()