GitHub Getting the organizations of a specific user

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>

@{

    // Make the request to the API
    GitHubGetOrganizationsResponse response = Model.Organizations.GetOrganizations("abjerner");

    // Get the organizations from the response body
    GitHubOrganizationItem[] body = response.Body;

    // Iterate through the organizations
    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>

@{

    // The options for the request
    var options = new GitHubGetUserOrganizationsOptions {
        Username = "abjerner",
        Page = 2,
        PerPage = 1
    };

    // Make the request to the API
    GitHubGetOrganizationsResponse response = Model.Organizations.GetOrganizations(options);

    // Get the organizations from the response body
    GitHubOrganizationItem[] body = response.Body;

    // Iterate through the organizations
    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.