# License

> Check and fix Apache 2.0 license headers and dependency licenses using skywalking-eyes. Use before submitting a PR.

- Skill: `apache/license` (Agent Skill)
- Install (CLI): `npx skillmds@latest add apache/license`
- Raw SKILL.md: https://api.skillmd.com/api/skills/apache/license/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: apache (https://skillmd.com/u/apache)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/apache/license

---


# License Checks

Check and fix license compliance using [skywalking-eyes](https://github.com/apache/skywalking-eyes). Two CI jobs use this tool:

1. **license-header** — verifies all source files have Apache 2.0 headers
2. **dependency-license** — verifies the LICENSE file matches current dependencies

## Steps

### Header check (default, or `check` argument)

```bash
license-eye header check
```

- **All valid**: Output shows `valid: N, invalid: 0` — nothing to do.
- **Invalid files found**: Fix with `license-eye header fix`, then re-check.

### Header fix (`fix` argument)

```bash
license-eye header fix
license-eye header check
```

### Dependency license check (`deps` argument)

This regenerates the LICENSE file from dependency metadata and checks for drift:

```bash
license-eye dependency resolve --summary ./dist-material/release-docs/LICENSE.tpl || exit 1
if [ ! -z "$(git diff -U0 ./dist-material/release-docs/LICENSE)" ]; then
  echo "LICENSE file is not updated correctly"
  git diff -U0 ./dist-material/release-docs/LICENSE
fi
```

If the LICENSE file changed, review the diff and commit it. **Important**: CI runs on Linux — some dependencies have platform-specific variants. If you're on macOS/Windows, the LICENSE diff may be a platform artifact. Verify before committing.

## Rules

Configuration is in `.licenserc.yaml`:
- Java, XML, YAML/YML files require Apache 2.0 headers
- JSON and Markdown files are excluded (JSON doesn't support comments)
- Generated files and certain vendor paths are excluded
- SPI service files (`META-INF/services/`) require headers (use `#` comment style)

## Installation

```bash
# Same version as CI (pinned commit)
go install github.com/apache/skywalking-eyes/cmd/license-eye@5b7ee1731d036b5aac68f8bd3fc9e6f98ada082e

# Or via Homebrew (macOS)
brew install license-eye
```

