on master help sign in
For private REPOs, turn github into ssh git rather than http git
commit5bbb6e56312622d7daa9d4b7275f272319710682 authorJohn Ericson <John.Ericson@Obsidian.Systems> dateWed 17 Oct 2018, 15:21 (8 years ago) parent21fde40
1 file changed+9−8
lib/command/src/Obelisk/Command/Thunk.hs+9−8
lib/command/src/Obelisk/Command/Thunk.hs+9−8
@@ -123,12 +123,13 @@ data GitSource = GitSource
123123 deriving (Show, Eq, Ord)
124124
125125-- | Convert a GitHub source to a regular Git source. Assumes no submodules.
126−forgetGithub :: GitHubSource -> GitSource
127−forgetGithub s = GitSource
126+forgetGithub :: Bool -> GitHubSource -> GitSource
127+forgetGithub useSsh s = GitSource
128128 { _gitSource_url = URI
129− { uriScheme = Just $ fromRight' $ mkScheme "https"
129+ { uriScheme = Just $ fromRight' $ mkScheme $ if useSsh then "ssh" else "https"
130130 , uriAuthority = Right $ Authority
131− { authUserInfo = Nothing
131+ { authUserInfo = UserInfo (fromRight' $ mkUsername "git") Nothing
132+ <$ guard useSsh
132133 , authHost = fromRight' $ mkHost "github.com"
133134 , authPort = Nothing
134135 }
@@ -573,7 +574,7 @@ unpackThunk' noTrail thunkDir = readThunk thunkDir >>= \case
573574 withTempDirectory thunkParent thunkName $ \tmpRepo -> do
574575 let obGitDir = tmpRepo </> ".git" </> "obelisk"
575576 s = case _thunkPtr_source tptr of
576− ThunkSource_GitHub s' -> forgetGithub s'
577+ ThunkSource_GitHub s' -> forgetGithub False s'
577578 ThunkSource_Git s' -> s'
578579 withSpinner' ("Fetching thunk " <> T.pack thunkName)
579580 (finalMsg noTrail $ const $ "Fetched thunk " <> T.pack thunkName) $ do
@@ -727,7 +728,7 @@ getThunkPtr' checkClean thunkDir = do
727728getLatestRev :: MonadObelisk m => ThunkSource -> m ThunkRev
728729getLatestRev os = do
729730 let gitS = case os of
730− ThunkSource_GitHub s -> forgetGithub s
731+ ThunkSource_GitHub s -> forgetGithub False s
731732 ThunkSource_Git s -> s
732733 (_, commit) <- gitGetCommitBranch (_gitSource_url gitS) (untagName <$> _gitSource_branch gitS)
733734 case os of
@@ -749,11 +750,11 @@ uriThunkPtr uri mbranch = do
749750 case rev of
750751 Right r -> pure (ThunkSource_GitHub s, r)
751752 Left e -> do
752− putLog Warning $ " \
753+ putLog Warning $ "\
753754\Failed to fetch archive from GitHub. This is probably a private repo. \
754755\Falling back on normal fetchgit. Original failure:\n\n"
755756 errorToWarning e
756− let s' = forgetGithub s
757+ let s' = forgetGithub True s
757758 (,) (ThunkSource_Git s') <$> gitThunkRev s' commit
758759 ThunkSource_Git s -> (,) (ThunkSource_Git s) <$> gitThunkRev s commit
759760 pure $ ThunkPtr