Quickstart

Eager to get started? This page gives you a detailed introduction of how to use IGitt ineterfaces to access data from various git hosting services.

First, make sure that you have installed IGitt:

$ pip install IGitt

Also, each of the following example uses GitHub Token, So make sure you have generated a GitHub Token of your own. You can follow this tutorial for the same.

Now, put your GitHub Token in a variable name GH_TOKEN:

>>> GH_TOKEN = '3jfsdfhsdlfksdfvfvffgrgdfggg'

And make an IGitt GitHub Token object which will be used throughout every example:

>>> from IGitt.GitHub import GitHubToken
>>> gh_token = GitHubToken(GH_TOKEN)

Now, Let’s get going with the examples.

Organization

This section will show you how to use Organization interface and its methods:

>>> from IGitt.GitHub.GitHubOrganization import GitHubOrganization

Now get the Organization object as org:

>>> org_name = 'coala'
>>> org = GitHubOrganization(gh_token, org_name)

Get the web_url of the org:

>>> org.web_url

Get the description of the org:

>>> org.description

Get the number of registered users for the org:

>>> org.billable_users

Get all the owners to the org:

>>> owners = org.owners
>>> owners

Get a single owner:

>>> owners_list = []
>>> for owner in owners:
        owners_list.append(owner)
>>> owner = owners_list[0]

Get the id of the single owner:

>>> owner.identifier

Get the username of the owner:

>>> owner.username

Get install_repo of the owner:

>>> owner.installed_repositories

Get the masters of the org:

>>> org.masters

Get the name of the org:

>>> org.name

Get the suborgs of the org:

>>> org.suborgs

Get the set of repositories for the org:

>>> repos = org.repositories
>>> repos

Get a list of repositories for the org:

>>> repos_list = []
>>> for repo in repos:
            repos_list.append(repo)

Get a single repo:

>>> repo = repos_list[0]

For getting details of a single repo see Repository section.

Repository

This section will show you how to use Repository interface and its methods:

>>> from IGitt.GitHub.GitHubRepository import GitHubRepository

Get the Repository object as repo:

>>> repo_name = 'coala/commuity'
>>> repo = GitHubRepository(gh_token, repo_name)

Get the id of the repo:

>>> repo.identifier

Get the org of the repo:

>>> repo.top_level_org

Get the name of the repo:

>>> repo.full_name

Get set of commits to the repo:

>>> commits = repo.commits

Get list of commits to the repo:

>>> commits_list = []
>>> for commit in commits:
        commits_list.append(commit)

Get a single commit:

>>> commit = commits_list[0]

For more methods on a commit See Commit section.

Get clone url of the repo:

>>> repo.clone_url

Get the labels of the repo:

>>> labels = repo.get_labels()
>>> labels

Get set of issues to the repo:

>>> repo.issues

Get a single issue by its number:

>>> repo.get_issues(1)

For getting more details of a issue see Issue section.

Get set of MRs to the repo:

>>> repo.merge_requests

Get a single MR of the repo by its number:

>>> repo.get_mr(77)

For getting more details of a MR see MergeRequest section.

Get all the urls this repo is hooked to:

>>> repo.hooks

MergeRequest

This section will show you how to use MergeRequest interface and its methods:

>>> from IGitt.GitHub.GitHubMergeRequest import GitHubMergeRequest

Get the MergeRequest object as mr:

>>> repo_name = 'coala/community'
>>> mr_number = 52
>>> mr = GitHubMergeRequest(gh_token, repo_name, mr_number)

Get the base commit as a commit object:

>>> mr.base

Get the sha of the base:

>>> mr.base.sha

Get the head commit as a commit object:

>>> mr.head

Get the sha of the head:

>>> mr.head.sha

Get the base branch name:

>>> mr.base_branch_name

Get the head branch name:

>>> mr.head_branch_name

Get the tuple of commit objects that are included in the mr:

