feat: Add CLI

This commit is contained in:
oSumAtrIX
2024-01-29 03:46:17 +01:00
parent 9999b242ad
commit a988ffbd23
10 changed files with 107 additions and 33 deletions

View File

@@ -0,0 +1,73 @@
package app.revanced.api.schema
import kotlinx.serialization.Serializable
@Serializable
class APIRelease(
val version: String,
val createdAt: String,
val changelog: String,
val assets: Set<APIAsset>
)
interface APIUser {
val name: String
val avatarUrl: String
val url: String
}
@Serializable
class APIMember(
override val name: String,
override val avatarUrl: String,
override val url: String,
val gpgKeysUrl: String
) : APIUser
@Serializable
class APIContributor(
override val name: String,
override val avatarUrl: String,
override val url: String,
val contributions: Int,
) : APIUser
@Serializable
class APIContributable(
val name: String,
val contributors: Set<APIContributor>
)
@Serializable
class APIAsset(
val downloadUrl: String,
) {
val type = when {
downloadUrl.endsWith(".jar") -> "patches"
downloadUrl.endsWith(".apk") -> "integrations"
else -> "unknown"
}
}
@Serializable
class APIReleaseVersion(
val version: String
)
@Serializable
class APIAnnouncement(
val id: Int,
val author: APIUser?,
val title: String,
val content: APIAnnouncementContent,
val channel: String,
val createdAt: String,
val archivedAt: String?,
val level: Int,
)
@Serializable
class APIAnnouncementContent(
val message: String,
val attachmentUrls: Set<String>
)

View File

@@ -0,0 +1,17 @@
package app.revanced.api.schema
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
class APIConfiguration(
val organization: String,
@SerialName("patches-repository")
val patchesRepository: String,
@SerialName("integrations-repositories")
val integrationsRepositoryNames: Set<String>,
@SerialName("contributors-repositories")
val contributorsRepositoryNames: Set<String>,
@SerialName("api-version")
val apiVersion: Int = 1
)