# AX Check: copr.fedoraproject.org
Checked 2026-09-18.

Copr has no llms.txt or docs guide, but API and CLI info are findable
Homepage has no Markdown or llms.txt index (404), but the API page links Swagger docs and copr-cli setup, and passes both checks.

## Onboarding needs a login

## Coding sessions
Two of three sessions finished and both concluded Copr is a free Fedora build service with no pricing tiers, citing its community infrastructure and fair-use policy instead of a paid plan. One session did not complete.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/0d628615-792b-48ad-ac2c-9f023e7c2c2a) · [Read transcript](https://www.ax-check.com/copr.fedoraproject.org/sessions/deepseek.json)

#### End-to-end onboarding
- **Onboarding needs a login**: No Copr API token was obtained during the session; the sandbox only had an unrelated gateway key. Auth-check and an unauthenticated project-create POST both returned a login/token error. The final script only runs a read-only demo with no token, and gates the write workflow (create project, submit build) behind manually-set env vars that were never actually populated or exercised, so no authenticated product operation was demonstrated.
  Event 7:

  ```text
  PI_GATEWAY_API_KEY=<redacted>
  ```
  Event 61:

  ```text
  {"output": "notok", "error": "Login invalid/expired. Please visit https://copr.fedorainfracloud.org/api to get or renew your API token."}
  ```
  Event 196:

  ```text
  Creating projects and submitting builds requires an API token — see header.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-service way to get a Copr API token**: Every write-capable Copr endpoint (project creation, build submission) requires an API token tied to a real Fedora account login (OIDC/GSSAPI). The sandbox had no such credential, and Copr provides no anonymous or programmatic token-issuance flow the agent could complete on its own. This is a normal product authentication requirement, not a defect, but it fully blocked the write/build half of the requested example.
  Event 61:

  ```text
  {"output": "notok", "error": "Login invalid/expired. Please visit https://copr.fedorainfracloud.org/api to get or renew your API token."}
  ```
  Event 40:

  ```text
  href="/oidc_login/"
  href="/api_3/gssapi_login/web-ui"
  ```

#### Suggested Changes
- **Add a documented pricing/cost page link to the API docs or landing page**: The transcript shows no pricing information was ever found in the API root, swagger spec, or docs pages fetched (/api/, /api_3/docs, user_documentation.html) — the agent had to infer pricing indirectly rather than being pointed to a page. Add a direct 'Pricing' or 'Service limits' link in the API root response or docs homepage, and confirm it resolves by checking the /api_3/docs or /api/ page includes a pricing anchor.
  Event 40:

  ```text
  href="https://docs.copr.fedorainfracloud.org/user_documentation.html"
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/b8b87064-211e-4ef9-a61b-912a9693a07a) · [Read transcript](https://www.ax-check.com/copr.fedoraproject.org/sessions/kimi.json)
Final output states Copr is free with named basis: community Fedora/Red Hat infrastructure, no paid tier/metering, only cost is a free account plus fair-use build policy.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained real Copr credentials on its own. It only performed anonymous, unauthenticated read calls to the public Copr API (fetching public project/build metadata). It explicitly states it lacks a token and that creating projects or submitting builds requires the user's personal API token from the Copr web UI, which it could not self-provision.
  Event 21:

  ```text
  client = Client.create_from_config_file()  # anonymous (no token) -> read-only public data
  ```
  Event 32:

  ```text
  Blocked on: Write access. Creating projects and submitting builds requires your personal API token from https://copr.fedorainfracloud.org/api/ saved to `~/.config/copr`. I don't have one, so I demonstrated with read-only public data.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-service API token for write operations**: The agent could not create a Copr project or submit a build because doing so requires a personal API token obtained by logging into the Copr web UI and copying it to a local config file. This is a normal authentication requirement (missing credentials), not a product defect. The agent worked around it by only demonstrating anonymous read-only calls.
  Event 32:

  ```text
  Creating projects and submitting builds requires your personal API token from https://copr.fedorainfracloud.org/api/ saved to `~/.config/copr`. I don't have one, so I demonstrated with read-only public data.
  ```

#### Suggested Changes
- **Add a self-service or scripted token provisioning option for agents**: The quickstart currently requires a human to log into the Copr web UI at https://copr.fedorainfracloud.org/api/ to obtain the write-access API token, which blocked the agent from completing the create-project/submit-build workflow end to end. Verify a fix by having an unattended script or agent obtain a token programmatically (e.g., via a CLI login flow or service-account token endpoint) and then successfully call project_proxy.add and build_proxy.create_from_url without human copy-paste.
  Event 32:

  ```text
  Give me a token (or run the auth setup) and I can create a repo and submit a real build end-to-end.
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/e2b0db00-520e-4749-8328-c24a9d6926ad) · [Read transcript](https://www.ax-check.com/copr.fedoraproject.org/sessions/qwen.json)
README.md and final output state 'Copr has no pricing' and explain the assumption basis (free community service, no tiers/billing) plus explicitly refuse to quote unverified quota/timeout numbers.
#### End-to-end onboarding
- **Onboarding needs a login**: Agent never obtained real Copr API credentials. It explicitly checked for env/config credentials and found none, then confirmed via SDK that write operations are rejected with an auth error. It fabricated a dummy config file to test the error path, which is not real credential acquisition. All demonstrated successes (project lookups, build listings) were anonymous reads that require no authentication, so no authenticated operation was ever performed.
  Event 26:

  ```text
  (no copr/fedora credentials in env)
  ```
  Event 40:

  ```text
  BLOCKED -> CoprRequestException
  Login invalid/expired. Please visit https://copr.fedorainfracloud.org/api to get or renew your API token.
  ```
  Event 106:

  ```text
  copr.v3.exceptions.CoprRequestException: Login invalid/expired. Please visit https://copr.fedorainfracloud.org/api to get or renew your API token.
  ```
  Event 90:

  ```text
  1. project @copr/copr
       description : copr repository  with up-to-date Copr packages - those that you find in 
       chroots     : 24 (e.g. epel-8-aarch64, epel-8-ppc64le, epel-8-s390x)
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Write API requires a human-issued Copr token**: Every write operation (project_proxy.add, build_proxy.create_from_url) requires a Fedora account API token. No such credential exists in the sandbox environment (env vars and config file were both empty), and the product's normal flow requires a human to visit the Copr web UI to mint one. This is a standard authentication requirement, not a product defect — the agent confirmed the request reaches the server and is rejected purely on credentials.
  Event 26:

  ```text
  (no copr/fedora credentials in env)
  ```
  Event 40:

  ```text
  BLOCKED -> CoprRequestException
  Login invalid/expired. Please visit https://copr.fedorainfracloud.org/api to get or renew your API token.
  ```
  Event 101:

  ```text
  No Copr config at /sandbox/.config/copr. Get a token at https://copr.fedorainfracloud.org/api/ and write copr_url/login/username/token into it.
  ```
- **Fulltext search endpoint times out on broad queries**: The SDK's project_proxy.search() call (and the equivalent raw API query) exceeded the 30-second timeout on a broad query like 'python', forcing the agent to abandon search in favor of direct project_proxy.get() lookups. This is product/API behavior on Copr's hosted search endpoint, not an agent or environment error.
  Event 67:

  ```text
  requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='copr.fedorainfracloud.org', port=443): Read timed out. (read timeout=30)
  ```

#### Suggested Changes
- **Fix or document the slow project_proxy.search() endpoint**: In the copr Python SDK (v3, package version 2.7), calling project_proxy.search('python') or the equivalent /project/search?query=python REST call reliably times out past 30 seconds. Either optimize the fulltext search backend or add a note in the SDK/API docs recommending project_proxy.get(owner, name) for known projects, since that call returns in 1-3 seconds. Verify the fix by re-running project_proxy.search with a common single-word query and confirming it returns within a few seconds.
  Event 67:

  ```text
  requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='copr.fedorainfracloud.org', port=443): Read timed out. (read timeout=30)
  ```
- **Clarify Client() config key requirements and error messages**: Constructing copr.v3.Client with a config dict using the intuitive key 'hostname' fails with a raw KeyError instead of a clear message; the actual required key is 'copr_url'. Update the SDK to either accept 'hostname' as an alias or raise a descriptive error naming the missing required key, checkable by instantiating Client({'hostname': ...}) and confirming a clear exception message appears instead of a bare KeyError traceback.
  Event 33:

  ```text
  KeyError: 'copr_url'
  ```
- **Document the required [copr-cli] section header in token config files**: A config file missing the [copr-cli] section header fails with 'File contains no section headers' rather than a message pointing to the expected format. Add the required header format to the token-generation page at copr.fedorainfracloud.org/api/ so users copying the token file know to include it; verify by checking that a freshly downloaded token file already includes the header line.
  Event 106:

  ```text
  copr.v3.exceptions.CoprConfigException: File contains no section headers.
  file: '/tmp/fakecopr', line: 1
  'copr_url = https://copr.fedorainfracloud.org\n'
  ```

### Task given to each agent
Help me build a simple example using Copr. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: F · 23/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html for a Markdown Accept header; no Markdown representation offered.
  ```

