SlideShare a Scribd company logo
1 of 30
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
1
Redmine本家コピー
+投票サイト作成
(Python-Redmine利用事例)
2018/11/10
redmine.tokyo 第15回勉強会
@y503unavailable
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
2
Agenda
• 自己紹介
1. 背景/目的
2. 作ってみた
3. レシピ(作成手順)
4. 何事も思い通りにはいかない
5. まとめ
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
3
自己紹介
名前:奈良 裕記 ( y503unavailable <- httpエラーコード503)
• 製造業で製品開発部門のadminやってます。
– 部門サーバ、LAN、PC、全般の構築/運用/子守
(全社単位の情報システムとは別、部門所属)
• Redmine歴
– 2009年から利用
– 部内SaaSの積りで各種運用中
– Redmine.Tokyoには第4回から参加、現在スタッフ
– サーバ統合事例@第7回勉強会
Redmineカスタムフィールド表示改善@第10回勉強会
UnofficlaRedmineCookingの紹介@第11回勉強会
UnofficlaRedmineCookingの紹介とRedmine本家への貢献@第12回勉強会
UnofficialCookingの1年-闇鍋とデモサイトへの発展@第13回勉強会
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
4
1.背景/要求レベルは高度化する
• 利用範囲増加→要求レベル上昇、複雑化
– Redmine内のデータの活用、作業の効率化
– 例:複数Redmineサーバのデータを集計/連携
• 標準画面/Pluginでは実現困難に
(固有ロジック組込み困難)
→結果的にExcelなどの途中処理/作業手間が発生。
• 導入当初:通常の作業は Redmine本体/Pluginで十分可能
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
5
各自の機能追加変更への立場
• Redmine管理者
– 対応負荷増→管理者がボトルネック化も
– 部門間の重要度判断差異、他人事
– (SEC/動作リスク面)Redmine内触らせたくない
• エンドユーザ
– 管理者にいちいち頼む必要
→利用モチベーション低下
→結果的に非効率な対応実施も
※各現場の業務組織/Redmine運用体制/人間関係に強く依存
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
6
必要なこと
• Redmine自体に手を入れず、ユーザ自身が外から
データを効率的に処理可能にする。
• 汎用言語で業務ロジックを利用可能にする。
• RESTAPIでどこまで出来るか、実際にやってみる。
• 必要なことは、最終的な利用価値を上げること
– ユーザを巻き込み、適切な環境を作り維持する
– 管理者に依存する作業を減らす。
(管理者のボトルネック回避、ユーザのオーナシップ)
※各現場の業務組織/Redmine運用体制/人間関係に強く依存
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
7
2.作ってみた
• Python-Redmineを利用し、
複数Redmineからデータコピー
(Redmine本家とUnofficialCooking(RedmineTokyo内情報蓄積サイト))
• Python以外に追加した機能
– Vote Pluginを導入
• ユーザのVoteで順位変動
– Tag Pluginを導入
• カテゴリと違い、複数項目選択可
– カテゴリのサブプロジェクト継承機能
• 複数PJのデータを、単独/集約し、単一カテゴリ分類可
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
8
できたもの
• 画面紹介
– チケット画面、一覧画面、タグ選択表示
• 詳細はデモサイト参照 (百聞は一見に如かず)
– http://150.95.132.208/redmine
– ConnpassのID/受付番号でログイン可能
# 開催直近1週間に登録した人は未登録、
# id= redmine pass=tokyo でもログイン可能
– 11月中は稼働予定
• ソースはコメント含み200行未満
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
9
チケット画面(投票/タグ)
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
10
Redmineチケット一覧画面(親PJ)
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
11
タグ選択時の表示
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
12
3.レシピ(作成手順)
1. Redmine本体、Plugin導入
2. トラッカー、PJ階層、Ver/カテゴリ定義
3. Python-Redmine環境、スクリプト作成、
実行
4. 参加者登録、アクセス権設定、カスタム
クエリ作成、カテゴリ/タグ設定
(UnofficialCooking分)
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
13
Redmineサイト作成、事前準備-1
• RedmineをVPS上にAnsibleでインストール
– https://github.com/y503unavailable/redmine-centos-ansible
– https://github.com/y503unavailable/redmine
– サブプロジェクトのカテゴリ継承機能(標準
外)利用のため、改造版3.4利用(本家5358)
• Vote pluginとTag pluginの導入
– https://github.com/ojde/redmine-vote_on_issues-plugin
– https://github.com/ixti/redmine_tags
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
14
Redmineサイト作成、事前準備-2
• Voteトラッカーの準備
– 各項目をカスタムフィールドとして定義
– トラッカー作成、Role設定
• プロジェクト階層作成
– Redmine本家分とUnofficial分のサブPJ作成
• versionとissue_categoriesを設定
– Redmine本家とID合わせるため、今回はRESTではな
くExcelでSQL作成し設定
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
15
Python-Redmine実行環境
• Redmineとは別のVPSに入れた
• Python-Redmineをインストール
– https://python-redmine.com/
• 転送用スクリプトを作成し実行
– 開発元と下記参考ページのコピペで開始。
https://qiita.com/mima_ita/items/1a939db423d8ee295c85
– 合計200行未満、 Pythonは実質初めて。
Rubyより楽に馴染めた。(主観)
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
16
Redmineサイト,Python転送後
• 勉強会参加者のID登録、グループ定義、PJメンバ
設定
– ユーザID/PASSは、connpassのID/受付番号利用
– ユーザ登録とグループ一括設定はツール利用
• https://yoshinorin.net/2017/04/16/create-redmine-user-import-from-csv/
• https://github.com/two-pack/redmine_auto_assign_group/wiki/Usage
• カスタムクエリ作成
– vote,本家plus1,comment数,カテゴリ,タグ
• UnofficialCooking部分のカテゴリとタグ設定
– カテゴリ分類は、Redmine本家に合わせた。
– 表示内容デモのため、一部を手動設定(結構大変)
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
17
4.何事も思い通りには行かないもの
• チケット転送時のトラブル
– 通信エラー対応
– 優先度の内部ID範囲変更
– AWS(Lightsail)のCPU性能制限
– 対象バージョン は一覧にありません
• 多少は苦労しないと身に付かない。
• (初めてのPythonなので、デバッグは略)
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
18
通信エラー対応
• 数千件転送で通信エラー発生
• チケット情報読込中に発生。
• 定期的にSleep入れたが改善されず
• 対策
• RESTで転送済最終チケット番号+1を指定し再開-不可
– 失敗例 http://www.redmine.org/issues.xml?status_id=*&sort=id&id=>%3D100
• 転送済件数+1から再実行処理を入れて対応
– 途中チケットの増減あると、重複/取りこぼし可能性有
– エラー処理が本筋だが、性能問題もあるので
raise exceptions.ServerError
redminelib.exceptions.ServerError:
Redmine returned internal error, check Redmine logs for details
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
19
優先度の内部ID範囲変更
• Redmine2.1にて、優先度の内部IDが変更
された(3~7 → 1~5)
– http://blog.redmine.jp/articles/issue-priority-css-class-changed/
– 旧IDの6(urgent)を転送した時に、有効範囲外
としてエラー発生する。
• 対策
issue.priority_id = issue_org.priority.id -2
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
20
AWS(Lightsail)のCPU性能制限
• 今回はPython実行環境用にVPS(AWS LightSail)を利用した。
• LightSail(1GB) は、高負荷状態が長時間継
続するとCPU性能を制限される(仕様)
– 今回の連続転送処理では、1時間半の連続実
行で、25件/分→5件/分に落とされた。
• 対策→1時間半でインスタンス再作成
– 行儀悪いが数回なのでご勘弁。。でもCLIで自動化したいところ
• CPU性能制限参考→ https://ryuzoji.com/archives/1450
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
21
「対象バージョン は一覧にありません」
• Redmine内部の整合性チェック違反
– チケットの対象バージョンに、既に完了した
バージョンを設定するのはおかしい
(画面上では選択肢に出てこない)
•
対策:バージョンを未完了に戻す。
– sqlで versionのstatusをopenに変更
raise exceptions.ValidationError(', '.join(': '.join(e) if isinstance(e, list) else e for e in errors))
redminelib.exceptions.ValidationError: 対象バージョン は一覧にありません
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
22
5.まとめ
python-redmineによりできたこと
• Redmine外からPythonでRedmineを操作可能
– Redmine内部の変更不要(plugin,DB,Rails,Patch)
– 落とし穴はもちろんある。
• 複雑な処理をユーザ側で容易に実行できる。
– 例:複数Redmine環境の集計、データ連携
– Redmine管理者の手間削減、ユーザ満足度向上、迅速
• Python以外にも多数言語用Redmineライブラリ
– https://redmine.tokyo/issues/699
• 道具と事例を増やして楽しましょう
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
23
参考情報
• Python-redmine関連
– https://python-redmine.com/
– https://qiita.com/mima_ita/items/1a939db423d8ee295c85
• Unofficial Redmine Cooking (カスタマイズ情報用PJ)
– Unofficial Redmine Cookingの紹介
– https://redmine.tokyo/projects/unofficialcooking
–
Redmine以外でのデータ表示/操作例
– カテゴリをサブプロジェクトで継承利用
– タグ機能を追加
– チケットの投票機能
• Redmine,Ansible カスタマイズ関連コード
– https://github.com/y503unavailable/redmine-centos-ansible
– https://github.com/histudy/ansible-role-redmine
– https://github.com/y503unavailable/redmine
• Redmine.Tokyo 過去講演一覧-プラグイン・カスタマイズ
• Redmine Advent Calendar2018 (旬の情報として)
– https://adventar.org/calendars/3352
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
24
御清聴ありがとうございました
• 各自のRedmine運用に、多少なりとも役に立てば幸いで
す。
• Redmineはオープンソースソフトです。
– 協力して育成&利用していきましょう。
ユーザ会はそのための場所です。
• ご意見、内容指摘の連絡先
redmine.Tokyo UnofficialCooking
y503unavailable@ twitter, discord
• ところで、ソース要りましたっけ..
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
25
UnofficialCookingのご紹介
• 第12回勉強会発表内容を抜粋し添付します。
– (本発表内容に関連し、利用者に有用と判断し
たため)
• https://www.slideshare.net/y503unavailable/unofficialcookingredmine
• https://redmine.tokyo/projects/unofficialcooking
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
26
1.Redmineは単に無料で使えるソフト?
無料で使える、だけじゃない
OSS(OpenSourceSoftware)だから
・改造して利用する自由
(ソース改造、プラグイン利用、、)
・パッチ提案する自由
(取り込まれれば将来のVerUp追随不要)
・共同で育てて利用していくソフトウェア
Redmine本家とユーザ会はそのための場所
・リーマンの第3法則
システムの進化はフィードバックプロセスにより決まる
http://forza.cocolog-nifty.com/blog/2012/08/post-9619.html
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
27
2.標準機能から変更したい
同じ悩みを持つのは、
自分だけじゃない。
・本家の残チケット検索-4500件、Groonga無し
・用途もニーズもユーザレベルも千差万別
・改造にはスキルと内部構造の知識が必要
ユーザ会で情報共有!
もっと効率的に利用
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
28
情報共有場所を作成し運用中
Unofficial Redmine Cooking
https://redmine.tokyo/projects/unofficialcooking
・Redmine.TokyoのサブPJ
・チケットベースで情報共有
・Since 2016/11
名前:多少のアングラ感と親しみ
を持って貰えれば。
UndocumentedとかCracking
のレベルではありません。
・1年でチケット100件超えた。
・参加者もっと増やしたい。
・未解決案件有-識者アドバイス願
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
29
Unofficial Redmine Cooking守備範囲
オープンソースだから可能なこと
29
下記対応により出来ること
・Redmineソース改造
・Redmine本家未取込パッチ
・プラグイン活用
・DB直接操作
・他ツールとの連携
機能要望(解決方法不明)
要は
標準外
2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例)
@y503unavailable
30
運用補足
・記入内容は、概要紹介+リンクで可
項目:現象/要望、解決策、対応状況、補足
・記入手順
https://redmine.tokyo/projects/unofficialcooking/wiki
テンプレ埋めてください。
・要望/質問の回答保証はありません。
・正確性の保証もありません。
・Redmine.Tokyoのユーザ登録要
名前は実名で無くとも可
手動登録なので登録完了までお待ちください。

