ChangeLog - Moved to GitHub releases

The changes of newer versions can be found at https://github.com/python-gitlab/python-gitlab/releases

Version 1.9.0 - 2019-06-19

Features

  • implement artifacts deletion
  • add endpoint to get the variables of a pipeline
  • delete ProjectPipeline
  • implement __eq__ and __hash__ methods
  • Allow runpy invocation of CLI tool (python -m gitlab)
  • add project releases api
  • merged new release & registry apis

Bug Fixes

  • convert # to %23 in URLs
  • pep8 errors
  • use python2 compatible syntax for super
  • Make MemberManager.all() return a list of objects
  • %d replaced by %s
  • Re-enable command specific help messages
  • dont ask for id attr if this is *Manager originating custom action
  • fix -/_ replacament for *Manager custom actions
  • fix repository_id marshaling in cli
  • register cli action for delete_in_bulk

Version 1.8.0 - 2019-02-22

  • docs(setup): use proper readme on PyPI
  • docs(readme): provide commit message guidelines
  • fix(api): make reset_time_estimate() work again
  • fix: handle empty ‘Retry-After’ header from GitLab
  • fix: remove decode() on error_message string
  • chore: release tags to PyPI automatically
  • fix(api): avoid parameter conflicts with python and gitlab
  • fix(api): Don’t try to parse raw downloads
  • feat: Added approve & unapprove method for Mergerequests
  • fix all kwarg behaviour

Version 1.7.0 - 2018-12-09

  • [docs] Fix the owned/starred usage documentation
  • [docs] Add a warning about http to https redirects
  • Fix the https redirection test
  • [docs] Add a note about GroupProject limited API
  • Add missing comma in ProjectIssueManager _create_attrs
  • More flexible docker image
  • Add project protected tags management
  • [cli] Print help and usage without config file
  • Rename MASTER_ACCESS to MAINTAINER_ACCESS
  • [docs] Add docs build information
  • Use docker image with current sources
  • [docs] Add PyYAML requirement notice
  • Add Gitter badge to README
  • [docs] Add an example of pipeline schedule vars listing
  • [cli] Exit on config parse error, instead of crashing
  • Add support for resource label events
  • [docs] Fix the milestone filetring doc (iid -> iids)
  • [docs] Fix typo in custom attributes example
  • Improve error message handling in exceptions
  • Add support for members all() method
  • Add access control options to protected branch creation

Version 1.6.0 - 2018-08-25

  • [docs] Don’t use hardcoded values for ids
  • [docs] Improve the snippets examples
  • [cli] Output: handle bytes in API responses
  • [cli] Fix the case where we have nothing to print
  • Project import: fix the override_params parameter
  • Support group and global MR listing
  • Implement MR.pipelines()
  • MR: add the squash attribute for create/update
  • Added support for listing forks of a project
  • [docs] Add/update notes about read-only objects
  • Raise an exception on https redirects for PUT/POST
  • [docs] Add a FAQ
  • [cli] Fix the project-export download

Version 1.5.1 - 2018-06-23

  • Fix the ProjectPipelineJob base class (regression)

Version 1.5.0 - 2018-06-22

  • Drop API v3 support
  • Drop GetFromListMixin
  • Update the sphinx extension for v4 objects
  • Add support for user avatar upload
  • Add support for project import/export
  • Add support for the search API
  • Add a global per_page config option
  • Add support for the discussions API
  • Add support for merged branches deletion
  • Add support for Project badges
  • Implement user_agent_detail for snippets
  • Implement commit.refs()
  • Add commit.merge_requests() support
  • Deployment: add list filters
  • Deploy key: add missing attributes
  • Add support for environment stop()
  • Add feature flags deletion support
  • Update some group attributes
  • Issues: add missing attributes and methods
  • Fix the participants() decorator
  • Add support for group boards
  • Implement the markdown rendering API
  • Update MR attributes
  • Add pipeline listing filters
  • Add missing project attributes
  • Implement runner jobs listing
  • Runners can be created (registered)
  • Implement runner token validation
  • Update the settings attributes
  • Add support for the gitlab CI lint API
  • Add support for group badges
  • Fix the IssueManager path to avoid redirections
  • time_stats(): use an existing attribute if available
  • Make ProjectCommitStatus.create work with CLI
  • Tests: default to python 3
  • ProjectPipelineJob was defined twice
  • Silence logs/warnings in unittests
  • Add support for MR approval configuration (EE)
  • Change post_data default value to None
  • Add geo nodes API support (EE)
  • Add support for issue links (EE)
  • Add support for LDAP groups (EE)
  • Add support for board creation/deletion (EE)
  • Add support for Project.pull_mirror (EE)
  • Add project push rules configuration (EE)
  • Add support for the EE license API
  • Add support for the LDAP groups API (EE)
  • Add support for epics API (EE)
  • Fix the non-verbose output of ProjectCommitComment

