mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-26 20:20:14 +08:00
Add md5 in shadow
This commit is contained in:
parent
c9200852de
commit
34c325e014
@ -132,6 +132,18 @@ subprojects {
|
|||||||
it.printStackTrace() // force show stacktrace
|
it.printStackTrace() // force show stacktrace
|
||||||
throw it
|
throw it
|
||||||
}
|
}
|
||||||
|
runCatching {
|
||||||
|
upload.GitHub.upload(
|
||||||
|
file.inputStream().use { upload.GitHub.run { it.md5().hex().toByteArray(Charsets.UTF_8) } },
|
||||||
|
project,
|
||||||
|
"mirai-repo",
|
||||||
|
"shadow/${project.name}/$filename.md5"
|
||||||
|
)
|
||||||
|
}.exceptionOrNull()?.let {
|
||||||
|
System.err.println("GitHub Upload failed")
|
||||||
|
it.printStackTrace() // force show stacktrace
|
||||||
|
throw it
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,9 @@ import org.gradle.kotlin.dsl.provideDelegate
|
|||||||
import org.jsoup.Connection
|
import org.jsoup.Connection
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.io.InputStream
|
||||||
|
import java.io.OutputStream
|
||||||
|
import java.security.MessageDigest
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
internal val Http = HttpClient(CIO) {
|
internal val Http = HttpClient(CIO) {
|
||||||
@ -71,7 +74,38 @@ object GitHub {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun upload(file: File, project: Project, repo: String, targetFilePath: String) = runBlocking {
|
fun InputStream.md5(): ByteArray {
|
||||||
|
val digest = MessageDigest.getInstance("md5")
|
||||||
|
digest.reset()
|
||||||
|
use { input ->
|
||||||
|
object : OutputStream() {
|
||||||
|
override fun write(b: Int) {
|
||||||
|
digest.update(b.toByte())
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun write(b: ByteArray, off: Int, len: Int) {
|
||||||
|
digest.update(b, off, len)
|
||||||
|
}
|
||||||
|
}.use { output ->
|
||||||
|
input.copyTo(output)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return digest.digest()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ByteArray.hex(): String = buildString(size * 2) {
|
||||||
|
this@hex.forEach { byte ->
|
||||||
|
val uint = Integer.toHexString(byte.toInt() and 0xFF)
|
||||||
|
if (uint.length == 1) append('0')
|
||||||
|
append(uint)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun upload(file: File, project: Project, repo: String, targetFilePath: String) = upload(
|
||||||
|
file.readBytes(), project, repo, targetFilePath
|
||||||
|
)
|
||||||
|
|
||||||
|
fun upload(source: ByteArray, project: Project, repo: String, targetFilePath: String) = runBlocking {
|
||||||
val token = getGithubToken(project)
|
val token = getGithubToken(project)
|
||||||
println("token.length=${token.length}")
|
println("token.length=${token.length}")
|
||||||
val url = "https://api.github.com/repos/project-mirai/$repo/contents/$targetFilePath"
|
val url = "https://api.github.com/repos/project-mirai/$repo/contents/$targetFilePath"
|
||||||
@ -86,7 +120,7 @@ object GitHub {
|
|||||||
)
|
)
|
||||||
}.getOrNull()
|
}.getOrNull()
|
||||||
println("sha=$sha")
|
println("sha=$sha")
|
||||||
val content = String(Base64.getEncoder().encode(file.readBytes()))
|
val content = String(Base64.getEncoder().encode(source))
|
||||||
body = """
|
body = """
|
||||||
{
|
{
|
||||||
"message": "Automatically upload on release ${project.name}:${project.version}",
|
"message": "Automatically upload on release ${project.name}:${project.version}",
|
||||||
|
Loading…
Reference in New Issue
Block a user