- **Failed** — llms.txt provides an actionable documentation index

  ```text
  /llms.txt returns HTTP 404, so no documentation index exists.
  ```

- **Skipped** — llms.txt provides navigation guidance

  ```text
  /llms.txt is 404, so no navigation guidance content exists to assess.
  ```

- **Skipped** — llms.txt mentions offered API, MCP, and skills

  ```text
  /llms.txt is 404, so no API/MCP/skills mentions exist to assess.
  ```

- **Skipped** — A compact guide representation exists

  ```text
  No site-published compact Markdown guide fetched; homepage Markdown unsupported and no .md guide observed.
  ```

- **Skipped** — A focused guide is directly retrievable

  ```text
  No focused guide document was fetched; only homepage, API page and 404 llms.txt.
  ```

- **Skipped** — Equivalent instructions fit a token budget

  ```text
  No compact guide representation was retrieved, so token budget cannot be measured.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown unsupported, so link preservation across formats cannot be judged.
  ```

- **Skipped** — The compact guide is independently actionable

  ```text
  No compact agent guide fetched; only homepage, API page and 404 page supplied.
  ```

- **Skipped** — Install and next-step links resolve

  ```text
  No install or next-step links were fetched to confirm resolution.
  ```


### Onboarding
- **Skipped** — Docs lead to a relevant quickstart

  ```text
  No Copr quickstart page fetched; only a 404 llms.txt and foreign Red Hat pages.
  ```

