Improper URLs are being sent in requests to the GitLab server for listing project commit statuses.
An example of what python-gitlab currently sends (as of v0.12.1) can be seen in the GitLab nginx access log:
"GET /api/v3/projects/34/statuses/f625542706870a50887ff00b2233cb1109661c76 HTTP/1.1" 405 2 "-" "python-requests/2.9.1"
You can see that GitLab response with a 405 error.
Cause
For some reason, the GitLab API has very different URLs for POSTing a new commit status and for getting or listing existing statuses for a commit.
GET /projects/:id/repository/commits/:sha/statuses
POST /projects/:id/statuses/:sha
-- GitLab CE API docs
Reproducing the problem
Example of testing it with Python:
gl=gitlab.Gitlab("http://ap-git.amx.internal/", private_token="XXXXXXXXXXXXXXXXXXXX")
g.projects.get("sandbox/msgparsedemo").commitstatuses.list(commit_id="f625542706870a50887ff00b2233cb1109661c76")
Example of testing it with CLI:
gitlab -v -c test.ini project-commit-status list --project-id=sandbox/msgparsedemo --commit-id=f625542706870a50887ff00b2233cb11096 61c76
Impossible to list objects (string indices must be integers)
Improper URLs are being sent in requests to the GitLab server for listing project commit statuses.
An example of what python-gitlab currently sends (as of v0.12.1) can be seen in the GitLab nginx access log:
You can see that GitLab response with a 405 error.
Cause
For some reason, the GitLab API has very different URLs for POSTing a new commit status and for getting or listing existing statuses for a commit.
-- GitLab CE API docs
Reproducing the problem
Example of testing it with Python:
Example of testing it with CLI: