プロジェクト

全般

プロフィール

Gitとの連携について » 履歴 » バージョン 2

廣瀬 僚一, 2025/12/19 22:03

1 1 廣瀬 僚一
# Gitとの連携について
2 2 廣瀬 僚一
3 1 廣瀬 僚一
## 連携リポジトリ
4 2 廣瀬 僚一
- **リポジトリURL**: https://github.com/clear-de-sign/rgu
5 1 廣瀬 僚一
6 2 廣瀬 僚一
---
7
8
## 初期設定手順
9
10
### 1. SSHキーの作成と登録
11
12
#### 1-1. SSHキーの作成
13
ubuntuユーザーで実行:
14 1 廣瀬 僚一
```bash
15
ssh-keygen -t ed25519 -C "redmine-server"
16
cat .ssh/id_ed25519
17
cat .ssh/id_ed25519.pub
18
chmod 600 ~/.ssh/id_ed25519
19
chmod 644 ~/.ssh/id_ed25519.pub
20
```
21
22 2 廣瀬 僚一
#### 1-2. SSHキーのGitHub登録
23
1. clear-de-signアカウントでGitHubにログイン
24
2. 「Settings」>「SSH and GPG Keys」に移動
25
3. 「New SSH key」をクリック
26
4. `id_ed25519.pub`の内容を登録
27
28
### 2. Gitリポジトリの作成
29 1 廣瀬 僚一
```bash
30
mkdir -p /var/lib/redmine/git/
31
cd /var/lib/redmine/git
32
git clone --bare git@github.com:clear-de-sign/rgu.git
33
sudo chown -R ubuntu:www-data /var/lib/redmine/git/rgu.git
34
sudo chmod -R 755 /var/lib/redmine/git/rgu.git
35
```
36
37 2 廣瀬 僚一
---
38 1 廣瀬 僚一
39 2 廣瀬 僚一
## Redmine設定
40
41
### 3. 全体設定(リポジトリ設定)
42
43
**設定場所**: 「管理」>「設定」>「リポジトリ」
44
45
#### 3-1. コミットメッセージキーワード設定
46
47
コミットメッセージに特定のキーワードを記入すると、RedmineチケットとGitコミットが自動的に紐づきます。
48
49
**設定内容**:
50
- **参照用キーワード**: `refs,references`
51
- **修正用キーワード**: 
52
  - `fixes,closes` - マージコミット時に使用
53
  - `refs` - コミット時(確認時)に使用
54
55
**動作**:
56
- `refs`を含むコミットメッセージ → チケットステータスが**フィードバック**に変更
57
- `fixes`を含むコミットメッセージ → チケットステータスが**解決**に変更
58
59
**使用例**:
60
```text
61
タイトル:XXXの修正
62
メッセージ:refs #1234
63
```
64
※ `#1234`はRedmineチケット番号
65
66 1 廣瀬 僚一
![](clipboard-202512192135-1y6cp.png)
67
68 2 廣瀬 僚一
### 4. プロジェクトごとの設定
69
70
#### 4-1. リポジトリの登録
71
**設定場所**: 「設定」>「リポジトリ」>「新しいリポジトリ」
72
73 1 廣瀬 僚一
![](clipboard-202512192132-bxhcm.png)
74
75 2 廣瀬 僚一
#### 4-2. GitユーザーとRedmineユーザーの紐付け
76
**設定場所**: 「設定」>「リポジトリ」>「ユーザー」
77
78
リポジトリのログから検出されたユーザー名を、Redmineユーザーに関連付けます。
79
80 1 廣瀬 僚一
![](clipboard-202512192145-6rsh6.png)
81
82 2 廣瀬 僚一
---
83
84
## 自動更新設定
85
86
### 5. リポジトリの定期更新(cron設定)
87
88
ubuntuユーザーで実行:
89 1 廣瀬 僚一
```bash
90
crontab -e
91
```
92 2 廣瀬 僚一
93
以下のcronジョブを登録(5分ごとに実行):
94
1. リモートリポジトリをfetch
95
2. Redmineの変更履歴をDBに取り込み
96
97 1 廣瀬 僚一
```bash
98
*/5 * * * * /bin/bash -lc 'echo "CRON START $(date)"; git --git-dir=/var/lib/redmine/git/rgu.git fetch --prune origin "+refs/heads/*:refs/heads/*" "+refs/tags/*:refs/tags/*"; cd /var/www/html/redmine && RAILS_ENV=production bundle exec rake redmine:fetch_changesets; echo "CRON EXIT=$? $(date)"' >> /var/log/redmine/fetch.log 2>&1
99
```
100
101 2 廣瀬 僚一
---
102
103
## 参考リンク
104
105
- [[サーバー変更]](https://redmine.clear-design.jp/projects/redmine/wiki/%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4)