Version 1.4.0 - 2018-05-19

  • Require requests>=2.4.2
  • ProjectKeys can be updated
  • Add support for unsharing projects (v3/v4)
  • [cli] fix listing for json and yaml output
  • Fix typos in documentation
  • Introduce RefreshMixin
  • [docs] Fix the time tracking examples
  • [docs] Commits: add an example of binary file creation
  • [cli] Allow to read args from files
  • Add support for recursive tree listing
  • [cli] Restore the –help option behavior
  • Add basic unit tests for v4 CLI
  • [cli] Fix listing of strings
  • Support downloading a single artifact file
  • Update docs copyright years
  • Implement attribute types to handle special cases
  • [docs] fix GitLab reference for notes
  • Expose additional properties for Gitlab objects
  • Fix the impersonation token deletion example
  • feat: obey the rate limit
  • Fix URL encoding on branch methods
  • [docs] add a code example for listing commits of a MR
  • [docs] update service.available() example for API v4
  • [tests] fix functional tests for python3
  • api-usage: bit more detail for listing with all
  • More efficient .get() for group members
  • Add docs for the files arg in http_*
  • Deprecate GetFromListMixin

Version 1.3.0 - 2018-02-18

  • Add support for pipeline schedules and schedule variables
  • Clarify information about supported python version
  • Add manager for jobs within a pipeline
  • Fix wrong tag example
  • Update the groups documentation
  • Add support for MR participants API
  • Add support for getting list of user projects
  • Add Gitlab and User events support
  • Make trigger_pipeline return the pipeline
  • Config: support api_version in the global section
  • Gitlab can be used as context manager
  • Default to API v4
  • Add a simplified example for streamed artifacts
  • Add documentation about labels update

Version 1.2.0 - 2018-01-01

  • Add mattermost service support
  • Add users custom attributes support
  • [doc] Fix project.triggers.create example with v4 API
  • Oauth token support
  • Remove deprecated objects/methods
  • Rework authentication args handling
  • Add support for oauth and anonymous auth in config/CLI
  • Add support for impersonation tokens API
  • Add support for user activities
  • Update user docs with gitlab URLs
  • [docs] Bad arguments in projects file documentation
  • Add support for user_agent_detail (issues)
  • Add a SetMixin
  • Add support for project housekeeping
  • Expected HTTP response for subscribe is 201
  • Update pagination docs for ProjectCommit
  • Add doc to get issue from iid
  • Make todo() raise GitlabTodoError on error
  • Add support for award emojis
  • Update project services docs for v4
  • Avoid sending empty update data to issue.save
  • [docstrings] Explicitly document pagination arguments
  • [docs] Add a note about password auth being removed from GitLab
  • Submanagers: allow having undefined parameters
  • ProjectFile.create(): don’t modify the input data
  • Update testing tools for /session removal
  • Update groups tests
  • Allow per_page to be used with generators
  • Add groups listing attributes
  • Add support for subgroups listing
  • Add supported python versions in setup.py
  • Add support for pagesdomains
  • Add support for features flags
  • Add support for project and group custom variables
  • Add support for user/group/project filter by custom attribute
  • Respect content of REQUESTS_CA_BUNDLE and *_proxy envvars

Version 1.1.0 - 2017-11-03

  • Fix trigger variables in v4 API
  • Make the delete() method handle / in ids
  • [docs] update the file upload samples
  • Tags release description: support / in tag names
  • [docs] improve the labels usage documentation
  • Add support for listing project users
  • ProjectFileManager.create: handle / in file paths
  • Change ProjectUser and GroupProject base class
  • [docs] document get_create_attrs in the API tutorial
  • Document the Gitlab session parameter
  • ProjectFileManager: custom update() method
  • Project: add support for printing_merge_request_link_enabled attr
  • Update the ssl_verify docstring
  • Add support for group milestones
  • Add support for GPG keys
  • Add support for wiki pages
  • Update the repository_blob documentation
  • Fix the CLI for objects without ID (API v4)
  • Add a contributed Dockerfile
  • Pagination generators: expose more information
  • Module’s base objects serialization
  • [doc] Add sample code for client-side certificates

Version 1.0.2 - 2017-09-29

  • [docs] remove example usage of submanagers
  • Properly handle the labels attribute in ProjectMergeRequest
  • ProjectFile: handle / in path for delete() and save()

Version 1.0.1 - 2017-09-21

  • Tags can be retrieved by ID
  • Add the server response in GitlabError exceptions
  • Add support for project file upload
  • Minor typo fix in “Switching to v4” documentation
  • Fix password authentication for v4
  • Fix the labels attrs on MR and issues
  • Exceptions: use a proper error message
  • Fix http_get method in get artifacts and job trace
  • CommitStatus: sha is parent attribute
  • Fix a couple listing calls to allow proper pagination
  • Add missing doc file

Version 1.0.0 - 2017-09-08

  • Support for API v4. See http://python-gitlab.readthedocs.io/en/master/switching-to-v4.html
  • Support SSL verification via internal CA bundle
  • Docs: Add link to gitlab docs on obtaining a token
  • Added dependency injection support for Session
  • Fixed repository_compare examples
  • Fix changelog and release notes inclusion in sdist
  • Missing expires_at in GroupMembers update
  • Add lower-level methods for Gitlab()

