コンテンツにスキップ
  • 中級者向け

GitHub

ProjectArchitecture.kt
@file:OptIn(ExperimentalKatachiApi::class)
import me.tbsten.katachi.ExperimentalKatachiApi
import me.tbsten.katachi.dsl.architecture
val projectArchitecture = architecture {
"Tools".group {
github()
}
}
// roles/GitHub.kt
@file:OptIn(ExperimentalKatachiApi::class)
import me.tbsten.katachi.ExperimentalKatachiApi
import me.tbsten.katachi.dsl.DeclarationContainerScope
fun DeclarationContainerScope.github() =
"GitHub".group {
"Actions".group {
"Workflow" {
summary = "GitHub Actions のワークフロー"
layout {
".github/workflows/*.yml".file()
".github/workflows/*.yaml".file()
}
}
"CompositeAction" {
summary = "リポジトリ内で定義する composite action"
layout {
".github/actions/*/action.yml".file()
}
}
}
"Templates".group {
"Issue" {
summary = "Issue を立てるときのテンプレート"
layout {
".github/ISSUE_TEMPLATE/*.yml".file()
".github/ISSUE_TEMPLATE/*.md".file()
}
}
"PullRequest" {
summary = "Pull Request の説明のテンプレート"
layout {
".github/PULL_REQUEST_TEMPLATE.md".file().optional()
}
}
}
"CodeOwners" {
summary = "パスごとのレビュー担当者の宣言"
layout {
".github/CODEOWNERS".file().optional()
}
}
"Dependabot" {
summary = "Dependabot の更新設定"
layout {
".github/dependabot.yml".file().optional()
}
}
"CommunityHealth".group {
"Contributing" {
summary = "コントリビュートの手順"
layout {
".github/CONTRIBUTING.md".file().optional()
}
}
"CodeOfConduct" {
summary = "行動規範"
layout {
".github/CODE_OF_CONDUCT.md".file().optional()
}
}
"Security" {
summary = "脆弱性の報告方法"
layout {
".github/SECURITY.md".file().optional()
}
}
"Support" {
summary = "質問や助けを求める先"
layout {
".github/SUPPORT.md".file().optional()
}
}
"Funding" {
summary = "スポンサーシップの案内"
layout {
".github/FUNDING.yml".file().optional()
}
}
}
}