iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 24
0
Cloud Native

AWS高手同事離職後不止30天系列 第 24

= = 部門 Slack DevOps 頻道 GG了 > Travis CI App II

  • 分享至 

  • xImage
  •  

兩個GitHub Account,兩個SSH Key, 如何在一起

各位邦友…最早的時候…小編clone repository的時候…也是透過HPPTS,三不五時要跟repository互動的時候,就要輸入帳號密碼,也不知道是網路不穩,還是機制怎樣的,後來同事就請大家使用SSH Key囉。這種「設定一次」,設定方式又是別人「複製」給你的,你只是「貼上」而已。通常都不是很了解其「起作用」的原因(或一知半解),反正會跑就行了。剛好藉由這個機會有這個情境。順便「整理一下」。

  • 產生新的SSH Key(Connecting to GitHub with SSH)
    小編之前在介紹Ansible的時候有提到ssh-keygen -b 4096(linux),因為小編是windows電腦,所以安裝Git之後,可以用Git Bash(terminal)來產生。
      $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  • 設定SSH key(公鑰)到GitHub Account
    bebright@github.com_rsa.pub(.pub這一個是公鑰)
  • 小編的keys
  • 小編的.ssh\config
        # 舊的
        Host github.com (別名 !!! > 跟Hostname 一樣)
            User git
            Hostname github.com
            IdentityFile ~/.ssh/github_rsa
        # 新的
        Host bebright (別名 !!! > 跟Hostname 不一樣 > 本來就不應該有「相同別名」)
            User git
            Hostname github.com
            IdentityFile ~/.ssh/bebright@github.com_rsa
    
  • clone新帳號的repository
    PS:在設定.ssh\config之前是可以clone下來的
    關鍵來了,因為.ssh\config,舊的Host的「別名」就是github.com,所以它就用舊的SSH key去溝通,所以就沒權限。因為origin git@github.com:bebright/slack-demo.git(github.com,這一個是「別名」)
        $ git clone git@github.com:bebright/slack-demo.git
    
        $ git remote -v
        origin  git@github.com:bebright/slack-demo.git (fetch)
        origin  git@github.com:bebright/slack-demo.git (push)
    
        $ git push
        ERROR: Permission to bebright/slack-demo.git denied to beebright.(舊的帳號名稱)
    
  • 重新設定 repository url
    • 舊:git@github.com:bebright/slack-demo.git
    • 新:git@bebright:bebright/slack-demo.git
      $ git remote set-url origin git@bebright:bebright/slack-demo.git
    
      $ git remote -v
      origin  git@bebright:bebright/slack-demo.git (fetch)
      origin  git@bebright:bebright/slack-demo.git (push)
    
      $ git push
      Everything up-to-date
    
  • 補充
    ~/.gitconfig會有git全域(global)的設定(舊帳號),如下(設定片斷)
      [user]
      name = beebright
      email = xxxxxx@xxx.xxx.xxx
    
    那新帳號的專案底下,要特別設定,才不會用到全域的設定喲,指令如下
      $ git config user.name "new account name"
      $ git config user.email "new account mail"
    

GitHub + Travis + Slack

  • 專案加上.travis.yml,push上去
    小編是用Node.js,完整程式語言列表
    這邊小編好奇,只加一行會如何…

    • .travis.yml:
        language: node_js
      
    • Travis Build 結果
  • .travis.yml加上通知(to Slack)

    • Slack設定
      1. Slack程式點選「Travis CI」,出現App選單前往設定
      2. 前往網頁設定。打開設定說明,小編這邊只用簡單設定。
    • .travis.yml:
        language: node_js
        notifications:
        slack: beebright:DxPZYpdd26Ni3vFGQFKngXK3
      
    • 加上slack通知,push上去後,travis build的結果就會出現了。

今天就先這樣囉…Next
待續…


上一篇
= = 部門 Slack DevOps 頻道 GG了 > Travis CI App I
下一篇
= = 部門 Slack DevOps 頻道 GG了 > Incoming WebHooks
系列文
AWS高手同事離職後不止30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言