Version 0.21.2 - 2017-06-11

  • Install doc: use sudo for system commands
  • [v4] Make MR work properly
  • Remove extra_attrs argument from _raw_list
  • [v4] Make project issues work properly
  • Fix urlencode() usage (python 2/3) (#268)
  • Fixed spelling mistake (#269)
  • Add new event types to ProjectHook

Version 0.21.1 - 2017-05-25

  • Fix the manager name for jobs in the Project class
  • Fix the docs

Version 0.21 - 2017-05-24

  • Add time_stats to ProjectMergeRequest
  • Update User options for creation and update (#246)
  • Add milestone.merge_requests() API
  • Fix docs typo (s/correspnding/corresponding/)
  • Support milestone start date (#251)
  • Add support for priority attribute in labels (#256)
  • Add support for nested groups (#257)
  • Make GroupProjectManager a subclass of ProjectManager (#255)
  • Available services: return a list instead of JSON (#258)
  • MR: add support for time tracking features (#248)
  • Fixed repository_tree and repository_blob path encoding (#265)
  • Add ‘search’ attribute to projects.list()
  • Initial gitlab API v4 support
  • Reorganise the code to handle v3 and v4 objects
  • Allow 202 as delete return code
  • Deprecate parameter related methods in gitlab.Gitlab

Version 0.20 - 2017-03-25

  • Add time tracking support (#222)
  • Improve changelog (#229, #230)
  • Make sure that manager objects are never overwritten (#209)
  • Include chanlog and release notes in docs
  • Add DeployKey{,Manager} classes (#212)
  • Add support for merge request notes deletion (#227)
  • Properly handle extra args when listing with all=True (#233)
  • Implement pipeline creation API (#237)
  • Fix spent_time methods
  • Add ‘delete source branch’ option when creating MR (#241)
  • Provide API wrapper for cherry picking commits (#236)
  • Stop listing if recursion limit is hit (#234)

Version 0.19 - 2017-02-21

  • Update project.archive() docs
  • Support the scope attribute in runners.list()
  • Add support for project runners
  • Add support for commit creation
  • Fix install doc
  • Add builds-email and pipelines-email services
  • Deploy keys: rework enable/disable
  • Document the dynamic aspect of objects
  • Add pipeline_events to ProjectHook attrs
  • Add due_date attribute to ProjectIssue
  • Handle settings.domain_whitelist, partly
  • {Project,Group}Member: support expires_at attribute

Version 0.18 - 2016-12-27

  • Fix JIRA service editing for GitLab 8.14+
  • Add jira_issue_transition_id to the JIRA service optional fields
  • Added support for Snippets (new API in Gitlab 8.15)
  • [docs] update pagination section
  • [docs] artifacts example: open file in wb mode
  • [CLI] ignore empty arguments
  • [CLI] Fix wrong use of arguments
  • [docs] Add doc for snippets
  • Fix duplicated data in API docs
  • Update known attributes for projects
  • sudo: always use strings

Version 0.17 - 2016-12-02

  • README: add badges for pypi and RTD
  • Fix ProjectBuild.play (raised error on success)
  • Pass kwargs to the object factory
  • Add .tox to ignore to respect default tox settings
  • Convert response list to single data source for iid requests
  • Add support for boards API
  • Add support for Gitlab.version()
  • Add support for broadcast messages API
  • Add support for the notification settings API
  • Don’t overwrite attributes returned by the server
  • Fix bug when retrieving changes for merge request
  • Feature: enable / disable the deploy key in a project
  • Docs: add a note for python 3.5 for file content update
  • ProjectHook: support the token attribute
  • Rework the API documentation
  • Fix docstring for http_{username,password}
  • Build managers on demand on GitlabObject’s
  • API docs: add managers doc in GitlabObject’s
  • Sphinx ext: factorize the build methods
  • Implement __repr__ for gitlab objects
  • Add a ‘report a bug’ link on doc
  • Remove deprecated methods
  • Implement merge requests diff support
  • Make the manager objects creation more dynamic
  • Add support for templates API
  • Add attr ‘created_at’ to ProjectIssueNote
  • Add attr ‘updated_at’ to ProjectIssue
  • CLI: add support for project all –all
  • Add support for triggering a new build
  • Rework requests arguments (support latest requests release)
  • Fix should_remove_source_branch

Version 0.16 - 2016-10-16

  • Add the ability to fork to a specific namespace
  • JIRA service - add api_url to optional attributes
  • Fix bug: Missing coma concatenates array values
  • docs: branch protection notes
  • Create a project in a group
  • Add only_allow_merge_if_build_succeeds option to project objects
  • Add support for –all in CLI
  • Fix examples for file modification
  • Use the plural merge_requests URL everywhere
  • Rework travis and tox setup
  • Workaround gitlab setup failure in tests
  • Add ProjectBuild.erase()
  • Implement ProjectBuild.play()

Version 0.15.1 - 2016-10-16

  • docs: improve the pagination section
  • Fix and test pagination
  • ‘path’ is an existing gitlab attr, don’t use it as method argument

Version 0.15 - 2016-08-28

  • Add a basic HTTP debug method
  • Run more tests in travis
  • Fix fork creation documentation
  • Add more API examples in docs
  • Update the ApplicationSettings attributes
  • Implement the todo API
  • Add sidekiq metrics support
  • Move the constants at the gitlab root level
  • Remove methods marked as deprecated 7 months ago
  • Refactor the Gitlab class
  • Remove _get_list_or_object() and its tests
  • Fix canGet attribute (typo)
  • Remove unused ProjectTagReleaseManager class
  • Add support for project services API
  • Add support for project pipelines
  • Add support for access requests
  • Add support for project deployments

Version 0.14 - 2016-08-07

  • Remove ‘next_url’ from kwargs before passing it to the cls constructor.
  • List projects under group
  • Add support for subscribe and unsubscribe in issues
  • Project issue: doc and CLI for (un)subscribe
  • Added support for HTTP basic authentication
  • Add support for build artifacts and trace
  • –title is a required argument for ProjectMilestone
  • Commit status: add optional context url
  • Commit status: optional get attrs
  • Add support for commit comments
  • Issues: add optional listing parameters
  • Issues: add missing optional listing parameters
  • Project issue: proper update attributes
  • Add support for project-issue move
  • Update ProjectLabel attributes
  • Milestone: optional listing attrs
  • Add support for namespaces
  • Add support for label (un)subscribe
  • MR: add (un)subscribe support
  • Add note_events to project hooks attributes
  • Add code examples for a bunch of resources
  • Implement user emails support
  • Project: add VISIBILITY_* constants
  • Fix the Project.archive call
  • Implement archive/unarchive for a projet
  • Update ProjectSnippet attributes
  • Fix ProjectMember update
  • Implement sharing project with a group
  • Implement CLI for project archive/unarchive/share
  • Implement runners global API
  • Gitlab: add managers for build-related resources
  • Implement ProjectBuild.keep_artifacts
  • Allow to stream the downloads when appropriate
  • Groups can be updated
  • Replace Snippet.Content() with a new content() method
  • CLI: refactor _die()
  • Improve commit statuses and comments
  • Add support from listing group issues
  • Added a new project attribute to enable the container registry.
  • Add a contributing section in README
  • Add support for global deploy key listing
  • Add support for project environments
  • MR: get list of changes and commits
  • Fix the listing of some resources
  • MR: fix updates
  • Handle empty messages from server in exceptions
  • MR (un)subscribe: don’t fail if state doesn’t change
  • MR merge(): update the object

Version 0.13 - 2016-05-16

  • Add support for MergeRequest validation
  • MR: add support for cancel_merge_when_build_succeeds
  • MR: add support for closes_issues
  • Add “external” parameter for users
  • Add deletion support for issues and MR
  • Add missing group creation parameters
  • Add a Session instance for all HTTP requests
  • Enable updates on ProjectIssueNotes
  • Add support for Project raw_blob
  • Implement project compare
  • Implement project contributors
  • Drop the next_url attribute when listing
  • Remove unnecessary canUpdate property from ProjectIssuesNote
  • Add new optional attributes for projects
  • Enable deprecation warnings for gitlab only
  • Rework merge requests update
  • Rework the Gitlab.delete method
  • ProjectFile: file_path is required for deletion
  • Rename some methods to better match the API URLs
  • Deprecate the file_* methods in favor of the files manager
  • Implement star/unstar for projects
  • Implement list/get licenses
  • Manage optional parameters for list() and get()

Version 0.12.2 - 2016-03-19

  • Add new ProjectHook attributes
  • Add support for user block/unblock
  • Fix GitlabObject creation in _custom_list
  • Add support for more CLI subcommands
  • Add some unit tests for CLI
  • Add a coverage tox env
  • Define GitlabObject.as_dict() to dump object as a dict
  • Define GitlabObject.__eq__() and __ne__() equivalence methods
  • Define UserManager.search() to search for users
  • Define UserManager.get_by_username() to get a user by username
  • Implement “user search” CLI
  • Improve the doc for UserManager
  • CLI: implement user get-by-username
  • Re-implement _custom_list in the Gitlab class
  • Fix the ‘invalid syntax’ error on Python 3.2
  • Gitlab.update(): use the proper attributes if defined

Version 0.12.1 - 2016-02-03

  • Fix a broken upload to pypi

Version 0.12 - 2016-02-03

  • Improve documentation
  • Improve unit tests
  • Improve test scripts
  • Skip BaseManager attributes when encoding to JSON
  • Fix the json() method for python 3
  • Add Travis CI support
  • Add a decode method for ProjectFile
  • Make connection exceptions more explicit
  • Fix ProjectLabel get and delete
  • Implement ProjectMilestone.issues()
  • ProjectTag supports deletion
  • Implement setting release info on a tag
  • Implement project triggers support
  • Implement project variables support
  • Add support for application settings
  • Fix the ‘password’ requirement for User creation
  • Add sudo support
  • Fix project update
  • Fix Project.tree()
  • Add support for project builds

Version 0.11.1 - 2016-01-17

  • Fix discovery of parents object attrs for managers
  • Support setting commit status
  • Support deletion without getting the object first
  • Improve the documentation

Version 0.11 - 2016-01-09

  • functional_tests.sh: support python 2 and 3
  • Add a get method for GitlabObject
  • CLI: Add the -g short option for –gitlab
  • Provide a create method for GitlabObject’s
  • Rename the _created attribute _from_api
  • More unit tests
  • CLI: fix error when arguments are missing (python 3)
  • Remove deprecated methods
  • Implement managers to get access to resources
  • Documentation improvements
  • Add fork project support
  • Deprecate the “old” Gitlab methods
  • Add support for groups search

Version 0.10 - 2015-12-29

  • Implement pagination for list() (#63)
  • Fix url when fetching a single MergeRequest
  • Add support to update MergeRequestNotes
  • API: Provide a Gitlab.from_config method
  • setup.py: require requests>=1 (#69)
  • Fix deletion of object not using ‘id’ as ID (#68)
  • Fix GET/POST for project files
  • Make ‘confirm’ an optional attribute for user creation
  • Python 3 compatibility fixes
  • Add support for group members update (#73)

Version 0.9.2 - 2015-07-11

  • CLI: fix the update and delete subcommands (#62)

Version 0.9.1 - 2015-05-15

  • Fix the setup.py script

Version 0.9 - 2015-05-15

  • Implement argparse library for parsing argument on CLI
  • Provide unit tests and (a few) functional tests
  • Provide PEP8 tests
  • Use tox to run the tests
  • CLI: provide a –config-file option
  • Turn the gitlab module into a proper package
  • Allow projects to be updated
  • Use more pythonic names for some methods
  • Deprecate some Gitlab object methods:
    • raw* methods should never have been exposed; replace them with _raw_* methods
    • setCredentials and setToken are replaced with set_credentials and set_token
  • Sphinx: don’t hardcode the version in conf.py

Version 0.8 - 2014-10-26

  • Better python 2.6 and python 3 support
  • Timeout support in HTTP requests
  • Gitlab.get() raised GitlabListError instead of GitlabGetError
  • Support api-objects which don’t have id in api response
  • Add ProjectLabel and ProjectFile classes
  • Moved url attributes to separate list
  • Added list for delete attributes

Version 0.7 - 2014-08-21

  • Fix license classifier in setup.py
  • Fix encoding error when printing to redirected output
  • Fix encoding error when updating with redirected output
  • Add support for UserKey listing and deletion
  • Add support for branches creation and deletion
  • Support state_event in ProjectMilestone (#30)
  • Support namespace/name for project id (#28)
  • Fix handling of boolean values (#22)

Version 0.6 - 2014-01-16

  • IDs can be unicode (#15)
  • ProjectMember: constructor should not create a User object
  • Add support for extra parameters when listing all projects (#12)
  • Projects listing: explicitly define arguments for pagination

Version 0.5 - 2013-12-26

  • Add SSH key for user
  • Fix comments
  • Add support for project events
  • Support creation of projects for users
  • Project: add methods for create/update/delete files
  • Support projects listing: search, all, owned
  • System hooks can’t be updated
  • Project.archive(): download tarball of the project
  • Define new optional attributes for user creation
  • Provide constants for access permissions in groups

Version 0.4 - 2013-09-26

  • Fix strings encoding (Closes #6)
  • Allow to get a project commit (GitLab 6.1)
  • ProjectMergeRequest: fix Note() method
  • Gitlab 6.1 methods: diff, blob (commit), tree, blob (project)
  • Add support for Gitlab 6.1 group members

Version 0.3 - 2013-08-27

  • Use PRIVATE-TOKEN header for passing the auth token
  • provide an AUTHORS file
  • cli: support ssl_verify config option
  • Add ssl_verify option to Gitlab object. Defaults to True
  • Correct url for merge requests API.

Version 0.2 - 2013-08-08

  • provide a pip requirements.txt
  • drop some debug statements

Version 0.1 - 2013-07-08

  • Initial release