diff --git a/README.md b/README.md index b7dd5d1..1bb67c5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # QA Instructions Action -[![CI](https://github.com/slifty/qa-instructions-action/actions/workflows/ci.yml/badge.svg)](https://github.com/slifty/qa-instructions-action/actions/workflows/ci.yml) +[![CI](https://github.com/BadIdeaFactory/qa-instructions-action/actions/workflows/ci.yml/badge.svg)](https://github.com/BadIdeaFactory/qa-instructions-action/actions/workflows/ci.yml) A GitHub Action that automatically generates QA testing instructions for pull requests using AI. On each PR push, it gathers context about the changes and posts (or updates) a comment with structured testing instructions. @@ -27,7 +27,7 @@ jobs: qa-instructions: runs-on: ubuntu-latest steps: - - uses: slifty/qa-instructions-action@v1 + - uses: BadIdeaFactory/qa-instructions-action@v1 with: github-token: ${{ secrets.GITHUB_TOKEN }} ``` @@ -53,7 +53,7 @@ jobs: qa-instructions: runs-on: ubuntu-latest steps: - - uses: slifty/qa-instructions-action@v1 + - uses: BadIdeaFactory/qa-instructions-action@v1 with: github-token: ${{ secrets.GITHUB_TOKEN }} provider: anthropic @@ -102,6 +102,36 @@ You can override the model with any model supported by the chosen provider. - Things to watch for 4. Posts (or updates) the instructions as a PR comment, identified by a hidden HTML marker +## Troubleshooting + +### GitHub Models returns 403 Forbidden + +If you see a 403 error when using the `github-models` provider, GitHub Models may be disabled at the organization level. GitHub Models uses a hierarchical access control system: + +1. **Enterprise level** — An enterprise owner must enable GitHub Models for the enterprise (if your organization is part of an enterprise) +2. **Organization level** — An organization owner must enable GitHub Models for the organization +3. **Workflow level** — Your workflow must declare `permissions: models: read` (already in the example above) + +**To enable GitHub Models for your organization:** + +An organization owner needs to: + +1. Navigate to your organization's **Settings** +2. Go to **Code, planning, and automation** → **Models** → **Development** +3. Enable GitHub Models for the organization + +**Alternative workaround:** + +If you cannot enable GitHub Models at the organization level, switch to the Anthropic provider: + +```yaml +- uses: BadIdeaFactory/qa-instructions-action@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + provider: anthropic + anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} +``` + ## Development ### Setup diff --git a/package-lock.json b/package-lock.json index 0d7bd3c..3d9ee7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -759,7 +759,6 @@ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz", "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -1295,7 +1294,6 @@ "integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -1345,7 +1343,6 @@ "integrity": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.56.0", "@typescript-eslint/types": "8.56.0", @@ -1674,7 +1671,6 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1873,7 +1869,6 @@ "integrity": "sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", @@ -1930,7 +1925,6 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -2513,7 +2507,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -2566,7 +2559,6 @@ "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -2819,7 +2811,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2890,7 +2881,6 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", diff --git a/package.json b/package.json index ddd28fe..57e0816 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/slifty/qa-instructions-action.git" + "url": "git+https://github.com/BadIdeaFactory/qa-instructions-action.git" }, "license": "AGPL-3.0", "dependencies": { diff --git a/src/comment.ts b/src/comment.ts index e3c0ca9..cb751f7 100644 --- a/src/comment.ts +++ b/src/comment.ts @@ -9,7 +9,7 @@ function buildCommentBody(instructions: string): string { instructions, "", "---", - "*Generated by [QA Instructions Action](https://github.com/slifty/qa-instructions-action)*", + "*Generated by [QA Instructions Action](https://github.com/BadIdeaFactory/qa-instructions-action)*", ].join("\n"); }