/
chat-center
/
server
Обзор
Документация
Войти
/
chat-center
/
server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
scripts/checkneedrelease.js
72 строки
2 KB
levkin_s
Перенес модуль для публикации
04 авг 2026, 17:47
04 авг 2026, 17:47
0ed10dd
Код
Авторство
О чём код?
const https = require('node:https'); const path = require('node:path'); const apiURL = process.env.CI_API_V4_URL; const projectId = process.env.CI_PROJECT_ID; const token = process.env.CI_JOB_TOKEN; const isPrivateToken = process.env.CHAT_IS_PRIVATETOKEN; const tokenHeader = isPrivateToken ? 'PRIVATE-TOKEN' : 'JOB-TOKEN'; const packageData = require(path.join(__dirname, '..', 'package.json')); const packageVersion = packageData.version; const headers = {}; headers[tokenHeader] = token; const url = new URL( `${apiURL}/projects/${projectId}/releases/permalink/latest`, ); const options = { hostname: url.hostname, port: 443, path: url.pathname, method: 'GET', headers: headers, }; const req = https.get(options, (res) => { if (res.statusCode >= 400 && res.statusCode < 500) { return; } if (res.statusCode !== 302) { throw new Error('Нет перенаправления на релиз'); } const location = res.headers['location']; const options2 = { hostname: url.hostname, port: 443, path: location, method: 'GET', headers: headers, }; const req2 = https.get(options2, (res2) => { if (res2.statusCode !== 200) { throw new Error('Не удалось получить информацию о релизе'); } let data = ''; res2.on('data', (chunk) => { data += chunk; }); res2.on('end', () => { const jsonData = JSON.parse(data); if (jsonData.tag_name === packageVersion) { throw new Error('Версия пакета не обновлялась'); } }); res2.on('error', (err) => { throw err; }); }); req2.on('error', (e) => { throw new Error(e.message); }); }); req.on('error', (e) => { throw new Error(e.message); });