All Downloads are FREE. Search and download functionalities are using the official Maven repository.

wei-k.ghscala_2.10.0.5.0.source-code.Repo.scala Maven / Gradle / Ivy

package ghscala

final case class SearchRepo(
  total_count :Long,
  items       :List[Repo]
) extends JsonToString[SearchRepo]

object SearchRepo {
  implicit val searchRepoCodecJson: CodecJson[SearchRepo] =
    CodecJson.casecodec2(apply, unapply)(
      "total_count", "items"
    )
}

final case class Repo(
  has_downloads :Option[Boolean],
  name          :String,
  has_issues    :Boolean,
  forks         :Int,
  `private`     :Boolean,
  size          :Int,
  open_issues   :Int,
  url           :String,
  description   :Option[String],
  pushed_at     :Option[DateTime],
  git_url       :String,
  has_wiki      :Boolean,
  fork          :Boolean,
  id            :Int,
  language      :Option[String],
  homepage      :Option[String],
  created_at    :DateTime,
  html_url      :String,
  updated_at    :DateTime,
  watchers      :Int,
  default_branch:Option[String],
  owner         :User // TODO User or Org

//  full_name     :String,
//  mirror_url    :String,
//  svn_url       :String,
//  clone_url     :String,
//  ssh_url       :String
) extends JsonToString[Repo] {
  def master: String = default_branch.getOrElse("master")
}

object Repo {

  implicit val repoCodecJson: CodecJson[Repo] =
    CodecJson.casecodec22(apply, unapply)(
      "has_downloads",
      "name",
      "has_issues",
      "forks",
      "private",
      "size",
      "open_issues",
      "url",
      "description",
      "pushed_at",
      "git_url",
      "has_wiki",
      "fork",
      "id",
      "language",
      "homepage",
      "created_at",
      "html_url",
      "updated_at",
      "watchers",
      "default_branch",
      "owner"
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy