Skip to content

The API in CI processing when the branch repository submits PR to the main repository returns 404 #38444

Description

@binLep

Gitea Version

1.27.0

What happened?

When a merge request from a forked repository is submitted to the main repository, accessing the API results in a 404 error.

2026/07/14 13:24:37 HTTPRequest [I] router: completed GET /api/v1/repos/test/aaa/pulls/10/reviews?page=1&per_page=100 for 10.0.0.2:56668, 404 Not Found in 36.9ms @ v1/api.go:746(v1.mustAllowPulls)

However, the request merging within the main repository returns a 200 status code.

2026/07/14 13:30:52 HTTPRequest [I] router: completed GET /api/v1/repos/test/aaa/pulls/11/reviews?page=1&per_page=100 for 10.0.0.2:35846, 200 OK in 44.2ms @ repo/pull_review.go:27(repo.ListPullReviews)

CI config:

name: AI Review

on:
  pull_request:
    types: [opened]

jobs:
  ai-review:
    name: Run AI Review
    runs-on: ubuntu-latest
    container:
      image: nikitafilonov/ai-review:latest

    permissions:
      contents: read
      pull-requests: write

    steps:
      - name: Install Node.js 20
        run: |
          curl -o node-v20.11.0-linux-x64.tar.gz https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/v20.11.0/node-v20.11.0-linux-x64.tar.gz
          tar -xzf node-v20.11.0-linux-x64.tar.gz -C /usr/local --strip-components=1
          node -v
          npm -v
          rm node-v20.11.0-linux-x64.tar.gz

      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Run AI Review
        env:
          AI_REVIEW_CONFIG_FILE_YAML: .ai-review/config.yaml

          LLM__PROVIDER: "OPENAI"
          LLM__META__MODEL: "DeepSeek-V4"
          LLM__META__MAX_TOKENS: "384000"
          LLM__META__TEMPERATURE: "0.3"
          LLM__HTTP_CLIENT__API_URL: "http://10.1.13.133:3000/v1"
          LLM__HTTP_CLIENT__API_TOKEN: ${{ secrets.LLM_API_TOKEN }}

          VCS__PROVIDER: "GITEA"
          VCS__HTTP_CLIENT__API_URL: "http://10.110.5.20:3000/api/v1"
          VCS__HTTP_CLIENT__API_TOKEN: ${{ secrets.GITEA_TOKEN }}

          VCS__PAGINATION__PER_PAGE: 100
          VCS__PAGINATION__MAX_PAGES: 20

          VCS__PIPELINE__OWNER: ${{ github.repository_owner }}
          VCS__PIPELINE__REPO: ${{ github.event.repository.name }}
          VCS__PIPELINE__PULL_NUMBER: ${{ github.event.number }}
          VCS__PIPELINE__PROJECT_ID: ${{ github.repository_id }}

          CORE__CONCURRENCY: "4"
          REVIEW__DRY_RUN: "false"
          REVIEW__INLINE_TAG: "#ai-review-inline"
          REVIEW__INLINE_REPLY_TAG: "#ai-review-inline-reply"
          REVIEW__SUMMARY_TAG: "#ai-review-summary"
          REVIEW__SUMMARY_REPLY_TAG: "#ai-review-summary-reply"
          REVIEW__CONTEXT_LINES: "10"
          REVIEW__REVIEW_ADDED_MARKER: " # added"
          REVIEW__REVIEW_REMOVED_MARKER: " # removed"
          REVIEW__INLINE_COMMENT_FALLBACK: "true"

          LOGGER__LEVEL: "INFO"
          LOGGER__FORMAT: "{time:YYYY-MM-DD HH:mm:ss} | {level} | {extra[logger_name]} | {message}"

          ARTIFACTS__LLM_DIR: "./artifacts/llm"
          ARTIFACTS__VCS_DIR: "./artifacts/vcs"
          ARTIFACTS__LLM_ENABLED: "true"
          ARTIFACTS__VCS_ENABLED: "true"
        run: |
          ai-review show-config
          ai-review run

How are you running Gitea?

docker

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions