LoginSignup
0
1

More than 1 year has passed since last update.

PythonからREDMINEのWIKIにアクセスする方法の検討

Last updated at Posted at 2021-10-29

背景

REDMINE-WIKIについて、プログラミングで操作する方法を調べている。
(話の経緯は下記参照)

今回はpythonからREDMINEのWIKIにアクセスする方法を検討した。

前提

 ライブラリはpython-redmineを使う。    https://python-redmine.com/resources/wiki_page.html
 すでにREDMINEには接続済みの状態とする。 (詳細のコードは省略する)

Wikiへのアクセスコード

 以下はpython-redmineを使ったクラスメソドである。

from redminelib import Redmine

class RedmineWork:

    def read_project(self):
        projects = self.api.project.all( limit=100)
        wikipages =[]
        for pjt in projects:
            wikis = self.read_wikis(pjt.id) 
            for wiki in wikis:
                wikipage = self.get_wiki_byname(wiki.title,pjt.id)
                wikipages.append(wikipage)

        return wikipages

    def read_wikis(self,id):
        pages = self.api.wiki_page.filter(project_id=id)
        return pages

    def get_wiki_byname(self,name,id):
        page = self.api.wiki_page.get(name,project_id=id)
        return page

    def wikieditor(self):
        wikipages = self.read_project()
        pdb.set_trace()

Wikiコンテンツへのアクセス方法

  1. プロジェクトを全部引っこ抜く read_project
  2. wikiを全部引っこ抜く  read_wikis ---> この時点では中身は取れていない!!!
  3. wikiの記事を取りに行く get_wiki_byname ---> ここでやっと取りに行ける

つまづいていた点

以下のメソドの違いでつまづいていた。。。(こんな名付けでは、誤解するのも当然である)
 .filter --->  これはリソースセット(wiki_pages)で取りに行くもの(wiki-idしか入っていない)
 .get --->  page-idを指定して、初めて中身(wiki_contents)を取りに行くことができる

そもそも、WIKIのER図を理解していなかった。
https://www.flickr.com/photos/kiwamu/3851572819/

無題.png

これを突破口として、以下のメソドを実装する。

  1. コンテンツ丸ごとを取得するAPI
  2. グラフィック上に、wikiツリーを表示(ドラッグ&ドロップで、階層構造の付け替えが出来る)
  3. Wikiの親子関係を修正後に、Redmineデータベースに反映する
  4. wikiインポート、エクスポートを作る
  5. 機械学習でクラスタリングして、自動整理を行う → 最終的にここまで出来れば上等である
0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1