GitHub Getting the organizations of the authenticated user

Getting the organizations of the authenticated user

Assuming your app has the necessary authorization, you can use GetOrganizations method to request a list of the organizations the authenticated user is a part of:

@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();

    // 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 />
    }

}

As the response from the GitHub API is a list of organizations, the returned JSON will contain fewer properties for each organizations compared to when requesting a single organization. As a result of this, each organization in the list is represented by the GitHubOrganizationItem class (opposed to the GitHubOrganizationItem class when getting a single organization).

Pagination

The returned list of organizations is paginated, meaning that you may have to request additional pages to get all organizations the authenticated user is part of. If this is the case, you can specify an instance of GitHubGetOrganizationsOptions 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>

@{

    // Make the request to the API
    GitHubGetOrganizationsResponse response = Model.Organizations.GetOrganizations(new GitHubGetOrganizationsOptions {
        Page = 2,
        PerPage = 10
    });

    // 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 is 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.