Когда в очередной раз нужно проверить актуальность библиотеки в резюме кандидата или оценить стек технологии для нового проекта, руки сами тянутся к Google и GitHub. Но теперь есть альтернатива — skills.sh API от Vercel, который агрегирует данные о более чем 600 тысячах навыков из open-source экосистемы.
Что умеет skills.sh API
API даёт доступ к трем ключевым функциям:
- Поиск навыков — ищет не только по названиям, но и по алиасам (например, “next” найдёт Next.js)
- Детальная информация — популярность, связанные технологии, дата последнего обновления
- Проверка безопасности — данные аудитов и уязвимостей
Пример запроса через cURL:
curl -H "Authorization: Bearer $VERCEL_OIDC_TOKEN" \
"https://skills.sh/api/v1/skills?search=react"
В ответ получите JSON с массивом технологий, где для каждой есть:
id— уникальный идентификаторname— каноническое названиеaliases— варианты названийecosystem— принадлежность к экосистеме (JavaScript, Python и т.д.)security_audit— статус проверки безопасности
Как работает аутентификация
Vercel использует короткоживущие OIDC-токены, привязанные к конкретному проекту и команде. Это решает две проблемы:
- Безопасность — не нужно хранить долгоживущие секреты
- Ротация — токены обновляются автоматически
Лимит — 600 запросов в минуту на команду, что более чем достаточно для большинства сценариев. Если лимит превышен, API возвращает 429 с заголовком Retry-After.
Практические сценарии использования
Проверка резюме
Вместо ручного поиска по GitHub и npm можно автоматизировать проверку технологий из резюме:
async function verifySkills(resumeSkills) {
const results = [];
for (const skill of resumeSkills) {
const response = await fetch(
`https://skills.sh/api/v1/skills?search=${encodeURIComponent(skill)}`,
{ headers: { Authorization: `Bearer ${process.env.VERCEL_OIDC_TOKEN}` } }
);
const data = await response.json();
results.push({ skill, data: data[0] });
}
return results;
}
Анализ зависимостей проекта
Перед обновлением зависимостей можно массово проверить их безопасность:
npm ls --depth=0 | awk -F ' ' '{print $2}' | cut -d '@' -f1 | \
xargs -I {} curl -s -H "Authorization: Bearer $VERCEL_OIDC_TOKEN" \
"https://skills.sh/api/v1/skills/{}" | jq '.security_audit'
Ограничения и подводные камни
- Coverage — API покрывает в основном JavaScript/TypeScript экосистему. Для Python, Go или Rust данных пока меньше.
- Freshness — данные обновляются раз в сутки, что может быть критично для проверки только что обнаруженных уязвимостей.
- Rate limiting — 600 RPM звучит много, но для batch-обработки больших проектов может не хватить.
Альтернативы и когда их выбирать
- GitHub API — когда нужны raw данные о конкретных репозиториях
- npm audit / yarn audit — для глубокой проверки безопасности Node.js проектов
- Libraries.io — если важна история обновлений и альтернативные пакеты
Skills.sh API занимает нишу быстрого поверхностного анализа без необходимости копаться в деталях каждого инструмента.
Для интеграции с существующими пайплайнами можно использовать официальный JavaScript-клиент или работать с API напрямую. Документация достаточно подробная, но примеров для Python или Go пока нет — приходится писать обёртки самостоятельно.
Главный плюс — скорость получения ответов на типовые вопросы вроде “насколько популярен этот инструмент” или “были ли у него критические уязвимости”. Для всего остального пока придётся использовать традиционные методы.
Попробуй сам: Vercel — Edge Functions и serverless деплой.
Источник: https://vercel.com/changelog/the-skills-sh-api-is-now-available