Everything you need to know about using the Tectalic GitLab PHP API Client.
The Tectalic Gitlab REST API Client is a package that provides a convenient and straightforward way to interact with the Gitlab API from your PHP application.
You can purchase this package from https://tectalic.com/apis/gitlab.
To install this package into your PHP project, we recommend using Composer.
Please see the detailed instructions on configuring your project to access the Tectalic Composer repository.
You will need to log into the Tectalic account that purchased the Tectalic Gitlab REST API Client package to access these instructions.
Once you have followed the above instructions, install the package into your project:
composer require tectalic/gitlab
If you aren’t using Composer in your PHP project, you can choose to Download the latest release and install it into your PHP project manually.
If doing this, you will need to ensure that all dependencies listed in the package’s composer.json
file are also installed.
After installing the Tectalic Gitlab REST API Client package into your project, ensure you also have a compatible PSR-18 HTTP client such as ‘Guzzle’ or the Symfony ‘HTTP Client’.
You can use the following code sample and customize it to suit your application.
// Load your project's composer autoloader (if you aren't already doing so).require_once(__DIR__ . '/vendor/autoload.php');
use Symfony\Component\HttpClient\Psr18Client;use Tectalic\Gitlab\Client;use Tectalic\Gitlab\Manager; // Build a Tectalic Gitlab REST API Client globally.$httpClient = new Psr18Client();Manager::build($httpClient); // or // Build a Tectalic Gitlab REST API Client manually.$httpClient = new Psr18Client();$client = new Client($httpClient, Manager::BASE_URI);
The primary class you will interact with is the Client
class (Tectalic\Gitlab\Client
).
This Client
class also contains the helper methods that let you quickly access the 196 API Handlers.
Please see below for a complete list of supported handlers and methods.
This package supports 358 API Methods, which are grouped into 196 API Handlers.
See the table below for a full list of API Handlers and Methods.
API Handler Class and Method Name | Description | API Verb and URL |
---|---|---|
V3ApplicationSettings::list() |
Get the current application settings | GET /v3/application/settings |
V3ApplicationSettings::put() |
Modify application settings | PUT /v3/application/settings |
V3CiLint::post() |
Validation of .gitlab-ci.yml content | POST /v3/ci/lint |
V3DeployKeys::list() |
GET /v3/deploy_keys |
|
V3Dockerfiles::get() |
Get the list of the available template | GET /v3/dockerfiles |
V3Dockerfiles::getV3DockerfilesName() |
Get the text for a specific template present in local filesystem | GET /v3/dockerfiles/{name} |
V3Gitignores::get() |
Get the list of the available template | GET /v3/gitignores |
V3Gitignores::getV3GitignoresName() |
Get the text for a specific template present in local filesystem | GET /v3/gitignores/{name} |
V3GitlabCiYmls::list() |
Get the list of the available template | GET /v3/gitlab_ci_ymls |
V3GitlabCiYmls::getV3GitlabCiYmlsName() |
Get the text for a specific template present in local filesystem | GET /v3/gitlab_ci_ymls/{name} |
V3Groups::list() |
Get a groups list | GET /v3/groups |
V3Groups::post() |
Create a group. Available only for users who can create groups. | POST /v3/groups |
V3Groups::getV3GroupsId() |
Get a single group, with containing projects. | GET /v3/groups/{id} |
V3Groups::putV3GroupsId() |
Update a group. Available only for users who can administrate groups. | PUT /v3/groups/{id} |
V3Groups::deleteV3GroupsId() |
Remove a group. | DELETE /v3/groups/{id} |
V3GroupsAccessRequests::list() |
Gets a list of access requests for a group. | GET /v3/groups/{id}/access_requests |
V3GroupsAccessRequests::postV3GroupsId() |
Requests access for the authenticated user to a group. | POST /v3/groups/{id}/access_requests |
V3GroupsAccessRequests::deleteV3GroupsIdAccessRequestsUserId() |
Denies an access request for the given user. | DELETE /v3/groups/{id}/access_requests/{user_id} |
V3GroupsAccessRequestsApprove::putV3GroupsIdAccessRequestsUserId() |
Approves an access request for the given user. | PUT /v3/groups/{id}/access_requests/{user_id}/approve |
V3GroupsIssues::getV3GroupsId() |
Get a list of group issues | GET /v3/groups/{id}/issues |
V3GroupsMembers::list() |
Gets a list of group or project members viewable by the authenticated user. | GET /v3/groups/{id}/members |
V3GroupsMembers::postV3GroupsId() |
Adds a member to a group or project. | POST /v3/groups/{id}/members |
V3GroupsMembers::getV3GroupsIdMembersUserId() |
Gets a member of a group or project. | GET /v3/groups/{id}/members/{user_id} |
V3GroupsMembers::putV3GroupsIdMembersUserId() |
Updates a member of a group or project. | PUT /v3/groups/{id}/members/{user_id} |
V3GroupsMembers::deleteV3GroupsIdMembersUserId() |
Removes a user from a group or project. | DELETE /v3/groups/{id}/members/{user_id} |
V3GroupsNotificationSettings::list() |
Get group level notification level settings, defaults to Global | GET /v3/groups/{id}/notification_settings |
V3GroupsNotificationSettings::putV3GroupsId() |
Update group level notification level settings, defaults to Global | PUT /v3/groups/{id}/notification_settings |
V3GroupsOwned::get() |
Get list of owned groups for authenticated user | GET /v3/groups/owned |
V3GroupsProjects::list() |
Get a list of projects in this group. | GET /v3/groups/{id}/projects |
V3GroupsProjects::postV3GroupsIdProjectsProjectId() |
Transfer a project to the group namespace. Available only for admin. | POST /v3/groups/{id}/projects/{project_id} |
V3Hooks::list() |
Get the list of system hooks | GET /v3/hooks |
V3Hooks::post() |
Create a new system hook | POST /v3/hooks |
V3Hooks::getV3HooksId() |
Test a hook | GET /v3/hooks/{id} |
V3Hooks::deleteV3HooksId() |
Delete a hook | DELETE /v3/hooks/{id} |
V3InternalAllowed::post() |
POST /v3/internal/allowed |
|
V3InternalBroadcastMessage::get() |
GET /v3/internal/broadcast_message |
|
V3InternalCheck::get() |
GET /v3/internal/check |
|
V3InternalDiscover::get() |
GET /v3/internal/discover |
|
V3InternalLfsAuthenticate::post() |
POST /v3/internal/lfs_authenticate |
|
V3InternalMergeRequestUrls::list() |
GET /v3/internal/merge_request_urls |
|
V3InternalTwoFactorRecoveryCodes::post() |
POST /v3/internal/two_factor_recovery_codes |
|
V3Issues::get() |
Get currently authenticated user’s issues | GET /v3/issues |
V3Keys::getV3KeysId() |
Get single ssh key by id. Only available to admin users | GET /v3/keys/{id} |
V3Licenses::get() |
Get the list of the available license template | GET /v3/licenses |
V3Licenses::getV3LicensesName() |
Get the text for a specific license | GET /v3/licenses/{name} |
V3Namespaces::get() |
Get a namespaces list | GET /v3/namespaces |
V3NotificationSettings::list() |
Get global notification level settings and email, defaults to Participate | GET /v3/notification_settings |
V3NotificationSettings::put() |
Update global notification level settings and email, defaults to Participate | PUT /v3/notification_settings |
V3Projects::list() |
Get a projects list for authenticated user | GET /v3/projects |
V3Projects::post() |
Create new project | POST /v3/projects |
V3Projects::getV3ProjectsId() |
Get a single project | GET /v3/projects/{id} |
V3Projects::putV3ProjectsId() |
Update an existing project | PUT /v3/projects/{id} |
V3Projects::deleteV3ProjectsId() |
Remove a project | DELETE /v3/projects/{id} |
V3ProjectsAccessRequests::list() |
Gets a list of access requests for a project. | GET /v3/projects/{id}/access_requests |
V3ProjectsAccessRequests::postV3ProjectsId() |
Requests access for the authenticated user to a project. | POST /v3/projects/{id}/access_requests |
V3ProjectsAccessRequests::deleteV3ProjectsIdAccessRequestsUserId() |
Denies an access request for the given user. | DELETE /v3/projects/{id}/access_requests/{user_id} |
V3ProjectsAccessRequestsApprove::putV3ProjectsIdAccessRequestsUserId() |
Approves an access request for the given user. | PUT /v3/projects/{id}/access_requests/{user_id}/approve |
V3ProjectsAll::get() |
Get all projects for admin user | GET /v3/projects/all |
V3ProjectsArchive::postV3ProjectsId() |
Archive a project | POST /v3/projects/{id}/archive |
V3ProjectsBoards::list() |
Get all project boards | GET /v3/projects/{id}/boards |
V3ProjectsBoardsLists::list() |
Get the lists of a project board | GET /v3/projects/{id}/boards/{board_id}/lists |
V3ProjectsBoardsLists::postV3ProjectsIdBoardsBoardId() |
Create a new board list | POST /v3/projects/{id}/boards/{board_id}/lists |
V3ProjectsBoardsLists::getV3ProjectsIdBoardsBoardIdListsListId() |
Get a list of a project board | GET /v3/projects/{id}/boards/{board_id}/lists/{list_id} |
V3ProjectsBoardsLists::putV3ProjectsIdBoardsBoardIdListsListId() |
Moves a board list to a new position | PUT /v3/projects/{id}/boards/{board_id}/lists/{list_id} |
V3ProjectsBoardsLists::deleteV3ProjectsIdBoardsBoardIdListsListId() |
Delete a board list | DELETE /v3/projects/{id}/boards/{board_id}/lists/{list_id} |
V3ProjectsBuilds::list() |
Get a project builds | GET /v3/projects/{id}/builds |
V3ProjectsBuilds::getV3ProjectsIdBuildsBuildId() |
Get a specific build of a project | GET /v3/projects/{id}/builds/{build_id} |
V3ProjectsBuildsArtifacts::list() |
Download the artifacts file from build | GET /v3/projects/{id}/builds/{build_id}/artifacts |
V3ProjectsBuildsArtifactsDownload::getV3ProjectsIdBuildsArtifactsRefName() |
Download the artifacts file from build | GET /v3/projects/{id}/builds/artifacts/{ref_name}/download |
V3ProjectsBuildsArtifactsKeep::postV3ProjectsIdBuildsBuildIdArtifacts() |
Keep the artifacts to prevent them from being deleted | POST /v3/projects/{id}/builds/{build_id}/artifacts/keep |
V3ProjectsBuildsCancel::postV3ProjectsIdBuildsBuildId() |
Cancel a specific build of a project | POST /v3/projects/{id}/builds/{build_id}/cancel |
V3ProjectsBuildsErase::postV3ProjectsIdBuildsBuildId() |
Erase build (remove artifacts and build trace) | POST /v3/projects/{id}/builds/{build_id}/erase |
V3ProjectsBuildsPlay::postV3ProjectsIdBuildsBuildId() |
Trigger a manual build | POST /v3/projects/{id}/builds/{build_id}/play |
V3ProjectsBuildsRetry::postV3ProjectsIdBuildsBuildId() |
Retry a specific build of a project | POST /v3/projects/{id}/builds/{build_id}/retry |
V3ProjectsBuildsTrace::getV3ProjectsIdBuildsBuildId() |
Get a trace of a specific build of a project | GET /v3/projects/{id}/builds/{build_id}/trace |
V3ProjectsDeployKeys::list() |
Get a specific project’s deploy keys | GET /v3/projects/{id}/deploy_keys |
V3ProjectsDeployKeys::postV3ProjectsId() |
Add new deploy key to currently authenticated user | POST /v3/projects/{id}/deploy_keys |
V3ProjectsDeployKeys::getV3ProjectsIdDeployKeysKeyId() |
Get single deploy key | GET /v3/projects/{id}/deploy_keys/{key_id} |
V3ProjectsDeployKeys::deleteV3ProjectsIdDeployKeysKeyId() |
Delete deploy key for a project | DELETE /v3/projects/{id}/deploy_keys/{key_id} |
V3ProjectsDeployKeysDisable::deleteV3ProjectsIdDeployKeysKeyId() |
Disable a deploy key for a project | DELETE /v3/projects/{id}/deploy_keys/{key_id}/disable |
V3ProjectsDeployKeysEnable::postV3ProjectsIdDeployKeysKeyId() |
Enable a deploy key for a project | POST /v3/projects/{id}/deploy_keys/{key_id}/enable |
V3ProjectsDeployments::list() |
Get all deployments of the project | GET /v3/projects/{id}/deployments |
V3ProjectsDeployments::getV3ProjectsIdDeploymentsDeploymentId() |
Gets a specific deployment | GET /v3/projects/{id}/deployments/{deployment_id} |
V3ProjectsEnvironments::list() |
Get all environments of the project | GET /v3/projects/{id}/environments |
V3ProjectsEnvironments::postV3ProjectsId() |
Creates a new environment | POST /v3/projects/{id}/environments |
V3ProjectsEnvironments::putV3ProjectsIdEnvironmentsEnvironmentId() |
Updates an existing environment | PUT /v3/projects/{id}/environments/{environment_id} |
V3ProjectsEnvironments::deleteV3ProjectsIdEnvironmentsEnvironmentId() |
Deletes an existing environment | DELETE /v3/projects/{id}/environments/{environment_id} |
V3ProjectsEvents::list() |
Get events for a single project | GET /v3/projects/{id}/events |
V3ProjectsFork::postV3ProjectsForkId() |
Fork new project for the current user or provided namespace. | POST /v3/projects/fork/{id} |
V3ProjectsFork::deleteV3ProjectsId() |
Remove a forked_from relationship | DELETE /v3/projects/{id}/fork |
V3ProjectsFork::postV3ProjectsIdForkForkedFromId() |
Mark this project as forked from another | POST /v3/projects/{id}/fork/{forked_from_id} |
V3ProjectsHooks::list() |
Get project hooks | GET /v3/projects/{id}/hooks |
V3ProjectsHooks::postV3ProjectsId() |
Add hook to project | POST /v3/projects/{id}/hooks |
V3ProjectsHooks::getV3ProjectsIdHooksHookId() |
Get a project hook | GET /v3/projects/{id}/hooks/{hook_id} |
V3ProjectsHooks::putV3ProjectsIdHooksHookId() |
Update an existing project hook | PUT /v3/projects/{id}/hooks/{hook_id} |
V3ProjectsHooks::deleteV3ProjectsIdHooksHookId() |
Deletes project hook | DELETE /v3/projects/{id}/hooks/{hook_id} |
V3ProjectsIssues::getV3ProjectsId() |
Get a list of project issues | GET /v3/projects/{id}/issues |
V3ProjectsIssues::postV3ProjectsId() |
Create a new project issue | POST /v3/projects/{id}/issues |
V3ProjectsIssues::getV3ProjectsIdIssuesIssueId() |
Get a single project issue | GET /v3/projects/{id}/issues/{issue_id} |
V3ProjectsIssues::putV3ProjectsIdIssuesIssueId() |
Update an existing issue | PUT /v3/projects/{id}/issues/{issue_id} |
V3ProjectsIssues::deleteV3ProjectsIdIssuesIssueId() |
Delete a project issue | DELETE /v3/projects/{id}/issues/{issue_id} |
V3ProjectsIssuesAddSpentTime::postV3ProjectsIdIssuesIssueId() |
Add spent time for a project issue | POST /v3/projects/{id}/issues/{issue_id}/add_spent_time |
V3ProjectsIssuesAwardEmoji::list() |
Get a list of project +awardable+ award emoji | GET /v3/projects/{id}/issues/{issue_id}/award_emoji |
V3ProjectsIssuesAwardEmoji::postV3ProjectsIdIssuesIssueId() |
Award a new Emoji | POST /v3/projects/{id}/issues/{issue_id}/award_emoji |
V3ProjectsIssuesAwardEmoji::getV3ProjectsIdIssuesIssueIdAwardEmojiAwardId() |
Get a specific award emoji | GET /v3/projects/{id}/issues/{issue_id}/award_emoji/{award_id} |
V3ProjectsIssuesAwardEmoji::deleteV3ProjectsIdIssuesIssueIdAwardEmojiAwardId() |
Delete a +awardables+ award emoji | DELETE /v3/projects/{id}/issues/{issue_id}/award_emoji/{award_id} |
V3ProjectsIssuesMove::postV3ProjectsIdIssuesIssueId() |
Move an existing issue | POST /v3/projects/{id}/issues/{issue_id}/move |
V3ProjectsIssuesNotes::getV3ProjectsIdIssuesNoteableId() |
Get a list of project +noteable+ notes | GET /v3/projects/{id}/issues/{noteable_id}/notes |
V3ProjectsIssuesNotes::postV3ProjectsIdIssuesNoteableId() |
Create a new +noteable+ note | POST /v3/projects/{id}/issues/{noteable_id}/notes |
V3ProjectsIssuesNotes::getV3ProjectsIdIssuesNoteableIdNotesNoteId() |
Get a single +noteable+ note | GET /v3/projects/{id}/issues/{noteable_id}/notes/{note_id} |
V3ProjectsIssuesNotes::putV3ProjectsIdIssuesNoteableIdNotesNoteId() |
Update an existing +noteable+ note | PUT /v3/projects/{id}/issues/{noteable_id}/notes/{note_id} |
V3ProjectsIssuesNotes::deleteV3ProjectsIdIssuesNoteableIdNotesNoteId() |
Delete a +noteable+ note | DELETE /v3/projects/{id}/issues/{noteable_id}/notes/{note_id} |
V3ProjectsIssuesNotesAwardEmoji::list() |
Get a list of project +awardable+ award emoji | GET /v3/projects/{id}/issues/{issue_id}/notes/{note_id}/award_emoji |
V3ProjectsIssuesNotesAwardEmoji::postV3ProjectsIdIssuesIssueIdNotesNoteId() |
Award a new Emoji | POST /v3/projects/{id}/issues/{issue_id}/notes/{note_id}/award_emoji |
V3ProjectsIssuesNotesAwardEmoji::getV3ProjectsIdIssuesIssueIdNotesNoteIdAwardEmojiAwardId() |
Get a specific award emoji | GET /v3/projects/{id}/issues/{issue_id}/notes/{note_id}/award_emoji/{award_id} |
V3ProjectsIssuesNotesAwardEmoji::deleteV3ProjectsIdIssuesIssueIdNotesNoteIdAwardEmojiAwardId() |
Delete a +awardables+ award emoji | DELETE /v3/projects/{id}/issues/{issue_id}/notes/{note_id}/award_emoji/{award_id} |
V3ProjectsIssuesResetSpentTime::postV3ProjectsIdIssuesIssueId() |
Reset spent time for a project issue | POST /v3/projects/{id}/issues/{issue_id}/reset_spent_time |
V3ProjectsIssuesResetTimeEstimate::postV3ProjectsIdIssuesIssueId() |
Reset the time estimate for a project issue | POST /v3/projects/{id}/issues/{issue_id}/reset_time_estimate |
V3ProjectsIssuesSubscription::postV3ProjectsIdIssuesSubscribableId() |
Subscribe to a resource | POST /v3/projects/{id}/issues/{subscribable_id}/subscription |
V3ProjectsIssuesSubscription::deleteV3ProjectsIdIssuesSubscribableId() |
Unsubscribe from a resource | DELETE /v3/projects/{id}/issues/{subscribable_id}/subscription |
V3ProjectsIssuesTimeEstimate::postV3ProjectsIdIssuesIssueId() |
Set a time estimate for a project issue | POST /v3/projects/{id}/issues/{issue_id}/time_estimate |
V3ProjectsIssuesTimeStats::list() |
Show time stats for a project issue | GET /v3/projects/{id}/issues/{issue_id}/time_stats |
V3ProjectsIssuesTodo::postV3ProjectsIdIssuesIssueId() |
Create a todo on an issuable | POST /v3/projects/{id}/issues/{issue_id}/todo |
V3ProjectsKeys::list() |
Get a specific project’s deploy keys | GET /v3/projects/{id}/keys |
V3ProjectsKeys::postV3ProjectsId() |
Add new deploy key to currently authenticated user | POST /v3/projects/{id}/keys |
V3ProjectsKeys::getV3ProjectsIdKeysKeyId() |
Get single deploy key | GET /v3/projects/{id}/keys/{key_id} |
V3ProjectsKeys::deleteV3ProjectsIdKeysKeyId() |
Delete deploy key for a project | DELETE /v3/projects/{id}/keys/{key_id} |
V3ProjectsKeysDisable::deleteV3ProjectsIdKeysKeyId() |
Disable a deploy key for a project | DELETE /v3/projects/{id}/keys/{key_id}/disable |
V3ProjectsKeysEnable::postV3ProjectsIdKeysKeyId() |
Enable a deploy key for a project | POST /v3/projects/{id}/keys/{key_id}/enable |
V3ProjectsLabels::list() |
Get all labels of the project | GET /v3/projects/{id}/labels |
V3ProjectsLabels::putV3ProjectsId() |
Update an existing label. At least one optional parameter is required. | PUT /v3/projects/{id}/labels |
V3ProjectsLabels::postV3ProjectsId() |
Create a new label | POST /v3/projects/{id}/labels |
V3ProjectsLabels::deleteV3ProjectsId() |
Delete an existing label | DELETE /v3/projects/{id}/labels |
V3ProjectsLabelsSubscription::postV3ProjectsIdLabelsSubscribableId() |
Subscribe to a resource | POST /v3/projects/{id}/labels/{subscribable_id}/subscription |
V3ProjectsLabelsSubscription::deleteV3ProjectsIdLabelsSubscribableId() |
Unsubscribe from a resource | DELETE /v3/projects/{id}/labels/{subscribable_id}/subscription |
V3ProjectsMembers::list() |
Gets a list of group or project members viewable by the authenticated user. | GET /v3/projects/{id}/members |
V3ProjectsMembers::postV3ProjectsId() |
Adds a member to a group or project. | POST /v3/projects/{id}/members |
V3ProjectsMembers::getV3ProjectsIdMembersUserId() |
Gets a member of a group or project. | GET /v3/projects/{id}/members/{user_id} |
V3ProjectsMembers::putV3ProjectsIdMembersUserId() |
Updates a member of a group or project. | PUT /v3/projects/{id}/members/{user_id} |
V3ProjectsMembers::deleteV3ProjectsIdMembersUserId() |
Removes a user from a group or project. | DELETE /v3/projects/{id}/members/{user_id} |
V3ProjectsMergeRequest::getV3ProjectsIdMergeRequestMergeRequestId() |
Get a single merge request | GET /v3/projects/{id}/merge_request/{merge_request_id} |
V3ProjectsMergeRequest::putV3ProjectsIdMergeRequestMergeRequestId() |
Update a merge request | PUT /v3/projects/{id}/merge_request/{merge_request_id} |
V3ProjectsMergeRequestCancelMergeWhenBuildSucceeds::postV3ProjectsIdMergeRequestMergeRequestId() |
Cancel merge if “Merge When Pipeline Succeeds” is enabled | POST /v3/projects/{id}/merge_request/{merge_request_id}/cancel_merge_when_build_succeeds |
V3ProjectsMergeRequestChanges::getV3ProjectsIdMergeRequestMergeRequestId() |
Show the merge request changes | GET /v3/projects/{id}/merge_request/{merge_request_id}/changes |
V3ProjectsMergeRequestClosesIssues::getV3ProjectsIdMergeRequestMergeRequestId() |
List issues that will be closed on merge | GET /v3/projects/{id}/merge_request/{merge_request_id}/closes_issues |
V3ProjectsMergeRequestComments::list() |
Get the comments of a merge request | GET /v3/projects/{id}/merge_request/{merge_request_id}/comments |
V3ProjectsMergeRequestComments::postV3ProjectsIdMergeRequestMergeRequestId() |
Post a comment to a merge request | POST /v3/projects/{id}/merge_request/{merge_request_id}/comments |
V3ProjectsMergeRequestCommits::list() |
Get the commits of a merge request | GET /v3/projects/{id}/merge_request/{merge_request_id}/commits |
V3ProjectsMergeRequestMerge::putV3ProjectsIdMergeRequestMergeRequestId() |
Merge a merge request | PUT /v3/projects/{id}/merge_request/{merge_request_id}/merge |
V3ProjectsMergeRequestSubscription::postV3ProjectsIdMergeRequestSubscribableId() |
Subscribe to a resource | POST /v3/projects/{id}/merge_request/{subscribable_id}/subscription |
V3ProjectsMergeRequestSubscription::deleteV3ProjectsIdMergeRequestSubscribableId() |
Unsubscribe from a resource | DELETE /v3/projects/{id}/merge_request/{subscribable_id}/subscription |
V3ProjectsMergeRequests::list() |
List merge requests | GET /v3/projects/{id}/merge_requests |
V3ProjectsMergeRequests::postV3ProjectsId() |
Create a merge request | POST /v3/projects/{id}/merge_requests |
V3ProjectsMergeRequests::getV3ProjectsIdMergeRequestsMergeRequestId() |
Get a single merge request | GET /v3/projects/{id}/merge_requests/{merge_request_id} |
V3ProjectsMergeRequests::putV3ProjectsIdMergeRequestsMergeRequestId() |
Update a merge request | PUT /v3/projects/{id}/merge_requests/{merge_request_id} |
V3ProjectsMergeRequests::deleteV3ProjectsIdMergeRequestsMergeRequestId() |
Delete a merge request | DELETE /v3/projects/{id}/merge_requests/{merge_request_id} |
V3ProjectsMergeRequestsAddSpentTime::postV3ProjectsIdMergeRequestsMergeRequestId() |
Add spent time for a project merge_request | POST /v3/projects/{id}/merge_requests/{merge_request_id}/add_spent_time |
V3ProjectsMergeRequestsAwardEmoji::list() |
Get a list of project +awardable+ award emoji | GET /v3/projects/{id}/merge_requests/{merge_request_id}/award_emoji |
V3ProjectsMergeRequestsAwardEmoji::postV3ProjectsIdMergeRequestsMergeRequestId() |
Award a new Emoji | POST /v3/projects/{id}/merge_requests/{merge_request_id}/award_emoji |
V3ProjectsMergeRequestsAwardEmoji::getV3ProjectsIdMergeRequestsMergeRequestIdAwardEmojiAwardId() |
Get a specific award emoji | GET /v3/projects/{id}/merge_requests/{merge_request_id}/award_emoji/{award_id} |
V3ProjectsMergeRequestsAwardEmoji::deleteV3ProjectsIdMergeRequestsMergeRequestIdAwardEmojiAwardId() |
Delete a +awardables+ award emoji | DELETE /v3/projects/{id}/merge_requests/{merge_request_id}/award_emoji/{award_id} |
V3ProjectsMergeRequestsCancelMergeWhenBuildSucceeds::postV3ProjectsIdMergeRequestsMergeRequestId() |
Cancel merge if “Merge When Pipeline Succeeds” is enabled | POST /v3/projects/{id}/merge_requests/{merge_request_id}/cancel_merge_when_build_succeeds |
V3ProjectsMergeRequestsChanges::getV3ProjectsIdMergeRequestsMergeRequestId() |
Show the merge request changes | GET /v3/projects/{id}/merge_requests/{merge_request_id}/changes |
V3ProjectsMergeRequestsClosesIssues::getV3ProjectsIdMergeRequestsMergeRequestId() |
List issues that will be closed on merge | GET /v3/projects/{id}/merge_requests/{merge_request_id}/closes_issues |
V3ProjectsMergeRequestsComments::list() |
Get the comments of a merge request | GET /v3/projects/{id}/merge_requests/{merge_request_id}/comments |
V3ProjectsMergeRequestsComments::postV3ProjectsIdMergeRequestsMergeRequestId() |
Post a comment to a merge request | POST /v3/projects/{id}/merge_requests/{merge_request_id}/comments |
V3ProjectsMergeRequestsCommits::list() |
Get the commits of a merge request | GET /v3/projects/{id}/merge_requests/{merge_request_id}/commits |
V3ProjectsMergeRequestsMerge::putV3ProjectsIdMergeRequestsMergeRequestId() |
Merge a merge request | PUT /v3/projects/{id}/merge_requests/{merge_request_id}/merge |
V3ProjectsMergeRequestsNotes::getV3ProjectsIdMergeRequestsNoteableId() |
Get a list of project +noteable+ notes | GET /v3/projects/{id}/merge_requests/{noteable_id}/notes |
V3ProjectsMergeRequestsNotes::postV3ProjectsIdMergeRequestsNoteableId() |
Create a new +noteable+ note | POST /v3/projects/{id}/merge_requests/{noteable_id}/notes |
V3ProjectsMergeRequestsNotes::getV3ProjectsIdMergeRequestsNoteableIdNotesNoteId() |
Get a single +noteable+ note | GET /v3/projects/{id}/merge_requests/{noteable_id}/notes/{note_id} |
V3ProjectsMergeRequestsNotes::putV3ProjectsIdMergeRequestsNoteableIdNotesNoteId() |
Update an existing +noteable+ note | PUT /v3/projects/{id}/merge_requests/{noteable_id}/notes/{note_id} |
V3ProjectsMergeRequestsNotes::deleteV3ProjectsIdMergeRequestsNoteableIdNotesNoteId() |
Delete a +noteable+ note | DELETE /v3/projects/{id}/merge_requests/{noteable_id}/notes/{note_id} |
V3ProjectsMergeRequestsNotesAwardEmoji::list() |
Get a list of project +awardable+ award emoji | GET /v3/projects/{id}/merge_requests/{merge_request_id}/notes/{note_id}/award_emoji |
V3ProjectsMergeRequestsNotesAwardEmoji::postV3ProjectsIdMergeRequestsMergeRequestIdNotesNoteId() |
Award a new Emoji | POST /v3/projects/{id}/merge_requests/{merge_request_id}/notes/{note_id}/award_emoji |
V3ProjectsMergeRequestsNotesAwardEmoji::getV3ProjectsIdMergeRequestsMergeRequestIdNotesNoteIdAwardEmojiAwardId() |
Get a specific award emoji | GET /v3/projects/{id}/merge_requests/{merge_request_id}/notes/{note_id}/award_emoji/{award_id} |
V3ProjectsMergeRequestsNotesAwardEmoji::deleteV3ProjectsIdMergeRequestsMergeRequestIdNotesNoteIdAwardEmojiAwardId() |
Delete a +awardables+ award emoji | DELETE /v3/projects/{id}/merge_requests/{merge_request_id}/notes/{note_id}/award_emoji/{award_id} |
V3ProjectsMergeRequestsResetSpentTime::postV3ProjectsIdMergeRequestsMergeRequestId() |
Reset spent time for a project merge_request | POST /v3/projects/{id}/merge_requests/{merge_request_id}/reset_spent_time |
V3ProjectsMergeRequestsResetTimeEstimate::postV3ProjectsIdMergeRequestsMergeRequestId() |
Reset the time estimate for a project merge_request | POST /v3/projects/{id}/merge_requests/{merge_request_id}/reset_time_estimate |
V3ProjectsMergeRequestsSubscription::postV3ProjectsIdMergeRequestsSubscribableId() |
Subscribe to a resource | POST /v3/projects/{id}/merge_requests/{subscribable_id}/subscription |
V3ProjectsMergeRequestsSubscription::deleteV3ProjectsIdMergeRequestsSubscribableId() |
Unsubscribe from a resource | DELETE /v3/projects/{id}/merge_requests/{subscribable_id}/subscription |
V3ProjectsMergeRequestsTimeEstimate::postV3ProjectsIdMergeRequestsMergeRequestId() |
Set a time estimate for a project merge_request | POST /v3/projects/{id}/merge_requests/{merge_request_id}/time_estimate |
V3ProjectsMergeRequestsTimeStats::list() |
Show time stats for a project merge_request | GET /v3/projects/{id}/merge_requests/{merge_request_id}/time_stats |
V3ProjectsMergeRequestsTodo::postV3ProjectsIdMergeRequestsMergeRequestId() |
Create a todo on an issuable | POST /v3/projects/{id}/merge_requests/{merge_request_id}/todo |
V3ProjectsMergeRequestsVersions::list() |
Get a list of merge request diff versions | GET /v3/projects/{id}/merge_requests/{merge_request_id}/versions |
V3ProjectsMergeRequestsVersions::getV3ProjectsIdMergeRequestsMergeRequestIdVersionsVersionId() |
Get a single merge request diff version | GET /v3/projects/{id}/merge_requests/{merge_request_id}/versions/{version_id} |
V3ProjectsMilestones::getV3ProjectsId() |
Get a list of project milestones | GET /v3/projects/{id}/milestones |
V3ProjectsMilestones::postV3ProjectsId() |
Create a new project milestone | POST /v3/projects/{id}/milestones |
V3ProjectsMilestones::getV3ProjectsIdMilestonesMilestoneId() |
Get a single project milestone | GET /v3/projects/{id}/milestones/{milestone_id} |
V3ProjectsMilestones::putV3ProjectsIdMilestonesMilestoneId() |
Update an existing project milestone | PUT /v3/projects/{id}/milestones/{milestone_id} |
V3ProjectsMilestonesIssues::getV3ProjectsIdMilestonesMilestoneId() |
Get all issues for a single project milestone | GET /v3/projects/{id}/milestones/{milestone_id}/issues |
V3ProjectsNotificationSettings::list() |
Get project level notification level settings, defaults to Global | GET /v3/projects/{id}/notification_settings |
V3ProjectsNotificationSettings::putV3ProjectsId() |
Update project level notification level settings, defaults to Global | PUT /v3/projects/{id}/notification_settings |
V3ProjectsOwned::get() |
Get an owned projects list for authenticated user | GET /v3/projects/owned |
V3ProjectsPipeline::postV3ProjectsId() |
Create a new pipeline | POST /v3/projects/{id}/pipeline |
V3ProjectsPipelines::getV3ProjectsId() |
Get all Pipelines of the project | GET /v3/projects/{id}/pipelines |
V3ProjectsPipelines::getV3ProjectsIdPipelinesPipelineId() |
Gets a specific pipeline for the project | GET /v3/projects/{id}/pipelines/{pipeline_id} |
V3ProjectsPipelinesCancel::postV3ProjectsIdPipelinesPipelineId() |
Cancel all builds in the pipeline | POST /v3/projects/{id}/pipelines/{pipeline_id}/cancel |
V3ProjectsPipelinesRetry::postV3ProjectsIdPipelinesPipelineId() |
Retry failed builds in the pipeline | POST /v3/projects/{id}/pipelines/{pipeline_id}/retry |
V3ProjectsRefTriggerBuilds::postV3ProjectsIdRefRefTrigger() |
Trigger a GitLab project build | POST /v3/projects/{id}/(ref/{ref}/)trigger/builds |
V3ProjectsRepositoryArchive::getV3ProjectsIdRepository() |
Get an archive of the repository | GET /v3/projects/{id}/repository/archive |
V3ProjectsRepositoryBlobs::getV3ProjectsIdRepositoryBlobsSha() |
Get a raw file contents | GET /v3/projects/{id}/repository/blobs/{sha} |
V3ProjectsRepositoryBranches::list() |
Get a project repository branches | GET /v3/projects/{id}/repository/branches |
V3ProjectsRepositoryBranches::postV3ProjectsIdRepository() |
Create branch | POST /v3/projects/{id}/repository/branches |
V3ProjectsRepositoryBranches::getV3ProjectsIdRepositoryBranchesBranch() |
Get a single branch | GET /v3/projects/{id}/repository/branches/{branch} |
V3ProjectsRepositoryBranches::deleteV3ProjectsIdRepositoryBranchesBranch() |
Delete a branch | DELETE /v3/projects/{id}/repository/branches/{branch} |
V3ProjectsRepositoryBranchesProtect::putV3ProjectsIdRepositoryBranchesBranch() |
Protect a single branch | PUT /v3/projects/{id}/repository/branches/{branch}/protect |
V3ProjectsRepositoryBranchesUnprotect::putV3ProjectsIdRepositoryBranchesBranch() |
Unprotect a single branch | PUT /v3/projects/{id}/repository/branches/{branch}/unprotect |
V3ProjectsRepositoryCommits::list() |
Get a project repository commits | GET /v3/projects/{id}/repository/commits |
V3ProjectsRepositoryCommits::postV3ProjectsIdRepository() |
Commit multiple file changes as one commit | POST /v3/projects/{id}/repository/commits |
V3ProjectsRepositoryCommits::getV3ProjectsIdRepositoryCommitsSha() |
Get a specific commit of a project | GET /v3/projects/{id}/repository/commits/{sha} |
V3ProjectsRepositoryCommitsBlob::getV3ProjectsIdRepositoryCommitsSha() |
Get a raw file contents | GET /v3/projects/{id}/repository/commits/{sha}/blob |
V3ProjectsRepositoryCommitsBuilds::list() |
Get builds for a specific commit of a project | GET /v3/projects/{id}/repository/commits/{sha}/builds |
V3ProjectsRepositoryCommitsCherryPick::postV3ProjectsIdRepositoryCommitsSha() |
Cherry pick commit into a branch | POST /v3/projects/{id}/repository/commits/{sha}/cherry_pick |
V3ProjectsRepositoryCommitsComments::list() |
Get a commit’s comments | GET /v3/projects/{id}/repository/commits/{sha}/comments |
V3ProjectsRepositoryCommitsComments::postV3ProjectsIdRepositoryCommitsSha() |
Post comment to commit | POST /v3/projects/{id}/repository/commits/{sha}/comments |
V3ProjectsRepositoryCommitsDiff::getV3ProjectsIdRepositoryCommitsSha() |
Get the diff for a specific commit of a project | GET /v3/projects/{id}/repository/commits/{sha}/diff |
V3ProjectsRepositoryCommitsStatuses::getV3ProjectsIdRepositoryCommitsSha() |
Get a commit’s statuses | GET /v3/projects/{id}/repository/commits/{sha}/statuses |
V3ProjectsRepositoryCompare::getV3ProjectsIdRepository() |
Compare two branches, tags, or commits | GET /v3/projects/{id}/repository/compare |
V3ProjectsRepositoryContributors::list() |
Get repository contributors | GET /v3/projects/{id}/repository/contributors |
V3ProjectsRepositoryFiles::getV3ProjectsIdRepository() |
Get a file from repository | GET /v3/projects/{id}/repository/files |
V3ProjectsRepositoryFiles::putV3ProjectsIdRepository() |
Update existing file in repository | PUT /v3/projects/{id}/repository/files |
V3ProjectsRepositoryFiles::postV3ProjectsIdRepository() |
Create new file in repository | POST /v3/projects/{id}/repository/files |
V3ProjectsRepositoryFiles::deleteV3ProjectsIdRepository() |
Delete an existing file in repository | DELETE /v3/projects/{id}/repository/files |
V3ProjectsRepositoryMergedBranches::deleteV3ProjectsIdRepository() |
DELETE /v3/projects/{id}/repository/merged_branches |
|
V3ProjectsRepositoryRawBlobs::getV3ProjectsIdRepositoryRawBlobsSha() |
Get a raw blob contents by blob sha | GET /v3/projects/{id}/repository/raw_blobs/{sha} |
V3ProjectsRepositoryTags::list() |
Get a project repository tags | GET /v3/projects/{id}/repository/tags |
V3ProjectsRepositoryTags::postV3ProjectsIdRepository() |
Create a new repository tag | POST /v3/projects/{id}/repository/tags |
V3ProjectsRepositoryTags::getV3ProjectsIdRepositoryTagsTagName() |
Get a single repository tag | GET /v3/projects/{id}/repository/tags/{tag_name} |
V3ProjectsRepositoryTags::deleteV3ProjectsIdRepositoryTagsTagName() |
Delete a repository tag | DELETE /v3/projects/{id}/repository/tags/{tag_name} |
V3ProjectsRepositoryTagsRelease::putV3ProjectsIdRepositoryTagsTagName() |
Update a tag’s release note | PUT /v3/projects/{id}/repository/tags/{tag_name}/release |
V3ProjectsRepositoryTagsRelease::postV3ProjectsIdRepositoryTagsTagName() |
Add a release note to a tag | POST /v3/projects/{id}/repository/tags/{tag_name}/release |
V3ProjectsRepositoryTree::getV3ProjectsIdRepository() |
Get a project repository tree | GET /v3/projects/{id}/repository/tree |
V3ProjectsRunners::list() |
Get runners available for project | GET /v3/projects/{id}/runners |
V3ProjectsRunners::postV3ProjectsId() |
Enable a runner for a project | POST /v3/projects/{id}/runners |
V3ProjectsRunners::deleteV3ProjectsIdRunnersRunnerId() |
Disable project’s runner | DELETE /v3/projects/{id}/runners/{runner_id} |
V3ProjectsSearch::getV3ProjectsSearchQuery() |
Search for projects the current user has access to | GET /v3/projects/search/{query} |
V3ProjectsServices::getV3ProjectsIdServicesServiceSlug() |
Get the service settings for project | GET /v3/projects/{id}/services/{service_slug} |
V3ProjectsServices::deleteV3ProjectsIdServicesServiceSlug() |
Delete a service for project | DELETE /v3/projects/{id}/services/{service_slug} |
V3ProjectsServicesAsana::putV3ProjectsIdServices() |
Set asana service for project | PUT /v3/projects/{id}/services/asana |
V3ProjectsServicesAssembla::putV3ProjectsIdServices() |
Set assembla service for project | PUT /v3/projects/{id}/services/assembla |
V3ProjectsServicesBamboo::putV3ProjectsIdServices() |
Set bamboo service for project | PUT /v3/projects/{id}/services/bamboo |
V3ProjectsServicesBugzilla::putV3ProjectsIdServices() |
Set bugzilla service for project | PUT /v3/projects/{id}/services/bugzilla |
V3ProjectsServicesBuildkite::putV3ProjectsIdServices() |
Set buildkite service for project | PUT /v3/projects/{id}/services/buildkite |
V3ProjectsServicesBuildsEmail::putV3ProjectsIdServices() |
Set builds-email service for project | PUT /v3/projects/{id}/services/builds-email |
V3ProjectsServicesCampfire::putV3ProjectsIdServices() |
Set campfire service for project | PUT /v3/projects/{id}/services/campfire |
V3ProjectsServicesCustomIssueTracker::putV3ProjectsIdServices() |
Set custom-issue-tracker service for project | PUT /v3/projects/{id}/services/custom-issue-tracker |
V3ProjectsServicesDroneCi::putV3ProjectsIdServices() |
Set drone-ci service for project | PUT /v3/projects/{id}/services/drone-ci |
V3ProjectsServicesEmailsOnPush::putV3ProjectsIdServices() |
Set emails-on-push service for project | PUT /v3/projects/{id}/services/emails-on-push |
V3ProjectsServicesExternalWiki::putV3ProjectsIdServices() |
Set external-wiki service for project | PUT /v3/projects/{id}/services/external-wiki |
V3ProjectsServicesFlowdock::putV3ProjectsIdServices() |
Set flowdock service for project | PUT /v3/projects/{id}/services/flowdock |
V3ProjectsServicesGemnasium::putV3ProjectsIdServices() |
Set gemnasium service for project | PUT /v3/projects/{id}/services/gemnasium |
V3ProjectsServicesHipchat::putV3ProjectsIdServices() |
Set hipchat service for project | PUT /v3/projects/{id}/services/hipchat |
V3ProjectsServicesIrker::putV3ProjectsIdServices() |
Set irker service for project | PUT /v3/projects/{id}/services/irker |
V3ProjectsServicesJira::putV3ProjectsIdServices() |
Set jira service for project | PUT /v3/projects/{id}/services/jira |
V3ProjectsServicesKubernetes::putV3ProjectsIdServices() |
Set kubernetes service for project | PUT /v3/projects/{id}/services/kubernetes |
V3ProjectsServicesMattermost::putV3ProjectsIdServices() |
Set mattermost service for project | PUT /v3/projects/{id}/services/mattermost |
V3ProjectsServicesMattermostSlashCommands::putV3ProjectsIdServices() |
Set mattermost-slash-commands service for project | PUT /v3/projects/{id}/services/mattermost-slash-commands |
V3ProjectsServicesMattermostSlashCommandsTrigger::postV3ProjectsIdServicesMattermostSlashCommands() |
Trigger a slash command for mattermost-slash-commands | POST /v3/projects/{id}/services/mattermost_slash_commands/trigger |
V3ProjectsServicesPipelinesEmail::putV3ProjectsIdServices() |
Set pipelines-email service for project | PUT /v3/projects/{id}/services/pipelines-email |
V3ProjectsServicesPivotaltracker::putV3ProjectsIdServices() |
Set pivotaltracker service for project | PUT /v3/projects/{id}/services/pivotaltracker |
V3ProjectsServicesPushover::putV3ProjectsIdServices() |
Set pushover service for project | PUT /v3/projects/{id}/services/pushover |
V3ProjectsServicesRedmine::putV3ProjectsIdServices() |
Set redmine service for project | PUT /v3/projects/{id}/services/redmine |
V3ProjectsServicesSlack::putV3ProjectsIdServices() |
Set slack service for project | PUT /v3/projects/{id}/services/slack |
V3ProjectsServicesSlackSlashCommands::putV3ProjectsIdServices() |
Set slack-slash-commands service for project | PUT /v3/projects/{id}/services/slack-slash-commands |
V3ProjectsServicesSlackSlashCommandsTrigger::postV3ProjectsIdServicesSlackSlashCommands() |
Trigger a slash command for slack-slash-commands | POST /v3/projects/{id}/services/slack_slash_commands/trigger |
V3ProjectsServicesTeamcity::putV3ProjectsIdServices() |
Set teamcity service for project | PUT /v3/projects/{id}/services/teamcity |
V3ProjectsShare::postV3ProjectsId() |
Share the project with a group | POST /v3/projects/{id}/share |
V3ProjectsShare::deleteV3ProjectsIdShareGroupId() |
DELETE /v3/projects/{id}/share/{group_id} |
|
V3ProjectsSnippets::list() |
Get all project snippets | GET /v3/projects/{id}/snippets |
V3ProjectsSnippets::postV3ProjectsId() |
Create a new project snippet | POST /v3/projects/{id}/snippets |
V3ProjectsSnippets::getV3ProjectsIdSnippetsSnippetId() |
Get a single project snippet | GET /v3/projects/{id}/snippets/{snippet_id} |
V3ProjectsSnippets::putV3ProjectsIdSnippetsSnippetId() |
Update an existing project snippet | PUT /v3/projects/{id}/snippets/{snippet_id} |
V3ProjectsSnippets::deleteV3ProjectsIdSnippetsSnippetId() |
Delete a project snippet | DELETE /v3/projects/{id}/snippets/{snippet_id} |
V3ProjectsSnippetsAwardEmoji::list() |
Get a list of project +awardable+ award emoji | GET /v3/projects/{id}/snippets/{snippet_id}/award_emoji |
V3ProjectsSnippetsAwardEmoji::postV3ProjectsIdSnippetsSnippetId() |
Award a new Emoji | POST /v3/projects/{id}/snippets/{snippet_id}/award_emoji |
V3ProjectsSnippetsAwardEmoji::getV3ProjectsIdSnippetsSnippetIdAwardEmojiAwardId() |
Get a specific award emoji | GET /v3/projects/{id}/snippets/{snippet_id}/award_emoji/{award_id} |
V3ProjectsSnippetsAwardEmoji::deleteV3ProjectsIdSnippetsSnippetIdAwardEmojiAwardId() |
Delete a +awardables+ award emoji | DELETE /v3/projects/{id}/snippets/{snippet_id}/award_emoji/{award_id} |
V3ProjectsSnippetsNotes::getV3ProjectsIdSnippetsNoteableId() |
Get a list of project +noteable+ notes | GET /v3/projects/{id}/snippets/{noteable_id}/notes |
V3ProjectsSnippetsNotes::postV3ProjectsIdSnippetsNoteableId() |
Create a new +noteable+ note | POST /v3/projects/{id}/snippets/{noteable_id}/notes |
V3ProjectsSnippetsNotes::getV3ProjectsIdSnippetsNoteableIdNotesNoteId() |
Get a single +noteable+ note | GET /v3/projects/{id}/snippets/{noteable_id}/notes/{note_id} |
V3ProjectsSnippetsNotes::putV3ProjectsIdSnippetsNoteableIdNotesNoteId() |
Update an existing +noteable+ note | PUT /v3/projects/{id}/snippets/{noteable_id}/notes/{note_id} |
V3ProjectsSnippetsNotes::deleteV3ProjectsIdSnippetsNoteableIdNotesNoteId() |
Delete a +noteable+ note | DELETE /v3/projects/{id}/snippets/{noteable_id}/notes/{note_id} |
V3ProjectsSnippetsNotesAwardEmoji::list() |
Get a list of project +awardable+ award emoji | GET /v3/projects/{id}/snippets/{snippet_id}/notes/{note_id}/award_emoji |
V3ProjectsSnippetsNotesAwardEmoji::postV3ProjectsIdSnippetsSnippetIdNotesNoteId() |
Award a new Emoji | POST /v3/projects/{id}/snippets/{snippet_id}/notes/{note_id}/award_emoji |
V3ProjectsSnippetsNotesAwardEmoji::getV3ProjectsIdSnippetsSnippetIdNotesNoteIdAwardEmojiAwardId() |
Get a specific award emoji | GET /v3/projects/{id}/snippets/{snippet_id}/notes/{note_id}/award_emoji/{award_id} |
V3ProjectsSnippetsNotesAwardEmoji::deleteV3ProjectsIdSnippetsSnippetIdNotesNoteIdAwardEmojiAwardId() |
Delete a +awardables+ award emoji | DELETE /v3/projects/{id}/snippets/{snippet_id}/notes/{note_id}/award_emoji/{award_id} |
V3ProjectsSnippetsRaw::getV3ProjectsIdSnippetsSnippetId() |
Get a raw project snippet | GET /v3/projects/{id}/snippets/{snippet_id}/raw |
V3ProjectsStar::postV3ProjectsId() |
Star a project | POST /v3/projects/{id}/star |
V3ProjectsStar::deleteV3ProjectsId() |
Unstar a project | DELETE /v3/projects/{id}/star |
V3ProjectsStarred::get() |
Gets starred project for the authenticated user | GET /v3/projects/starred |
V3ProjectsStatuses::postV3ProjectsIdStatusesSha() |
Post status to a commit | POST /v3/projects/{id}/statuses/{sha} |
V3ProjectsTriggers::list() |
Get triggers list | GET /v3/projects/{id}/triggers |
V3ProjectsTriggers::postV3ProjectsId() |
Create a trigger | POST /v3/projects/{id}/triggers |
V3ProjectsTriggers::getV3ProjectsIdTriggersToken() |
Get specific trigger of a project | GET /v3/projects/{id}/triggers/{token} |
V3ProjectsTriggers::deleteV3ProjectsIdTriggersToken() |
Delete a trigger | DELETE /v3/projects/{id}/triggers/{token} |
V3ProjectsUnarchive::postV3ProjectsId() |
Unarchive a project | POST /v3/projects/{id}/unarchive |
V3ProjectsUploads::postV3ProjectsId() |
Upload a file | POST /v3/projects/{id}/uploads |
V3ProjectsUser::postV3ProjectsUserUserId() |
Create new project for a specified user. Only available to admin users. | POST /v3/projects/user/{user_id} |
V3ProjectsUsers::list() |
Get the users list of a project | GET /v3/projects/{id}/users |
V3ProjectsVariables::getV3ProjectsId() |
Get project variables | GET /v3/projects/{id}/variables |
V3ProjectsVariables::postV3ProjectsId() |
Create a new variable in a project | POST /v3/projects/{id}/variables |
V3ProjectsVariables::getV3ProjectsIdVariablesKey() |
Get a specific variable from a project | GET /v3/projects/{id}/variables/{key} |
V3ProjectsVariables::putV3ProjectsIdVariablesKey() |
Update an existing variable from a project | PUT /v3/projects/{id}/variables/{key} |
V3ProjectsVariables::deleteV3ProjectsIdVariablesKey() |
Delete an existing variable from a project | DELETE /v3/projects/{id}/variables/{key} |
V3ProjectsVisible::get() |
Get a list of visible projects for authenticated user | GET /v3/projects/visible |
V3Runners::list() |
Get runners available for user | GET /v3/runners |
V3Runners::getV3RunnersId() |
Get runner’s details | GET /v3/runners/{id} |
V3Runners::putV3RunnersId() |
Update runner’s details | PUT /v3/runners/{id} |
V3Runners::deleteV3RunnersId() |
Remove a runner | DELETE /v3/runners/{id} |
V3RunnersAll::get() |
Get all runners - shared and specific | GET /v3/runners/all |
V3Session::post() |
Login to get token | POST /v3/session |
V3SidekiqCompoundMetrics::list() |
Get the Sidekiq Compound metrics. Includes queue, process, and job statistics | GET /v3/sidekiq/compound_metrics |
V3SidekiqJobStats::list() |
Get the Sidekiq job statistics | GET /v3/sidekiq/job_stats |
V3SidekiqProcessMetrics::list() |
Get the Sidekiq process metrics | GET /v3/sidekiq/process_metrics |
V3SidekiqQueueMetrics::list() |
Get the Sidekiq queue metrics | GET /v3/sidekiq/queue_metrics |
V3Snippets::list() |
Get a snippets list for authenticated user | GET /v3/snippets |
V3Snippets::post() |
Create new snippet | POST /v3/snippets |
V3Snippets::getV3SnippetsId() |
Get a single snippet | GET /v3/snippets/{id} |
V3Snippets::putV3SnippetsId() |
Update an existing snippet | PUT /v3/snippets/{id} |
V3Snippets::deleteV3SnippetsId() |
Remove snippet | DELETE /v3/snippets/{id} |
V3SnippetsPublic::get() |
List all public snippets current_user has access to | GET /v3/snippets/public |
V3SnippetsRaw::getV3SnippetsId() |
Get a raw snippet | GET /v3/snippets/{id}/raw |
V3TemplatesDockerfiles::get() |
Get the list of the available template | GET /v3/templates/dockerfiles |
V3TemplatesDockerfiles::getV3TemplatesDockerfilesName() |
Get the text for a specific template present in local filesystem | GET /v3/templates/dockerfiles/{name} |
V3TemplatesGitignores::get() |
Get the list of the available template | GET /v3/templates/gitignores |
V3TemplatesGitignores::getV3TemplatesGitignoresName() |
Get the text for a specific template present in local filesystem | GET /v3/templates/gitignores/{name} |
V3TemplatesGitlabCiYmls::list() |
Get the list of the available template | GET /v3/templates/gitlab_ci_ymls |
V3TemplatesGitlabCiYmls::getV3TemplatesGitlabCiYmlsName() |
Get the text for a specific template present in local filesystem | GET /v3/templates/gitlab_ci_ymls/{name} |
V3TemplatesLicenses::get() |
Get the list of the available license template | GET /v3/templates/licenses |
V3TemplatesLicenses::getV3TemplatesLicensesName() |
Get the text for a specific license | GET /v3/templates/licenses/{name} |
V3Todos::list() |
Get a todo list | GET /v3/todos |
V3Todos::delete() |
Mark all todos as done | DELETE /v3/todos |
V3Todos::deleteV3TodosId() |
Mark a todo as done | DELETE /v3/todos/{id} |
V3User::get() |
Get the currently authenticated user | GET /v3/user |
V3UserEmails::list() |
Get the currently authenticated user’s email addresses | GET /v3/user/emails |
V3UserEmails::post() |
Add new email address to the currently authenticated user | POST /v3/user/emails |
V3UserEmails::getV3UserEmailsEmailId() |
Get a single email address owned by the currently authenticated user | GET /v3/user/emails/{email_id} |
V3UserEmails::deleteV3UserEmailsEmailId() |
Delete an email address from the currently authenticated user | DELETE /v3/user/emails/{email_id} |
V3UserKeys::list() |
Get the currently authenticated user’s SSH keys | GET /v3/user/keys |
V3UserKeys::post() |
Add a new SSH key to the currently authenticated user | POST /v3/user/keys |
V3UserKeys::getV3UserKeysKeyId() |
Get a single key owned by currently authenticated user | GET /v3/user/keys/{key_id} |
V3UserKeys::deleteV3UserKeysKeyId() |
Delete an SSH key from the currently authenticated user | DELETE /v3/user/keys/{key_id} |
V3Users::list() |
Get the list of users | GET /v3/users |
V3Users::post() |
Create a user. Available only for admins. | POST /v3/users |
V3Users::getV3UsersId() |
Get a single user | GET /v3/users/{id} |
V3Users::putV3UsersId() |
Update a user. Available only for admins. | PUT /v3/users/{id} |
V3Users::deleteV3UsersId() |
Delete a user. Available only for admins. | DELETE /v3/users/{id} |
V3UsersBlock::putV3UsersId() |
Block a user. Available only for admins. | PUT /v3/users/{id}/block |
V3UsersEmails::list() |
Get the emails addresses of a specified user. Available only for admins. | GET /v3/users/{id}/emails |
V3UsersEmails::postV3UsersId() |
Add an email address to a specified user. Available only for admins. | POST /v3/users/{id}/emails |
V3UsersEmails::deleteV3UsersIdEmailsEmailId() |
Delete an email address of a specified user. Available only for admins. | DELETE /v3/users/{id}/emails/{email_id} |
V3UsersEvents::list() |
Get the contribution events of a specified user | GET /v3/users/{id}/events |
V3UsersKeys::list() |
Get the SSH keys of a specified user. Available only for admins. | GET /v3/users/{id}/keys |
V3UsersKeys::postV3UsersId() |
Add an SSH key to a specified user. Available only for admins. | POST /v3/users/{id}/keys |
V3UsersKeys::deleteV3UsersIdKeysKeyId() |
Delete an existing SSH key from a specified user. Available only for admins. | DELETE /v3/users/{id}/keys/{key_id} |
V3UsersUnblock::putV3UsersId() |
Unblock a user. Available only for admins. | PUT /v3/users/{id}/unblock |
V3Version::get() |
Get the version information of the GitLab instance. | GET /v3/version |
There are two ways to make a request to the nominated API Handler and API Method:
If you built the client to be accessible globally, you can use the relevant API Handler Class directly:
use Tectalic\Gitlab\Handlers\V3ApplicationSettings; (new V3ApplicationSettings())->list();
Alternatively, you can access all API Handlers from the client class using the Client class:
$client->v3ApplicationSettings()->list();
Once you have made a request using one of the two methods outlined above, the next step is to access the response.
You can access the response in different ways. Please choose your preferred one.
Model responses are Data Transfer Object (DTO) style PHP classes, with public properties for each API property.
They offer a structured way of retrieving the response from an API request.
All Response Models are an instance of \Spatie\DataTransferObject\DataTransferObject
or \Spatie\DataTransferObject\DataTransferObjectCollection
.
After performing the request, use the ->toModel()
fluent method to the API Method:
use Tectalic\Gitlab\Handlers\V3ApplicationSettings; $model = (new V3ApplicationSettings())->list()->toModel();
Each API Method’s toModel()
call will return the appropriate Model class type for the API Method you have just called.
After performing the request, use the ->toArray()
fluent method to the API Method:
use Tectalic\Gitlab\Handlers\V3ApplicationSettings; $array = (new V3ApplicationSettings())->list()->toArray();
In the resulting associative array, the array keys will match the names of the public properties in the relevant Model class.
If you need to access the raw response or inspect the HTTP headers, use the ->getResponse()
fluent method to the API Method. It will return a Psr\Http\Message\ResponseInterface
:
use Tectalic\Gitlab\Handlers\V3ApplicationSettings; $response = (new V3ApplicationSettings())->list()->getResponse();
When performing requests with Tectalic Gitlab REST API Client, specific scenarios will cause a Tectalic\Gitlab\Exception\ClientException
to be thrown. Please see below for details.
Manager
ClassA \LogicException
will be thrown if the Manager::build()
function is called multiple times, or if Manager::access()
is called before calling Manager::build()
.
The Tectalic Gitlab REST API Client depends on a PSR-18 compatible HTTP client, and that HTTP client should not throw an exception for unsuccessful HTTP response codes.
An unsuccessful response code is classified as one that is not in the range 200
-299
(inclusive). Examples of unsuccessful response codes include:
100
-199
)300
-399
)400
-499
)500
-599
)If an unsuccessful response code does occur:
toModel()
method will throw a ClientException
.toArray()
method will return the response body and not throw a ClientException
.getResponse()
method will return the raw response and not throw a ClientException
.Below is an example of how you may wish to use a try
/catch
block when performing a request so that you can detect and handle unexpected errors.
use Tectalic\Gitlab\Client;use Tectalic\Gitlab\ClientException;use Tectalic\Gitlab\Manager; // Build a Tectalic Gitlab REST API Client globally. Manager::build($httpClient, $auth);$handler = new V3ApplicationSettings(); // Perform a requesttry { $model = $handler->list()->toModel(); // Do something with the response model...} catch (ClientException $e) { // Error response received. Retrieve the HTTP response code and response body. $responseBody = $handler->toArray(); $rawResponse = $handler->getResponse()->getResponse(); $responseCode = $handler->getResponse()->getStatusCode(); // Handle the error...}
If your HTTP client of choice throws an exception other than ClientException
, the Tectalic Gitlab REST API Client Client
and its API Handler classes will let these exceptions bubble up.
Consult your HTTP client’s documentation for more details on exception handling.
The Tectalic Gitlab REST API Client package includes several types of automated PHPUnit tests to verify the correct operation:
To run these tests, you will need to have installed the Tectalic Gitlab REST API Client package with its dev dependencies (i.e. not using the --no-dev
flag when running composer).
These PHPUnit tests are designed to:
Client
and Manager
classes.The unit tests can be run using the following command, which needs to be run from this package’s root directory.
composer test:unit
Unit tests do not perform any real requests against the Gitlab API.
Unit tests are located in the tests/Unit
directory.
Integration tests are located in the tests/Integration
directory.
These PHPUnit tests are designed to confirm that each API Method parses a valid response, according to the Gitlab API OpenAPI specification. Out of the box the integration tests are designed to work with the Prism Mock Server.
Make sure Prism is installed. Please see the Prism documentation for details on how to install Prism.
Once Prism is installed, you can run prism and the integration tests side by side in separate terminal windows, or using the following command, which need to be run from this package’s root directory.
echo "> Starting Prism server"prism mock tests/openapi.json >/dev/null 2>&1 &PRISM_PID=$!sleep 2echo " => Started"composer test:integrationkill $PRISM_PID
Those commands will start the Prism mock server, then run the integration tests, and then stop the Prism mock server when the tests are completed.
In this case the integration tests do not perform any real requests against the Gitlab API.
By setting the GITLAB_CLIENT_TEST_BASE_URI
environment variable, you can set a different API endpoint target for the integration tests.
For example, instead of using Prism, you can use a different mocking/staging/test server of your choice, or you can use the Gitlab API’s live endpoints.
After your setup is complete simply run the following command.
composer test:integration
We do not recommend running integration tests against the live Gitlab API endpoints. This is because the tests will send example data to all endpoints, which can result in new data being created, or existing data being deleted.
If you have any questions or feedback, you can submit a support request to the Tectalic developers by going to https://tectalic.com/support/gitlab.
This software is copyright (c) Tectalic.
For the full copyright and license information, please view the ‘LICENSE’ file distributed with the source code.
Last updated 27 Oct 2022