Download OpenAPI specification:Download
CodeLinaro hosts open source projects serving the Arm ecosystem. The projects hosted contain tested open source code needed to provide upstream enablement for innovative, performance optimized support for system on a chip (SoC) products and their related ecosystems. They serve as a staging area for code that is submitted to upstream projects such as the Linux kernel and Android. CodeLinaro also mirrors key upstream projects for use by the community on its git server.
CodeLinaro services various organizations as well as their customers. Therefore, we use the following to help users keep track of resources within CodeLinaro.
| Parameter | Definition |
|---|---|
parentOrganization |
The main organization working with CodeLinaro |
organization |
This is the name of either the main organization (same as `parentOrganization`), or a customer of that main organization. This parameter is used to help filter results of various user, project, and metric endpoints. |
There are currently 4 roles supported in CodeLinaro with only 1 assigned to a user or client application.
| Role | Description |
|---|---|
member |
Default for all users, primarily for "read-only" purposes |
users-admin |
Allows management of users within the organization; allows resource access for users |
projects-admin |
Allows management of projects within the organization |
system-admin |
Allows management of both users and projects within the organization |
There are currently 6 Access Levels supported in CodeLinaro which can be asigned accordingly to users depending on the project needs.
| Role / Access Level | Description |
|---|---|
Admins |
This role is assigned to users who need the ability to manage a specific project's title, descrption, resources and access controls. |
Controller |
This is just a label calling out specific users who help oversee said project. |
Editor |
This role is assigned to users who need the ability to edit and publish content within the project's wiki so long as the project is public and not inactive. |
Reporter |
This role is assigned to users needing "read-only" access to the project's GitLab and Artifactory repositories so long as the project is not inactive. |
Developer |
This role is given to users who will be contributing to this project's development. They will be able to clone any repository from GitLab and submit pull requests if enabled. They will also have "read-only" access to the project's Artifactory repository as uploads are reserved for Maintainers. |
Maintainer |
This role is given to users who may not only contribute to this project's development, but also approve pull requests and be responsible for releases. They will have full control over this project's GitLab and Artifactory repositories. |
This shall get a list of all the child organization teams created under a given parent org.
| parentOrganization | string Example: parentOrganization=Linaro Optional - if you are assigned to only one parent org. | Required - If you belong to more than one parent org |
| organization | string Example: organization=Linaro Optional to filter by the child organization |
curl --request GET \ --url 'https://api.codelinaro.org/v1/organization/teams?parentOrganization=SOME_STRING_VALUE&organization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 200,
- "pageSize": 10,
- "currentPage": "/v1/organization/teams?page=12",
- "firstPage": "/v1/organization/teams?page=1",
- "previousPage": "/v1/organization/teams?page=11",
- "nextPage": "/v1/organization/teams?page=13",
- "lastPage": "/v1/organization/teams?page=20"
}, - "data": [
- {
- "id": "string",
- "org_name": "string",
- "name": "string",
- "path": "string",
- "created_date": "string"
}
]
}This shall get an organization team by its id .
| teamid required | integer Example: 112 The id of the team |
| parentOrganization | string Example: parentOrganization=Linaro Optional - if you are assigned to only one parent org. | Required - If you belong to more than one parent org |
curl --request GET \ --url 'https://api.codelinaro.org/v1/organization/teams/112?parentOrganization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "id": "string",
- "org_name": "string",
- "name": "string",
- "path": "string",
- "created_date": "string"
}This shall update an organization team properties by its id .
Note : For now it can only update the organization team name
| teamid required | integer Example: 112 The id of the team |
| parentOrganization | string Example: parentOrganization=Linaro Optional - if you are assigned to only one parent org. | Required - If you belong to more than one parent org |
| name required | string |
{- "name": "new-org-team-01"
}{- "status": {
- "code": 200,
- "description": "Changes done successfully"
}, - "data": {
- "id": "102",
- "org_name": "org-name",
- "name": "test-org",
- "path": "org-102-team",
- "created_date": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)"
}
}This shall get the status of the child organization teams to the project queue item.
| queueid required | string Example: 42007afd-2b9c-45d5-a388-985527c185b8 the queue id of the job. (this is a url or path parameter) |
curl --request GET \ --url https://api.codelinaro.org/v1/organization/teams/queue/42007afd-2b9c-45d5-a388-985527c185b8/status \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": "completed | error",
- "message": "NULL | reason for failure"
}Handles the overall management of the user accounts in CodeLinaro.
Since Auth0 is the sole identity provider for our users, our API shall be interacting with their Management APIs for all things relating to users. Users are identified uniquely in Auth0 database with set usernames and emails. Once a user is setup in Auth0, their username and email cannot be changed.
NOTE - If a user is supposed to have a @codelinaro account, the account shall need to be created in Auth0 with that email address used as the main email (even though the email account might not be in place immediately).
This shall get a list of all users from the Auth0 database via their Management API. Based on the scope of user making the request, the results shall only show users the requestor is privy to. This endpoint shall also support pagination: ?page=1&limit=100. The API only displays up to 10 users by default.
| organization | string Example: organization=Linaro Optional to filter by the users' organization |
| service | string Example: service=email Optional to filter by the users' service |
| createdAt | string Example: createdAt=2020-08-01 TO 2020-09-01 Optional to filter by the users' creation date. This value can also be a date range. Format required is 'yyyy-MM-dd' |
| page | integer Example: page=1 Optional to retrieve the needed page segment of users |
| limit | integer Example: limit=10 Optional to raise or lower the number of users in response |
| query | string Example: query=Keyword Search Optional parameter to search the user list matching given string. The API shall check against username, displayName, and email. |
| role | string Example: role=member Optional parameter to search the user list matching a given role. |
| status | string Example: status=active Optional parameter to search the user list matching a given status. |
| all | boolean Example: all=true Optional parameters are used to return all data. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/users?organization=SOME_STRING_VALUE&service=SOME_STRING_VALUE&createdAt=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&query=SOME_STRING_VALUE&role=SOME_STRING_VALUE&status=SOME_STRING_VALUE&all=SOME_BOOLEAN_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 200,
- "pageSize": 10,
- "currentPage": "/v1/users?page=12",
- "firstPage": "/v1/users?page=1",
- "previousPage": "/v1/users?page=11",
- "nextPage": "/v1/users?page=13",
- "lastPage": "/v1/users?page=20"
}, - "data": [
- {
- "username": "string",
- "displayName": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "john.smith@codelinaro.org",
- "externalEmail": "string",
- "parentOrganization": "string",
- "organization": "string",
- "role": "string",
- "active": "string",
- "dateCreated": "string",
- "dateLastAccessed": "string"
}
]
}This shall add a user into the Auth0 database via their Management API. Usernames and emails MUST be unique. If a user is supposed to have a @codelinaro email address, the externalEmail field shall not be used for the main identifier in Auth0, but instead shall be added as user metadata.
There are 4 roles available: member,users-admin,projects-admin, and system-admin. Only 1 role shall be assigned to a user. Please see notes above for descriptions about roles.
In order to delete a user, please open a CodeLinaro Support Ticket (servicedesk.codelinaro.org)
NOTE: The parent organization of a user is determined by the token of the application request provided by CodeLinaro Support. The organization defaults to the parent organization recieved by the token. Requestors may send in the same or other organizations (for partners) so long as they already exist in CodeLinaro. If a new organization needs to be added, please open a support ticket with CodeLinaro.
| username | string |
| firstName required | string |
| lastName required | string |
| displayName | string |
| externalEmail required | string |
| organization | string |
| role | string Enum: "member" "projects-admin" "users-admin" "system-admin" |
{- "username": "john.smith",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "externalEmail": "cool@example.com",
- "organization": "Linaro",
- "role": "member"
}{- "status": {
- "code": 200,
- "description": "Created Successfully"
}, - "data": {
- "username": "john.smith",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "email": "john.smith@codelinaro.org",
- "externalEmail": "cool@example.com",
- "active": "active",
- "dateCreated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "picture": "string",
- "parentOrganization": "string",
- "organization": "string",
- "role": "member"
}
}This shall return full profile information for said user in CodeLinaro.
| username required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "username": "john.smith",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "email": "john.smith@codelinaro.org",
- "externalEmail": "cool@example.com",
- "parentOrganization": "Linaro",
- "organization": "string",
- "role": "member",
- "active": "active",
- "dateCreated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "dateLastAccessed": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "picture": "string"
}| username required | string |
| firstName required | string |
| lastName required | string |
| displayName | string |
| status | string |
| role | string Enum: "member" "projects-admin" "users-admin" "system-admin" |
{- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "status": "active",
- "role": "member"
}{- "status": {
- "code": 200,
- "description": "Updated Successfully"
}, - "data": {
- "username": "john.smith",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "email": "john.smith@codelinaro.org",
- "externalEmail": "cool@example.com",
- "parentOrganization": "Linaro",
- "organization": "string",
- "role": "member",
- "active": "active",
- "dateCreated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "dateLastAccessed": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "picture": "string"
}
}| username required | string |
| firstName | string |
| lastName | string |
| displayName | string |
| status | string |
| role | string Enum: "member" "projects-admin" "users-admin" "system-admin" |
{- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "status": "active",
- "role": "member"
}{- "status": {
- "code": 200,
- "description": "Updated Successfully"
}, - "data": {
- "username": "john.smith",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "email": "john.smith@codelinaro.org",
- "externalEmail": "cool@example.com",
- "parentOrganization": "Linaro",
- "organization": "string",
- "role": "member",
- "active": "active",
- "dateCreated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "dateLastAccessed": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "picture": "string"
}
}This sends an email which includes a link for users to set a new password on their CodeLinaro account. It also lists the various services availible to said user.
| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/send_welcome \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "info": {
- "accepted": [ ],
- "rejected": [ ],
- "envelopeTime": 0,
- "messageTime": 0,
- "messageSize": 0,
- "response": "string",
- "envelope": {
- "from": "string",
- "to": [ ]
}, - "messageId": "string"
}
}This will help you to transfer a user from one org to another within the same parent organization
| username required | string |
| org_id required | integer |
{- "org_id": 101
}{- "code": 201,
- "description": "Your Request is queued.",
- "queueid": "62df717a-df43-4da3-a75a-a880f94099b6"
}| queueid required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/organization/queue/%7Bqueueid%7D/status \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "id": "queue id",
- "action": "transfer",
- "username": "username",
- "org_id": "123",
- "status": "open",
- "message": "reason for failure"
}CodeLinaro supports being able to group various users into "teams" for quick and easy project access control management.
This fetches a list of teams pertaining to an organization within CodeLinaro. This endpoint supports pagination: ?page=1&limit=10.
| serviceType | string Example: serviceType=wiki |
| page | integer Example: page=1 Optional to retrieve the needed page segment of users |
| limit | integer Example: limit=10 Optional to raise or lower the number of teams in response |
curl --request GET \ --url 'https://api.codelinaro.org/v1/teams?serviceType=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 1,
- "pageSize": 10,
- "currentPage": "/v1/teams?page=1",
- "firstPage": "/v1/teams?page=1",
- "previousPage": "",
- "nextPage": "",
- "lastPage": "/v1/teams?page=1"
}, - "data": [
- {
- "name": "Developer Services",
- "created_date": "2022-01-26T22:26:59.034Z"
}
]
}This endpoint creates a team of users and allows for admins to specify services applicable.
| name required | string |
| parentOrganization | string |
| gitlab required | boolean |
| artifactory required | boolean |
| wiki required | boolean |
| userNames required | Array of strings |
{- "name": "DeveloperServices",
- "parentOrganization": "Linaro",
- "gitlab": true,
- "artifactory": false,
- "wiki": false,
- "userNames": [
- "john.smith"
]
}{- "status": {
- "code": 200,
- "description": "Created Successfully"
}
}This fetches a given team by name pertaining to an organization within CodeLinaro.
| teamname required | string |
| parentOrganization required | string Example: parentOrganization=linaro |
curl --request GET \ --url 'https://api.codelinaro.org/v1/teams/%7Bteamname%7D?parentOrganization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "services": {
- "gitlab": true,
- "artifactory": true,
- "wiki": true
}, - "userNames": [
- "test.user"
], - "projects": [
- {
- "project_id": 120,
- "project_slug": "test_project",
- "role": "developer",
- "project_name": "Test Project"
}
]
}This removes a team, but it does not remove user accounts from CodeLinaro.
| teamname required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/teams/%7Bteamname%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This fetches the services of a given team by name pertaining to an organization within CodeLinaro.
| teamname required | string |
| parentOrganization required | string Example: parentOrganization=linaro |
curl --request GET \ --url 'https://api.codelinaro.org/v1/teams/%7Bteamname%7D/services?parentOrganization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "gitlab": true,
- "artifactory": true,
- "wiki": true
}This will NOT enable nor disable a user's service entitlement. This is only a categorization to find and assign teams to projects based on service.
| teamname required | string |
| parentOrganization required | string |
| service required | string Enum: "artifactory" "gitlab" "wiki" |
{- "parentOrganization": "Linaro",
- "service": "wiki"
}{- "status": {
- "code": 200,
- "description": "Added Successfully"
}
}This fetches the users list of a given team by name pertaining to an organization within CodeLinaro.
| teamname required | string |
| parentOrganization required | string Example: parentOrganization=linaro |
curl --request GET \ --url 'https://api.codelinaro.org/v1/teams/%7Bteamname%7D/users?parentOrganization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "username": "test.user",
- "display_name": "Test User"
}
]This adds a new user to the teams users list
| teamname required | string |
| username required | string |
| parentOrganization required | string Example: parentOrganization=linaro |
curl --request POST \ --url 'https://api.codelinaro.org/v1/teams/%7Bteamname%7D/users/%7Busername%7D?parentOrganization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This removes a new user from the teams users list
| teamname required | string |
| username required | string |
| parentOrganization required | string Example: parentOrganization=linaro |
curl --request DELETE \ --url 'https://api.codelinaro.org/v1/teams/%7Bteamname%7D/users/%7Busername%7D?parentOrganization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This fetches the projects list of a given team by name pertaining to an organization within CodeLinaro.
| teamname required | string |
| parentOrganization required | string Example: parentOrganization=linaro |
curl --request GET \ --url 'https://api.codelinaro.org/v1/teams/%7Bteamname%7D/projects?parentOrganization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "id": 120,
- "project_slug": "test_project",
- "project_name": "Test Project",
- "roles": "developer"
}
]| username required | string |
| page | integer Example: page=1 Optional to retrieve the needed page segment of projects |
| limit | integer Example: limit=10 Optional to raise or lower the number of projects in response |
| teamContain | boolean Optional to contains the project of the team the user belongs to in response |
curl --request GET \ --url 'https://api.codelinaro.org/v1/users/%7Busername%7D/projects?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&teamContain=SOME_BOOLEAN_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 200,
- "pageSize": 10,
- "currentPage": "/v1/users/{username}/projects?page=12",
- "firstPage": "/v1/users/{username}/projects?page=1",
- "previousPage": "/v1/users/{username}/projects?page=11",
- "nextPage": "/v1/users/{username}/projects?page=13",
- "lastPage": "/v1/users/{username}/projects?page=20"
}, - "data": [
- {
- "projectSlug": "cool-project-name",
- "name": "Cool Project Name",
- "description": "This would contain a description given for this cool project!",
- "role": [
- "developer"
], - "roles": [
- {
- "name": "reporter",
- "granted": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)"
}
], - "visibility": "public",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)"
}
]
}| username required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/services \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "email": {
- "username": "john.smith",
- "link": "mailto:john.smith@codelinaro.org",
- "mailplan": "non-retention",
- "status": "active"
}, - "gitlab": {
- "username": "john.smith",
- "status": "active"
}, - "servicedesk": {
- "username": "john.smith",
- "status": "active",
- "displayName": "John Smith"
}, - "service-x": {
- "username": "john.smith",
- "status": "active",
- "misc": { }
}
}Get the status of the user entitlement services queue for (git, artifactory, email, service desk, IRC, wiki)
| queueid required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/service/entitlement/queue/%7Bqueueid%7D/status \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": "completed | open | failed",
- "message": "NULL or reason of failure"
}| username required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/artifactory \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "username": "john.smith",
- "status": "active"
}| username required | string |
| status required | string Enum: "active" "inactive" |
{- "status": "active"
}{- "status": {
- "code": 200,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/artifactory \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}This shall disable and remove the Artifactory service from said user's CodeLinaro Account.
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/artifactory \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}Manages Email (Zoho) service for each user in CodeLinaro.
If a user is disabled in CodeLinaro, a PUT request to this endpoint shall be called to block access to the email account in Zoho while keeping the account itself intact.
If a user is removed from CodeLinaro, the email account shall either be archived via PUT request (if marked for retention) or be permanently removed from Zoho via DELETE request.
| username required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/email \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "username": "john.smith",
- "link": "mailto:john.smith@codelinaro.org",
- "mailplan": "non-retention",
- "status": "active",
- "displayName": "John Smith"
}This shall update the status of a user's access to the email account. If the account mail plan needs to change along with other account settings, please open a ticket.
| username required | string |
| status required | string |
{- "status": "active"
}{- "status": {
- "code": 200,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}Creates a @codelinaro.org email account in Zoho for said user. Based on the information in Auth0, the displayname shall be used on this new email account.
A mailplan needs to be specified if an email account requires retention. The default shall be non-retention if no plan is specified.
| username required | string |
| mailplan | string Enum: "retention" "non-retention" |
{- "mailplan": "non-retention"
}{- "status": {
- "code": 201,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}This shall permanently remove an email account from Zoho if the account is a non-retention account.
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/email \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}Manages Service Desk service for each user in CodeLinaro. User shall be able to enter technical support tickets with the CodeLinaro team.
| username required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/servicedesk \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "username": "john.smith",
- "status": "active",
- "displayName": "John Smith"
}This shall update the status of a user's access to the service desk account.
Note: This endpoint has been deprecated and will be removed in future release.
| username required | string |
| status required | string |
{- "status": "active"
}Creates an account in CodeLinaro Service Desk for said user. Based on the information in Auth0, the displayname, external_email and organization shall be used on this new account.
| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/servicedesk \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}This shall permanently remove an account from CodeLinaro Service Desk. Tickets created prior to this operation shall be archived.
Note: This endpoint has been deprecated and will be removed in future release.
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/servicedesk \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
| username required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/git \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "username": "john.smith",
- "displayName": "John Smith",
- "status": "active",
- "last_activity_on": "2024-07-17"
}When automated, this shall update an user's Display Name based on Auth0 profile. A user's status can be changed to active or inactive. When the status is inactive, the account in GitLab shall be deactivated yet preserved. The account can be reactivated when the status is set to active.
See the DELETE operation for terminated accounts.
personalProjectLimit is an optional parameter that will set the number of personal projects that a user can create in CodeLinaro Git.
If personal projects are not allowed for an organization a 403(status code) response is expected. Otherwise, if personal projects are allowed for said organization personalProjectLimit can be set up to the max allowed.
| username required | string |
| status required | string Enum: "active" "inactive" |
| personalProjectLimit | integer |
{- "status": "active",
- "personalProjectLimit": 1
}{- "status": {
- "code": 200,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}personalProjectLimit is an optional parameter that will set the number of personal projects that a user can create in CodeLinaro Git.
If personal projects are not allowed for an organization a 403(status code) response is expected. Otherwise, if personal projects are allowed for said organization personalProjectLimit can be set up to the max allowed.
| username required | string |
| name | string |
| personalProjectLimit | integer |
{- "name": "John Smith",
- "personalProjectLimit": 1
}{- "status": {
- "code": 201,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}This request shall remove the account from GitLab while contributions shall remain under CodeLinaro Admin ownership if necessary.
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/git \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}| username required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/irc \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "service": "service type (artifactory,email,git,irc)",
- "username": "john.smith",
- "status": "active"
}| username required | string |
| status required | string Enum: "active" "inactive" |
{- "status": "active"
}{- "status": {
- "code": 200,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}| username required | string |
| displayName | string |
{- "displayName": "John Smith"
}{- "status": {
- "code": 201,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/irc \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}| username required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/wiki \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "username": "email@example.org",
- "status": "active"
}| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/wiki \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}| username required | string |
| status required | string Enum: "active" "inactive" |
{- "status": "active"
}{- "status": {
- "code": 201,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/users/%7Busername%7D/wiki \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Your request is queued"
}, - "data": {
- "queueid": "369f3b54-341f-459d-b9a1-3c8e93c1cc4b"
}
}This shall return a slimmed-down list of projects with option to filter by organization, visibility, and status. This endpoint shall also support pagination: ?page=1&limit=100
| page | integer Optional to retrieve the needed page segment of projects |
| limit | integer Optional to raise or lower the number of projects in response |
| query | string Example: query=Keyword Search Optional parameter to search the system for projects matching a given string. The API shall check against project titles and descriptions. |
| organization | string Example: organization=Linaro Optional parameter to search the system for projects from an organization. |
| status | string Enum: "active" "inactive" "archived" Example: status=active Optional parameter to search the system for projects based on status. |
| all | boolean Example: all=true Optional parameters are used to return all data. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&query=SOME_STRING_VALUE&organization=SOME_STRING_VALUE&status=SOME_STRING_VALUE&all=SOME_BOOLEAN_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 200,
- "pageSize": 10,
- "currentPage": "/v1/projects?page=12?parentOrganization=Linaro",
- "firstPage": "/v1/projects?page=1?parentOrganization=Linaro",
- "previousPage": "/v1/projects?page=11?parentOrganization=Linaro",
- "nextPage": "/v1/projects?page=13?parentOrganization=Linaro",
- "lastPage": "/v1/projects?page=20?parentOrganization=Linaro"
}, - "data": [
- {
- "projectSlug": "cool-project-name",
- "name": "Cool Project Name",
- "description": "This would contain a description given for this cool project!",
- "visibility": "public",
- "status": "active",
- "parentOrganization": "parent org key",
- "organization": "Child org name"
}
]
}This shall create a new project in CodeLinaro. Project information shall be kept in the RDS database. This MUST happen before adding new group to GitLab - see POST /projects/{project-slug}/git
In order to delete a project, please open a CodeLinaro Support Ticket (servicedesk.codelinaro.org)
NOTE:
1). Though optional, eccn is information collected primarily for certain private projects to meet certain international laws.
2).'externalContribution' is an optional property. this is a boolean property with false by default. This is used to mark the project eligible for external users to make their contribution. Setting this property to true or false is only valid if the organization allows this option at the organization level.
| name required | string |
| description required | string |
| projectSlug | string |
| eccn | string |
| visibility | string Enum: "public" "private" |
| externalContribution | boolean Enum: false true |
{- "name": "Awesome Project",
- "description": "This is the description for this awesome project",
- "projectSlug": "cool-project-name",
- "eccn": "export-compliance-info-xxxx",
- "visibility": "private",
- "externalContribution": false
}{- "status": {
- "code": 0,
- "description": "string"
}, - "data": {
- "name": "string",
- "description": "string",
- "projectSlug": "string",
- "visibility": "string",
- "username": "string",
- "organization": "string",
- "externalContribution": true
}
}All information and relationships concerning this project will be returned - links to GitLab, and all users/roles
| project-slug required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "externalContribution": "true or false",
- "projectSlug": "cool-project-name",
- "name": "Cool Project Name",
- "description": "This would contain a description given for this cool project!",
- "visibility": "public",
- "status": "active",
- "restrictionLevel": "read-only",
- "parentOrganization": "parent org name",
- "organization": "Child org name",
- "roles": {
- "controllers": [
- {
- "username": "john.smith",
- "organization": "CodeLinaro",
- "email": "mailto:john.smith@codelinaro.org"
}
], - "developers": [
- {
- "username": "john.smith",
- "organization": "CodeLinaro",
- "email": "mailto:john.smith@codelinaro.org"
}
], - "reporters": [
- {
- "username": "john.smith",
- "organization": "CodeLinaro",
- "email": "mailto:john.smith@codelinaro.org"
}
], - "editors": [
- {
- "username": "john.smith",
- "organization": "CodeLinaro",
- "email": "mailto:john.smith@codelinaro.org"
}
]
}, - "licenses": [
]
}This shall allow certain information about a project to be updated in CodeLinaro. It shall NOT allow project-slug nor visibility changes.
In the event of a visibility change, please open a ticket.
NOTE:
1).'externalContribution' is an optional property. this is a boolean property with false by default. This is used to mark the project eligible for external users to make their contribution. Setting this property to true or false is only valid if the organization allows this option at the organization level.
| project-slug required | string |
| name | string |
| description | string |
| restrictionLevel | string |
| externalContribution | boolean |
{- "name": "Awesome Project",
- "description": "This is the description for this awesome project",
- "restrictionLevel": "read-only",
- "externalContribution": "true or false"
}{- "status": {
- "code": 0,
- "description": "string"
}, - "data": {
- "name": "string",
- "description": "string",
- "restriction_level": "string",
- "externalContribution": "true or false"
}
}This shall allow specific information about a project to be updated in CodeLinaro.
In the event of a visibility change, please open a ticket.
NOTE:
1).'externalContribution' is an optional property. this is a boolean property with false by default. This is used to mark the project eligible for external users to make their contribution. Setting this property to true or false is only valid if the organization allows this option at the organization level.
| project-slug required | string |
| name | string |
| description | string |
| restrictionLevel | string |
| externalContribution | boolean |
{- "name": "Awesome Project",
- "description": "This is the description for this awesome project",
- "restrictionLevel": "read-only",
- "externalContribution": "true or false"
}{- "status": {
- "code": 0,
- "description": "string"
}, - "data": {
- "name": "string",
- "description": "string",
- "restriction_level": "string",
- "externalContribution": "true or false"
}
}This shall assign users to the project as controllers in CodeLinaro. These controllers are able to manage this project's information within CodeLinaro.
| project-slug required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/controllers \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "username": "john.smith",
- "organization": "CodeLinaro",
- "displayName": "john.smith"
}
]This shall assign users to the project as controllers in CodeLinaro. These controllers are able to manage this project's information within CodeLinaro.
| project-slug required | string |
| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/controllers/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Added Successfully"
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This shall remove controllers from this project in CodeLinaro
| project-slug required | string |
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/controllers/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This shall return a list of users on the project as developers in CodeLinaro.
| project-slug required | string |
| type | string Example: type=users Optional to filter by the team |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/developers?type=users' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "username": "john.smith",
- "organization": "CodeLinaro",
- "displayName": "john.smith"
}
]This shall schedule a job which will assign users to the project as developers in CodeLinaro. Once the user has been added to RDS database, CodeLinaro shall call GitLab API to add user to the Project Group folder as a 'developer'.
| project-slug required | string |
| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/developers/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your Request is scheduled."
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This shall remove developers from the project in CodeLinaro as well as GitLab
| project-slug required | string |
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/developers/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your Request is scheduled."
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This shall return a list of users on the project as maintainers in CodeLinaro.
| project-slug required | string |
| type | string Example: type=users Optional to filter by the team |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/maintainers?type=users' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "username": "john.smith",
- "organization": "CodeLinaro",
- "displayName": "john.smith"
}
]This shall schedule a job which will assign users to the project as maintainers in CodeLinaro. Once the user has been added to RDS database, CodeLinaro shall call GitLab API to add user to the Project Group folder as a 'maintainer'.
| project-slug required | string |
| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/maintainers/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your Request is scheduled."
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This shall remove maintainers from the project in CodeLinaro as well as GitLab
| project-slug required | string |
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/maintainers/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your Request is scheduled."
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This shall return a list of users on the project as reporters in CodeLinaro.
| project-slug required | string |
| type | string Example: type=users Optional to filter by the team |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/reporters?type=users' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "username": "john.smith",
- "organization": "CodeLinaro",
- "displayName": "john.smith"
}
]This shall schedule a job which will assign users to the project as reporters in CodeLinaro. Once the user has been added to RDS database, CodeLinaro shall call GitLab API to add user to the Project Group folder as a 'reporter'.
| project-slug required | string |
| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/reporters/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your Request is scheduled."
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This shall remove reporters from the project in CodeLinaro as well as GitLab
| project-slug required | string |
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/reporters/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Your Request is scheduled."
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This shall return a list of users on the project as editors in CodeLinaro.
| project-slug required | string |
| type | string Example: type=teams Optional to filter by the team |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/editors?type=teams' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "username": "john.smith",
- "organization": "string"
}
]This shall assign users to the project as editors in CodeLinaro. Once the user has been added to RDS database, CodeLinaro shall ensure user can edit the wiki pages for said project. The user will need to have wiki access in place prior to being assigned this role.
| project-slug required | string |
| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/editors/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Added Successfully"
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This shall remove editors from the project in CodeLinaro as well as the wiki
| project-slug required | string |
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/editors/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Deleted Successfully"
}
}This shall return a list of users on the project as editors in CodeLinaro.
| project-slug required | string |
| type | string Example: type=teams Optional to filter by the team |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/admins?type=teams' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "username": "john.smith",
- "organization": "string"
}
]This assigns a user as an administrator specifically for said project. Once the user has been assigned, said user will be abel to control all access and resource allotments for said project.
| project-slug required | string |
| username required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/admins/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Added Successfully"
}, - "data": {
- "projectSlug": "cool-project",
- "username": "john.smith"
}
}This removes an administrator from a single project
| project-slug required | string |
| username required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/admins/users/%7Busername%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Deleted Successfully"
}
}This shall fetch the main group information from GitLab associated to this project.
| project-slug required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/groups \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "name": "Cool Project",
- "path": "organization/private/cool-project",
- "gitGroupID": 101,
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "visibility": "private"
}This shall create a new group under the organization in GitLab. We use 'groups' in GitLab to serve as 'folders' or 'collections' for said CodeLinaro Project. Depending on the visibility of the project, this group shall either be placed
under the organization's PRIVATE or PRIVATE namespaces.
Example:
| Visibility | Path |
|---|---|
| Default Public | /organization/project-slug |
| Default Private | /organization/private/project-slug |
| *Custom Public | /organization/.../custom-public/project-slug |
| *Custom Public | /organization/.../custom-private/project-slug |
Git access is controlled at this top 'group' project level. Users must be granted access as a maintainer, developer, or reporter to said project.
*Please open a support ticket to request a custom public/private namespace.
| project-slug required | string |
| path | string |
| request_access_enabled | boolean |
| enable_ci | boolean |
{- "path": "custom-1/custom-2/custom-3",
- "request_access_enabled": true,
- "enable_ci": true
}{- "status": {
- "code": 0,
- "description": "string"
}, - "data": {
- "id": 0,
- "web_url": "string",
- "name": "string",
- "path": "string",
- "description": "string",
- "visibility": "string",
- "share_with_group_lock": true,
- "require_two_factor_authentication": true,
- "two_factor_grace_period": 0,
- "project_creation_level": "string",
- "subgroup_creation_level": "string",
- "lfs_enabled": true,
- "default_branch_protection": 0,
- "request_access_enabled": true,
- "shared_runners_enabled": true,
- "full_name": "string",
- "full_path": "string",
- "created_at": "string",
- "parent_id": 0,
- "projects": [
- "string"
], - "shared_projects": [
- "string"
]
}
}This will update the group's properties on gitlab.
The supported properties are below:
| Property | Type | Optional |
|---|---|---|
| request_access_enabled | Boolean |
yes |
| project-slug required | string |
| request_access_enabled | boolean |
| enable_ci | boolean |
{- "request_access_enabled": true,
- "enable_ci": true
}{- "status": {
- "code": 0,
- "description": "string"
}, - "data": {
- "id": 0,
- "web_url": "string",
- "name": "string",
- "path": "string",
- "description": "string",
- "visibility": "string",
- "share_with_group_lock": true,
- "require_two_factor_authentication": true,
- "two_factor_grace_period": 0,
- "project_creation_level": "string",
- "subgroup_creation_level": "string",
- "lfs_enabled": true,
- "default_branch_protection": 0,
- "request_access_enabled": true,
- "shared_runners_enabled": true,
- "full_name": "string",
- "full_path": "string",
- "created_at": "string",
- "parent_id": 0,
- "projects": [
- "string"
], - "shared_projects": [
- "string"
]
}
}This shall permanently delete the project's group, subgroups an repos from GitLab.
| project-slug required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/groups \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This shall fetch all subgroup information from GitLab associated to this project. This shall support pagination with a default limit of 10 records returned per page.
| project-slug required | string |
| path | string Example: path=platform/external Optional parameter to search the subgroup list matching a given path. This shall look for paths relative to the project path (based on the path used to initially create the subgroup) |
| page | integer Example: page=1 Optional to retrieve the needed page segment of repos |
| limit | integer Example: limit=10 Optional to raise or lower the number of repos in response |
| strict | integer Example: strict=1 Optional to use a strict filtering. Set |
| all | boolean Example: all=true Optional parameters are used to return all data. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/subgroups?path=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&strict=SOME_INTEGER_VALUE&all=SOME_BOOLEAN_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 200,
- "pageSize": 10,
- "currentPage": "/v1/projects/{project-slug}/git/repo?page=12",
- "firstPage": "/v1/projects/{project-slug}/git/repo?page=1",
- "previousPage": "/v1/projects/{project-slug}/git/repo?page=11",
- "nextPage": "/v1/projects/{project-slug}/git/repo?page=13",
- "lastPage": "/v1/projects/{project-slug}/git/repo?page=20"
}, - "data": [
- {
- "name": "subgroup-2",
- "path": "organization/private/cool-project/subgroup-1/subgroup-2",
- "gitGroupID": 103,
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "visibility": "private",
- "relativePath": "subgroup-1/subgroup-2"
}
]
}This shall create new subgroups under this project's main group in GitLab. CodeLinaro shall parse the subGroups argument and recursively create the sub-groups by calling the GitLab Group API passing a new parent group ID with each iteration. Depending on the visibility of the project, these subgroups shall either be placed under the organization's PRIVATE namespace or it shall be public under the same organization.
"For example: /organization/private/project-slug/sub-group1/sub-group2 vs. /organization/project-slug/sub-group1/sub-group2"
| project-slug required | string |
| subGroups | string |
{- "subGroups": "sub-group-1/sub-group-2/sub-group-3"
}{- "status": {
- "code": 0,
- "description": "string"
}, - "data": {
- "subGroups": "string"
}
}This will update the subgroup's properties on gitlab.
The supported properties are below:
| Property | Type | Optional |
|---|---|---|
| request_access_enabled | Boolean |
yes |
| project-slug required | string |
| groupID required | string |
| request_access_enabled | boolean |
{- "request_access_enabled": true
}{- "status": {
- "code": 0,
- "description": "string"
}, - "data": { }
}This shall delete a subgroup along with deeper subgroups and repos from GitLab associated to this project.
DELETE /project/{project-slug}/git| project-slug required | string |
| groupID required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/subgroups/%7BgroupID%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This returns a list of repositories for said project GitLab. Those which return with a gitSourceRepoID not equal to "0" are repos created from a fork. User can then use this paramter to find the source repo used during forking. This shall support pagination with a default limit of 10 records returned per page.
| project-slug required | string |
| page | integer Example: page=1 Optional to retrieve the needed page segment of repos |
| limit | integer Example: limit=10 Optional to raise or lower the number of repos in response |
| status | string Example: status=deleted Optional parameter for deleted repo. |
| all | boolean Example: all=true Optional parameters are used to return all data. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/repo?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&status=SOME_STRING_VALUE&all=SOME_BOOLEAN_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 200,
- "pageSize": 10,
- "currentPage": "/v1/projects/{project-slug}/git/repo?page=12",
- "firstPage": "/v1/projects/{project-slug}/git/repo?page=1",
- "previousPage": "/v1/projects/{project-slug}/git/repo?page=11",
- "nextPage": "/v1/projects/{project-slug}/git/repo?page=13",
- "lastPage": "/v1/projects/{project-slug}/git/repo?page=20"
}, - "data": [
- {
- "name": "Cool Repo Name",
- "gitRepoID": 102019,
- "sshURI": "git@staging-git.codelinaro.org:organization/private/cool-project/cool-repo-name.git",
- "subgroups": "group-1/group-2",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "gitSourceRepoID": 1920,
- "enableForking": true
}
]
}Creates a new empty repository (GitLab Project) in the specified project group or subgroup in GitLab service. Added for consistency, the gitSourceRepoID in the response indicates the original repository from which a fork was made. In this case, it returns '0'.
| project-slug required | string |
| name required | string |
| repoSlug | string |
| repoPathNew | string |
| issueTracking | string Default: "disabled" Enum: "enabled" "private" "disabled" |
| mergeRequests | string Default: "disabled" Enum: "enabled" "private" "disabled" |
| requiresDCO | boolean Default: false |
| enableLFS | boolean Default: false |
| enableForking | boolean Default: true |
{- "name": "Name for Repository",
- "repoSlug": "URL-friendly-name-1.0",
- "repoPathNew": "sub-group-1/sub-group-2/sub-group-3",
- "issueTracking": "disabled",
- "mergeRequests": "disabled",
- "requiresDCO": false,
- "enableLFS": false,
- "enableForking": true
}{- "status": {
- "code": 0,
- "description": "string"
}, - "data": {
- "gitRepoId": 0,
- "status": "string",
- "issueTracking": "string",
- "mergeRequests": "string",
- "webURI": "string",
- "sshURI": "string",
- "requiresDCO": false,
- "enableLFS": false,
- "created": "string",
- "gitSourceRepoID": 0,
- "enableForking": true
}
}This returns information of a single repository for said project GitLab. If the attribute gitSourceRepoID is not equal to "0", this repo was created from a fork. User can then use this paramter to find the source repo used during forking.
| project-slug required | string |
| repoID required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/repo/%7BrepoID%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "name": "Cool Repo Name",
- "gitRepoID": 102019,
- "status": "archived",
- "issueTracking": "disabled",
- "mergeRequests": "disabled",
- "requiresDCO": false,
- "enableLFS": false,
- "sshURI": "git@staging-git.codelinaro.org:organization/private/cool-project/cool-repo-name.git",
- "subgroups": "group-1/group-2",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "gitSourceRepoID": 1920,
- "lastPush": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "lastPull": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "enableForking": true,
- "repoSizeBytes": 3256798.56
}Updates a repository (GitLab Project) for the specified project in GitLab service. The name can be changed and the status of the repo can be switched to active or archived.
| project-slug required | string |
| repoID required | string |
| name | string |
| status | string Enum: "active" "archived" |
| issueTracking | string Default: "disabled" Enum: "enabled" "private" "disabled" |
| mergeRequests | string Default: "disabled" Enum: "enabled" "private" "disabled" |
| requiresDCO | boolean Default: false |
| enableLFS | boolean Default: false |
| enableForking | boolean Default: true |
{- "name": "Name for Repository",
- "status": "active",
- "issueTracking": "disabled",
- "mergeRequests": "disabled",
- "requiresDCO": false,
- "enableLFS": false,
- "enableForking": true
}{- "status": {
- "code": 200,
- "description": "Updated Successfully"
}, - "data": {
- "name": "string",
- "status": "string",
- "issueTracking": "string",
- "mergeRequests": "string",
- "requiresDCO": false,
- "enableLFS": false,
- "enableForking": true
}
}Updates specific repository (GitLab Project) for said project in GitLab service. The name can be changed and the status of the repo can be switched to active or archived.
| project-slug required | string |
| repoID required | string |
| name | string |
| status | string Enum: "active" "archived" |
| issueTracking | string Default: "disabled" Enum: "enabled" "private" "disabled" |
| mergeRequests | string Default: "disabled" Enum: "enabled" "private" "disabled" |
| requiresDCO | boolean Default: false |
| enableLFS | boolean Default: false |
| enableForking | boolean Default: true |
{- "name": "Name for Repository",
- "status": "active",
- "issueTracking": "disabled",
- "mergeRequests": "disabled",
- "requiresDCO": false,
- "enableLFS": false,
- "enableForking": true
}{- "status": {
- "code": 200,
- "description": "Updated Successfully"
}, - "data": {
- "name": "string",
- "status": "string",
- "issueTracking": "string",
- "mergeRequests": "string",
- "requiresDCO": false,
- "enableLFS": false,
- "enableForking": true
}
}Deletes a repository (GitLab Project) for the specified project in GitLab service.
| project-slug required | string |
| repoID required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/repo/%7BrepoID%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This calls the garbage collection operation on the git server directly within the stored repository. This is used in the event git history has been modified or to remove hanging objects no longer referenced.
| project-slug required | string |
| repoID required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/repo/%7BrepoID%7D/cleanup \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Request was successful"
}
}This enables a pre-receive hook on said git respository to inspect all commits included in a single push an reject the push entirely if a committer or author is not authorized based on the email domain. If multiple domains are required, all must be included in the same request. The 2 types that can be applied are author and committer. The startDate need to be specified only if blocking commits after a certain point in time. Otherwise, if it's not specified, it will block for all time.
| project-slug required | string |
| repoID required | string |
required | Array of objects |
{- "emailCheck": [
- {
- "domain": "@acme.com",
- "startDate": "2022-07-01",
- "type": "committer"
}
]
}{- "status": {
- "code": 201,
- "description": "Request was successful"
}
}Deletes a pre-receive hook from said git repository which blocked commits from unauthorized email domains.
| project-slug required | string |
| repoID required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/repo/%7BrepoID%7D/emailcheck \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This returns detailed commit information for said repository from GitLab Commit API (https://docs.gitlab.com/ee/api/commits.html#get-a-single-commit)
| project-slug required | string |
| repoID required | string |
| sha required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/repo/%7BrepoID%7D/commit/%7Bsha%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "message": "This is a cool commit",
- "commit_author": "john.smith",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "stats": {
- "additions": 40,
- "deletions": 12,
- "total": 52
},
}Support searching multiple commits through the get commit (or similar) endpoint: https://docs.codelinaro.org/#tag/Projects-Git-(Groups-and-Repositories)/operation/getProjectGitRepoCommit.
| project-slug required | string |
| repoID required | string |
| shas required | Array of arrays |
{- "shas": [
- "4311c13299912afe860fe74ba2160701cee1b985",
- "599d3e942872084ad6c4df987976ed041d044e49",
- "ffbbe860e26c66439af6381d91bc889c80a839f7"
]
}{- "sha": "4311c13299912afe860fe74ba2160701cee1b985",
- "message": "This is a cool commit",
- "commit_author": "Cody Schuffelen",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "stats": {
- "additions": 2,
- "deletions": 0,
- "total": 2
},
}Creates a new forked repository (GitLab Project) in the specified
project group or subgroup in GitLab service. The gitSourceRepoID in the response indicates the original repository from which this fork was made.
| Parameter | Description |
|---|---|
repoPathfrom |
Must be the full repository clone url (ssh or https) |
repoPathNew |
Optional for specifying the subgroup path if needed (ex. 'sub-group-1/sub-group-2/sub-group-3'). This value can be null or empty (""). The subgroup needs to already exist in Gitlab for this fork. |
name |
The name of the new repository. |
Concerning potential STATUS CODE 500: Something went wrong with the fork, please retry later. - If this error message returns, this means a previously attempted fork failed to complete in GitLab. CodeLinaro is cleaning up the failed fork and will not allow a new one to be made until the cleanup has finished.
| project-slug required | string |
| repoPathFrom required | string |
| repoPathNew | string |
| name | string |
{- "repoPathNew": "sub-group-1/sub-group-2/sub-group-3",
- "name": "Name for Repository"
}{- "status": {
- "code": 200,
- "description": "Created Successfully"
}, - "data": {
- "gitRepoId": 32694,
- "status": "active",
- "issueTracking": "enabled",
- "mergeRequests": "enabled",
- "sshURI": "git@git.codelinaro.org:clo/test24.git",
- "created": "2020-09-16T20:59:48.936Z",
- "gitSourceRepoID": 32692
}
}This will create a scheduled task to perform a bare mirror clone of an external git tree, place the contents into a tar.gz file, and publish the compressed file to said project's artifact repository. An email notification will be sent when the file is ready for download. Keep in mind, CodeLinaro only supports this operation for publically accessible git trees. The artifact repository can host several archives.
Note: Currently, tar is the only supported format at this time. Therefore, all archives will be of type .tar.gz. We allow the option to specify the refSpace which could be HEAD (default - latest version), branch name, or a sha commit.
| project-slug required | string |
| repoGitURL required | string |
| refSpace required | string |
| format required | string |
| archiveFilename required | string |
| prefix required | string |
| notification required | string |
object |
{- "refSpace": "HEAD",
- "format": "tar",
- "archiveFilename": "cool-archive",
- "prefix": "subdirectory",
- "notification": "john.smith@codelinaro.org",
- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false,
- "legacy": false
}
}{- "status": {
- "code": 201,
- "description": "Added Successfully"
}, - "data": {
- "refSpace": "HEAD",
- "format": "tar",
- "archiveFilename": "cool-archive",
- "prefix": "subdirectory",
- "notification": "john.smith@codelinaro.org",
- "project_id": 11111
}
}Returns a list of all mirrors regardless of status for the specified project in GitLab service. This shall support pagination with a default limit of 10 records returned per page.
| project-slug required | string |
| page | integer Example: page=1 Optional to retrieve the needed page segment of mirrors |
| limit | integer Example: limit=10 Optional to raise or lower the number of mirrors in response |
| status | string Example: status=pending,inactive Optional parameter to search the system for mirrors based on status and multiple statuses are separated by commas. |
| statusCode | integer Example: statusCode=404 Optional parameter to retrieve the needed failure code of mirrors. |
| frequency | string Example: frequency=once,daily Optional parameter to search the system for mirrors based on frequency and multiple frequency are separated by commas. |
| order | string Example: order=desc Optional parameter to sort in ascending or descending order according to the date |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/mirrors?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&status=SOME_STRING_VALUE&statusCode=SOME_INTEGER_VALUE&frequency=SOME_STRING_VALUE&order=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 200,
- "pageSize": 10,
- "currentPage": "/v1/projects/{project-slug}/git/mirrors?page=12",
- "firstPage": "/v1/projects/{project-slug}/git/mirrors?page=1",
- "previousPage": "/v1/projects/{project-slug}/git/mirrors?page=11",
- "nextPage": "/v1/projects/{project-slug}/git/mirrors?page=13",
- "lastPage": "/v1/projects/{project-slug}/git/mirrors?page=20"
}, - "data": [
- {
- "mirrorID": 182,
- "refSpaceFrom": "refs/heads/*",
- "refSpaceTo": "refs/heads/trovalds/*",
- "frequency": "once",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "lastUpdated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "status": "active",
- "statusNote": "OK",
- "runTime": 18,
- "excludeTags": "false",
- "failed_status_code": 404,
- "failed_status_notes": "Source repository branch does not exist."
}
]
}Creates a new mirror for the specified project. A mirrorID shall be created by CodeLinaro based on its place in the RDS database. By default, any submitted mirror shall be considered active. To change this, please see the PUT /projects/{project-slug}/git/mirrors/{mirrorID} method.
This endpoint shall accept source repositories repoURLFrom via HTTP or SSH. However, this requires SSH urls for the destination repository repoURLTo. Please see example.
| project-slug required | string |
| repoURLFrom required | string |
| repoURLTo required | string |
| refSpaceFrom required | string |
| refSpaceTo required | string |
| frequency required | string Enum: "once" "daily" "weekly" |
| excludeTags | boolean |
| notificationEmails | Array of strings |
{- "repoURLTo": "git@git.codelinaro.org:clo/private/prod-project/group-1/prod-repo.git",
- "refSpaceFrom": "refs/heads/*",
- "refSpaceTo": "refs/heads/trovalds/*",
- "frequency": "once",
- "excludeTags": "false",
- "notificationEmails": [
- "notify@email.com"
]
}{- "status": {
- "code": 200,
- "description": "Added Successfully"
}, - "data": {
- "mirrorID": 13094,
- "repoURLFrom": "git@staging-git.codelinaro.org:clo/private/publisher-test-2/brillo/manifest.git",
- "repoURLTo": "git@staging-git.codelinaro.org:clo/private/cool-stage-project-4b/test-mirror-repo.git",
- "refSpaceFrom": "refs/*",
- "refSpaceTo": "refs/*",
- "frequency": "once",
- "created": "2020-08-27T03:55:38.540Z",
- "lastUpdated": "2020-08-27T03:55:38.540Z",
- "status": "pending",
- "excludeTags": false,
- "notificationEmails": "notify@email.com;email2@cool.com"
}
}Retrieves information for a specific mirror for said project.
| project-slug required | string |
| mirrorID required | string |
| status | string Enum: "pending" "inactive" "mirrored" "in-progress" "failed" "deleted" Example: status=pending Optional parameter to search the system for mirrors based on status. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/mirrors/%7BmirrorID%7D?status=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "mirrorID": 182,
- "refSpaceFrom": "refs/heads/*",
- "refSpaceTo": "refs/heads/trovalds/*",
- "frequency": "once",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "lastUpdated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "status": "active",
- "statusNote": "OK",
- "runTime": 18,
- "excludeTags": false,
- "failed_status_code": 404,
- "failed_status_notes": "Source repository branch does not exist."
}Updates a mirror for the specified project in GitLab service. The frequency can be changed and the status of the mirror can be switched to pending or inactive.
| project-slug required | string |
| mirrorID required | string |
| frequency | string Enum: "once" "daily" "weekly" |
| status | string Enum: "pending" "inactive" |
| excludeTags | boolean |
{- "frequency": "once",
- "status": "pending",
- "excludeTags": "true"
}{- "status": {
- "code": 200,
- "description": "Updated Successfully"
}, - "data": {
- "attribute": "value"
}
}Deletes a mirror for the specified project from CodeLinaro's RDS database.
| project-slug required | string |
| mirrorID required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/git/mirrors/%7BmirrorID%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This endpoint takes a list of mirror ID's and enables them.
| project-slug required | string |
| mirrorIds required | Array of integers |
| notes required | string |
{- "mirrorIds": [
- 1,
- 2,
- 3
], - "notes": "Reason for action"
}{- "status": {
- "code": 201,
- "description": "Enabled Selected Mirrors Successfully"
}
}This endpoint takes a list of mirror ID's and disables them.
| project-slug required | string |
| mirrorIds required | Array of integers |
| notes required | string |
{- "mirrorIds": [
- 1,
- 2,
- 3
], - "notes": "Reason for action"
}{- "status": {
- "code": 201,
- "description": "Disabled Selected Mirrors Successfully"
}
}This endpoint enables all mirrors for a given project.
| project-slug required | string |
| notes required | string |
{- "notes": "Reason for action"
}{- "status": {
- "code": 201,
- "description": "Enabled Successfully"
}
}This endpoint disables all mirrors for a given project.
| project-slug required | string |
| notes required | string |
{- "notes": "Reason for action"
}{- "status": {
- "code": 201,
- "description": "Disabled Successfully"
}
}| project-slug required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/wiki \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
NOTE: If the project is private, only editors have access to the wiki content for said project.
| project-slug required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/wiki \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Created Successfully"
},
}This shall the wiki for a public project should that project ever be removed permanantly from CodeLinaro.
| project-slug required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/wiki \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Deleted Successfully"
}
}Project Admins and System Admins are able to request a JSON Web Token (JWT). This token shall expire in 12 hours from the time requested.
| project-slug required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/wiki/token \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Created Successfully"
}, - "data": {
- "token": "json-web-token-xxxxxxxxx",
- "created": 1607102947,
- "expires": 1607146147
}
}This returns a list of said project's repositories from the Artifactory service. Pagination is also supported, ie. ?page=1&limit=10.
| project-slug required | string |
| page | integer Example: page=1 Optional to retrieve the needed page segment of results |
| limit | integer Example: limit=10 Optional to specify the amount of results per page |
| all | boolean Example: all=true Optional parameters are used to return all data. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/artifactory/repos?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&all=SOME_BOOLEAN_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "pagination": {
- "totalRecords": 1,
- "pageSize": 10,
- "currentPage": "/v1/projects/cool-project/artifactory/repos?page=1",
- "firstPage": "/v1/projects/cool-project/artifactory/repos?page=1",
- "previousPage": "",
- "nextPage": "",
- "lastPage": "/v1/projects/jsbundles/artifactory/repos?page=1"
}, - "data": [
- {
- "repoName": "acme-110-repoX",
- "repoType": "Generic",
- "artifactRepoID": 19,
- "created": "2022-02-24T02:34:15.178Z",
- "lastUpdated": "2022-02-24T02:34:15.178Z",
- "children": [
- {
- "uri": "/child1",
- "folder": false
}
]
}
]
}This returns information for a single artifact repository.
| project-slug required | string |
| artifactRepoID required | integer |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/artifactory/repo/%7BartifactRepoID%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "repoName": "acme-110-repoX",
- "repoType": "Generic",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "lastUpdated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "children": [
- {
- "uri": "/child1",
- "folder": false
}
]
}This deletes a single artifact repository for said project.
| project-slug required | string |
| artifactRepoID required | integer |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/artifactory/repo/%7BartifactRepoID%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This shall create a repository for this project within the Artifactory service. The project-slug will be used as the repository name within Artifactory by default unless specified. CodeLinaro will append a prefix to this name to coninside with your organization and said project's unique ID, ei. linaro-122-cool-project.
The generic repository type is the default assigned, however, the optional repoType paramters can be specified to be any of the following options:
alpine, bower, cargo, chef, cocoapods, composer, conan, cran, debian, docker, gems, generic, gitlfs, go, gradle, helm, ivy, maven, npm, nuget, opkg, puppet, pypi, rpm, sbt, vagrant, yum
NOTE: If the default name is already in use, you must specify a different name.
| project-slug required | string |
| name | string |
| repoType | string |
{- "name": "cool-project",
- "repoType": "npm"
}{- "status": {
- "code": 201,
- "description": "Created Successfully"
}, - "data": {
- "key": "org-ID-cool-project",
- "rclass": "local",
- "notes": "cool-project",
- "packageType": "npm",
- "artifactRepoID": 19
}
}This shall query the Artifactory Service in JFrog and return a listing of all files within this project's repo. Pagination is supported ie. ?page=1&limit=10.
NOTE: The uri is returned from JFrog and is relative to the repo path.
| artifactRepoID required | integer |
| project-slug required | string |
| page | integer Example: page=1 Optional to retrieve the needed page segment of results |
| limit | integer Example: limit=10 Optional to specify the amount of results per page (default 10) |
| all | boolean Example: all=true Optional parameters are used to return all data. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/artifactory/%7BartifactRepoID%7D/files?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&all=SOME_BOOLEAN_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "uri": "/path/to/file.txt",
- "size": 100,
- "lastUModified": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "folder": false,
- "sha1": "b4ade83e53a2fc5b711fb2259d4d1f85a0faab1b",
- "sha2": "f1a1e0fbd6a9cc6177e5e0d9321c3aae368eaef9933233c4861963d1d63713ae",
- "projectSlug": "cool-project",
- "status": "complete",
- "uploadDate": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "visibility": "private",
- "createdDate": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false,
- "legacy": false
}
}
]This shall take a specified file and upload to Artifactory. The folders shall be created to match the specified structure/path in the request. The response includes a status parameter. Status can be pending, active or inactive. If the status is pending, the resource has not yet been uploaded.
The optional metadata legacy parameter (true/false) is used for artifacts that may have been created prior to speocifying other metadata attributes. If the parameter is true, the other metadata parameters are not required.
There is an optional checkSum string parameter that may be sent along with the file upload. Supported formats include MD5, SHA-1, and SHA-256.
There is an optional notification_email string parameter that may be sent along with the file upload. This accepts a valid email or list of emails (seperated by ','). The status of the file upload will be emailed to the given email(s).
| artifactRepoID required | integer |
| project-slug required | string |
| sourceFilePath required | string |
| destinationFilePath required | string |
object | |
| checkSum | string |
| notification_email | string |
{- "destinationFilePath": "/path/you/want/for/the/file.ext",
- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false,
- "legacy": false
}, - "checkSum": "c4f08db2af273a7fe2ab85e5f3496f82",
- "notification_email": "emailaddress@domain.com"
}{- "status": {
- "code": 201,
- "description": "Created Successfully"
}, - "data": {
- "destinationFilePath": "/path/you/want/for/the/file.ext",
- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false,
- "legacy": false
}, - "checkSum": "string",
- "status": "pending"
}
}This shall return all information regarding this artifact from the Artifactory Service. For more details, visit (https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API#ArtifactoryRESTAPI-FileInfo)
| artifactRepoID required | integer |
| project-slug required | string |
| filePath required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/artifactory/%7BartifactRepoID%7D/file/%7BfilePath%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "lastModified": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "lastUpdated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "size": "1024",
- "mimeType": "application/pom+xml",
- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false,
- "visibility": "public"
}, - "status": "active",
- "status_note": [
- {
- "status": 400,
- "message": "Forbidden Url in path: https://binaryartifacts.jfrog.io/artifactory/codelinaro-hoperuntest/servicedesk.json"
}
], - "downloadCount": 2,
- "lastDownloaded": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)"
}This shall update this artifact's metadata and status in the Artifactory Service.
| artifactRepoID required | integer |
| project-slug required | string |
| filePath required | string |
object | |
| status required | string Enum: "active" "inactive" |
{- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false
}, - "status": "active"
}{- "status": {
- "code": 200,
- "description": "Updated Successfully"
}, - "data": {
- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false,
- "visibility": "public"
}, - "status": "active"
}
}This shall update specific artifact metadata or status in the Artifactory Service.
| artifactRepoID required | integer |
| project-slug required | string |
| filePath required | string |
object | |
| status required | string Enum: "active" "inactive" |
{- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false
}, - "status": "active"
}{- "status": {
- "code": 200,
- "description": "Updated Successfully"
}, - "data": {
- "metadata": {
- "packageName": "CodeLinaro Artifact",
- "licenseIdentifier": "MIT",
- "copyrightText": "All Rights Reserved 2020",
- "licenseText": "MIT 2.0",
- "packageVersion": "XX.XX.XX",
- "modification": false,
- "visibility": "public"
}, - "status": "active"
}
}This shall delete said artifact from the Artifactory Service.
| artifactRepoID required | integer |
| project-slug required | string |
| filePath required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/artifactory/%7BartifactRepoID%7D/file/%7BfilePath%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
This shall return a list of all available licenses within CodeLinaro for project assignment. Please open a support ticket if any licencse needs to be modified or removed. If there's a new license needed, please request with support ticket.
curl --request GET \ --url https://api.codelinaro.org/v1/licenses \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[
]This shall return a list of currently assigned licenses within CodeLinaro for said project.
| project-slug required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/licenses \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[
]This shall assign a license to said project. The license MUST exist in CodeLinaro prior to performing this request. See the /licenses endpoint for details. If there's a new license needed, please request with support ticket.
| project-slug required | string |
| name required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/licenses/%7Bname%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Updated Successfully"
}, - "data": {
- "projectSlug": "cool-project",
- "name": "MPL"
}
}This shall remove a license from said project.
| project-slug required | string |
| name required | string |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/licenses/%7Bname%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Deleted Successfully"
}
}This shall return a list of pipelines within CodeLinaro for said project.
| project-slug required | string |
| page | integer Example: page=1 Optional to retrieve the needed page segment of pipelines |
| limit | integer Example: limit=10 Optional to raise or lower the number of pipelines in response |
| startDate | string Example: startDate=2022-01-01T00:00:00.000Z Optional parameter for filtering pipelines start time. |
| endDate | string Example: endDate=2022-11-13T00:00:00.000Z Optional parameter for filtering pipelines end time. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/pipelines?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&startDate=SOME_STRING_VALUE&endDate=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "pagination": {
- "totalRecords": 3,
- "pageSize": 10,
- "currentPage": "/v1/projects/pristine-public-test/git/subgroups?page=1",
- "firstPage": "/v1/projects/pristine-public-test/git/subgroups?page=1",
- "previousPage": "",
- "nextPage": "",
- "lastPage": "/v1/projects/pristine-public-test/git/subgroups?page=1"
}, - "data": [
- {
- "pipeline_id": 5190,
- "status": "success",
- "name": "pristine-public-test",
- "project_slug": "pristine-public-test",
- "repo_name": "gatekeeper",
- "adjusted_cost": 1,
- "trigger_username": "fakbari"
}
]
}
]This shall return a list of job information within CodeLinaro for said pipeline.
| project-slug required | string |
| pipelinesid required | integer |
| startDate | string Example: startDate=2022-01-01T00:00:00.000Z Optional parameter for filtering jobs start time. |
| endDate | string Example: endDate=2022-11-13T00:00:00.000Z Optional parameter for filtering jobs end time. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/pipelines/%7Bpipelinesid%7D?startDate=SOME_STRING_VALUE&endDate=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "job_id": 14,
- "name": "unit-test-job",
- "stages": "test",
- "cost": 1,
- "duration": 10.221726,
- "created_date": "2022-10-21T00:00:00.000Z",
- "started_date": "2022-10-21T00:00:00.000Z",
- "finished_date": "2022-10-21T00:00:00.000Z"
}
]Queue's the request to assign the given organization team to a project as a maintainer.
| project-slug required | string |
| org-path-id required | string Example: org-10-team Note: 'org-path-id' is the 'path' property from the output of organization teams list endpoint. |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/maintainers/organization/teams/org-10-team \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "status": {
- "code": 201,
- "description": "Your Request is queued."
}, - "data": {
- "queueid": "62df717a-df43-4da3-a75a-a880f94099b6"
}
}
]Queue's the request to remove the given organization team from a project as a maintainer.
| project-slug required | string |
| org-path-id required | string Example: org-10-team Note: 'org-path-id' is the 'path' property from the output of organization teams list endpoint. |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/maintainers/organization/teams/org-10-team \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "status": {
- "code": 201,
- "description": "Your Request is queued."
}, - "data": {
- "queueid": "62df717a-df43-4da3-a75a-a880f94099b6"
}
}
]Queue's the request to assign the given organization team to a project as a developer.
| project-slug required | string |
| org-path-id required | string Example: org-10-team Note: 'org-path-id' is the 'path' property from the output of organization teams list endpoint. |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/developers/organization/teams/org-10-team \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "status": {
- "code": 201,
- "description": "Your Request is queued."
}, - "data": {
- "queueid": "62df717a-df43-4da3-a75a-a880f94099b6"
}
}
]Queue's the request to remove the given organization team from a project as a developer.
| project-slug required | string |
| org-path-id required | string Example: org-10-team Note: 'org-path-id' is the 'path' property from the output of organization teams list endpoint. |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/developers/organization/teams/org-10-team \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "status": {
- "code": 201,
- "description": "Your Request is queued."
}, - "data": {
- "queueid": "62df717a-df43-4da3-a75a-a880f94099b6"
}
}
]Queue's the request to assign the given organization team to a project as a reporter.
| project-slug required | string |
| org-path-id required | string Example: org-10-team Note: 'org-path-id' is the 'path' property from the output of organization teams list endpoint. |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/reporters/organization/teams/org-10-team \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "status": {
- "code": 201,
- "description": "Your Request is queued."
}, - "data": {
- "queueid": "62df717a-df43-4da3-a75a-a880f94099b6"
}
}
]Queue's the request to remove the given organization team from a project as a reporter.
| project-slug required | string |
| org-path-id required | string Example: org-10-team Note: 'org-path-id' is the 'path' property from the output of organization teams list endpoint. |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7Bproject-slug%7D/reporters/organization/teams/org-10-team \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "status": {
- "code": 201,
- "description": "Your Request is queued."
}, - "data": {
- "queueid": "62df717a-df43-4da3-a75a-a880f94099b6"
}
}
]| projectSlug required | string |
| repoId required | integer |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7BprojectSlug%7D/git/repo/%7BrepoId%7D/persistent-storage \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "insert Successfully"
}
}| projectSlug required | string |
| repoId required | integer |
curl --request DELETE \ --url https://api.codelinaro.org/v1/projects/%7BprojectSlug%7D/git/repo/%7BrepoId%7D/persistent-storage \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "teardown Successfully"
}
}| filesystem_id required | integer |
| status | string |
| repoID | integer |
{- "status": "pending",
- "repoID": 54767
}{- "status": {
- "code": 200,
- "description": "update status Successfully"
}
}| filesystem_id required | integer |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/systems/persistent-storage/%7Bfilesystem_id%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "repo_id": 54767
}| projectSlug required | string |
| frequency | string |
{- "frequency": "once"
}{- "status": {
- "code": 201,
- "description": "Successfully Triggered Bundle ID(2) using pipeline (123)"
}, - "data": {
- "bundle_id": 2,
- "pipeline": 123
}
}| projectSlug required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7BprojectSlug%7D/git/bundles \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Successfully fetched bundles for project"
}, - "data": [
- {
- "bundle_id": 2,
- "project_id": 173,
- "repo_id": 8212,
- "frequency": "once",
- "created_by_user": "abc ",
- "is_active": "true",
- "created_date": "2024-05-18T22:20:02.945"
}
]
}| projectSlug required | string |
| repoId required | integer |
| frequency | string |
{- "frequency": "once"
}{- "status": {
- "code": 201,
- "description": "Successfully Triggered Bundle ID(2) for repoId(1044) using pipeline(1223)"
}, - "data": {
- "bundle_id": 2,
- "pipeline": 1223
}
}| projectSlug required | string |
| bundleId required | integer |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7BprojectSlug%7D/git/bundle/%7BbundleId%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Fetched Successfully"
}, - "data": {
- "bundle_info": {
- "bundle_id": 2,
- "project_id": 173,
- "repo_id": 8212,
- "frequency": "once",
- "created_by_user": "abc ",
- "is_active": "true",
- "created_date": "2024-05-18T22:20:02.945"
}, - "latest_pipelines": [
- {
- "bundle_id": 2,
- "pipeline_id": 17,
- "username": 82,
- "status": 1,
- "created_date": "2024-05-28T16:06:58.873Z",
- "modified_date": "2024-05-28T16:06:58.873Z",
- "status_error": ""
}
]
}
}| projectSlug required | string |
| bundleId required | integer |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7BprojectSlug%7D/git/bundle/%7BbundleId%7D/pipelines \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Successfully fetched CI pipelines for bundle id 2"
}, - "data": [
- {
- "bundle_id": 2,
- "pipeline_id": 17,
- "username": 82,
- "status": 1,
- "created_date": "2024-05-28T16:06:58.873Z",
- "modified_date": "2024-05-28T16:06:58.873Z",
- "status_error": ""
}
]
}| projectSlug required | string |
| pipelineId required | integer |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7BprojectSlug%7D/git/bundles/pipelines/%7BpipelineId%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 200,
- "description": "Successfully fetched CI pipeline Information for ID 17"
}, - "data": {
- "bundle_id": 2,
- "pipeline_id": 17,
- "username": 82,
- "status": 1,
- "created_date": "2024-05-28T16:06:58.873Z",
- "modified_date": "2024-05-28T16:06:58.873Z",
- "status_error": ""
}
}| projectSlug required | string |
curl --request POST \ --url https://api.codelinaro.org/v1/projects/%7BprojectSlug%7D/git/bundles/archive \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Successfully Triggered Project Archieve ID(287)"
}, - "data": {
- "pipeline_id": 287
}
}| projectSlug required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/projects/%7BprojectSlug%7D/git/bundles/archive \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "List of Archived Projects"
}, - "data": [
- {
- "project": "project_name",
- "size": "1.1Kib"
}
]
}| projectSlug required | string |
| oldproject | string |
{- "oldproject": "old projectSlug Name"
}{- "status": {
- "code": 201,
- "description": "Successfully Triggered Project Restore pipeline(287)"
}, - "data": {
- "pipeline_id": 287
}
}This shall return a list of all available organizations within CodeLinaro for user alignment. Please open a support ticket if any organization needs to be modified or removed.
Note: temporarily located at /v1/ui/organizations; will be moved to /v1/organizations in a future release
curl --request GET \ --url https://api.codelinaro.org/v1/ui/organizations \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "organizations": [
- "Acme",
- "Acme 2"
]
}This creates a new organization within CodeLinaro for future user alignment. Please open a support ticket if any organization needs to be modified or removed.
| organization required | string |
{- "organization": "Acme"
}{- "status": {
- "code": 201,
- "description": "Created Successfully"
}, - "data": {
- "organization": "Acme"
}
}System Admins are able to request a JSON Web Token (JWT). This token shall expire in 12 hours from the time requested. The parentOrganization is automatically handled based on the token for said request.
curl --request POST \ --url https://api.codelinaro.org/v1/organizations/wiki \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "status": {
- "code": 201,
- "description": "Created Successfully"
}, - "data": {
- "token": "json-web-token-xxxxxxxxx",
- "created": 1607102947,
- "expires": 1607146147
}
}This shall return a list of all organization the user belongs to
curl --request GET \ --url https://api.codelinaro.org/v1/organization/list \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "org_id": 101,
- "name": "org-name",
- "organizations": [
- {
- "org_id": 102,
- "name": "child-org-name"
}
]
}
]This shall queue the renaming process of an organization and will return the queue id
| orgid required | integer |
| new_name | string |
{- "new_name": "new name of the org"
}{- "code": 201,
- "description": "Your request is queued",
- "queuid": "900213ea-1302-456d-bd12-8853401282cb"
}This shall return the status of the organization rename job
| queueid required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/organization/queue/%7Bqueueid%7D/status \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "id": "900213ea-1302-456d-bd12-8853401282cb",
- "action": "rename",
- "old_name": "old-org-name",
- "new_name": "new-org-name",
- "status": "open | inprogress | completed",
- "message": "more-into"
}| organization | string |
curl --request GET \ --url 'https://api.codelinaro.org/v1/metrics/users?organization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "data": {
- "total": 200
}
}| organization | string |
curl --request GET \ --url 'https://api.codelinaro.org/v1/metrics/users/email?organization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "data": {
- "total": 200
}
}| organization | string |
curl --request GET \ --url 'https://api.codelinaro.org/v1/metrics/users/gitlab?organization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "data": {
- "total": 200
}
}| organization | string |
curl --request GET \ --url 'https://api.codelinaro.org/v1/metrics/users/artifactory?organization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "data": {
- "total": 200
}
}| organization | string |
curl --request GET \ --url 'https://api.codelinaro.org/v1/metrics/users/irc?organization=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
{- "data": {
- "total": 200
}
}This shall obtain a list of users (primarily used with the website dashboard pages) from the Auth0 user database. Filters can be applied such as role, and when the user(s) last_login by specific date or range. This has the capability to be expanded in the future.
| organization required | string |
| role | string Example: role=org-users-admin Filter by the users' system role |
| last_login | string Example: last_login=2017-11-01 TO 2017-12-31 Specific date or date range |
curl --request GET \ --url 'https://api.codelinaro.org/v1/metrics/users/search/%7Borganization%7D?role=SOME_STRING_VALUE&last_login=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "username": "john.smith",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "email": "john.smith@codelinaro.org",
- "externalEmail": "cool@example.com",
- "parentOrganization": "Linaro",
- "organization": "Hoperun",
- "role": "member",
- "active": "active",
- "dateCreated": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "dateLastAccessed": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)"
}
]This returns a detailed list of project repos via GitLab's Search API based on a specific commit sha hash key. Visit (https://docs.gitlab.com/ee/api/search.html#scope-commits-starter)
| sha required | string |
curl --request GET \ --url https://api.codelinaro.org/v1/metrics/git/search/%7Bsha%7D \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "message": "This is a cool commit",
- "commit_author": "john.smith",
- "created": "ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)",
- "projectID": 12
}
]| project-slug required | string |
| startDate | string Example: startDate=2022-01-01T00:00:00.000Z Optional parameter for filtering pipeline start time. |
| endDate | string Example: endDate=2022-10-13T00:00:00.000Z Optional parameter for filtering pipeline end time. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/metrics/projects/%7Bproject-slug%7D/ci/pipelines?startDate=SOME_STRING_VALUE&endDate=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "pipeline_id": 5190,
- "pipeline_status": "failed",
- "repo_name": "gatekeeper",
- "cost": 0.259305699984,
- "trigger_by_user_name": "fakbari",
- "trigger_by_display_name": "Akbari, Farhad"
}
]| project-slug required | string |
| startDate | string Example: startDate=2022-01-01T00:00:00.000Z Optional parameter for filtering pipeline start time. |
| endDate | string Example: endDate=2022-10-13T00:00:00.000Z Optional parameter for filtering pipeline end time. |
curl --request GET \ --url 'https://api.codelinaro.org/v1/metrics/projects/%7Bproject-slug%7D/ci/pipelines/counts?startDate=SOME_STRING_VALUE&endDate=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
[- {
- "totalPipelines": 5190,
- "totalCost": 1.049317978208,
- "duration": 856,
- "success_pipelines": 3,
- "failed_pipelines": 1
}
]