删除文件 src/index.js

This commit is contained in:
floraachy 2025-03-13 06:14:37 +00:00 committed by Gitee
parent 7997d7a9f3
commit 4473b0e04e
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
1 changed files with 0 additions and 143 deletions

View File

@ -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()