# Google Sheet Script 1. Go to Google Sheet 2. Click "Script editor" Into script page. ![](https://i.imgur.com/Td1a02Q.png) 3. You can use Javascript on script page. ``` # See more on google app script https://developers.google.com/apps-script/reference/spreadsheet ``` 4. If you finished your function and you can trigger it by trigger service. ![](https://i.imgur.com/UJsTnHO.png) 5. You can see your tigger on this page and then Click "Add Trigger" to add new one. ![](https://i.imgur.com/ql35MDl.png) 6. Trigger setting ![](https://i.imgur.com/T3R0xhn.png) 7. And your can edit your tigger ![](https://i.imgur.com/Z6fR7ih.png) ![](https://i.imgur.com/L0VnkN0.png) ``` # See more on Jenkins auto report! https://script.google.com/a/exosite.com/d/1KxjsExAAQnhCXb1fcam4MJu9ptJVVZGln1JHmnkAii7OJflMxBH9xK1o/edit?mid=ACjPJvEu3N8dX5oyK6bF2GlcQ9Pc7jxb2GhKQsIYLTW9WyA8wMIOpz9NSXa-LDF1Pg8jnEmgX28AOd2XL2bfJ_CUhKPdMztiyH6RI2WjHUtbDQyUxTDTfuwgtcX3JfVRYDrl5p4FhDJNiNU&uiv=2 /* # HTML HTML + JS ## datePickerViaCreated.html 一個讓使用者選擇日期區間的UI,會在JS裡呼叫setBugTimeWithSpecificCreateTime這個Function, 選擇的區間會用來Filiter ticekt的created time ## datePickerViaResolved.html 一個讓使用者選擇日期區間的UI,會在JS裡呼叫setBugTimeWithSpecificResolvedTime這個Function, 選擇的區間會用來Filiter ticekt的resolved time ## emptyError.html 一個用來顯示錯誤訊息的UI,當"BUG Status"的J2或K2沒有值的時候會顯示 ## slackError.html 一個用來顯示錯誤訊息的UI,當嘗試傳送訊息到Slack有錯誤的時候會顯示 -------------------------------------------------------------------------------------------------- # gs Google apps script,但是跟JavaScript基本上一樣 ## autoSetLabelMethod.gs 只要有在regression掛上ticket的QA-Task或Bug一律掛上label, QA-Task: frombuild#XXXX, Bug: foundin#XXXX ## bugTimeMethod.gs 主要用於更新"BUG Time Spent"這個Tab的Function, 待使用者從UI上選擇日期區間或自訂的JQL後,會將每筆有"foundin#XXX"這個label的Ticket列出來, 並且去比對"Version Time Spent"這個Tab上同一個版本的Start time, 計算出從那版Regression test開始到那張Ticket create, ready for qa, close花了多久的時間 ## datetimeMethod.gs 主要放置處理時間相關的Function,例如取得現在的時間或是計算時間等 ## deployNoteMethod.gs 主要用於更新"Version Time Spent"這個Tab的Function, 會從deployNote的Sheet裡抓到現在版本的狀態(TESTING, RVERT, or IGNORE)以及開始時間, 之後在REPORT, STOP, or OVER的時候去計算時間並且設定在"Version Time Spent"這個Tab上 ## dialogMethod.gs 主要用於放置顯示UI的Function,例如跳出錯誤訊息或讓使用者選擇區間的UI等 ## httpMethod.gs 可以略過,目前應該沒有用到 ## jiraMethod.gs 主要用於與JIRA有關的Function,例如根據帶進來的JQL取得Ticket list以及將之格式化,或是取得JIRA帳號的Token等 ## main.gs 主要用於更新"BUG Status"這個Tab的Function,另外JQL也是放在這份檔案裡 在J2與K2輸入Version及Status後執行main()即會更新這版所發現的新Bug以及過往的舊BUG, 同時也會更新時間在BUG Status ## menuMethod.gs 主要用於與上方"Quick Start"有關的Function ## sheetMethod.gs 主要用於更新"BUG Status"這個Tab的Function, 在main()裡面所call的function通常是出自這裡 ## slackMethod.gs 主要用於傳送訊息到Slack的Function, sendSlack()負責傳送REPORT, STOP, OVER, sendStartToSlack()負責傳送START, 另外getTodayChecker()會從Jenkins check rotation這個sheet自動抓今天有哪些murano的人需要看Jenkins並且標記他們 * link: Jenkins check rotation: https://tinyurl.com/y5twzcod ## triggerMethod.gs 主要用於定時更新"BUG Status"這個Tab的Function, 每半小時會更新一次這版有沒有Bug以及之前的Bug status ## versionTimeMethod.gs 主要用於更新"BUG Status"及"Version Time Spent"這兩個Tab的Function, 從Jenkins report link取得version等資訊後,更新到這兩個tab裡 -------------------------------------------------------------------------------------------------- # Triggers 從上方的Edit -> Current projects's triggers進入,可以固定時間呼叫某一個Function ## Function: setDeployStatus 每分鐘執行檢查一次,根據deployNote的狀態不同,會設定START, STOP, OVER的時間以及傳送訊息到Slack ## Function: reportJenkinsEverySixOClock 每天晚上約六點二十三分時執行,如果該版Jenkins尚未STOP或OVER便會設定REPORT的時間以及傳送訊息到Slack ## Function: updateBugStatus 每半小時執行一次,更新一次這版有沒有Bug以及之前的Bug status ## Function: setOverStatus 每分鐘執行檢查一次,根據當前版本Jenkins report裡的“Consolidate”tab,如果Total(B3)超過5000並且檢查率100%(L3)便會設定OVER的時間以及傳送訊息到Slack ## Function: onOpen 每次開啟這個Sheet時會執行,將會顯示上方的"Quick Start"功能列表 */ ```