Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 4 additions & 45 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,46 +1,5 @@
# .github/CODEOWNERS
#
# Auto-assigns reviewers to PRs. Each line maps a path pattern to one or more
# GitHub teams. Last matching pattern wins. GitHub round-robins review requests
# within each team to spread the load.
#
# Docs: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# Code Owners
# This file defines who is responsible for code in this repository.
# Maintainers will be automatically requested for review on PRs.

# ── Fallback: maintainers review anything not matched below ──
* @NVIDIA/nemoclaw-maintainer

# ── CLI plugin (Node/TS) ──
/nemoclaw/ @NVIDIA/nemoclaw-maintainer
/nemoclaw/src/onboard/ @NVIDIA/nemoclaw-engineer

# ── Blueprint & sandbox policy (Python) ──
/nemoclaw-blueprint/ @NVIDIA/nemoclaw-maintainer
/nemoclaw-blueprint/policies/ @NVIDIA/nemoclaw-security

# ── Shell scripts & installers ──
/bin/ @NVIDIA/nemoclaw-maintainer
/scripts/ @NVIDIA/nemoclaw-maintainer
/install.sh @NVIDIA/nemoclaw-maintainer
/uninstall.sh @NVIDIA/nemoclaw-maintainer

# ── Container ──
/Dockerfile @NVIDIA/nemoclaw-security @NVIDIA/nemoclaw-maintainer

# ── Docs ──
/docs/ @NVIDIA/nemoclaw-engineer
/spark-install.md @NVIDIA/nemoclaw-engineer

# ── Agent skills catalog ──
/.agents/skills/ @NVIDIA/nemoclaw-maintainer @NVIDIA/nemoclaw-engineer
/skills/ @NVIDIA/nemoclaw-maintainer @NVIDIA/nemoclaw-engineer

# ── NVSkills CI request listener (must stay CODEOWNERS-protected per
# NVIDIA/nvskills-ci team-onboarding step 4) ──
/.github/workflows/request-nvskills-ci.yml @NVIDIA/nemoclaw-maintainer

# ── Tests ──
/test/ @NVIDIA/nemoclaw-engineer

# ── CI / GitHub config ──
/.github/ @NVIDIA/nemoclaw-maintainer
/ci/ @NVIDIA/nemoclaw-maintainer
* @default-reviewer

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check if `@default-reviewer` is a valid GitHub user or team

# Check if it's a user
gh api /users/default-reviewer 2>/dev/null && echo "✓ Valid user" || echo "✗ User not found"

# Check if it's a team in the current repo's organization
gh api repos/:owner/:repo/teams 2>/dev/null | jq -r '.[].slug' | grep -q '^default-reviewer$' && echo "✓ Valid team" || echo "✗ Team not found in organization"

Repository: NVIDIA/NemoClaw

Length of output: 281


🏁 Script executed:

#!/bin/bash
set -euo pipefail

OWNER="NVIDIA"
REPO="NemoClaw"

echo "== User check: `@default-reviewer` =="
gh api /users/default-reviewer 2>/dev/null | jq -r '.login' >/dev/null && echo "✓ Valid user" || echo "✗ User not found"

echo
echo "== Team check (repo teams): default-reviewer slug =="
gh api "repos/${OWNER}/${REPO}/teams" 2>/dev/null \
  | jq -r '.[].slug' \
  | tee /tmp/team_slugs.txt \
  | grep -xq 'default-reviewer' && echo "✓ Valid team slug" || echo "✗ Team slug not found in repo teams"

echo
echo "== Team check (org teams): default-reviewer slug =="
gh api "orgs/${OWNER}/teams?per_page=100" 2>/dev/null \
  | jq -r '.[].slug' \
  | grep -xq 'default-reviewer' && echo "✓ Valid team slug" || echo "✗ Team slug not found in org teams"

echo
echo "== Sample slugs (first 30) =="
head -n 30 /tmp/team_slugs.txt 2>/dev/null || true

Repository: NVIDIA/NemoClaw

