From 161b78be9768715069273cf7de057ece9a54c697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Fri, 13 Feb 2026 16:08:11 +0400 Subject: [PATCH] Configure Gitea commit signing with SSH key --- .../kosmos_gitea/recipes/default.rb | 28 +++++++++++++++++++ .../templates/default/app.ini.erb | 10 +++++++ 2 files changed, 38 insertions(+) diff --git a/site-cookbooks/kosmos_gitea/recipes/default.rb b/site-cookbooks/kosmos_gitea/recipes/default.rb index bc0a53e..8049a70 100644 --- a/site-cookbooks/kosmos_gitea/recipes/default.rb +++ b/site-cookbooks/kosmos_gitea/recipes/default.rb @@ -19,6 +19,17 @@ jwt_secret = gitea_data_bag_item["jwt_secret"] internal_token = gitea_data_bag_item["internal_token"] secret_key = gitea_data_bag_item["secret_key"] +apt_repository "git-core-ppa" do + uri "http://ppa.launchpad.net/git-core/ppa/ubuntu" + components ["main"] + key "E1DF1F24" + action :add + only_if do + node['platform'] == 'ubuntu' && + Gem::Version.new(node['platform_version']) < Gem::Version.new('22.04') + end +end + package "git" user "git" do @@ -26,6 +37,13 @@ user "git" do home "/home/git" end +directory "/home/git/.ssh" do + owner "git" + group "git" + mode "0700" + recursive true +end + directory working_directory do owner "git" group "git" @@ -100,6 +118,16 @@ config_variables = { s3_bucket: gitea_data_bag_item["s3_bucket"] } +bash "Generate git ed25519 keypair" do + user "git" + group "git" + cwd git_home_directory + code <<-EOH + ssh-keygen -t ed25519 -f #{git_home_directory}/.ssh/id_ed25519 + EOH + creates "#{git_home_directory}/.ssh/id_ed25519" +end + template "#{config_directory}/app.ini" do source "app.ini.erb" owner "git" diff --git a/site-cookbooks/kosmos_gitea/templates/default/app.ini.erb b/site-cookbooks/kosmos_gitea/templates/default/app.ini.erb index 5f9cc17..a3ef14f 100644 --- a/site-cookbooks/kosmos_gitea/templates/default/app.ini.erb +++ b/site-cookbooks/kosmos_gitea/templates/default/app.ini.erb @@ -30,6 +30,16 @@ MAX_OPEN_CONNS = 20 ROOT = <%= @repository_root_directory %> DISABLE_DOWNLOAD_SOURCE_ARCHIVES = true +[repository.signing] +SIGNING_KEY = <%= @git_home_directory %>/.ssh/id_ed25519.pub +SIGNING_NAME = Gitea +SIGNING_EMAIL = git@<%= @domain %> +SIGNING_FORMAT = ssh +INITIAL_COMMIT = always +CRUD_ACTIONS = always +WIKI = always +MERGES = always + # [indexer] # ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve