GitHub
@file:OptIn(ExperimentalKatachiApi::class)
import me.tbsten.katachi.ExperimentalKatachiApiimport me.tbsten.katachi.dsl.architecture
val projectArchitecture = architecture { "Tools".group { github() }}
// roles/GitHub.kt@file:OptIn(ExperimentalKatachiApi::class)
import me.tbsten.katachi.ExperimentalKatachiApiimport 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() } } } }