Length of output: 512


🏁 Script executed:

#!/bin/bash
set -euo pipefail

OWNER="NVIDIA"
REPO="NemoClaw"

echo "== Raw repo teams endpoint (first 1) =="
gh api "repos/${OWNER}/${REPO}/teams?per_page=10" 2>&1 | head -n 5

echo
echo "== Raw org teams endpoint (first 1) =="
gh api "orgs/${OWNER}/teams?per_page=10" 2>&1 | head -n 5

echo
echo "== JSON type check (repo teams) =="
gh api "repos/${OWNER}/${REPO}/teams?per_page=10" 2>/dev/null | jq -r 'type' || true

echo
echo "== JSON type check (org teams) =="
gh api "orgs/${OWNER}/teams?per_page=10" 2>/dev/null | jq -r 'type' || true

Repository: NVIDIA/NemoClaw

Length of output: 305


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== .github/CODEOWNERS =="
nl -ba .github/CODEOWNERS | sed -n '1,120p'
echo
echo "== File details =="
wc -l .github/CODEOWNERS

Repository: NVIDIA/NemoClaw

Length of output: 145


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== .github/CODEOWNERS (with line numbers) =="
awk '{print NR ":" $0}' .github/CODEOWNERS

echo
echo "== .github/CODEOWNERS raw =="
cat .github/CODEOWNERS

Repository: NVIDIA/NemoClaw

Length of output: 480


🌐 Web query:

GitHub CODEOWNERS invalid username ignored automatic review assignment behavior

💡 Result:

In GitHub repositories, the behavior when encountering an invalid username or team in a CODEOWNERS file is that the specific line containing the error is skipped, and consequently, no code owner will be assigned for that rule [1][2]. Historically, in older versions of GitHub Enterprise Server, encountering invalid syntax—which included non-existent users or teams—could cause the entire CODEOWNERS file to be ignored and rendered non-functional [3][4][5]. However, in modern GitHub documentation, it is specified that if any line contains invalid syntax, only that specific line is skipped [1][2]. To maintain the functionality of automatic review assignments, it is critical to ensure that all usernames and team names are correct and that the specified users and teams have the required permissions (explicit write access) on the repository [1][2]. You can identify these errors in the following ways: - Error Highlighting: When viewing the CODEOWNERS file directly in the repository via the GitHub web interface, syntax errors are highlighted [1][2]. - API Validation: You can use the GitHub REST API to retrieve a list of errors present in the repository's CODEOWNERS file [1][2].

Citations:


**Fix CODEOWNERS owner for * @default-reviewer to avoid losing automatic review assignment** `* `@default-reviewer (in .github/CODEOWNERS, line 5) doesn’t correspond to an existing GitHub user (gh api /users/default-reviewer => 404). GitHub skips invalid owners on a per-line basis, so this rule won’t assign any code owners—breaking automatic review assignment for all paths. Update it to a real user (@username) or a correctly formatted team (@org/team-slug).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/CODEOWNERS at line 5, Replace the invalid CODEOWNERS entry "*
`@default-reviewer`" with a valid GitHub owner identifier: either an individual
handle like "`@username`" or a team slug like "`@org/team-slug`"; locate the line
containing "* `@default-reviewer`" and update that token to a real user or team so
the CODEOWNERS rule will properly assign automatic reviewers.

3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,6 @@ This software automatically retrieves, accesses or interacts with external mater
## License

Apache 2.0. See [LICENSE](LICENSE).

## Contributing

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add a blank line before the heading.

Markdown best practice requires a blank line before headings. This improves readability and satisfies the markdownlint MD022 rule.

📝 Proposed fix
 Apache 2.0. See [LICENSE](LICENSE).
+
 ## Contributing
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 315-315: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 315, Add a single blank line immediately before the "##
Contributing" heading in README.md to satisfy markdownlint MD022 and improve
readability; locate the heading text "## Contributing" and insert one empty line
directly above it.

Source: Linters/SAST tools

PRs welcome!