213 lines
5.1 KiB
YAML
213 lines
5.1 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: 'Link Example'
|
|
version: 1.0.0
|
|
paths:
|
|
'/2.0/repositories/{username}':
|
|
get:
|
|
operationId: getRepositoriesByOwner
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'repositories owned by the supplied user'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/repository'
|
|
links:
|
|
userRepository:
|
|
$ref: '#/components/links/UserRepository'
|
|
'/2.0/repositories/{username}/{slug}':
|
|
get:
|
|
operationId: getRepository
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'The repository'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/repository'
|
|
links:
|
|
repositoryPullRequests:
|
|
$ref: '#/components/links/RepositoryPullRequests'
|
|
'/2.0/repositories/{username}/{slug}/pullrequests':
|
|
get:
|
|
operationId: getPullRequestsByRepository
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: state
|
|
in: query
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- open
|
|
- merged
|
|
- declined
|
|
responses:
|
|
'200':
|
|
description: 'an array of pull request objects'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/pullrequest'
|
|
'/2.0/repositories/{username}/{slug}/pullrequests/{pid}':
|
|
get:
|
|
operationId: getPullRequestsById
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: pid
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'a pull request object'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/pullrequest'
|
|
links:
|
|
pullRequestMerge:
|
|
$ref: '#/components/links/PullRequestMerge'
|
|
'/2.0/repositories/{username}/{slug}/pullrequests/{pid}/merge':
|
|
post:
|
|
operationId: mergePullRequest
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: pid
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'204':
|
|
description: 'the PR was successfully merged'
|
|
'/2.0/users/{username}':
|
|
get:
|
|
operationId: getUserByName
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'The User'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/user'
|
|
links:
|
|
userRepositories:
|
|
$ref: '#/components/links/UserRepositories'
|
|
components:
|
|
schemas:
|
|
pullrequest:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
title:
|
|
type: string
|
|
repository:
|
|
$ref: '#/components/schemas/repository'
|
|
author:
|
|
$ref: '#/components/schemas/user'
|
|
type: object
|
|
repository:
|
|
properties:
|
|
slug:
|
|
type: string
|
|
owner:
|
|
$ref: '#/components/schemas/user'
|
|
type: object
|
|
user:
|
|
properties:
|
|
username:
|
|
type: string
|
|
uuid:
|
|
type: string
|
|
type: object
|
|
links:
|
|
UserRepositories:
|
|
operationId: getRepositoriesByOwner
|
|
parameters:
|
|
username: '$response.body#/username'
|
|
UserRepository:
|
|
operationId: getRepository
|
|
parameters:
|
|
username: '$response.body#/owner/username'
|
|
slug: '$response.body#/slug'
|
|
RepositoryPullRequests:
|
|
operationId: getPullRequestsByRepository
|
|
parameters:
|
|
username: '$response.body#/owner/username'
|
|
slug: '$response.body#/slug'
|
|
PullRequestMerge:
|
|
operationId: mergePullRequest
|
|
parameters:
|
|
username: '$response.body#/author/username'
|
|
slug: '$response.body#/repository/slug'
|
|
pid: '$response.body#/id'
|