Skip to content

Latest commit

 

History

History
654 lines (408 loc) · 21.8 KB

CHANGELOG.md

File metadata and controls

654 lines (408 loc) · 21.8 KB

0.50.2

  • There is a new method for getting a single commit comment, supporting also retrieval and adding reactions in GitHub. (#865)

0.50.1

  • We have fixed an issue that caused inconsistencies with the expected behavior stated by the documentation when adding duplicate reactions to GitLab comments. (#861)

0.50.0

  • A new get_commits method was implemented for GitHub and Gitlab projects. (#857)
  • An issue with silently ignoring error (#760) was fixed. (#855)

0.49.2

  • GitLabProject.get_file_content can now correctly handle file paths starting with ./. (#844)

0.49.1

  • Interface for labels was unified and labels property for PullRequest and Issue now return list of PRLabel and IssueLabel respectively. (#839)

0.49.0

  • For Pagure there are 2 new methods available: one for getting users with specified access rights and one for getting members of a group. (#834)

0.48.1

  • Fix log level and wording when Pagure returns an error while retrieving Pagure PR diffstats.

0.48.0

  • There is a new get_pr_files_diff method supported for Pagure. (#826)
  • We have fixed a bug that GithubRelease.url returned an API URL. (#824)

0.47.1

  • Fixed an issue where getting a list of GitLab merge requests using .list() would return only 20 items. (#819)

0.47.0

  • Added support for removing users/groups from a project and possibility to check for groups with permissions to modify a PR. (#815)

0.46.2

  • Added missing README to package metadata.

0.46.1

  • Migrated from setup.py + setup.cfg to pyproject.toml with hatchling as a build backend and to pyproject macros in the spec file. (#808)

0.46.0

  • We have fixed a bug in get_fork method for Pagure about checking the usernames for a match when going through existing forks. (#800)

0.45.0

  • OGR now supports PyGithub >= 1.58.

0.44.0

  • OGR now understands a few community-hosted GitLab instances that could not be determined automatically from the hostname. Thanks to that, you don't need to hardcode these instances to be mapped correctly. (#775)

0.43.0

  • Fixes an issue with project->service mapping where the service with an url not containing the service type wasn't matched. (#771)

0.42.0

  • A bug in ogr resulting in returning only first page of pull requests for Pagure has been fixed. (#761)
  • ogr now raises GitForgeInternalError rather than PagureAPIException when getting 50x response from the Pagure API. (#762)

0.41.0

  • CommitComment.comment has been deprecated in favour of CommitComment.body to make the naming consistent across objects. (#748)
  • ogr now requires Python 3.9 or later. (#746)

0.40.0

  • Using the method users_with_write_access you can generate the set of users that have write access to the project and the method has_write_access(user) you can find out if the user has write access to the project. (#742)

0.39.0

  • We have implemented the closed_by property for the Pagure pull request for getting the login of the account that closed the pull request. (#718)

0.38.1

  • When using Tokman as GitHub authentication mechanism, ogr will now raise GithubAppNotInstalledError instead of failing with generic GithubAPIException when app providing tokens is not installed on the repository.
  • Use the standard library instead of setuptools for getting the version on Python 3.8+, or a smaller package on older Pythons. This also fixes the packaging issue with missing pkg_resources.

0.38.0

  • ogr now correctly raises OgrException when given invalid URL to PagureService.get_project_from_url. (#705)
  • We have fixed a bug in ogr that caused IssueTrackerDisabled being raised only when trying to create an issue on git project with disabled issue tracker. Now it is also raised when getting a specific issue or an issue list. (#703)

0.37.0

  • We have added a new optional parameter, namespace, to the fork_create method on Git projects, which allows you to fork a project into a specific namespace. (Forking to namespaces is not allowed on Pagure.) (#685)
  • We have implemented a get_contributors function that can be used to get the contributors of a GitHub (set of logins) and GitLab (set of authors) project. (#692)
  • We have introduced a new exception class GitForgeInternalError that indicates a failure that happened within the forge (indicated via 50x status code). \*APIException have been given a new superclass APIException that provides status code from forge (in case of error, invalid operation, etc.). (#690)
  • We have added a new property to git projects, has_issues, that indicates whether project has enabled issues or not. Following up on the property, create_issue now raises IssueTrackerDisabled when the project doesn't have issues enabled. (#684)

0.36.0

  • Release class has been reworked and create_release has been made part of the API for GitProject. (#670)
  • Factory method for acquiring project or service class from URL has been improved by checking just the hostname for determining the service. (#682)

0.35.0

  • We have added target_branch_head_commit property to the PullRequest class in ogr that allows you to get commit hash of the HEAD of the target branch (i.e. base, where the changes are merged to).

0.34.0

  • We have introduced a new function into ogr that allows you to get commit SHA of the HEAD of the branch. (#668)
  • A list of Gitlab projects provided by GitlabService.list_projects() now contains objects with additional metadata. (#667)

0.33.0

  • OGR now fully supports getting PR comments by its ID.

0.32.0

  • Removal of features which have been marked as deprecated since 0.14.0.
    • Removal of renamed properties
      • Comment.comment -> Comment.body
      • BasePullRequest.project -> BasePullRequest.target_project
    • Removal of methods for accessing issues or pull requests from GitProject class.
    • String can no longer be used as commit status, CommitStatus is now required.
    • PullRequest constructor has been refactored. In order to use static and offline representation of a pull request, use PullRequestReadOnly instead.
  • GithubCheckRun.app property has been added for accessing GithubApp.

0.31.0

  • Ogr now catches internal exceptions from Gitlab and Github and converts them to ogr exceptions, GitlabAPIException and GithubAPIException, respectively. A new exception, OgrNetworkError, has been introduced for signalling situations where a request could not be performed due to a network outage. (#642)
  • The documentation was converted to Google-style docstrings. (#646)
  • Releases and development builds of ogr are now built in copr projects packit/packit-dev and packit/packit-releases. (#644)

0.30.0

  • New method to get pull request and issue comments by their comment ID on GitHub and GitLab.

0.29.0

  • Please check COMPATIBILITY.md to see which methods are implemented for particular services.
  • Ogr now supports reacting to a comment (issue, pull request) with a given reaction. It's possible to obtain the reactions and delete them (only when reaction is added by using ogr API). (#636)

0.28.0

  • Getting conclusion from GitHub's Check Run no longer raises an exception when it's not defined, it returns None instead now. (#618)
  • When using parsing functions, pkgs.[stg.]fedoraproject.org are mapped to PagureService. (#620)
  • Fix inconsistency of merge_commit_sha for GitLab's PRs. (#626)

0.27.0

  • Implement description get/set property in projects. (#600)
  • Support using the merge ref instead of the head ref in a pull request. (#601)
  • Implement patch property in GithubPullRequest and GitlabPullRequest. (#613, #614)

0.26.0

0.25.0

  • Add support for listing of projects in GitLab and Github (by our external contributor @abkosar)

0.24.1

  • Fixed problems with imports from 'gitlab' modules.

0.24.0

  • Exceptions for non-supported features were refactored.
  • Behaviour of Github.get_file_content() was unified with GitLab and Pagure.

0.23.0

  • Fixed authentication of 'gitlab' type.
  • Pagure: enable creating PRs from fork via fork_username.
  • Allow ignoring custom instances when creating a project.
  • Package is now PEP-561 compliant and mypy is able to use the type information when importing it.

0.22.0

Features

  • The retry mechanism of a GithubService can be customized using max_retries. #537

Minor

  • get_latest_release() returns None, instead of raising an exception, when there were no release in the project, yet. #542

0.21.0

Features

  • Implemented get_files for Pagure projects (by @mfocko).

Minor

0.20.0

Features

  • Add and implement commits_url property on pull requests (by @mfocko).
  • Implemented project.exists for GitHub projects (by @path2himanshu).

Minor

  • Raise more informative exception for edited property on GitLab's commit flag (by @mfocko).

0.19.0

Features

  • Add and implement GitProject.default_branch property, by @jpopelka, #515
    • All git forges support changing of a default branch of a repo/project. All newly created Github projects have had 'main' as a default branch instead of 'master' since October 2020.
  • PagureService: Make retries parametrizable via max_retries argument, by @csomh, #514
    • This way users of a PagureService object can control how failures of API calls are retried.

0.18.1

Minor

  • Added and polished __str__ and __repr__ methods.

Fixes

  • A bug in parsing GitLab URLs with sub-namespace was fixed and parsing was improved.

0.18.0

Features

  • Project now have delete functionality (@shreyaspapi).
  • Newly created issues can have assignees (@shreyaspapi).

Minor

  • It is now possible to use GitLab annonymously without specifying an authentication token. (@mfocko).

0.17.0

Features

  • GitLab projects got the exists() method implemented (@lachmanfrantisek).
  • It is possible to specify a description when creating projects with project_create() (@lachmanfrantisek).

Minor

  • When asking for a Pagure user's email address, the error raised explains that this is not possible due to the Pagure API not supporting this feature (@mfocko).

0.16.0

Features

  • Service classes now have hostname property (@lachmanfrantisek).

Internals

  • Contribution guide has been updated (@mfocko).
  • Tests have been refactored and test data regenerated (@jscotka, @mfocko, @lachmanfrantisek).
    • Minor refactor of parse_git_repo (@mfocko).
  • README now contains badges for tools that we use (pre-commit, black) (@lachmanfrantisek).

0.15.0

Features

  • Add support for repository names with sub-namespaces (multiple slashes) - this is possible with GitLab and Pagure (@lachmanfrantisek).

Minor

  • Validate GitHub flag states before setting them - this should give us more sensible errors right away (@mfocko).

Internals

  • Ignore type-checking for GitHub App to avoid mypy warnings: short-term workaround (@mfocko).
  • Update pre-commit configuration and fix mypy remarks (@mfocko).

0.14.0

Minor

  • Ogr now uses tokman for authentication with Github. (@mfocko)

Internals

  • Authentication related logic has been improved, refactored and moved from GithubProject to GithubService. (@mfocko)

0.13.1

Fixes

  • Creating issues in Github (GithubIssue.create) without label works now.

Internals

  • Because of "packit-service -> packit" GitHub organization rename, the required files were updated.
  • Documentation now contains Jupyter examples.

0.13.0

New Features

  • Ogr now supports creating private issues for GitLab (known as confidential issues) and Pagure.
  • Access to GitLab project can be requested via GitProject.request_access method.
  • You can now add a group to Pagure project.

0.12.2

  • GitlabPullRequest creates PRs in compliance with documentation. (@mfocko)
  • GitlabProject.get_file_content() returns string instead of bytes. (@shreyaspapi)

0.12.1

New Features

  • PullRequest can now be created also between two different forks of a project. (@mfocko)
  • PullRequests have a patch property now when working with Pagure. (@jpopelka)
  • You can now add collaborators with specific privileges on GitHub and GitLab projects. (@shreyaspapi)

Minor

  • When telling if a user can merge PRs in a GitHub repo, ogr asks GitHub for the user's permission on the repo instead of checking if the user is in the list of collaborators. (@csomh)

Fixes

  • get_project() will now correctly use the service instance class for custom. service instances. (@lachmanfrantisek)

0.12.0

New Features

  • PullRequest now has source_project/target_project (read-only) properties. (@mfocko)
  • GitHub and GitLab now have head_commit on PullRequests implemented as well. (@mfocko)

Minor

  • Add git.centos.org to the instances that do not have private repositories. (@csomh)

Fixes

  • Creating PRs to fork now work on GitHub. (@saisankargochhayat)

0.11.3

New Features

  • You can now set a title and a description for PagureIssue.

Fixes

  • GitLab classes can now process more than 20 objects (ogr now plays well with the GitLab's pagination mechanism).
  • ogr no longer uses backticks in error messages related to Pagure (so they can be displayed nicely in markdown formatting).

Internals

  • Since rpmautospec is deployed in staging environment only, we have reverted the related changes.

0.11.2

New Features

  • A new method to set flags on Pagure PRs was added. (@csomh)
    • It is Pagure-specific.
    • Other git-forges do not have this as they display the flags of the head commit on PRs.
  • CommitFlag now has created/edited properties. (@TomasJani)

Minor

  • Pagure service is used for CentOS prod/stg instances by default. (@jsakalos)
  • We now forward the specific errors from the Pagure API. (@TomasTomecek)

Fixes

  • Pagination of PR comments on Pagure was fixed. (@AdarLavi)

Internals

  • Tests were removed from the zuul gating pipeline. (@lbarcziova)
  • We now use rpmautospec for generating changelogs in Fedora. (@TomasTomecek)

0.11.1

New Features

  • Added head_commit property to PagurePullrequest. (@jsakalos)

Fixes

  • Packit rev-dep tests were refactored. (@lbarcziova)
  • Descriptions in playbooks were fixed. (@lbarcziova)
  • GitHubProject raises exception in case of missing install id . (@ttomecek)

0.11.0

New Features

  • Creating of Pagure issues now supports tags. (@cverna)
  • Project issues can now be filtered by labels. (@cverna)
  • GitProject has new is_private() method. (@dhodovsk)
  • Tokens & keys are now obfuscated in logs. (@lachmanfrantisek)
  • PR classes now have diff_url property. (@pawelkopka)

Fixes

  • Trailing slash from URLs is now removed before parsing. (@nickcannariato)
  • Getting of projects defined with SSH URLs is fixed. (@TomasTomecek)

0.10.0

New Features

  • Listing of the issues now supports filtering by author/assignee.
  • It is now possible to list files in the remote repository.
  • Github project class have a get_tags method.
  • Issue and pull-request can be edited via properties.

Fixes

  • Fork of the repository contains correct name and namespace after the forking.
  • Pagure's project_create* was improved.

0.9.0

New Features

  • General restructure of the classes thanks to the Red Hat Open Source Contest project done by @mfocko. _ Classes are better linked together. _ Functionality is moved to the classes from the GitProject classes. _ You can now use the properties (setters) to modify objects. _ Old behaviour should work as before, but will raise deprecation warnings.

Fixes

  • Creating of the GitHub pull-requests from the forked repository was fixed. (@sakalosj)

0.8.0

New Features

  • GitLab implementation is now feature-complete. (@lbarcziova)
  • Added a get_web_url method to project classes. (@mfocko)
  • Added methods for creating projects to service classes. (@lachmanfrantisek, @mfocko)

Fixes

  • GitHub pull-requests are no longer listed in issue methods. (@mfocko)

Minor

  • Implementations of the full_repo_name property were improved. (@mfocko)
  • New quickstart example added to the README. (@rpitonak)

0.7.0

New Features

  • Introduced a first version of GitLab support. (Implementation is not completed yet.) (@lbarcziova)
  • Added a method for loading services from dictionary. (@lachmanfrantisek)
  • Release objects have a method for editing. (@lbarcziova)
  • Added a function for getting all commits from specific PR. (@phracek)

Fixes

  • Fix creating pull-request from fork to upstream on new versions of Pagure. (@lachmanfrantisek)
  • Use web url in Pagure issue. (@dustymabe)

Minor

  • Add cryptography to dependencies to be able to authenticate as a github app. (@lachmanfrantisek)
  • Add github_app_private_key_path parameter to GithubService. (@lachmanfrantisek)
  • Make the pagure service mapping more general. (@lachmanfrantisek)
  • The tests in CI (zuul) runs both on pip and rpm versions of dependencies. (@lachmanfrantisek)
  • We no longer use Centos CI Jenkins. (@jpopelka)
  • Run Pagure tests on one repository: https://pagure.io/api/0/ogr-tests. (@lbarcziova)

0.6.0

New Features

  • Possibility to authenticate via github-app. (@lachmanfrantisek)
  • New method get_latest_release() for projects. (@marusinm)
  • New method for creating releases in GitHub. (@lbarcziova)
  • Add method for getting releases for Pagure. (@lbarcziova)
  • Add labels for GitHub pull-requests. (@marusinm)
  • New methods for getting pull-request/issue permissions (who_can_marge_pr, who_can_close_issue, can_close_issue and can_merge_pr). (@marusinm)
  • New methods to get project's owners and permissions of various users. (@marusinm)
  • Link GitTag to Release object. (@lbarcziova)
  • Add method for creating projects/services from url. (@lachmanfrantisek)
  • Creating/closing/commenting Pagure Issues. (@marusinm)

Fixes

  • Correct status handling for Github pull-requests. (@marusinm)
  • Fix error 404 on get_file_content. (@lbarcziova)

Minor

  • Simplify usage of persistent storage and mocking. (@lachmanfrantisek)
  • CommitStatus renamed to CommitFlag. (@lbarcziova)
  • Add zuul as a CI system. (@TomasTomecek)
  • Removed unused functions. (@lbarcziova)
  • Unify external command invocation by subprocess.run. (@lbarcziova)
  • Add __str__ and __eq__ for classes. (@shreyanshrs44, @lachmanfrantisek)

0.5.0

New Features

  • Add support for Github issues. (@marusinm)
  • New methods for updating pull-requests. (@lbarcziova)
  • New methods for getting forks for user/project. (@lachmanfrantisek)

Fixes

  • Better support for forks and forking. (@lachmanfrantisek)
  • Fix a problem when Pagure token is not set. (@lachmanfrantisek)

Minor

  • Write mode in testing is determined whether a respective offline file exists or not. (@lachmanfrantisek)
  • Allow saving sequence of responses during tests. (@lachmanfrantisek)

0.4.0

  • Ogr no longer uses libpagure and calls Pagure API directly.
  • PersistentObjectStorage can serialize data into yaml file after calling store().

0.3.1

Fixes

  • Added missing module ogr.services.mock

0.3.0

New Features

  • Mocking of GitHub and Pagure APIs for testing ogr and packit has been greatly improved.
  • GithubProject now implements adding of PR comments and also comments and status on a commit.

0.2.0

New Features

  • GithubProject now fully supports all the forking-related methods.
  • GitProject class now has a parent property to get the original GitProject of a fork.
  • Methods related to forking received usability updates: they should be now easier to work with and you'll need to write less code.
  • The upstream project now has a CONTRIBUTING.md file. All your contributions are welcome!

Fixes

  • New github pull request now link to the URL on web interface instead of API.

Minor

  • We have implemented multiple tools to increate code quality: coverage, black, pre-commit, mypy, flake8
    • All of them run in CI as well.

0.1.0

New Features

  • Ogr now has an API for Github releases.

Minor

  • We have started using black, flake8 and mypy to improve the code quality.

  • We are running upstream CI in CentosCI.

  • Ogr is using packit to bring upstream releases to Fedora.

0.0.3

Fixes

  • Fix the Python3.6 compatibility:
    • remove dataclasses
    • use strings for type annotations

0.0.2

New Features

  • You can now search/filter pull-request comments.
  • New methods for changing tokens.
  • Basic support for GitHub.
  • New method for a file content.

Breaking changes

  • The GitHub repo was moved to the packit-service organization.

Fixes

  • Object representation of the pull-request and pull-request commend.