h*Σ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0.0.2.0 Safe-Inferred"%&)1>8FI:;<=D@LMN?GHB>50^"OP#  /',\C+efghij9A& -$Q762! X_)`(EKJ[VW314%* vwxy.RSTUYZ]abcdn|klmopqrstuz{}~8FI:;<=D@LMN?GHB>50^"OP#  /',\C+efghij9A& -$Q762! X_)`(EKJ[VW314%* vwxy.RSTUYZ]abcdn|klmopqrstuz{}~ Safe-Inferred"%&)1> github-app-tokenOnly supported permission is github-app-tokenOnly supported permission is github-app-tokenOnly supported permission is github-app-tokenOnly supported permission is github-app-tokenOnly supported permission is 77 Safe-Inferred"%&)1>  Safe-Inferred"%&)1>@   Safe-Inferred"%&)1>github-app-token https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#create-an-installation-access-token-for-an-appgithub-app-tokenList of {owner}/{name} valuesgithub-app-tokenGenerate a token for all repositories and the installation's permissionsSee  for changing either of these. Safe-Inferred"%&)1> Safe-Inferred"%&)1>fgithub-app-tokenRun an action to (e.g.) generate a token and create a thread to refresh it< will create an initial token and a thread that checks its  on a loop. When it has expired, the action is used again to replace the token. ref <-  $ generateInstallationToken creds installationId Use ( to access the (possibly) updated token. #for_ repos $ repo -> do token <-  makeSomeRequest token repo If you can't rely on program exit to clean up this background thread, you can manually cancel it:  ref   Safe-Inferred"%&)1>              ! "# "$ % & ' ( ) *+ , - . / 0 1 2 3 4 5 6 7 8 "9 :; < = > ? @ "A BC D :E F GH *I J KL MN OP Q R ST U SV SW SX SYZ[\ ]^ S_ ` Sa Sb Sc de Sf ]g ]h Si dj dk Sl Sm Sn o p "q dr s tu tvwxyz{| } ~  B  G   K    " " " " " " " " "                                          G G G G G G G                        : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : t t  B B B  K K K K K K K K K K K K K K K K K K K K                      M M M M  wxwCC        /github-app-token-0.0.2.0-2zJ8C3bSxtwJScDB0unpYXGitHub.App.Token.PreludeGitHub.App.Token.PermissionsGitHub.App.Token.JWTGitHub.App.Token.AppCredentialsGitHub.App.Token.GenerateGitHub.App.Token.Refreshgithub-app-tokenGitHub.App.TokenPaths_github_app_tokenbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip System.IOprint otherwisemap$GHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==>=negate>>=>>fmapreturnControl.Monad.Failfail fromIntegral realToFrac toInteger toRational<>memptymappendmconcat<*>pure*>BoundedEnumEq GHC.FloatFloating FractionalIntegralMonadFunctorNumOrdGHC.ReadReadReal RealFloatRealFracGHC.ShowShow MonadFail Applicative Data.FoldableFoldableData.Traversable Traversable GHC.GenericsGeneric SemigroupMonoid GHC.TypesBoolStringCharDoubleFloatInt ghc-bignumGHC.Num.IntegerInteger GHC.MaybeMaybeOrderingRational~IOWord Data.EitherEitherFalseNothingJustTrueLeftRightLTEQGTminBoundmaxBound/=eitherid Data.Tuplefstsnd text-2.0.2Data.Text.InternalText time-1.12.2 Data.Time.Clock.Internal.UTCTimeUTCTimeliftA2when Control.Monadunlessbytestring-0.11.5.2Data.ByteString.Internal.Type ByteStringreadList Data.Functor<$>show<*<$mapM_ Text.Readread.constcompare<<=>maxmin&&||notGHC.ErrerrorerrorWithoutStackTrace undefined=<<flip$!untilasTypeOf+*abssignumsubtract Data.Maybemaybeheadtaillastinitscanlscanl1scanrscanr1iteraterepeat replicatecycle takeWhile dropWhiletakedropsplitAtspanbreakreverselookup!!zip3zipWithzipWith3unzipunzip3 showsPrecshowListShowSshowsshowChar showString showParensuccpredtoEnumfromEnumproperFractiontruncateroundceilingfloor/recipquotremdivmodquotRemdivModevenodd^^^gcdlcm floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2pilogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanhcurryuncurryText.ParserCombinators.ReadPReadS readsPrec readParenlexreadsfoldMapfoldrfoldlfoldr1foldl1nulllengthelemmaximumminimumsumproduct sequence_concat concatMapandoranyallnotElemGHC.Exception.Type Exception Data.OldListlinesunlineswordsunwordsGHC.IO.ExceptionIOError userErrorGHC.IOFilePathioErrorputCharputStrputStrLngetChargetLine getContentsinteractreadFile writeFile appendFilereadLnreadIOtraverse sequenceAmapMsequenceControl.Monad.IO.ClassMonadIOliftIOpackData.Text.Showunpack!path-0.9.6-ETypENnPptHHNEqjbgZZ4APath.Internal.PosixPath toFilePath Path.PosixDirFileRelAbs(unliftio-0.2.25.0-K4RrPPw6J3eGWLP8mkelevUnliftIO.ExceptionthrowIOAdminWrite Permissionsactionsadministrationchecks codespacescontentsdependabot_secrets deployments environmentsissuesmetadatapackagespages pull_requestsrepository_custom_propertiesrepository_hooksrepository_projectssecret_scanning_alertssecretssecurity_events single_filestatusesvulnerability_alerts workflowsmembersorganization_administrationorganization_custom_rolesorganization_custom_org_rolesorganization_custom_properties$organization_copilot_seat_management!organization_announcement_bannersorganization_eventsorganization_hooks#organization_personal_access_tokens+organization_personal_access_token_requestsorganization_planorganization_projectsorganization_packagesorganization_secrets organization_self_hosted_runnersorganization_user_blockingteam_discussionsemail_addresses followers git_ssh_keysgpg_keysinteraction_limitsprofilestarring$fToJSONPermission$fAsReadWriteAdminRead$fAsReadWriteRead$fAsReadWriteAdminWrite$fAsReadWriteWrite$fAsReadWriteAdminAdmin$fEqPermissions$fShowPermissions$fSemigroupPermissions$fMonoidPermissions$fToJSONPermissions$fEqPermission$fOrdPermission$fShowPermission$fSemigroupPermission InvalidIssuer InvalidDate$sel:field:InvalidDate$sel:date:InvalidDateInvalidPrivateKey PrivateKey$sel:unwrap:PrivateKeyIssuer$sel:unwrap:IssuerExpirationTime$sel:unwrap:ExpirationTimesignJWT$fShowInvalidIssuer$fExceptionInvalidIssuer$fShowInvalidDate$fExceptionInvalidDate$fShowInvalidPrivateKey$fExceptionInvalidPrivateKey$fShowPrivateKey $fShowIssuerAppId$sel:unwrap:AppIdAppCredentials$sel:appId:AppCredentials$sel:privateKey:AppCredentialsCreateAccessToken#$sel:repositories:CreateAccessToken%$sel:repository_ids:CreateAccessToken"$sel:permissions:CreateAccessTokenAccessTokenJsonDecodeError$$sel:body:AccessTokenJsonDecodeError'$sel:message:AccessTokenJsonDecodeErrorAccessTokenHttpError $sel:status:AccessTokenHttpError$sel:body:AccessTokenHttpError AccessToken$sel:token:AccessToken$sel:expires_at:AccessTokenInstallationId$sel:unwrap:InstallationIdgenerateInstallationTokengenerateInstallationTokenScoped$fEqCreateAccessToken$fGenericCreateAccessToken$fToJSONCreateAccessToken$fSemigroupCreateAccessToken$fMonoidCreateAccessToken $fShowAccessTokenJsonDecodeError%$fExceptionAccessTokenJsonDecodeError$fShowAccessTokenHttpError$fExceptionAccessTokenHttpError$fShowAccessToken$fGenericAccessToken$fFromJSONAccessTokenRefresh HasExpiresAt expiresAt refreshing getRefresh cancelRefresh$fHasExpiresAtAccessTokenversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDir