My Tracking

My Tracking

記憶力の低下が気になるアラフォー男の備忘録

【Redmine3.3】python_redmineでcsvファイルからチケット一括登録する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。

今回は、REST APIを操作するpython_redmineの学習を兼ねて、 python初心者なりに、csvファイルからのチケット一括登録機能の作成をしたため、その備忘録

目次

参考サイト

以下のサイトを大いに参考にした。

qiita.com

https://www.yamamanx.com/redmine-rest-api-redmine_python/

参考書籍

以下の書籍に、APIに関しての記述があったため、参考にした。

入門Redmine 第5版

入門Redmine 第5版

インプット用のcsvファイルの仕様

  • 以下のようなフォーマットで、チケット登録に必要にデータを作っておく。

csvファイルからチケット一括登録プログラム(import_redmine.py)

  • 以下のように、 csvファイルからチケット一括登録プログラムを作成する。なお、実行するpythonのバージョンは下記の通り。
[root@docker python]# python -V
Python 2.7.5
[root@docker python]#

前準備

  • インポート用のcsvファイルを下記のフォーマットで用意する。

  • 以下の通り、チケット一括登録プログラム(import_redmine.py)とインプット用のcsvファイルをあらかじめ用意しておく
[root@docker python]# ls -l import_redmine.*
-rw-r--r-- 1 root root  479 1018 17:26 import_redmine.csv
-rw-r--r-- 1 root root 2006 1018 17:27 import_redmine.py
[root@docker python]#

一括登録実行

  • 以下の通り、プロジェクト内にまだチケットがない状態で

  • 以下の通り、実行する。
[root@docker python]# python import_redmine.py
  • csvデータの内容に従い、チケットの一括登録されていることを確認する。

CentOS7.3にemacsをインストールする。

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、REST APIを操作するpython_redmineを利用するための環境設定の続きで、 コーディングする際のエディタである「emacs-24」をインストールする

なお、「emacs-24」のソースコードが「emacs-24.4.tar.gz」あらかじめ、 ダウンロードされているものとして、以降を記載する。

目次

OS環境情報

  • 作業開始時点の環境は、下記のOSを最小インストールした状態から開始
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

gccコンパイラのインストールする

[root@docker emacs-24.4]# yum install gcc

