packages feed

octohat 0.1.1 → 0.1.2

raw patch · 6 files changed

+29/−19 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Network.Octohat.Types: OrganizationName :: Text -> OrganizationName
+ Network.Octohat.Types: TeamName :: Text -> TeamName
+ Network.Octohat.Types: newtype OrganizationName
+ Network.Octohat.Types: newtype TeamName
+ Network.Octohat.Types: unOrganizationName :: OrganizationName -> Text
+ Network.Octohat.Types: unTeamName :: TeamName -> Text
- Network.Octohat: addUserToTeam :: Text -> Text -> Text -> GitHub StatusInTeam
+ Network.Octohat: addUserToTeam :: Text -> OrganizationName -> TeamName -> GitHub StatusInTeam
- Network.Octohat: keysOfTeamInOrganization :: Text -> Text -> GitHub [MemberWithKey]
+ Network.Octohat: keysOfTeamInOrganization :: OrganizationName -> TeamName -> GitHub [MemberWithKey]
- Network.Octohat: membersOfTeamInOrganization :: Text -> Text -> GitHub [Member]
+ Network.Octohat: membersOfTeamInOrganization :: OrganizationName -> TeamName -> GitHub [Member]
- Network.Octohat: teamForTeamNameInOrg :: Text -> Text -> GitHub Team
+ Network.Octohat: teamForTeamNameInOrg :: OrganizationName -> TeamName -> GitHub Team
- Network.Octohat.Members: addTeamToOrganization :: Text -> Text -> Text -> GitHub Team
+ Network.Octohat.Members: addTeamToOrganization :: TeamName -> Text -> OrganizationName -> GitHub Team
- Network.Octohat.Members: membersForOrganization :: Text -> GitHub [Member]
+ Network.Octohat.Members: membersForOrganization :: OrganizationName -> GitHub [Member]
- Network.Octohat.Members: teamsForOrganization :: Text -> GitHub [Team]
+ Network.Octohat.Members: teamsForOrganization :: OrganizationName -> GitHub [Team]

Files

