> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for GitLab in StackOne. One-time admin setup required before your users can link GitLab accounts via Hub.

<Warning>Ensure you have access to create OAuth applications in your GitLab account. For organization-wide access, you may need Owner or Administrator privileges.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;gitlab_list_projects&#x22;,&#x22;label&#x22;:&#x22;List Projects&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_project&#x22;,&#x22;label&#x22;:&#x22;Get Project&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_project&#x22;,&#x22;label&#x22;:&#x22;Create Project&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_project&#x22;,&#x22;label&#x22;:&#x22;Update Project&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_project&#x22;,&#x22;label&#x22;:&#x22;Delete Project&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_fork_project&#x22;,&#x22;label&#x22;:&#x22;Fork Project&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_archive_project&#x22;,&#x22;label&#x22;:&#x22;Archive Project&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_unarchive_project&#x22;,&#x22;label&#x22;:&#x22;Unarchive Project&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_project_members&#x22;,&#x22;label&#x22;:&#x22;List Project Members&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_add_project_member&#x22;,&#x22;label&#x22;:&#x22;Add Project Member&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_project_member&#x22;,&#x22;label&#x22;:&#x22;Update Project Member&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_remove_project_member&#x22;,&#x22;label&#x22;:&#x22;Remove Project Member&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_project_issues&#x22;,&#x22;label&#x22;:&#x22;List Project Issues&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_issue&#x22;,&#x22;label&#x22;:&#x22;Get Issue&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_issue&#x22;,&#x22;label&#x22;:&#x22;Create Issue&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_issue&#x22;,&#x22;label&#x22;:&#x22;Update Issue&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_issue&#x22;,&#x22;label&#x22;:&#x22;Delete Issue&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_move_issue&#x22;,&#x22;label&#x22;:&#x22;Move Issue&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_issue_notes&#x22;,&#x22;label&#x22;:&#x22;List Issue Notes&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_issue_note&#x22;,&#x22;label&#x22;:&#x22;Create Issue Note&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_issue_participants&#x22;,&#x22;label&#x22;:&#x22;List Issue Participants&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_related_merge_requests&#x22;,&#x22;label&#x22;:&#x22;List Related Merge Requests&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_project_merge_requests&#x22;,&#x22;label&#x22;:&#x22;List Project Merge Requests&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_merge_request&#x22;,&#x22;label&#x22;:&#x22;Get Merge Request&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_merge_request&#x22;,&#x22;label&#x22;:&#x22;Create Merge Request&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_merge_request&#x22;,&#x22;label&#x22;:&#x22;Update Merge Request&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_merge_merge_request&#x22;,&#x22;label&#x22;:&#x22;Merge Merge Request&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_rebase_merge_request&#x22;,&#x22;label&#x22;:&#x22;Rebase Merge Request&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_merge_request_commits&#x22;,&#x22;label&#x22;:&#x22;List Merge Request Commits&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_merge_request_diffs&#x22;,&#x22;label&#x22;:&#x22;List Merge Request Diffs&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_approve_merge_request&#x22;,&#x22;label&#x22;:&#x22;Approve Merge Request&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_merge_request_notes&#x22;,&#x22;label&#x22;:&#x22;List Merge Request Notes&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_merge_request_note&#x22;,&#x22;label&#x22;:&#x22;Create Merge Request Note&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_cancel_merge_when_pipeline_succeeds&#x22;,&#x22;label&#x22;:&#x22;Cancel Auto-Merge&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_merge_request_participants&#x22;,&#x22;label&#x22;:&#x22;Get Merge Request Participants&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_commits&#x22;,&#x22;label&#x22;:&#x22;List Commits&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_commit&#x22;,&#x22;label&#x22;:&#x22;Get Commit&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_commit&#x22;,&#x22;label&#x22;:&#x22;Create Commit&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_commit_diff&#x22;,&#x22;label&#x22;:&#x22;Get Commit Diff&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_cherry_pick_commit&#x22;,&#x22;label&#x22;:&#x22;Cherry-Pick Commit&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_revert_commit&#x22;,&#x22;label&#x22;:&#x22;Revert Commit&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_branches&#x22;,&#x22;label&#x22;:&#x22;List Branches&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_branch&#x22;,&#x22;label&#x22;:&#x22;Get Branch&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_branch&#x22;,&#x22;label&#x22;:&#x22;Create Branch&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_branch&#x22;,&#x22;label&#x22;:&#x22;Delete Branch&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_protect_branch&#x22;,&#x22;label&#x22;:&#x22;Protect Branch&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_unprotect_branch&#x22;,&#x22;label&#x22;:&#x22;Unprotect Branch&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_users&#x22;,&#x22;label&#x22;:&#x22;List Users&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_user&#x22;,&#x22;label&#x22;:&#x22;Get User&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_current_user&#x22;,&#x22;label&#x22;:&#x22;Get Current User&#x22;,&#x22;scopes&#x22;:[&#x22;read_user&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_user&#x22;,&#x22;label&#x22;:&#x22;Create User&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_user&#x22;,&#x22;label&#x22;:&#x22;Update User&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_user&#x22;,&#x22;label&#x22;:&#x22;Delete User&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_current_user_status&#x22;,&#x22;label&#x22;:&#x22;Get Current User Status&#x22;,&#x22;scopes&#x22;:[&#x22;read_user&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_user_status&#x22;,&#x22;label&#x22;:&#x22;Get User Status&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_groups&#x22;,&#x22;label&#x22;:&#x22;List Groups&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_group&#x22;,&#x22;label&#x22;:&#x22;Get Group&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_group&#x22;,&#x22;label&#x22;:&#x22;Create Group&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_group&#x22;,&#x22;label&#x22;:&#x22;Update Group&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_group&#x22;,&#x22;label&#x22;:&#x22;Delete Group&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_group_projects&#x22;,&#x22;label&#x22;:&#x22;List Group Projects&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_group_subgroups&#x22;,&#x22;label&#x22;:&#x22;List Group Subgroups&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_group_members&#x22;,&#x22;label&#x22;:&#x22;List Group Members&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_add_group_member&#x22;,&#x22;label&#x22;:&#x22;Add Group Member&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_remove_group_member&#x22;,&#x22;label&#x22;:&#x22;Remove Group Member&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_pipelines&#x22;,&#x22;label&#x22;:&#x22;List Pipelines&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_pipeline&#x22;,&#x22;label&#x22;:&#x22;Get Pipeline&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_pipeline&#x22;,&#x22;label&#x22;:&#x22;Create Pipeline&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_retry_pipeline&#x22;,&#x22;label&#x22;:&#x22;Retry Pipeline&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_cancel_pipeline&#x22;,&#x22;label&#x22;:&#x22;Cancel Pipeline&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_pipeline&#x22;,&#x22;label&#x22;:&#x22;Delete Pipeline&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_pipeline_variables&#x22;,&#x22;label&#x22;:&#x22;Get Pipeline Variables&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_pipeline_jobs&#x22;,&#x22;label&#x22;:&#x22;List Pipeline Jobs&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_job&#x22;,&#x22;label&#x22;:&#x22;Get Job&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_job_log&#x22;,&#x22;label&#x22;:&#x22;Get Job Log&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_retry_job&#x22;,&#x22;label&#x22;:&#x22;Retry Job&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_repository_tree&#x22;,&#x22;label&#x22;:&#x22;List Repository Tree&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_file&#x22;,&#x22;label&#x22;:&#x22;Get File&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_file&#x22;,&#x22;label&#x22;:&#x22;Create File&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_file&#x22;,&#x22;label&#x22;:&#x22;Update File&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_file&#x22;,&#x22;label&#x22;:&#x22;Delete File&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_tags&#x22;,&#x22;label&#x22;:&#x22;List Tags&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_tag&#x22;,&#x22;label&#x22;:&#x22;Create Tag&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_tag&#x22;,&#x22;label&#x22;:&#x22;Delete Tag&#x22;,&#x22;scopes&#x22;:[&#x22;write_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_repository_contributors&#x22;,&#x22;label&#x22;:&#x22;Get Repository Contributors&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_compare_branches&#x22;,&#x22;label&#x22;:&#x22;Compare Branches&#x22;,&#x22;scopes&#x22;:[&#x22;read_repository&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_project_labels&#x22;,&#x22;label&#x22;:&#x22;List Project Labels&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_project_label&#x22;,&#x22;label&#x22;:&#x22;Get Project Label&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_project_label&#x22;,&#x22;label&#x22;:&#x22;Create Project Label&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_project_label&#x22;,&#x22;label&#x22;:&#x22;Update Project Label&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_project_label&#x22;,&#x22;label&#x22;:&#x22;Delete Project Label&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_project_milestones&#x22;,&#x22;label&#x22;:&#x22;List Project Milestones&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_project_milestone&#x22;,&#x22;label&#x22;:&#x22;Get Project Milestone&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_project_milestone&#x22;,&#x22;label&#x22;:&#x22;Create Project Milestone&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_project_milestone&#x22;,&#x22;label&#x22;:&#x22;Update Project Milestone&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_project_milestone&#x22;,&#x22;label&#x22;:&#x22;Delete Project Milestone&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_releases&#x22;,&#x22;label&#x22;:&#x22;List Releases&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_release&#x22;,&#x22;label&#x22;:&#x22;Get Release&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_release&#x22;,&#x22;label&#x22;:&#x22;Create Release&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_release&#x22;,&#x22;label&#x22;:&#x22;Update Release&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_release&#x22;,&#x22;label&#x22;:&#x22;Delete Release&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_search_globally&#x22;,&#x22;label&#x22;:&#x22;Search Globally&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_search_in_group&#x22;,&#x22;label&#x22;:&#x22;Search In Group&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_search_in_project&#x22;,&#x22;label&#x22;:&#x22;Search In Project&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_environments&#x22;,&#x22;label&#x22;:&#x22;List Environments&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_environment&#x22;,&#x22;label&#x22;:&#x22;Get Environment&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_environment&#x22;,&#x22;label&#x22;:&#x22;Create Environment&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_environment&#x22;,&#x22;label&#x22;:&#x22;Update Environment&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_stop_environment&#x22;,&#x22;label&#x22;:&#x22;Stop Environment&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_snippets&#x22;,&#x22;label&#x22;:&#x22;List Snippets&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_snippet&#x22;,&#x22;label&#x22;:&#x22;Get Snippet&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_snippet&#x22;,&#x22;label&#x22;:&#x22;Create Snippet&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_snippet&#x22;,&#x22;label&#x22;:&#x22;Update Snippet&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_snippet&#x22;,&#x22;label&#x22;:&#x22;Delete Snippet&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_project_variables&#x22;,&#x22;label&#x22;:&#x22;List Project CI/CD Variables&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_project_variable&#x22;,&#x22;label&#x22;:&#x22;Get Project CI/CD Variable&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_create_project_variable&#x22;,&#x22;label&#x22;:&#x22;Create Project CI/CD Variable&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_update_project_variable&#x22;,&#x22;label&#x22;:&#x22;Update Project CI/CD Variable&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_project_variable&#x22;,&#x22;label&#x22;:&#x22;Delete Project CI/CD Variable&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_project_deploy_keys&#x22;,&#x22;label&#x22;:&#x22;List Project Deploy Keys&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_add_project_deploy_key&#x22;,&#x22;label&#x22;:&#x22;Add Project Deploy Key&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_delete_project_deploy_key&#x22;,&#x22;label&#x22;:&#x22;Delete Project Deploy Key&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_enable_project_deploy_key&#x22;,&#x22;label&#x22;:&#x22;Enable Project Deploy Key&#x22;,&#x22;scopes&#x22;:[&#x22;api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_list_namespaces&#x22;,&#x22;label&#x22;:&#x22;List Namespaces&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]},{&#x22;id&#x22;:&#x22;gitlab_get_namespace&#x22;,&#x22;label&#x22;:&#x22;Get Namespace&#x22;,&#x22;scopes&#x22;:[&#x22;read_api&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Creating an OAuth Application</h2>

  <p>To connect GitLab with StackOne, you'll need to create an OAuth application in your GitLab account.</p>

  <Steps>
    <Step title="Sign in and navigate to Applications">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://gitlab.com/users/sign_in" target="_blank" rel="noopener noreferrer">GitLab account</a></p>

        <ul>
          <li>Click on your profile avatar in the top-right corner</li>
          <li>Select <strong>Edit profile</strong> from the dropdown menu</li>
          <li>In the left sidebar, expand the <strong>Access</strong> section</li>
          <li>Click <strong>Applications</strong> from the expanded menu</li>
        </ul>
      </div>
    </Step>

    <Step title="Create a new application">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click the <strong>Add new application</strong> button to create a new OAuth application.</p>

        <ul>
          <li><strong>Name</strong>: Enter a descriptive name (e.g., StackOne Integration)</li>
          <li><strong>Redirect URI</strong>: Enter `https://api.stackone.com/connect/oauth2/gitlab/callback`</li>
          <li><strong>Confidential</strong>: Leave this checkbox checked (recommended for server-side applications)</li>
        </ul>
      </div>
    </Step>

    <Step title="Select OAuth scopes">
      <div data-guide-step data-guide-scopes="api,read_api,read_user,read_repository,write_repository" data-guide-display-scopes-list="api,read_api,read_user,read_repository,write_repository">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="api,read_api,read_user,read_repository,write_repository" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Add Group Member, Add Project Deploy Key, Add Project Member, Approve Merge Request, Archive Project, Cancel Auto-Merge, Cancel Pipeline, Cherry-Pick Commit, Compare Branches, Create Branch, Create Commit, Create Environment, Create File, Create Group, Create Issue, Create Issue Note, Create Merge Request, Create Merge Request Note, Create Pipeline, Create Project, Create Project CI/CD Variable, Create Project Label, Create Project Milestone, Create Release, Create Snippet, Create Tag, Create User, Delete Branch, Delete File, Delete Group, Delete Issue, Delete Pipeline, Delete Project, Delete Project CI/CD Variable, Delete Project Deploy Key, Delete Project Label, Delete Project Milestone, Delete Release, Delete Snippet, Delete Tag, Delete User, Enable Project Deploy Key, Fork Project, Get Branch, Get Commit, Get Commit Diff, Get Current User, Get Current User Status, Get Environment, Get File, Get Group, Get Issue, Get Job, Get Job Log, Get Merge Request, Get Merge Request Participants, Get Namespace, Get Pipeline, Get Pipeline Variables, Get Project, Get Project CI/CD Variable, Get Project Label, Get Project Milestone, Get Release, Get Repository Contributors, Get Snippet, Get User, Get User Status, List Branches, List Commits, List Environments, List Group Members, List Group Projects, List Group Subgroups, List Groups, List Issue Notes, List Issue Participants, List Merge Request Commits, List Merge Request Diffs, List Merge Request Notes, List Namespaces, List Pipeline Jobs, List Pipelines, List Project CI/CD Variables, List Project Deploy Keys, List Project Issues, List Project Labels, List Project Members, List Project Merge Requests, List Project Milestones, List Projects, List Related Merge Requests, List Releases, List Repository Tree, List Snippets, List Tags, List Users, Merge Merge Request, Move Issue, Protect Branch, Rebase Merge Request, Remove Group Member, Remove Project Member, Retry Job, Retry Pipeline, Revert Commit, Search Globally, Search In Group, Search In Project, Stop Environment, Unarchive Project, Unprotect Branch, Update Environment, Update File, Update Group, Update Issue, Update Merge Request, Update Project, Update Project CI/CD Variable, Update Project Label, Update Project Member, Update Project Milestone, Update Release, Update Snippet, Update User</span>
        </div>

        <p>Select the appropriate scopes based on your integration requirements. Use <strong>api</strong> for full API access, or select granular scopes for specific permissions.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="api">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy api" title="Copy scope" data-copy="api">
                  <span className="connector-guide-scope-copy__label">api</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="read_api">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy read_api" title="Copy scope" data-copy="read_api">
                  <span className="connector-guide-scope-copy__label">read\_api</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="read_user">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy read_user" title="Copy scope" data-copy="read_user">
                  <span className="connector-guide-scope-copy__label">read\_user</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="read_repository">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy read_repository" title="Copy scope" data-copy="read_repository">
                  <span className="connector-guide-scope-copy__label">read\_repository</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="write_repository">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy write_repository" title="Copy scope" data-copy="write_repository">
                  <span className="connector-guide-scope-copy__label">write\_repository</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Save the application">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Save application</strong> to create your OAuth application.</p>
      </div>
    </Step>

    <Step title="Copy Application credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>After saving, your Application ID and Secret will be displayed.</p>

        <ul>
          <li>Copy the <strong>Application ID</strong> and store it securely for use later</li>
          <li>Copy the <strong>Secret</strong> immediately as it will only be shown once</li>
          <li>If you lose the Secret, you'll need to regenerate it from the application settings</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>GitLab</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>GitLab</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Application ID</strong></li>
          <li><strong>Application Secret</strong></li>
          <li><strong>OAuth Scopes</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>GitLab</strong>.
