arazzo: 1.0.1
info:
title: GitLab Request and Approve Project Access
summary: Request access to a project, then approve that same requester.
description: >-
A two-actor onboarding flow. The workflow first submits an access request for
the authenticated user to a project, captures the resulting requester id, and
then approves that requester at the supplied access level. Every step spells
out its request inline so the flow can be read and executed without opening
the underlying OpenAPI description.
version: 1.0.0
x-realizes-capability-ids:
- BC-4200.40
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-4200.40
capability_name: Software Construction Management
spec: gitlab-projects-api-openapi.yml
confidence: 0.8
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: projectsApi
url: ../openapi/gitlab-projects-api-openapi.yml
type: openapi
workflows:
- workflowId: request-and-approve-project-access
summary: Submit a project access request and approve it.
description: >-
Creates an access request for the project, then approves the returned
requester at the requested access level.
inputs:
type: object
required:
- privateToken
- projectId
properties:
privateToken:
type: string
description: GitLab Private-Token used to authenticate the API calls.
projectId:
type: string
description: The ID or URL-encoded path of the project.
accessLevel:
type: integer
description: A valid access level (30 is the Developer role).
default: 30
steps:
- stepId: requestAccess
description: Submit an access request for the authenticated user to the project.
operationId: postApiV4ProjectsIdAccessRequests
parameters:
- name: Private-Token
in: header
value: $inputs.privateToken
- name: id
in: path
value: $inputs.projectId
successCriteria:
- condition: $statusCode == 200
outputs:
requesterId: $response.body#/id
requesterUsername: $response.body#/username
- stepId: approveAccess
description: Approve the requester returned by the access request step.
operationId: putApiV4ProjectsIdAccessRequestsUserIdApprove
parameters:
- name: Private-Token
in: header
value: $inputs.privateToken
- name: id
in: path
value: $inputs.projectId
- name: user_id
in: path
value: $steps.requestAccess.outputs.requesterId
requestBody:
contentType: application/json
payload:
access_level: $inputs.accessLevel
successCriteria:
- condition: $statusCode == 200
outputs:
approvedUserId: $response.body#/id
state: $response.body#/state
outputs:
approvedUserId: $steps.approveAccess.outputs.approvedUserId
requesterUsername: $steps.requestAccess.outputs.requesterUsername
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.