« ^ »

Confluenceについて考える

所要時間: 約 3分

TL;DR

  • ナレッジマネジメントツールであるConfluenceとその付き合い方について考えた。
  • Confluenceをlocalで起動する方法を試した。
  • ConfluenceをEmacsで編集する方法をためした。


Confluenceとは

  • Javaで実装されている。
  • Wikiの機能をもつ。
  • アトラシアンが開発・販売を行っている。
  • 主にビジネス用途、企業内の文書管理として用いられる。
  • クライアントソフトウェアとしてもホスティングサービスとしても販売されている。
  • 無償ライセンスもある。

ウィジェットコネクター

https://ja.confluence.atlassian.com/conf74/widget-connector-macro-1003128963.html

なぜConfluenceを使うのか

  • チームでConfluenceを使っているところが増えてきた。

サービスを作成する

テスト用にアカウントを作成した。作成するとサブドメインが登録される。

https://symdon.atlassian.net/

Confluenceをlocalで起動する

インストール方法 https://ja.confluence.atlassian.com/doc/confluence-installation-guide-135681.html

ConfluenceをDockerで起動する

https://hub.docker.com/r/atlassian/confluence-server/

ConfluenceのDocker Image

バージョンは7.11? https://hub.docker.com/layers/atlassian/confluence-server/7.11/images/sha256-7b2182ee5e3d0071827de906a0a8c3553b95f8df86ab9ba3792fc4f181b5478b?context=explore

6系のImageは600MB以上ある。 7系のImageは900MB以上ある。

7系でなぜこんなにサイズが肥大化しているのか。

docker pull atlassian/confluence-server
confluencenのDocker Imageをpullする

ConfluenceのドキュメントをEmacsで編集するために

Confluenceのために作られたEmacs拡張

confluence

https://melpa.org/#/confluence


  (use-package confluence :ensure t)

  (setq confluence-url "https://symdon.atlassian.net/")
confluenceのインストール

Documentに従いURLの設定も行う。


  (setq confluence-url "https://symdon.atlassian.net/confluence/rpc/xmlrpc")
URLの設定

Confluence Remote API

XMLRPCとなっている。これはConfluence Remote APIのURLっぽい。 手順に従いConfluence Remote APIの有効化を行おうとした。 チェックは入っているが使えているのかは疑問。

M-x confluence-login を実行してログイン情報をいくつか試してみたがログインはできなかった。

Confluence Remote API

使うには設定の変更が必要で、設定変更には管理者権限が必要になる。 ただしXML-RPCおよびSOAPのリモートAPIはConfluence 5.5で廃止された。 https://ja.confluence.atlassian.com/doc/enabling-the-remote-api-150460.html

Confluence API

Confluence Server REST APIを使うことが推奨されている。

curl -H "Authorization: Bearer <yourToken>" https://{confluenceBaseUrl}/rest/api/content

curl -u admin:admin -X GET "http://localhost:8080/confluence/rest/api/content?type=blogpost&start=0
&limit=10&expand=space,history,body.view,metadata.labels" | python -mjson.tool

ドキュメントに従いパーソナルアクセストークンを発行してAPIを呼び出してみる。

:ATLASSIAN_PET := (getenv "ATLASSIAN_PET")

GET https://symdon.atlassian.net/confluence/rest/api/content?type=blogpost&start=0&limit=10&expand=space,history,body.view,metadata.labels
Authorization: Bearer ATLASSIAN_PET
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Oops, you&#39;ve found a dead link. - JIRA</title><link type='text/css' rel='stylesheet' href='/static-assets/metal-all.css' media='all'><script src='/static-assets/metal-all.js'></script><!--[if lt IE 9]><link type='text/css' rel='stylesheet' href='/static-assets/metal-all-ie.css' media='all'><script src='/static-assets/metal-all-ie.js'></script><![endif]--><!--[if IE 9]><link type='text/css' rel='stylesheet' href='/static-assets/metal-all-ie9.css' media='all'><![endif]--><meta name="decorator" content="none" /></head><body class=" error-page error404"><script type="text/javascript">document.body.className += " js-enabled";</script><div id="page"><header id="header" role="banner"></header><!-- #header --><section id="content" role="main"><div class="aui-page-panel"><div class="aui-page-panel-inner"><section class="aui-page-panel-content lowerContent"><div id="error-state"><span class="error-type"></span><h1>Oops, you&#39;ve found a dead link.</h1><ul><li>Go back to the <a href="javascript:window.history.back()">previous page</a></li><li>Go to the <a href="/secure/MyJiraHome.jspa">Home Page</a></li></ul></div></section><!-- .aui-page-panel-content --></div><!-- .aui-page-panel-inner --></div><!-- .aui-page-panel --></section><!-- #content --><footer id="footer" role="contentinfo"><section class="footer-body">


<ul class="atlassian-footer">
    <li>
        Atlassian JIRA <a class="seo-link" href="https://www.atlassian.com/software/jira">Project Management Software</a>

                                    
                        
        <span id="footer-build-information">(v1001.0.0-SNAPSHOT#100156-<span title='ef0510686cf40db0fbe60fe0292e60df05ead372' data-commit-id='ef0510686cf40db0fbe60fe0292e60df05ead372}'>sha1:ef05106</span>)</span>
    </li>
    <li>
        <a id="about-link" href="/secure/AboutPage.jspa">About JIRA</a>
    </li>
    <li>
                        <a id="footer-report-problem-link" href="/secure/CreateIssue!default.jspa">Report a problem</a>
    </li>
</ul>
<div id="footer-logo"><a href="http://www.atlassian.com/" rel="nofollow">Atlassian</a></div></section></footer><!-- #footer --></div><!-- #page --></body></html>
<!-- GET https://symdon.atlassian.net/confluence/rest/api/content?type=blogpost&start=0&limit=10&expand=space,history,body.view,metadata.labels -->
<!-- HTTP/1.1 404 Not Found -->
<!-- Server: AtlassianProxy/1.15.8.1 -->
<!-- vary: Accept-Encoding -->
<!-- Content-Type: text/html;charset=UTF-8 -->
<!-- Strict-Transport-Security: max-age=315360000; includeSubDomains; preload -->
<!-- Date: Sun, 11 Apr 2021 02:08:14 GMT -->
<!-- ATL-TraceId: a6b18175fe576a39 -->
<!-- x-arequestid: 4fe57471-6a3f-4e18-997e-0fd12bb94843 -->
<!-- X-XSS-Protection: 1; mode=block -->
<!-- Transfer-Encoding: chunked -->
<!-- timing-allow-origin: * -->
<!-- x-envoy-upstream-service-time: 32 -->
<!-- X-Content-Type-Options: nosniff -->
<!-- Connection: keep-alive -->
<!-- Expect-CT: report-uri="https://web-security-reports.services.atlassian.com/expect-ct-report/global-proxy", enforce, max-age=86400 -->
<!-- Request duration: 0.594352s -->

使用できなかったので断念した。

参考文献