---
name: coderabbit-inheritance-scanner-search
description: Search for repos with .coderabbit.yaml files in the openshift GitHub org
---

# CodeRabbit Inheritance Scanner - Search

This skill searches the `openshift` GitHub organization for repositories containing `.coderabbit.yaml` or `.coderabbit.yml` files using the GitHub code search API.

## When to Use This Skill

Use this skill as Step 1 of the `/teams:coderabbit-inheritance-scanner` command.

## Procedure

Run the following bash script to search for repos. This uses GitHub code search to avoid iterating all ~800 repos individually.

```bash
ALL_REPOS=""

for FILENAME in .coderabbit.yaml .coderabbit.yml; do
  PAGE=1
  while true; do
    API_ERR=""
    RESULT=$(gh api -X GET "search/code" \
      -f "q=filename:${FILENAME} org:openshift" \
      -f "per_page=100" \
      -f "page=${PAGE}" \
      --jq '.items[] | .repository.full_name' 2> >(API_ERR=$(cat)))
    API_EXIT=$?
    if [ $API_EXIT -ne 0 ]; then
      echo "ERROR: GitHub code search API failed (exit ${API_EXIT}): ${API_ERR}" >&2
      echo "Check authentication with: gh auth status" >&2
      exit 1
    fi
    if [ -z "$RESULT" ]; then
      break
    fi
    ALL_REPOS="${ALL_REPOS}${RESULT}"$'\n'
    COUNT=$(echo "$RESULT" | wc -l | xargs)
    if [ "$COUNT" -lt 100 ]; then
      break
    fi
    PAGE=$((PAGE + 1))
    sleep 1
  done
  sleep 2
done

# Deduplicate, sort, exclude openshift/coderabbit
echo "$ALL_REPOS" | sort -u | grep -v '^$' | grep -v '^openshift/coderabbit$'
```

## Output

A newline-separated list of `org/repo` names (e.g., `openshift/api`), excluding `openshift/coderabbit`.

## Error Handling

If the code search API is unavailable or returns an error (e.g., due to authentication scope), inform the user that the search failed and suggest checking `gh auth status`.