octohat.cabal view
@@ -1,6 +1,6 @@ Name:                octohat Synopsis:            A tested, minimal wrapper around GitHub's API.-Version:             0.1.1+Version:             0.1.2 License:             MIT Author:              Stack Builders Maintainer:          hackage@stackbuilders.com
spec/Network/Octohat/TestData.hs view
@@ -50,7 +50,7 @@ loadTestOrganizationName = organization `fmap` loadEnv  loadOwnerTeam :: GitHub Team-loadOwnerTeam = liftIO (organization `fmap` loadEnv) >>= flip teamForTeamNameInOrg "Owners"+loadOwnerTeam = liftIO (OrganizationName `fmap` (organization `fmap` loadEnv)) >>= flip teamForTeamNameInOrg (TeamName "Owners")  loadTestAccountOne :: GitHub Member loadTestAccountOne = liftIO (accountOne `fmap` loadEnv) >>= userForUsername
spec/Network/Octohat/TestUtil.hs view
@@ -17,7 +17,7 @@ deleteAllTeams :: GitHub [DidDelete] deleteAllTeams = do   testOrganization <- liftIO loadTestOrganizationName-  allTeams <- teamsForOrganization testOrganization+  allTeams <- teamsForOrganization (OrganizationName testOrganization)   let teamsToDelete = map teamId $ filter (\t -> teamName t /= "Owners") allTeams   mapM deleteTeamFromOrganization teamsToDelete 
src/Network/Octohat.hs view
@@ -16,21 +16,21 @@   -- | Gets all the members of the organization-membersOfTeamInOrganization :: T.Text -- ^ GitHub organization name-                            -> T.Text -- ^ GitHub team name+membersOfTeamInOrganization :: OrganizationName -- ^ GitHub organization name+                            -> TeamName         -- ^ GitHub team name                             -> GitHub [Member] membersOfTeamInOrganization nameOfOrg nameOfTeam = teamId `liftM` teamForTeamNameInOrg nameOfOrg nameOfTeam >>= membersForTeam  -- | Adds a user with @nameOfUser@ to the team named @nameOfTeam@ within the organization named `nameOfOrg` addUserToTeam :: T.Text -- ^ GitHub username-              -> T.Text -- ^ GitHub organization name-              -> T.Text -- ^ GitHub team name+              -> OrganizationName -- ^ GitHub organization name+              -> TeamName         -- ^ GitHub team name               -> GitHub StatusInTeam addUserToTeam nameOfUser nameOfOrg nameOfTeam = teamId `liftM` teamForTeamNameInOrg nameOfOrg nameOfTeam >>= addMemberToTeam nameOfUser  -- | Retrieves a list of members in a given team within an organization together with their public keys-keysOfTeamInOrganization :: T.Text -- ^ GitHub organization name-                         -> T.Text -- ^ GitHub team name+keysOfTeamInOrganization :: OrganizationName -- ^ GitHub organization name+                         -> TeamName         -- ^ GitHub team name                          -> GitHub [MemberWithKey] keysOfTeamInOrganization nameOfOrg nameOfTeam = do   members <- membersOfTeamInOrganization nameOfOrg nameOfTeam@@ -38,12 +38,12 @@   let memberFingerprints = publicKeySetToFingerprints pubKeys   return $ makeMembersWithKey members pubKeys memberFingerprints -teamForTeamNameInOrg :: T.Text -- ^ Organization name-                     -> T.Text -- ^ Team name+teamForTeamNameInOrg :: OrganizationName -- ^ Organization name+                     -> TeamName         -- ^ Team name                      -> GitHub Team teamForTeamNameInOrg nameOfOrg nameOfTeam = do   teams <- teamsForOrganization nameOfOrg-  tryHead NotFound (teamsWithName nameOfTeam teams)+  tryHead NotFound (teamsWithName (unTeamName nameOfTeam) teams)  teamsWithName :: T.Text -> [Team] -> [Team] teamsWithName nameOfTeam = filter (hasName nameOfTeam)
src/Network/Octohat/Members.hs view
@@ -23,11 +23,11 @@  -- | Takes a new team name, the description of a team and the organization where to create the team --   and creates a new team. Regular GitHub authorization/authentication applies.-addTeamToOrganization :: T.Text  -- ^ Name of new team+addTeamToOrganization :: TeamName -- ^ Name of new team                       -> T.Text  -- ^ Description of new team-                      -> T.Text  -- ^ Organization name where the team will be created+                      -> OrganizationName -- ^ Organization name where the team will be created                       -> GitHub Team-addTeamToOrganization nameOfNewTeam descOfTeam orgName =+addTeamToOrganization (TeamName nameOfNewTeam) descOfTeam (OrganizationName orgName) =   postRequestTo (composeEndpoint ["orgs", orgName, "teams"]) (TeamCreateRequest nameOfNewTeam descOfTeam)  -- | Deletes a team from an organization using its team ID.@@ -36,9 +36,9 @@ deleteTeamFromOrganization idOfTeam = deleteRequestTo (composeEndpoint ["teams", T.pack $ show idOfTeam])  -- | Returns a list of members of an organization with the given name.-membersForOrganization :: T.Text          -- ^ The organization name+membersForOrganization :: OrganizationName -- ^ The organization name                        -> GitHub [Member]-membersForOrganization nameOfOrg = getRequestTo (composeEndpoint ["orgs", nameOfOrg, "members"])+membersForOrganization (OrganizationName nameOfOrg) = getRequestTo (composeEndpoint ["orgs", nameOfOrg, "members"])  -- | Returns a list of members of a team with the given team ID. membersForTeam :: Integer         -- ^ The team ID@@ -46,9 +46,9 @@ membersForTeam idOfTeam = getRequestTo (composeEndpoint ["teams", T.pack $ show idOfTeam, "members"])  -- | Returns a list of teams for the organization with the given name-teamsForOrganization :: T.Text        -- ^ The organization name+teamsForOrganization :: OrganizationName -- ^ The organization name                      -> GitHub [Team]-teamsForOrganization nameOfOrg = getRequestTo (composeEndpoint ["orgs", nameOfOrg, "teams"])+teamsForOrganization (OrganizationName nameOfOrg) = getRequestTo (composeEndpoint ["orgs", nameOfOrg, "teams"])  -- | Adds a member to a team, might invite or add the member. Refer to 'StatusInTeam' addMemberToTeam :: T.Text               -- ^ The GitHub username to add to a team
src/Network/Octohat/Types.hs view
@@ -5,6 +5,8 @@                              , MemberWithKey(..)                              , Team(..)                              , BearerToken(..)+                             , OrganizationName(..)+                             , TeamName(..)                              , StatusInTeam(..)                              , EmptyBody(..)                              , DidDelete(..)@@ -141,6 +143,14 @@ -- | GitHub's OAuth 2.0 bearer token. This is simply added in an --   Authorization header newtype BearerToken = BearerToken { unBearerToken :: T.Text }++-- | OrganizationName is added in order to have type safety in functions where the+--   Organization name and the Team name are both strings and may be confused+newtype OrganizationName = OrganizationName { unOrganizationName :: T.Text }++-- | TeamName is added in order to have type safety in functions where the+--   Team name and the Organization name are both strings and may be confused+newtype TeamName = TeamName { unTeamName :: T.Text }  -- | The monad transformer where all operations run. Supports initial configuration --   through a Reader monad and the possibility of failure through Either