diff options
Diffstat (limited to 'routers/api/v1/repo/pull.go')
-rw-r--r-- | routers/api/v1/repo/pull.go | 51 |
1 files changed, 13 insertions, 38 deletions
diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go index dee9a94bca..b9767b413d 100644 --- a/routers/api/v1/repo/pull.go +++ b/routers/api/v1/repo/pull.go @@ -174,11 +174,11 @@ func GetPullRequest(ctx *context.APIContext) { ctx.JSON(http.StatusOK, convert.ToAPIPullRequest(pr)) } -// DownloadPullDiff render a pull's raw diff -func DownloadPullDiff(ctx *context.APIContext) { - // swagger:operation GET /repos/{owner}/{repo}/pulls/{index}.diff repository repoDownloadPullDiff +// DownloadPullDiffOrPatch render a pull's raw diff or patch +func DownloadPullDiffOrPatch(ctx *context.APIContext) { + // swagger:operation GET /repos/{owner}/{repo}/pulls/{index}.{diffType} repository repoDownloadPullDiffOrPatch // --- - // summary: Get a pull request diff + // summary: Get a pull request diff or patch // produces: // - text/plain // parameters: @@ -198,48 +198,17 @@ func DownloadPullDiff(ctx *context.APIContext) { // type: integer // format: int64 // required: true - // responses: - // "200": - // "$ref": "#/responses/string" - // "404": - // "$ref": "#/responses/notFound" - DownloadPullDiffOrPatch(ctx, false) -} - -// DownloadPullPatch render a pull's raw patch -func DownloadPullPatch(ctx *context.APIContext) { - // swagger:operation GET /repos/{owner}/{repo}/pulls/{index}.patch repository repoDownloadPullPatch - // --- - // summary: Get a pull request patch file - // produces: - // - text/plain - // parameters: - // - name: owner - // in: path - // description: owner of the repo - // type: string - // required: true - // - name: repo + // - name: diffType // in: path - // description: name of the repo + // description: whether the output is diff or patch // type: string - // required: true - // - name: index - // in: path - // description: index of the pull request to get - // type: integer - // format: int64 + // enum: [diff, patch] // required: true // responses: // "200": // "$ref": "#/responses/string" // "404": // "$ref": "#/responses/notFound" - DownloadPullDiffOrPatch(ctx, true) -} - -// DownloadPullDiffOrPatch render a pull's raw diff or patch -func DownloadPullDiffOrPatch(ctx *context.APIContext, patch bool) { pr, err := models.GetPullRequestByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { if models.IsErrPullRequestNotExist(err) { @@ -249,6 +218,12 @@ func DownloadPullDiffOrPatch(ctx *context.APIContext, patch bool) { } return } + var patch bool + if ctx.Params(":diffType") == "diff" { + patch = false + } else { + patch = true + } if err := pull_service.DownloadDiffOrPatch(pr, ctx, patch); err != nil { ctx.InternalServerError(err) |