 
     if privateToken
       @importStackTemplateWithPrivateToken privateToken, urlData, callback
+    else if oauth = user.getAt 'foreignAuth.gitlab'
+      @importStackTemplateWithOauth oauth, urlData, callback
     else
       @importStackTemplateWithRawUrl urlData, callback
 

_           = require 'lodash'
GitlabAPI   = require 'gitlab'
KodingError = require '../../error'
getPrivateToken = (options, callback) ->

  { urlData: { baseUrl }, token } = options

    return { originalUrl : url, baseUrl, user, repo, branch }


  importStackTemplateWithOauth: (oauth, urlData, callback) ->

    { baseUrl, user, repo, branch } = urlData
    { token } = oauth

    getPrivateToken { urlData, token }, (err, privateToken) =>

      return callback err  if err

      gitlab  = GitlabAPI {
        url   : baseUrl
        token : privateToken
      }

      @importStackTemplateWithPrivateToken privateToken, urlData, callback


  importStackTemplateWithPrivateToken: (privateToken, urlData, callback) ->

    { baseUrl, user, repo, branch } = urlData
