mirror of https://gitee.com/floraachy/llalaad.git
删除文件 src/index.js
This commit is contained in:
parent
7997d7a9f3
commit
4473b0e04e
143
src/index.js
143
src/index.js
|
@ -1,143 +0,0 @@
|
|||
const core = require('@actions/core');
|
||||
const axios = require('axios');
|
||||
const crypto = require('crypto');
|
||||
|
||||
function generateRandomString(length) {
|
||||
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
let result = '';
|
||||
const charactersLength = characters.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
const randomIndex = Math.floor(Math.random() * charactersLength);
|
||||
result += characters.charAt(randomIndex);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
const upload_artifact = async () => {
|
||||
//使用trim移除前后的多余空格
|
||||
const domain = (process.env['INPUT_DOMAIN'] || "http://172.20.32.201:4000").trim();
|
||||
const username = (process.env['INPUT_USERNAME'] || '').trim();
|
||||
const password = (process.env['INPUT_PASSWORD'] || '').trim();
|
||||
const repository = (process.env['INPUT_REPOSITORY'] || process.env['GITHUB_REPOSITORY'] || '').trim();
|
||||
const tag_name = (process.env['INPUT_TAG_NAME'] || generateRandomString(5)).trim();
|
||||
const release_title = (process.env['INPUT_RELEASE_TITLE'] || '').trim();
|
||||
const release_desc = (process.env['INPUT_RELEASE_DESC'] || '').trim();
|
||||
const sha = (process.env['INPUT_SHA'] || '').trim();
|
||||
|
||||
|
||||
console.log("---打印一下接收到的各项参数---")
|
||||
console.log("domain: ", domain)
|
||||
console.log("username: ", username)
|
||||
console.log("password: ", password)
|
||||
console.log("repository: ", repository)
|
||||
console.log("release_title: ", release_title)
|
||||
console.log("release_desc: ", release_desc)
|
||||
console.log("tag_name: ", release_desc)
|
||||
console.log("sha: ", sha)
|
||||
|
||||
const new_domain = domain.endsWith('/') ? domain.slice(0, -1) : domain;
|
||||
console.log("new_domain: ", new_domain)
|
||||
|
||||
// -------------------- 将登录密码基于平台加密算法加密----------------------------
|
||||
function aesEncrypt(plainText, keyStr, ivStr) {
|
||||
// 将字符串密钥和IV转换为16字节的Buffer
|
||||
const key = Buffer.from(keyStr.slice(0, 16), 'utf8');
|
||||
const iv = Buffer.from(ivStr.slice(0, 16), 'utf8');
|
||||
|
||||
// 创建并设置AES-CBC加密器
|
||||
const cipher = crypto.createCipheriv('aes-128-cbc', key, iv);
|
||||
|
||||
// 加密数据,并添加PKCS7填充
|
||||
let encryptedData = cipher.update(plainText, 'utf8', 'base64');
|
||||
encryptedData += cipher.final('base64');
|
||||
|
||||
return encryptedData;
|
||||
}
|
||||
|
||||
const key = '59c96c3572ab8cc1'; // 密钥
|
||||
const iv = '59c96c3572ab8cc1'; // 初始化向量
|
||||
|
||||
// 加密
|
||||
const pwd = aesEncrypt(password, key, iv);
|
||||
console.log("加密后的密码: ", pwd);
|
||||
|
||||
try {
|
||||
// -------------------- 登录,获取用户cookies----------------------------
|
||||
|
||||
const loginCookies = await fetch(new_domain + "/api/accounts/login.json", {
|
||||
"headers": {
|
||||
"content-type": "application/json",
|
||||
},
|
||||
"body": `{\"login\":\"${username}\",\"password\":\"${pwd}\",\"autologin\":0}`,
|
||||
"method": "POST",
|
||||
"mode": "cors",
|
||||
"credentials": "include"
|
||||
}).then((r) => r.headers.get('Set-Cookie'))
|
||||
console.log("loginCookies=======" + loginCookies)
|
||||
|
||||
if (!sha) {
|
||||
try {
|
||||
// 获取仓库的默认分支
|
||||
const detail_url = new_domain + "/api/" + repository + "/detail.json";
|
||||
console.log("detail_url=======" + detail_url)
|
||||
const detailResponse = await axios.get(detail_url, {
|
||||
headers: {
|
||||
cookie: loginCookies
|
||||
}
|
||||
});
|
||||
console.log(JSON.stringify(detailResponse.data));
|
||||
// 检查 HTTP 状态码
|
||||
if (detailResponse.status !== 200) {
|
||||
throw new Error(`请求接口detail.json失败,状态码:${detailResponse.status}`);
|
||||
}
|
||||
|
||||
// 检查业务状态码
|
||||
if (detailResponse.data.status !== 1) {
|
||||
throw new Error('请求接口detail.json失败:' + detailResponse.data);
|
||||
}
|
||||
// 获取默认分支,如果获取失败,则赋予默认值为master
|
||||
const sha = detailResponse.data.default_branch || 'master';
|
||||
console.log("sha=======" + sha);
|
||||
|
||||
} catch (error) {
|
||||
console.error("请求接口detail.json时发生错误:", error);
|
||||
throw error; // 或者返回一个默认值,例如 'main'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let releases_data = {
|
||||
"tag_name": tag_name, //标签,标记一个版本,必填
|
||||
"name": release_title + "_" + generateRandomString(5), // 发行版标题,必填
|
||||
"body": release_desc, //发行版描述,选填
|
||||
"target_commitish": sha
|
||||
}
|
||||
console.log("releases_data=======" + JSON.stringify(releases_data));
|
||||
|
||||
let api_config = {
|
||||
method: 'post',
|
||||
maxBodyLength: Infinity,
|
||||
url: new_domain + '/api/' + repository + '/releases.json',
|
||||
headers: {
|
||||
'cookie': loginCookies
|
||||
},
|
||||
data: releases_data
|
||||
};
|
||||
const apiResponse = await axios.request(api_config)
|
||||
console.log(JSON.stringify(apiResponse.data));
|
||||
if (apiResponse.data && apiResponse.data.status !== 0) {
|
||||
core.error('发布失败');
|
||||
core.setFailed('发布失败');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('错误日志', error);
|
||||
core.error('错误日志', error);
|
||||
core.setFailed('错误日志');
|
||||
}
|
||||
}
|
||||
|
||||
const main = async () => {
|
||||
await upload_artifact()
|
||||
}
|
||||
|
||||
main()
|
Loading…
Reference in New Issue