Confluence(WIKI)利用API更新頁面

背景

創(chuàng)建測試報告之后,多個數(shù)據(jù)統(tǒng)計(jì)圖中需要對本次需求鏈接的Bug從不同維度分析,每個圖表中都包含issueKey需要手動修改叉橱,此頁面主要提供批量更新issueKey功能

設(shè)計(jì)

  • 利用Jira和Confluence的API實(shí)現(xiàn)
  • 使用Confluence提供查詢頁面信息API,根據(jù)頁面ID獲取當(dāng)前頁面信息及版,并找到issueKey
  • 正則匹配頁面內(nèi)容中需求ID并批量進(jìn)行更換
  • 使用JIRA查詢issue的API,獲取該jiraId的需求名稱
    -使用Confluence頁面更新API,更新頁面信息,及頁面標(biāo)題

知識點(diǎn)

具體實(shí)現(xiàn)

  1. JiraApi通過Key獲取Jira任務(wù)的名稱
    API:/rest/api/2/issue/+issueKey
        //根據(jù)issueKey獲取需求名稱
        HttpGetUtils httpjiraget  = new HttpGetUtils(jiraurl);
        httpjiraget.setHeader("Authorization",jiraBasicAuth );
        String taskInfo = httpjiraget.getHttp(httpjiraget);
        String taskName = (String) JSONPath.read(taskInfo,"fields.summary");
        System.out.println(taskName);
     
  1. API獲取現(xiàn)有頁面內(nèi)容及VersionId
    API: /rest/api/content/"+pageID+"/?expand=body.storage
//獲取當(dāng)前頁面版本
        HttpGetUtils httpwiki  = new HttpGetUtils(wikiCurPageVerUrl);
        httpwiki.setHeader("Authorization",jiraBasicAuth );
        String versioninfo = httpwiki.getHttp(httpwiki);
      //拆解版本號
      Integer currentVersion = (Integer)JSONPath.read(versioninfo, "version.number");
      //賦值新的頁面版本
      Integer versionId = currentVersion + 1;
        System.out.println(versionId);

    //獲取當(dāng)前頁面的信息
        HttpGetUtils httpwikiinfo  = new HttpGetUtils(wikiCurPageInfUrl);
        httpwikiinfo.setHeader("Authorization",jiraBasicAuth );

        String contentInfo = httpwikiinfo.getHttp(httpwikiinfo);

  1. 正則匹配頁面內(nèi)容中需求ID并批量進(jìn)行更換
//正則表達(dá)式替換所有的Key
    newhalfcontent = storage[1].replaceAll("((?<=key\\\\\">)\\S+?[^\\<]+)|((?<=linkedissues\\()[^\\)]+)",issueKey);

  1. 利用WIKI的API更新頁面
    API:/rest/api/content/"+pageID+"/?expand=version"
    //更新頁面信息需要用到的傳參
    String newContent = "{\n" +
            "    \"version\": {\n" +
            "        \"number\": "+versionId+"\n" +
            "    },\n" +
            "    \"title\": \""+issueKey+" "+taskName+" 測試綜合文檔"+"\",\n" +
            "    \"type\": \"page\",\n" +
            "    \"body\""+newhalfcontent;

        System.out.println(newContent);

    //更新頁面信息
        String wikiUpdateUrl = "http://wiki.test.com/rest/api/content/"+pageID+"";
        HttpPutUtils httpwikiupdate  = new HttpPutUtils(wikiUpdateUrl);
        httpwikiupdate.setHeader("Authorization",jiraBasicAuth );
        String tab = httpwikiupdate.jsonPutHttp(newContent,httpwikiupdate);
  1. 正則匹配小括號中的內(nèi)容2種方式
    5.1 表達(dá)式: (?<=()\S+?(?=))


    image.png

(?<=exp)是以exp開頭的字符串, 但不包含本身长已。
(?=exp)就匹配以exp結(jié)尾的字符串, 但不包含本身。
(?<=() 也就是以括號開頭, 但不包含括號。
(?=)) 就是以括號結(jié)尾术瓮。
\S 匹配任何非空白字符康聂。等價于[^ \f\n\r\t\v]。
+表示至少有一個字符.
? 表示非貪婪(如果沒有有胞四?則會匹配文本中第一個括號到最后一個括號之間的所有內(nèi)容恬汁,如下圖)


image.png

(?<=()\S+(?=)) 就是匹配以 (開頭, )結(jié)尾的括號里面最少有一個非空白字符的串, 但不包括開頭的(和結(jié)尾的)

預(yù)搜索就是以啥啥開頭結(jié)尾但是匹配的本身不包括啥啥啥

5.2 表達(dá)式: (?<=()[^)]+

(?<=() 也就是以括號開頭, 但不包含括號.
[^)] 表示匹配非)的字符,當(dāng)匹配的)自動開啟下一次匹配

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辜伟,一起剝皮案震驚了整個濱河市氓侧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌导狡,老刑警劉巖约巷,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異旱捧,居然都是意外死亡独郎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門廊佩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來囚聚,“玉大人,你說我怎么就攤上這事标锄。” “怎么了茁计?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵料皇,是天一觀的道長。 經(jīng)常有香客問我星压,道長践剂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任娜膘,我火速辦了婚禮逊脯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘竣贪。我一直安慰自己军洼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布演怎。 她就那樣靜靜地躺著匕争,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爷耀。 梳的紋絲不亂的頭發(fā)上甘桑,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼跑杭。 笑死铆帽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的德谅。 我是一名探鬼主播锄贼,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼女阀!你這毒婦竟也來了宅荤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤浸策,失蹤者是張志新(化名)和其女友劉穎冯键,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庸汗,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惫确,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚯舱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片改化。...
    茶點(diǎn)故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖枉昏,靈堂內(nèi)的尸體忽然破棺而出陈肛,到底是詐尸還是另有隱情,我是刑警寧澤兄裂,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布句旱,位于F島的核電站,受9級特大地震影響晰奖,放射性物質(zhì)發(fā)生泄漏谈撒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一匾南、第九天 我趴在偏房一處隱蔽的房頂上張望啃匿。 院中可真熱鬧,春花似錦蛆楞、人聲如沸溯乒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽橙数。三九已至,卻和暖如春帅戒,著一層夾襖步出監(jiān)牢的瞬間灯帮,已是汗流浹背崖技。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钟哥,地道東北人迎献。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像腻贰,于是被迫代替她去往敵國和親吁恍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評論 2 353