- **Skipped** — Installation commands are extractable

  ```text
  No Copr installation or CLI guide fetched to extract commands from.
  ```

- **Skipped** — Code examples are available without interaction

  ```text
  No Copr docs or API reference page fetched showing code examples.
  ```

- **Skipped** — Prerequisites and auth boundaries are explicit

  ```text
  No Copr auth or prerequisites page fetched; only login links in 404 footer.
  ```


### Pricing
- **Skipped** — Pricing is readable without interaction

  ```text
  Not applicable: the relevant product is free. Copr is a free Fedora build service; no pricing page or paid plans were fetched.
  ```

- **Skipped** — Prices are stated, not gated

  ```text
  Not applicable: the relevant product is free. No pricing page fetched; Copr appears to be a free community build service.
  ```

- **Skipped** — Pricing units and limits are explicit

  ```text
  Not applicable: the relevant product is free. No pricing units or limits evidence; product appears free with no paid tiers.
  ```

- **Skipped** — Agents identify pricing and its assumptions

  ```text
  Not applicable: the relevant product is free. Copr is a free Fedora build service; no pricing page or paid plans were fetched.
  ```


### Activation
- **Pass** — An API reference or OpenAPI spec is reachable

  ```text
  Copr API page links API documentation and Swagger UI at /api_3/docs.
  ```

- **Skipped** — An MCP server is documented and well-formed

  ```text
  No MCP server documentation found in fetched Copr pages.
  ```

- **Pass** — A CLI install path is documented

  ```text
  API page shows copr-cli config with login, token, and copr_url.
  ```

- **Skipped** — SDK packages resolve on their registries

  ```text
  No registry lookup for a Copr SDK package was supplied.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills published or documented in fetched Copr pages.
  ```



[Full report data](https://www.ax-check.com/copr.fedoraproject.org/report.json)