コンパイル時「`tputs' was not found in any library.というエラーが出た」ので、その対処

後述のemacsコンパイル時、 tputs' was not found in any library.と「tputs' was not found in any library.というエラーが出た」ので、その対処をあらかじめしておく。

[root@docker ~]#wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
[root@docker ~]#tar -zxvf ncurses-5.9.tar.gz
[root@docker ~]#cd ncurses-5.9
[root@docker ~]#./configure
[root@docker ~]#make
[root@docker ~]#make install

必須ではないと思うが、「Development Tools」のyumパッケージをインストールしておく

[root@docker emacs-24.4]# yum groupinstall -y "Development Tools"

emacsコンパイル&インストール

今回は、OS自体、X-Windowsがインストールされていないテキストモード環境のため、「 --without-x」でインストールする

[root@docker src]# tar zxvf emacs-24.4.tar.gz
[root@docker emacs-24.4]# ./configure --without-x
[root@docker emacs-24.4]# make
[root@docker emacs-24.4]# make install

emacsの初期設定(init.el)

emacsの設定は、下記書籍を参考にした設定(init.el)をずっと、利用してきたのでその設定を移行する。

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

[改訂新版]Emacs実践入門―思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

pythonモード時ののタブ幅

上記の書籍以外の設定としては、 pythonモードのタブ幅を設定しておく。

;;python-mode(タブ幅4)
(add-hook 'python-mode-hook
          '(lambda()
             (setq indent-tabs-mode t)
             (setq indent-level 4)
             (setq python-indent 4)
                      (setq tab-width 4)))

emacs起動

emacsを起動し、pythonのコードを開く

Pythonソースコードのインデントを深くor浅くする技

地味に、よく使う技。備忘録

EmacsでPythonソースコードのインデントを深くor浅くする技 | 三鷹台でひきこもるプログラマの日記

  • C-c > (インデント深く)
  • C-c <(インデント浅く)

【Redmine3.3】python_redmineを利用するための環境を整備する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、REST APIを操作するpython_redmineを利用するための環境設定。

目次

OS環境情報

  • 作業開始時点の環境は、下記のOSを最小インストールした状態から開始
[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

pythonのバージョン

  • 既に以下のpythonがインストーされているものとする。
[root@docker ~]# python -V
Python 2.7.5
[root@docker ~]#

pipのインストール

  • 以下で、pipをインストールする。
[root@docker ~]# curl -kL https://bootstrap.pypa.io/get-pip.py | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1558k  100 1558k    0     0  1638k      0 --:--:-- --:--:-- --:--:-- 1638k
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |????????????????????????????????| 1.3MB 360kB/s
Collecting setuptools
  Downloading setuptools-36.6.0-py2.py3-none-any.whl (481kB)
    100% |????????????????????????????????| 481kB 729kB/s
Collecting wheel
  Downloading wheel-0.30.0-py2.py3-none-any.whl (49kB)
    100% |????????????????????????????????| 51kB 3.2MB/s
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-9.0.1 setuptools-36.6.0 wheel-0.30.0
[root@docker ~]#
  • pipのバージョン
[root@docker ~]# pip -V
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)
[root@docker ~]#

 python-redmineのインストール

[root@docker ~]# pip install python-redmine
Collecting python-redmine
  Downloading python_redmine-2.0.2-py2.py3-none-any.whl (596kB)
    100% |????????????????????????????????| 604kB 622kB/s
Installing collected packages: python-redmine
Successfully installed python-redmine-2.0.2
[root@docker ~]#

【Redmine3.3】ナレッジ管理とドキュメント管理プラグインのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、Redmine3.3上に以下のプラグインをインストール

  • knowledgebase(ナレッジ管理)
  • dmsf(ドキュメント管理)

目次

knowledgebaseのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# git clone git://github.com/alexbevi/redmine_knowledgebase.git redmine_knowledgebase
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine/plugins# bundle install
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate NAME=redmine_knowledgebase
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine

dmsfのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@b9a9f615de4c:/home/redmine/redmine/plugins# cd plugins/
root@b9a9f615de4c:/home/redmine/redmine/plugins# git clone -b v1.5.6 https://github.com/danmunn/redmine_dmsf
root@b9a9f615de4c:/home/redmine/redmine/plugins# cd ..
root@b9a9f615de4c:/home/redmine/redmine# bundle install --without xapian
root@b9a9f615de4c:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine
redmine
[root@docker ~]#

【Redmine3.3】issue_templatesとAttach image from clipboardプラグインのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 今回は、Redmine3.3上に以下のプラグインをインストール

  • issue_templates(チケットのテンプレート化)
  • Attach image from clipboard(クリップボードから直接画像を直接添付)

目次

issue_templatesのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins# hg clone https://bitbucket.org/akiko_pusu/redmine_issue_templates
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle update
root@24bdbf246513:/home/redmine/redmine# bundle install
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine

Attach image from clipboardのインストール

  • redmineのコンテナ内のシェルに入る。
[root@docker ~]# docker exec -i -t redmine /bin/bash
  • redmineのコンテナ内のシェルに入った後、以下を実行
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins# git clone git://github.com/peclik/clipboard_image_paste.git
Cloning into 'clipboard_image_paste'...
remote: Counting objects: 419, done.
remote: Total 419 (delta 0), reused 0 (delta 0), pack-reused 419
Receiving objects: 100% (419/419), 257.95 KiB | 0 bytes/s, done.
Resolving deltas: 100% (149/149), done.
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# exit
  • dockerを再起動する。
[root@docker ~]# docker stop redmine
redmine
[root@docker ~]# docker start redmine
redmine
[root@docker ~]#

【Redmine3.3】view-customizeのインストール

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。 ここでは、Redmineプラグイン「view customize plugin」インストール

目次

view-customizeのインストール

redmineのコンテナ内のシェルに入って以下作業

[root@docker ~]# docker exec -i -t 24bdbf246513 /bin/bash
root@24bdbf246513:/home/redmine/redmine# cd plugins/
root@24bdbf246513:/home/redmine/redmine/plugins#
root@24bdbf246513:/home/redmine/redmine/plugins# git clone https://github.com/onozaty/redmine-view-customize.git
Cloning into 'redmine-view-customize'...
remote: Counting objects: 273, done.
remote: Total 273 (delta 0), reused 0 (delta 0), pack-reused 273
Receiving objects: 100% (273/273), 138.79 KiB | 0 bytes/s, done.
Resolving deltas: 100% (101/101), done.
root@24bdbf246513:/home/redmine/redmine/plugins# mv redmine-view-customize view_customize
root@24bdbf246513:/home/redmine/redmine/plugins# cd ..
root@24bdbf246513:/home/redmine/redmine# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Migrating view_customize (View Customize plugin)...
== 1 CreateViewCustomizes: migrating ==========================================
-- create_table(:view_customizes)
   -> 0.4526s
== 1 CreateViewCustomizes: migrated (0.4528s) =================================

== 2 AddColumnViewCustomizes: migrating =======================================
-- add_column(:view_customizes, :is_enabled, :boolean, {:null=>false, :default=>true})
   -> 0.6943s
-- add_column(:view_customizes, :is_private, :boolean, {:null=>false, :default=>false})
   -> 0.6576s
-- add_column(:view_customizes, :author_id, :integer, {:null=>false, :default=>0})
   -> 0.8704s
== 2 AddColumnViewCustomizes: migrated (2.2239s) ==============================

root@24bdbf246513:/home/redmine/redmine#
root@24bdbf246513:/home/redmine# exit

【Redmine3.3】Docker上で起動する

Redmine3.3をDocker上の環境に整備する機会があったので、その備忘録。

目次

参照書籍

入門Redmine 第5版

入門Redmine 第5版

OS環境

[root@docker ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@docker ~]#

docker環境

[root@docker ~]# docker -v
Docker version 1.12.6, build 96d83a5/1.12.6
[root@docker ~]#

docker imageの取得

[root@docker ~]# docker pull sameersbn/redmine:3.3.1

docker imageの確認

[root@docker ~]# docker images
docker.io/sameersbn/redmine            3.3.1               090b1982b352        12 months ago       658.5 MB
[root@docker ~]#

データ保存場所の作成

データをホスト側のファイルシステムに永続化するため、下記のディレクトリを作成

[root@docker ~]# mkdir -p /srv/docker/redmine/mysql
[root@docker ~]# mkdir -p /srv/docker/redmine/redmine

redminemysqlコンテナ起動

[root@docker redmine]# docker run --name=mysql-redmine -d --env='DB_NAME=redmine_production' --env='DB_USER=redmine' --env='DB_PASS=redpass' -v /srv/docker/redmine/mysql:/var/lib/mysql sameersbn/mysql:latest

redmine用コンテナ起動

[root@docker redmine]#docker run --name=redmine -d -p 80:80 --link=mysql-redmine:mysql -v /srv/docker/redmine/redmine:/home/redmine/data sameersbn/redmine:3.3.1

コンテナ起動の確認

[root@docker redmine]# docker ps -a
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                        PORTS                                                                 NAMES
66d6b7edf9fd        sameersbn/redmine:3.3.1    "/sbin/entrypoint.sh "   52 seconds ago      Up 39 seconds                 0.0.0.0:80->80/tcp, 443/tcp                                           redmine
64f25d3057aa        sameersbn/mysql:latest     "/sbin/entrypoint.sh "   3 minutes ago       Up 3 minutes                  3306/tcp

[root@docker mysql]#