More Related Content

What's hot

Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIRedmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIGo Maeda
 
Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介onozaty
 
チケット駆動開発現場の最前線.pdf
チケット駆動開発現場の最前線.pdfチケット駆動開発現場の最前線.pdf
チケット駆動開発現場の最前線.pdfYokoba
 
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法Asa Morino
 
Redmineって何ができるの?
Redmineって何ができるの?Redmineって何ができるの?
Redmineって何ができるの?Tomohisa Kusukawa
 
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたKohei Nakamura
 
Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Hidehisa Matsutani
 
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020onozaty
 
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」akipii Oga
 
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 (  Redmine of one plant 2022 ...ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 (  Redmine of one plant 2022 ...
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...Kohei Nakamura
 
View CustomizeからREST APIを使用する
View CustomizeからREST APIを使用するView CustomizeからREST APIを使用する
View CustomizeからREST APIを使用するAsa Morino
 
初めてでも大丈夫!SharePoint 開発の第一歩
初めてでも大丈夫!SharePoint 開発の第一歩初めてでも大丈夫!SharePoint 開発の第一歩
初めてでも大丈夫!SharePoint 開発の第一歩Yoshitaka Seo
 
Redmine.tokyo lt04:RedmineとRPA(Uipath)を組み合わせた多システム間連携について
Redmine.tokyo lt04:RedmineとRPA(Uipath)を組み合わせた多システム間連携についてRedmine.tokyo lt04:RedmineとRPA(Uipath)を組み合わせた多システム間連携について
Redmine.tokyo lt04:RedmineとRPA(Uipath)を組み合わせた多システム間連携についてii nekosanz1
 
ある工場のRedmine画面カスタム【View customize plugin 活用例】
ある工場のRedmine画面カスタム【View customize plugin 活用例】ある工場のRedmine画面カスタム【View customize plugin 活用例】
ある工場のRedmine画面カスタム【View customize plugin 活用例】Kohei Nakamura
 
Redmine 5.0 + RedMica 2.1 新機能評価ガイド
Redmine 5.0 + RedMica 2.1 新機能評価ガイドRedmine 5.0 + RedMica 2.1 新機能評価ガイド
Redmine 5.0 + RedMica 2.1 新機能評価ガイドGo Maeda
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 
Redmineサーバ統合事例
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例Yuuki Nara
 
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine PluginMei Nakamura
 
講演1 Redmine導入のアンチパターン
講演1 Redmine導入のアンチパターン講演1 Redmine導入のアンチパターン
講演1 Redmine導入のアンチパターンHidehisa Matsutani
 

What's hot (20)

Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIRedmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
 
Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介
 
チケット駆動開発現場の最前線.pdf
チケット駆動開発現場の最前線.pdfチケット駆動開発現場の最前線.pdf
チケット駆動開発現場の最前線.pdf
 
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法
 
Redmineって何ができるの?
Redmineって何ができるの?Redmineって何ができるの?
Redmineって何ができるの?
 
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
 
Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法
 
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
 
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
 
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 (  Redmine of one plant 2022 ...ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 (  Redmine of one plant 2022 ...
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
 
View CustomizeからREST APIを使用する
View CustomizeからREST APIを使用するView CustomizeからREST APIを使用する
View CustomizeからREST APIを使用する
 
初めてでも大丈夫!SharePoint 開発の第一歩
初めてでも大丈夫!SharePoint 開発の第一歩初めてでも大丈夫!SharePoint 開発の第一歩
初めてでも大丈夫!SharePoint 開発の第一歩
 
Redmine.tokyo lt04:RedmineとRPA(Uipath)を組み合わせた多システム間連携について
Redmine.tokyo lt04:RedmineとRPA(Uipath)を組み合わせた多システム間連携についてRedmine.tokyo lt04:RedmineとRPA(Uipath)を組み合わせた多システム間連携について
Redmine.tokyo lt04:RedmineとRPA(Uipath)を組み合わせた多システム間連携について
 
ある工場のRedmine画面カスタム【View customize plugin 活用例】
ある工場のRedmine画面カスタム【View customize plugin 活用例】ある工場のRedmine画面カスタム【View customize plugin 活用例】
ある工場のRedmine画面カスタム【View customize plugin 活用例】
 
Redmine 5.0 + RedMica 2.1 新機能評価ガイド
Redmine 5.0 + RedMica 2.1 新機能評価ガイドRedmine 5.0 + RedMica 2.1 新機能評価ガイド
Redmine 5.0 + RedMica 2.1 新機能評価ガイド
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
運用業務でのRedmine
運用業務でのRedmine運用業務でのRedmine
運用業務でのRedmine
 
Redmineサーバ統合事例
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例
 
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
 
講演1 Redmine導入のアンチパターン
講演1 Redmine導入のアンチパターン講演1 Redmine導入のアンチパターン
講演1 Redmine導入のアンチパターン
 

Similar to Redmine本家コピー+投票サイト作成(Python-Redmine利用事例)

ロボットシステム学2015年第8回
ロボットシステム学2015年第8回ロボットシステム学2015年第8回
ロボットシステム学2015年第8回Ryuichi Ueda
 
Unofficial redmine cooking , unofficial-redmine.org 直近カスタマイズ事例
Unofficial redmine cooking , unofficial-redmine.org 直近カスタマイズ事例Unofficial redmine cooking , unofficial-redmine.org 直近カスタマイズ事例
Unofficial redmine cooking , unofficial-redmine.org 直近カスタマイズ事例Yuuki Nara
 
財布にやさしいRを使ったデータマイニング
財布にやさしいRを使ったデータマイニング財布にやさしいRを使ったデータマイニング
財布にやさしいRを使ったデータマイニングRyoji Yanashima
 
Unofficial Redmine Cookingの紹介
Unofficial Redmine Cookingの紹介Unofficial Redmine Cookingの紹介
Unofficial Redmine Cookingの紹介Yuuki Nara
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminarManabu Shimobe
 
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回ロボットシステム学2015年第7回
ロボットシステム学2015年第7回Ryuichi Ueda
 
[db tech showcase Tokyo 2018] #dbts2018 #E37 『Attunity Replicateが変えた Oracle D...
[db tech showcase Tokyo 2018] #dbts2018 #E37 『Attunity Replicateが変えた Oracle D...[db tech showcase Tokyo 2018] #dbts2018 #E37 『Attunity Replicateが変えた Oracle D...
[db tech showcase Tokyo 2018] #dbts2018 #E37 『Attunity Replicateが変えた Oracle D...Insight Technology, Inc.
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムGo Sueyoshi (a.k.a sue445)
 
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪Tsutomu Chikuba
 
複数Redmine環境におけるユーザ管理の効率化
複数Redmine環境におけるユーザ管理の効率化複数Redmine環境におけるユーザ管理の効率化
複数Redmine環境におけるユーザ管理の効率化Yuuki Nara
 
KLab Social Game Platform ~Symfony1.4活用事例~
KLab Social Game Platform ~Symfony1.4活用事例~KLab Social Game Platform ~Symfony1.4活用事例~
KLab Social Game Platform ~Symfony1.4活用事例~KLab株式会社
 
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版信之 岩永
 
PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるPL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるUptime Technologies LLC (JP)
 
Unofficial Redmine Cooking & unofficial-redmine.org 紹介 redmine.tokyo#21
Unofficial Redmine Cooking & unofficial-redmine.org 紹介 redmine.tokyo#21Unofficial Redmine Cooking & unofficial-redmine.org 紹介 redmine.tokyo#21
Unofficial Redmine Cooking & unofficial-redmine.org 紹介 redmine.tokyo#21Yuuki Nara
 
Complex Event Processing on Ruby, Fluentd and Norikra #rubykaigi
Complex Event Processing on Ruby, Fluentd and Norikra #rubykaigiComplex Event Processing on Ruby, Fluentd and Norikra #rubykaigi
Complex Event Processing on Ruby, Fluentd and Norikra #rubykaigiSATOSHI TAGOMORI
 
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LTMySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LTTomohiro Ikeda
 

Similar to Redmine本家コピー+投票サイト作成(Python-Redmine利用事例) (20)

ロボットシステム学2015年第8回
ロボットシステム学2015年第8回ロボットシステム学2015年第8回
ロボットシステム学2015年第8回
 
Unofficial redmine cooking , unofficial-redmine.org 直近カスタマイズ事例
Unofficial redmine cooking , unofficial-redmine.org 直近カスタマイズ事例Unofficial redmine cooking , unofficial-redmine.org 直近カスタマイズ事例
Unofficial redmine cooking , unofficial-redmine.org 直近カスタマイズ事例
 
財布にやさしいRを使ったデータマイニング
財布にやさしいRを使ったデータマイニング財布にやさしいRを使ったデータマイニング
財布にやさしいRを使ったデータマイニング
 
Unofficial Redmine Cookingの紹介
Unofficial Redmine Cookingの紹介Unofficial Redmine Cookingの紹介
Unofficial Redmine Cookingの紹介
 
Runtime c++editing
Runtime c++editingRuntime c++editing
Runtime c++editing
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
 
[db tech showcase Tokyo 2018] #dbts2018 #E37 『Attunity Replicateが変えた Oracle D...
[db tech showcase Tokyo 2018] #dbts2018 #E37 『Attunity Replicateが変えた Oracle D...[db tech showcase Tokyo 2018] #dbts2018 #E37 『Attunity Replicateが変えた Oracle D...
[db tech showcase Tokyo 2018] #dbts2018 #E37 『Attunity Replicateが変えた Oracle D...
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
 
Kamonを理解する
Kamonを理解するKamonを理解する
Kamonを理解する
 
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
 
複数Redmine環境におけるユーザ管理の効率化
複数Redmine環境におけるユーザ管理の効率化複数Redmine環境におけるユーザ管理の効率化
複数Redmine環境におけるユーザ管理の効率化
 
Aerospike deep dive LDTs
Aerospike deep dive LDTsAerospike deep dive LDTs
Aerospike deep dive LDTs
 
KLab Social Game Platform ~Symfony1.4活用事例~
KLab Social Game Platform ~Symfony1.4活用事例~KLab Social Game Platform ~Symfony1.4活用事例~
KLab Social Game Platform ~Symfony1.4活用事例~
 
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
 
PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるPL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみる
 
Unofficial Redmine Cooking & unofficial-redmine.org 紹介 redmine.tokyo#21
Unofficial Redmine Cooking & unofficial-redmine.org 紹介 redmine.tokyo#21Unofficial Redmine Cooking & unofficial-redmine.org 紹介 redmine.tokyo#21
Unofficial Redmine Cooking & unofficial-redmine.org 紹介 redmine.tokyo#21
 
Complex Event Processing on Ruby, Fluentd and Norikra #rubykaigi
Complex Event Processing on Ruby, Fluentd and Norikra #rubykaigiComplex Event Processing on Ruby, Fluentd and Norikra #rubykaigi
Complex Event Processing on Ruby, Fluentd and Norikra #rubykaigi
 
Zabbix study5lt
Zabbix study5ltZabbix study5lt
Zabbix study5lt
 
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LTMySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LT
 

Redmine本家コピー+投票サイト作成(Python-Redmine利用事例)

  • 1. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 1 Redmine本家コピー +投票サイト作成 (Python-Redmine利用事例) 2018/11/10 redmine.tokyo 第15回勉強会 @y503unavailable
  • 2. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 2 Agenda • 自己紹介 1. 背景/目的 2. 作ってみた 3. レシピ(作成手順) 4. 何事も思い通りにはいかない 5. まとめ
  • 3. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 3 自己紹介 名前:奈良 裕記 ( y503unavailable <- httpエラーコード503) • 製造業で製品開発部門のadminやってます。 – 部門サーバ、LAN、PC、全般の構築/運用/子守 (全社単位の情報システムとは別、部門所属) • Redmine歴 – 2009年から利用 – 部内SaaSの積りで各種運用中 – Redmine.Tokyoには第4回から参加、現在スタッフ – サーバ統合事例@第7回勉強会 Redmineカスタムフィールド表示改善@第10回勉強会 UnofficlaRedmineCookingの紹介@第11回勉強会 UnofficlaRedmineCookingの紹介とRedmine本家への貢献@第12回勉強会 UnofficialCookingの1年-闇鍋とデモサイトへの発展@第13回勉強会
  • 4. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 4 1.背景/要求レベルは高度化する • 利用範囲増加→要求レベル上昇、複雑化 – Redmine内のデータの活用、作業の効率化 – 例:複数Redmineサーバのデータを集計/連携 • 標準画面/Pluginでは実現困難に (固有ロジック組込み困難) →結果的にExcelなどの途中処理/作業手間が発生。 • 導入当初:通常の作業は Redmine本体/Pluginで十分可能
  • 5. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 5 各自の機能追加変更への立場 • Redmine管理者 – 対応負荷増→管理者がボトルネック化も – 部門間の重要度判断差異、他人事 – (SEC/動作リスク面)Redmine内触らせたくない • エンドユーザ – 管理者にいちいち頼む必要 →利用モチベーション低下 →結果的に非効率な対応実施も ※各現場の業務組織/Redmine運用体制/人間関係に強く依存
  • 6. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 6 必要なこと • Redmine自体に手を入れず、ユーザ自身が外から データを効率的に処理可能にする。 • 汎用言語で業務ロジックを利用可能にする。 • RESTAPIでどこまで出来るか、実際にやってみる。 • 必要なことは、最終的な利用価値を上げること – ユーザを巻き込み、適切な環境を作り維持する – 管理者に依存する作業を減らす。 (管理者のボトルネック回避、ユーザのオーナシップ) ※各現場の業務組織/Redmine運用体制/人間関係に強く依存
  • 7. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 7 2.作ってみた • Python-Redmineを利用し、 複数Redmineからデータコピー (Redmine本家とUnofficialCooking(RedmineTokyo内情報蓄積サイト)) • Python以外に追加した機能 – Vote Pluginを導入 • ユーザのVoteで順位変動 – Tag Pluginを導入 • カテゴリと違い、複数項目選択可 – カテゴリのサブプロジェクト継承機能 • 複数PJのデータを、単独/集約し、単一カテゴリ分類可
  • 8. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 8 できたもの • 画面紹介 – チケット画面、一覧画面、タグ選択表示 • 詳細はデモサイト参照 (百聞は一見に如かず) – http://150.95.132.208/redmine – ConnpassのID/受付番号でログイン可能 # 開催直近1週間に登録した人は未登録、 # id= redmine pass=tokyo でもログイン可能 – 11月中は稼働予定 • ソースはコメント含み200行未満
  • 9. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 9 チケット画面(投票/タグ)
  • 10. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 10 Redmineチケット一覧画面(親PJ)
  • 11. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 11 タグ選択時の表示
  • 12. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 12 3.レシピ(作成手順) 1. Redmine本体、Plugin導入 2. トラッカー、PJ階層、Ver/カテゴリ定義 3. Python-Redmine環境、スクリプト作成、 実行 4. 参加者登録、アクセス権設定、カスタム クエリ作成、カテゴリ/タグ設定 (UnofficialCooking分)
  • 13. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 13 Redmineサイト作成、事前準備-1 • RedmineをVPS上にAnsibleでインストール – https://github.com/y503unavailable/redmine-centos-ansible – https://github.com/y503unavailable/redmine – サブプロジェクトのカテゴリ継承機能(標準 外)利用のため、改造版3.4利用(本家5358) • Vote pluginとTag pluginの導入 – https://github.com/ojde/redmine-vote_on_issues-plugin – https://github.com/ixti/redmine_tags
  • 14. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 14 Redmineサイト作成、事前準備-2 • Voteトラッカーの準備 – 各項目をカスタムフィールドとして定義 – トラッカー作成、Role設定 • プロジェクト階層作成 – Redmine本家分とUnofficial分のサブPJ作成 • versionとissue_categoriesを設定 – Redmine本家とID合わせるため、今回はRESTではな くExcelでSQL作成し設定
  • 15. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 15 Python-Redmine実行環境 • Redmineとは別のVPSに入れた • Python-Redmineをインストール – https://python-redmine.com/ • 転送用スクリプトを作成し実行 – 開発元と下記参考ページのコピペで開始。 https://qiita.com/mima_ita/items/1a939db423d8ee295c85 – 合計200行未満、 Pythonは実質初めて。 Rubyより楽に馴染めた。(主観)
  • 16. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 16 Redmineサイト,Python転送後 • 勉強会参加者のID登録、グループ定義、PJメンバ 設定 – ユーザID/PASSは、connpassのID/受付番号利用 – ユーザ登録とグループ一括設定はツール利用 • https://yoshinorin.net/2017/04/16/create-redmine-user-import-from-csv/ • https://github.com/two-pack/redmine_auto_assign_group/wiki/Usage • カスタムクエリ作成 – vote,本家plus1,comment数,カテゴリ,タグ • UnofficialCooking部分のカテゴリとタグ設定 – カテゴリ分類は、Redmine本家に合わせた。 – 表示内容デモのため、一部を手動設定(結構大変)
  • 17. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 17 4.何事も思い通りには行かないもの • チケット転送時のトラブル – 通信エラー対応 – 優先度の内部ID範囲変更 – AWS(Lightsail)のCPU性能制限 – 対象バージョン は一覧にありません • 多少は苦労しないと身に付かない。 • (初めてのPythonなので、デバッグは略)
  • 18. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 18 通信エラー対応 • 数千件転送で通信エラー発生 • チケット情報読込中に発生。 • 定期的にSleep入れたが改善されず • 対策 • RESTで転送済最終チケット番号+1を指定し再開-不可 – 失敗例 http://www.redmine.org/issues.xml?status_id=*&sort=id&id=>%3D100 • 転送済件数+1から再実行処理を入れて対応 – 途中チケットの増減あると、重複/取りこぼし可能性有 – エラー処理が本筋だが、性能問題もあるので raise exceptions.ServerError redminelib.exceptions.ServerError: Redmine returned internal error, check Redmine logs for details
  • 19. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 19 優先度の内部ID範囲変更 • Redmine2.1にて、優先度の内部IDが変更 された(3~7 → 1~5) – http://blog.redmine.jp/articles/issue-priority-css-class-changed/ – 旧IDの6(urgent)を転送した時に、有効範囲外 としてエラー発生する。 • 対策 issue.priority_id = issue_org.priority.id -2
  • 20. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 20 AWS(Lightsail)のCPU性能制限 • 今回はPython実行環境用にVPS(AWS LightSail)を利用した。 • LightSail(1GB) は、高負荷状態が長時間継 続するとCPU性能を制限される(仕様) – 今回の連続転送処理では、1時間半の連続実 行で、25件/分→5件/分に落とされた。 • 対策→1時間半でインスタンス再作成 – 行儀悪いが数回なのでご勘弁。。でもCLIで自動化したいところ • CPU性能制限参考→ https://ryuzoji.com/archives/1450
  • 21. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 21 「対象バージョン は一覧にありません」 • Redmine内部の整合性チェック違反 – チケットの対象バージョンに、既に完了した バージョンを設定するのはおかしい (画面上では選択肢に出てこない) • 対策:バージョンを未完了に戻す。 – sqlで versionのstatusをopenに変更 raise exceptions.ValidationError(', '.join(': '.join(e) if isinstance(e, list) else e for e in errors)) redminelib.exceptions.ValidationError: 対象バージョン は一覧にありません
  • 22. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 22 5.まとめ python-redmineによりできたこと • Redmine外からPythonでRedmineを操作可能 – Redmine内部の変更不要(plugin,DB,Rails,Patch) – 落とし穴はもちろんある。 • 複雑な処理をユーザ側で容易に実行できる。 – 例:複数Redmine環境の集計、データ連携 – Redmine管理者の手間削減、ユーザ満足度向上、迅速 • Python以外にも多数言語用Redmineライブラリ – https://redmine.tokyo/issues/699 • 道具と事例を増やして楽しましょう
  • 23. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 23 参考情報 • Python-redmine関連 – https://python-redmine.com/ – https://qiita.com/mima_ita/items/1a939db423d8ee295c85 • Unofficial Redmine Cooking (カスタマイズ情報用PJ) – Unofficial Redmine Cookingの紹介 – https://redmine.tokyo/projects/unofficialcooking – Redmine以外でのデータ表示/操作例 – カテゴリをサブプロジェクトで継承利用 – タグ機能を追加 – チケットの投票機能 • Redmine,Ansible カスタマイズ関連コード – https://github.com/y503unavailable/redmine-centos-ansible – https://github.com/histudy/ansible-role-redmine – https://github.com/y503unavailable/redmine • Redmine.Tokyo 過去講演一覧-プラグイン・カスタマイズ • Redmine Advent Calendar2018 (旬の情報として) – https://adventar.org/calendars/3352
  • 24. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 24 御清聴ありがとうございました • 各自のRedmine運用に、多少なりとも役に立てば幸いで す。 • Redmineはオープンソースソフトです。 – 協力して育成&利用していきましょう。 ユーザ会はそのための場所です。 • ご意見、内容指摘の連絡先 redmine.Tokyo UnofficialCooking y503unavailable@ twitter, discord • ところで、ソース要りましたっけ..
  • 25. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 25 UnofficialCookingのご紹介 • 第12回勉強会発表内容を抜粋し添付します。 – (本発表内容に関連し、利用者に有用と判断し たため) • https://www.slideshare.net/y503unavailable/unofficialcookingredmine • https://redmine.tokyo/projects/unofficialcooking
  • 26. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 26 1.Redmineは単に無料で使えるソフト? 無料で使える、だけじゃない OSS(OpenSourceSoftware)だから ・改造して利用する自由 (ソース改造、プラグイン利用、、) ・パッチ提案する自由 (取り込まれれば将来のVerUp追随不要) ・共同で育てて利用していくソフトウェア Redmine本家とユーザ会はそのための場所 ・リーマンの第3法則 システムの進化はフィードバックプロセスにより決まる http://forza.cocolog-nifty.com/blog/2012/08/post-9619.html
  • 27. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 27 2.標準機能から変更したい 同じ悩みを持つのは、 自分だけじゃない。 ・本家の残チケット検索-4500件、Groonga無し ・用途もニーズもユーザレベルも千差万別 ・改造にはスキルと内部構造の知識が必要 ユーザ会で情報共有! もっと効率的に利用
  • 28. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 28 情報共有場所を作成し運用中 Unofficial Redmine Cooking https://redmine.tokyo/projects/unofficialcooking ・Redmine.TokyoのサブPJ ・チケットベースで情報共有 ・Since 2016/11 名前:多少のアングラ感と親しみ を持って貰えれば。 UndocumentedとかCracking のレベルではありません。 ・1年でチケット100件超えた。 ・参加者もっと増やしたい。 ・未解決案件有-識者アドバイス願
  • 29. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 29 Unofficial Redmine Cooking守備範囲 オープンソースだから可能なこと 29 下記対応により出来ること ・Redmineソース改造 ・Redmine本家未取込パッチ ・プラグイン活用 ・DB直接操作 ・他ツールとの連携 機能要望(解決方法不明) 要は 標準外
  • 30. 2018/11/10 第15回redmine.tokyo 勉強会 Redmine本家コピー+投票サイト作成(RedminePython利用事例) @y503unavailable 30 運用補足 ・記入内容は、概要紹介+リンクで可 項目:現象/要望、解決策、対応状況、補足 ・記入手順 https://redmine.tokyo/projects/unofficialcooking/wiki テンプレ埋めてください。 ・要望/質問の回答保証はありません。 ・正確性の保証もありません。 ・Redmine.Tokyoのユーザ登録要 名前は実名で無くとも可 手動登録なので登録完了までお待ちください。