# License

> License is an Agent Skill for devops & security published in the apache/skywalking repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

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

- Skill name: `license`
- Category: [DevOps & Security](https://www.openparable.com/skill/devops-security/1)
- Source: https://github.com/apache/skywalking/blob/HEAD/.claude/skills/license/SKILL.md
- Repository: apache/skywalking (24,874 GitHub stars when collected)

## SKILL.md

# 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
```

---

Source: https://www.openparable.com/skill/devops-security/license (OpenParable). Cite the canonical URL above.
