# npm-trusted-publishing

Настраивает npm trusted publishing через OIDC в GitHub Actions и убирает токены из публикации. Нужен при ошибках ENEEDAUTH, E404 и E422.

- скилл · `type=skill` · GitHub Copilot · ★ 40451
- Автор: github · официальный репозиторий GitHub
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/github/awesome-copilot/tree/HEAD/skills/npm-trusted-publishing/SKILL.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/skills/npm-trusted-publishing

## Что делает

Скилл переводит публикацию npm-пакета с `NPM_TOKEN` или `NODE_AUTH_TOKEN` на краткоживущий OIDC-токен GitHub Actions. Он ведёт по проверке `id-token: write`, версии npm, `registry-url`, `repository.url` в `package.json` и trusted publisher для каждого пакета.

Внутри есть чеклист, разбор ошибок `ENEEDAUTH`, `404 Not Found - PUT` и `E422 ... repository.url`, а также пример workflow. Для npm нужен выпуск версии `11.5.1` или новее; для старого Node предлагается обновить npm перед публикацией. Остаточные токены нужно убрать из переменных окружения и файлов конфигурации.

Trusted publishing работает только на GitHub-hosted runner. Самохостируемый runner для этой схемы не подойдёт, а добавление trusted publisher и удаление старого токена требуют входа в npm с 2FA.

## Установка

### GitHub Copilot (родная платформа)

1. **GitHub CLI**
```bash
gh skill install github/awesome-copilot npm-trusted-publishing
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/npm-trusted-publishing/SKILL.md`

### Claude Code

1. **Через Skills CLI (Vercel)**
```bash
npx skills add github/awesome-copilot --skill npm-trusted-publishing -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/npm-trusted-publishing/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/npm-trusted-publishing/

### Codex

**Вручную: положить файлы**
- Файл: `.agents/skills/npm-trusted-publishing/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/skills/npm-trusted-publishing/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### Gemini CLI

**Командой платформы**
```bash
gemini skills install https://github.com/github/awesome-copilot --path skills/npm-trusted-publishing
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/npm-trusted-publishing/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/github/awesome-copilot/tree/HEAD/skills/npm-trusted-publishing/SKILL.md

## Когда брать
- перевести публикацию npm-пакета на OIDC
- найти причину ошибки ENEEDAUTH в GitHub Actions
- исправить E422 из-за `repository.url`
- убрать токены из шага публикации
- проверить настройки trusted publisher

## Примеры запросов агенту
- Проверь workflow публикации npm-пакета и переведи его с `NPM_TOKEN` на OIDC.
- Разбери ошибку `E422 ... repository.url` в `package.json` и workflow.
- Проверь, почему публикация получает `ENEEDAUTH`, и составь исправления по чеклисту.

## Похожие
- [wizard](https://affpapa.org/nevibecode/skills/wizard.md) — скилл · 553369 установок
- [hyperframes-cli](https://affpapa.org/nevibecode/skills/heygen-com-hyperframes-cli.md) — скилл · 1300000 установок
- [setup-pre-commit](https://affpapa.org/nevibecode/skills/setup-pre-commit.md) — скилл · 489289 установок
- [using-git-worktrees](https://affpapa.org/nevibecode/skills/using-git-worktrees.md) — скилл · 217153 установки
- [finishing-a-development-branch](https://affpapa.org/nevibecode/skills/finishing-a-development-branch.md) — скилл · 214439 установок
- [orca-cli](https://affpapa.org/nevibecode/skills/orca-cli.md) — скилл · 354000 установок

Из того же набора: [github/awesome-copilot](https://affpapa.org/nevibecode/by/github/awesome-copilot.md) — 928 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
