Eclipse Foundation Git ECA API (1.1.0)

Download OpenAPI specification:Download

Collection of API endpoints used in the validation and management of external Git services, such as Gitlab and Github.

ECA Validation

Definitions in relation to the validation of Git commits through ECA signage

ECA validation

Validates a list of commits for a merge request.

Request Body schema: application/json
provider
required
string
Enum: "github" "gitlab" "gerrit"

The provider for which the commit is being validated for

repoUrl
required
string

the outward facing URL of the repo the commit belongs to.

strictMode
required
boolean

Whether to strictly apply validation regardless of project matching

estimatedLoc
integer or null

The estimated LOC changed by the set of commits sent for validation.

required
Array of objects >= 1

Responses

Request samples

Content type
application/json
{
  • "provider": "github",
  • "repoUrl": "string",
  • "strictMode": true,
  • "estimatedLoc": 0,
  • "commits": [
    ]
}

Response samples

Content type
application/json
{
  • "time": "2019-08-24T14:15:22Z",
  • "trackedProject": true,
  • "strictMode": true,
  • "fingerprint": "string",
  • "errorCount": 0,
  • "passed": true,
  • "commits": {
    }
}

Historic ECA validation status

Returns a set of validation messages for the given unique fingerprint

path Parameters
fingerprint
required
string

Unique ID for the request group

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Historic ECA validation status in a HTML format

Returns an HTMl page containing validation messages

path Parameters
fingerprint
required
string

Unique ID for the request group

Responses

User status lookup

Returns wether or not the user has a signed ECA

query Parameters
q
string

Query string containing either email or username. Email is only valid for logged in committers/project leads

email
string
Deprecated

Email is only valid for logged in committers/project leads. For removal at the end of 2024.

Responses

Reports

Reports on metadata associated with Git systems managed by the Eclipse Foundation

Gitlab private project event report

Returns list of private project events using desired filters

query Parameters
key
required
string

The endpoint access key

status
string

the project's current status - active/deleted

since
string

Starting date range for project creation date - yyyy-MM-dd

until
string

Ending date range for project creation date - yyyy-MM-dd

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Integration Webhooks

Endpoints related to binding to external Git services through a webhook

Github incoming hook event processing

Process incoming pull request hook events from Github

header Parameters
X-GitHub-Delivery
required
string
X-GitHub-Event
required
string
X-GitHub-Hook-ID
required
string
Request Body schema: application/json
object

Information about the Github App installation making this request

object

Information about the repository that triggered this request

object

Information on the pull request that triggered this workflow.

Responses

Request samples

Content type
application/json
{
  • "installation": {
    },
  • "repository": {
    },
  • "pull_request": {
    }
}

Gitlab webhook revalidation request

Process incoming system hooks from GitLab

path Parameters
fingerprint
required
string

Unique ID for the request group

Request Body schema: application/x-www-form-urlencoded
h-form-captcha-response
required
string

the hCaptcha challenge response.

Responses

Response samples

Content type
application/json
{
  • "status_code": 0,
  • "message": "string",
  • "url": "string"
}

Gitlab event processing

Process incoming system hooks from GitLab

header Parameters
X-Gitlab-Event
required
string
Request Body schema: application/json
created_at
required
string <date-time> (DateTime)

Time of the project creation event

updated_at
required
string <date-time> (DateTime)

Time indicating the last event occured

event_name
required
string

The event type

name
required
string

The project name

owner_email
required
string

The namespace's email. If not user, will be empty

owner_name
required
string

The namespace name (group, user)

required
Array of objects

The project owners

path
required
string

The project path

path_with_namespace
required
string

The project path with namespace

project_id
required
integer

The project's gitlab id

project_visibility
required
string

The project's visibility (public, private)

old_path_with_namespace
null or string

The old path with namespace, only used in 'project_rename' hooks

Responses

Request samples

Content type
application/json
{
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "event_name": "string",
  • "name": "string",
  • "owner_email": "string",
  • "owner_name": "string",
  • "owners": [
    ],
  • "path": "string",
  • "path_with_namespace": "string",
  • "project_id": 0,
  • "project_visibility": "string",
  • "old_path_with_namespace": null
}