>>> mr.commits

Get the repository where this comes from:

>>> mr.repository

Get the repository where this mr’s head branch is located at:

>>> mr.source_repository)

For getting more details of repo see Repository section.

Get the affected files by this mr:

>>> mr.affected_files

Get the addition and deletion of the mr:

>>> mr.diffstat

Get set of issue objects which would be closing upon merging this mr:

>>> mr.closes_issues

Get set of issue obejects which are to this pull request:

>>> mr.mentioned_issues

Get the author of the mr:

>>> mr.author

Get the state of the mr:

>>> mr.state

Get the comments on a mr:

>>> comments = mr.comments
>>> mr.comments

For getting more details of a comment see Comment section.

Issue

This section will show you use Issue interface and its methods:

>>> from IGitt.GitHub.GitHubIssue import GitHubIssue

Get the Issue obejct as issue:

>>> repo_name = 'coala/community'
>>> issue_number = 1
>>> issue = GitHubIssue(gh_token, repo_name, issue_number)

Get the repo where this issue belong:

>>> issue.repository

For more details on a repo see Repository section.

Get the title of the issue:

>>> issue.title

Get the number of the issue:

>>> issue.number

Get the assignees to the issue:

>>> issue.assignees

Get the description of the issue:

>>> issue.description

Get the author of the issue:

>>> issue.author

Get the comments to a issue:

>>> comments = issue.comments
>>> comments

For getting more details on a comment see Comment section.

Get the labels on a issue:

>>> issue.labels

Get the available labels:

>>> issue.available_labels

Get the time when issue was created:

>>> issue.created

Get the time when issue was last updated:

>>> issue.updated

Get the state of the issue:

>>> issue.state

Get reactions to the issue:

>>> issue.reactions

Get the mr which close this issue:

>>> issue.mrs_closed_by

For getting more details on mr see MergeRequest section.

Comment

This section will show you how to use Comment interface and its methods:

>>> from IGitt.GitHub.GitHubComment import GitHubComment
>>> from IGitt.Interfaces.Comment import CommentType

Get the Comment object as comment:

>>> repo_name = 'coala/community'
>>> comment_id = 373075029
>>> issue = CommentType.ISSUE
>>> comment = GitHubComment(gh_token, repo_name, issue , comment_id)

Get the id of the comment:

>>> comment.number

Get the type of the comment:

>>> comment.type

Get the descritption of the comment:

>>> comment.body

Get the author of the comment:

>>> comment.author

Get the time when this comment was created:

>>> comment.created

Get the time when this comment was updated:

>>> comment.updated

Get the repository where this comment belongs:

>>> comment.repository

For more details on a repository see Repository section.

Commit

This section will show you how to use Commit interface and its methods:

>>> from IGitt.GitHub.GitHubCommit import GitHubCommit

Get the Commit object as commit:

>>> repo_name = 'coala/community'
>>> sha = 'b951ad95948112785522428d66a78785ffb7eebc'
>>> commit = GitHubCommit(gh_token, repo_name, sha)

Get the commit message:

>>> commit.message

Get sha of the commit:

>>> commit.sha

Get the repository of the commit:

>>> commit.repository

For more details of a repository please see Repository section.

Get the parent commit. In case of a merge commit the first parent will be returned:

>>> commit.parent

Get all the commit statuses:

>>> commit.statuses

Get combined status of all commits:

>>> commit.combined_status

Get the patch for a given file:

>>> commit.get_patch_for_file('README.md')

Get the unified diff for the commit excluding the diff index:

>>> commit.unified_diff

User

This section will show you how to use User interface and its methods:

>>> from IGitt.GitHub.GitHubUser import GitHubUser

Get the User object as user:

>>> username = 'sks444'
>>> user = GitHubUser(gh_token, username)

Get the username:

>>> user.username

Get the id of the user:

>>> user.identifier

Get installed repositories of the user:

>>> user.installed_repositories