Skip to content

Commit

Permalink
chore: Miscellaneous updates (#151)
Browse files Browse the repository at this point in the history
* chore: Replace VSCode settings to Zed settings

* chore: Apply MIT license

* docs: Update readme
  • Loading branch information
m1sk9 authored Dec 18, 2024
1 parent 1ffe0e4 commit cf79684
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 35 deletions.
5 changes: 0 additions & 5 deletions .vscode/extensions.json

This file was deleted.

9 changes: 0 additions & 9 deletions .vscode/settings.json

This file was deleted.

7 changes: 7 additions & 0 deletions .zed/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// Folder-specific settings
//
// For a full list of overridable settings, and general information on folder-specific settings,
// see the documentation: https://zed.dev/docs/configuring-zed#settings-files
{
"format_on_save": "on"
}
7 changes: 5 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@
name = "idea-reaction"
version = "0.6.0"
edition = "2021"
description = "アイデア投稿履歴のリアクションを制限する Discord Bot"
authors = ["m1sk9 <[email protected]>"]
description = "アイデア投稿履歴のリアクションをサポートするDiscord Bot"
authors = ["GiganticMinecraft"]
license = "MIT"
license-file = "LICENSE"
repository = "https://github.com/GiganticMinecraft/idea-reaction"

[dependencies]
anyhow = { version = "1.0.94" }
Expand Down
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2023-2024 GiganticMinecraft

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
41 changes: 22 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,41 +7,44 @@

## Features

- アイデア投稿フォームに新しいアイデアが投稿された際に:
- その投稿履歴に "👍", "👎", "🤔" のリアクションを付与する
- その投稿履歴にスレッドを作成する
- その投稿履歴の Redmine Issue にスレッドへの URL をコメントする
- アイデア投稿フォームに新しいアイデアが投稿された際に:
- その投稿履歴に "👍", "👎", "🤔" のリアクションを付与する
- その投稿履歴にスレッドを作成する
- その投稿履歴の Redmine Issue にスレッドへの URL をコメントする

## Usage

- k8s 及び Docker Container 上での動作を想定しています. 整地鯖の k8s で動作するための定義は [seichi_infra](https://github.com/GiganticMinecraft/seichi_infra) で公開しています. ([定義ファイル: `seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/idea-reaction/idea-reaction.yaml`](https://github.com/GiganticMinecraft/seichi_infra/blob/main/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/idea-reaction/idea-reaction.yaml))
- [`compose.yaml`](./compose.yaml) を配置しているリポジトリ内に `.env` ファイルを用意し, 環境変数を設定してください.
- 設定後 `docker compose up -d` で起動できます.
- k8s 及び Docker Container 上での動作を想定しています. 整地鯖の k8s で動作するための定義は [seichi_infra](https://github.com/GiganticMinecraft/seichi_infra) で公開しています. ([定義ファイル: `seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/idea-reaction/idea-reaction.yaml`](https://github.com/GiganticMinecraft/seichi_infra/blob/main/seichi-onp-k8s/manifests/seichi-kubernetes/apps/seichi-minecraft/idea-reaction/idea-reaction.yaml))
- [`compose.yaml`](./compose.yaml) を配置しているリポジトリ内に `.env` ファイルを用意し, 環境変数を設定してください.
- 設定後 `docker compose up -d` で起動できます.

## Development

1. `docker-redmine` 内の `compose.yaml` を実行し, Redmine と postgres を起動します.
2. Redmine にログインし, Issue の作成権限・更新権限を持つユーザを作成し, API Key を取得します.
3. `idea-reaction``.env` ファイルに以下の環境変数を追加します.
- `REDMINE_API_KEY`: Redmine の API Key
- `REDMINE_URL`: Redmine の URL (Docker 環境の場合 `http://localhost:8080` です.)
- `REDMINE_API_KEY`: Redmine の API Key
- `REDMINE_URL`: Redmine の URL (Docker 環境の場合 `http://localhost:8080` です.)
4. `cargo run` で idea-reaction を起動します.

- 環境変数 `ENV_NAME``production` に設定すると Sentry との連携が有効になります. 開発時は指定しないようにしてください.

## Release (for GiganticMinecraft admin)

- idea-reaction は GitHub App (release-please などのツール) を使った自動リリースには対応していません.
- リリースをするときは `Cargo.toml``version` プロパティなどを bump したうえで [Actions](https://github.com/GiganticMinecraft/idea-reaction/actions/workflows/release.yaml) にある `Run workflow` から CI を実行すると ghcr.io に Docker Image がリリースされます.
- k8s 本番環境にある idea-reaction を更新する場合は `.../apps/seichi-minecraft/idea-reaction/idea-reaction.yaml``spec.template.spec.containers.image` の値を変更してください.
- タグ等の情報は [Packages](https://github.com/GiganticMinecraft/idea-reaction/pkgs/container/idea-reaction)
- idea-reaction は GitHub App (release-please などのツール) を使った自動リリースには対応していません.
- リリースをするときは `Cargo.toml``version` プロパティなどを bump したうえで [Actions](https://github.com/GiganticMinecraft/idea-reaction/actions/workflows/release.yaml) にある `Run workflow` から CI を実行すると ghcr.io に Docker Image がリリースされます.
- k8s 本番環境にある idea-reaction を更新する場合は `.../apps/seichi-minecraft/idea-reaction/idea-reaction.yaml``spec.template.spec.containers.image` の値を変更してください.
- タグ等の情報は [Packages](https://github.com/GiganticMinecraft/idea-reaction/pkgs/container/idea-reaction)
から確認できます.

## Environment Variables

| Name | Description |
|---------------------|--------------------------------------|
| `DISCORD_API_TOKEN` | Discord Bot のトークン |
| Name | Description |
| ------------------- | ----------------------------------------------------- |
| `ENV_NAME` | 環境名 (production 以外は無視される) |
| `DISCORD_API_TOKEN` | Discord Bot のトークン |
| `REDMINE_API_KEY` | Redmine の API Key (コメント機能を有効にする場合のみ) |
| `REDMINE_URL` | Redmine の URL (コメント機能を有効にする場合のみ) |
| `TARGET_CHANNEL_ID` | 監視対象チャンネルのID |
| `TARGET_WEBHOOK_ID` | 監視対象WebhookのID |
| `TARGET_GUILD_ID` | 監視対象ギルドのID |
| `TARGET_CHANNEL_ID` | 監視対象チャンネルのID |
| `TARGET_WEBHOOK_ID` | 監視対象WebhookのID |
| `TARGET_GUILD_ID` | 監視対象ギルドのID |

0 comments on commit cf79684

Please sign in to comment.