/ogr

One Git library to Rule -- one API for many git forges

Primary LanguagePythonMIT LicenseMIT

One Git library to Rule

PyPI PyPI - License PyPI - Python Version PyPI - Status Build Status black pre-commit

Library for one API for many git forges. (e.g. GitHub, GitLab, Pagure).

Currently supported git forges:

  • GitHub
  • GitLab
  • Pagure

To start using ogr:

See Documentation of Index of Sub-modules, Functions & Classes

For examples of how to use ogr see Jupyter examples.

GitHub

This snippet shows how to obtain all releases for certain GitHub project using ogr.

from ogr.services.github import GithubService

service = GithubService(token="your_token")

ogr_project = service.get_project(
        repo="ogr",
        namespace="packit-service"
)

ogr_releases = ogr_project.get_releases()


for release in ogr_releases:
    print(release.tag_name)

This will output:

0.7.0
0.6.0
0.5.0
0.4.0
0.3.1
0.3.0
0.2.0
0.1.0
0.0.3
0.0.2
0.0.1

You can use the same API for other forges, you just need to replace GithubService with PagureService.

Supported functionality

For more info on functionality that is not supported in all services the same way see compatibility tables.

Installation

On Fedora:

$ dnf install python3-ogr

You can also use our packit-releases Copr repository (contains also released versions of OGR):

$ dnf copr enable packit/packit-releases
$ dnf install python3-ogr

Or from PyPI:

$ pip3 install --user ogr

You can also install OGR from master branch, if you are brave enough:

You can use our packit-master Copr repository (contains master version of ogr):

$ dnf copr enable packit/packit-master
$ dnf install python3-ogr

Or

$ pip3 install --user git+https://github.com/packit/ogr.git

Requirements

Makefile

Tests

Make sure to install prerequisite packages before first make check, make build, or make check-in-container. See CONTRIBUTING.md for details.

Contribution notes

  • Property should not connect to network.

Contribution guidelines

For more info about contributing to our project see our contribution guide.

Deprecation policy

For more info about deprecation policy see Deprecation policy