Getting the organizations of a specific user
To get the public organizations of a specific user, you can use GetOrganizations
method along with the username of the user. For instance to get the public organizations for my GitHub user, the code could look like below:
@using Skybrud.Social.GitHub.Models.Organizations
@using Skybrud.Social.GitHub.Responses.Organizations
@inherits WebViewPage<Skybrud.Social.GitHub.GitHubService>
@{
GitHubGetOrganizationsResponse response = Model.Organizations.GetOrganizations("abjerner");
GitHubOrganizationItem[] body = response.Body;
foreach (GitHubOrganizationItem org in body) {
<p>ID: @org.Id</p>
<p>Login: @org.Login</p>
<br />
}
}
The GitHub API doesn't provide a way to lookup organizations by the ID of the user.
Pagination
The returned list of organizations is paginated, meaning that you may have to request additional pages to get all organizations the user is part of. If this is the case, you can specify an instance of GitHubGetUserOrganizationsOptions with your pagination information:
@using Skybrud.Social.GitHub.Models.Organizations
@using Skybrud.Social.GitHub.Options.Organizations
@using Skybrud.Social.GitHub.Responses.Organizations
@inherits WebViewPage<Skybrud.Social.GitHub.GitHubService>
@{
var options = new GitHubGetUserOrganizationsOptions {
Username = "abjerner",
Page = 2,
PerPage = 1
};
GitHubGetOrganizationsResponse response = Model.Organizations.GetOrganizations(options);
GitHubOrganizationItem[] body = response.Body;
foreach (GitHubOrganizationItem org in body) {
<p>ID: @org.Id</p>
<p>Login: @org.Login</p>
<br />
}
}
The Page
property indicates the page to be returned, where 1
indicates the first page. PerPage
is used to indicate the maximum amount of organizations to be returned by each page.
According to the GitHub API documentation in general, paginated results will return up to 30 items by default, while some resources allow a page size of up to 100 items.