From 8ab970e97f2c1a4f3a6a0c5e2a774e3da779b8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20POZZI?= Date: Tue, 11 Jul 2023 15:29:18 +0200 Subject: [PATCH 1/7] Add file status for API "Get a single commit from a repository" (#16205) --- modules/structs/repo_commit.go | 1 + services/convert/git_commit.go | 9 +++++++++ templates/swagger/v1_json.tmpl | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/modules/structs/repo_commit.go b/modules/structs/repo_commit.go index b3e98df1953d0..941df815459ce 100644 --- a/modules/structs/repo_commit.go +++ b/modules/structs/repo_commit.go @@ -69,4 +69,5 @@ type CommitDateOptions struct { // CommitAffectedFiles store information about files affected by the commit type CommitAffectedFiles struct { Filename string `json:"filename"` + Status string `json:"status"` } diff --git a/services/convert/git_commit.go b/services/convert/git_commit.go index e726011e02d76..70a0ca986f5a5 100644 --- a/services/convert/git_commit.go +++ b/services/convert/git_commit.go @@ -198,8 +198,17 @@ func ToCommit(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Rep affectedFileList := make([]*api.CommitAffectedFiles, 0, len(fileStatus.Added)+len(fileStatus.Removed)+len(fileStatus.Modified)) for _, files := range [][]string{fileStatus.Added, fileStatus.Removed, fileStatus.Modified} { for _, filename := range files { + var filestatus = "unknown" + if contains(fileStatus.Added, filename) { + filestatus = "added" + } else if contains(fileStatus.Removed, filename) { + filestatus = "removed" + } else if contains(fileStatus.Modified, filename) { + filestatus = "modified" + } affectedFileList = append(affectedFileList, &api.CommitAffectedFiles{ Filename: filename, + Status: filestatus }) } } diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 4c6ee55f846dd..87b7e473b3fb7 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -16399,6 +16399,10 @@ "filename": { "type": "string", "x-go-name": "Filename" + }, + "status": { + "type": "string", + "x-go-name": "Status" } }, "x-go-package": "code.gitea.io/gitea/modules/structs" From 7d768f437740e18e33ffc18ac0b3dcd1bbd0e619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20POZZI?= Date: Wed, 12 Jul 2023 07:29:47 +0200 Subject: [PATCH 2/7] Fix missing comma --- services/convert/git_commit.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/convert/git_commit.go b/services/convert/git_commit.go index 70a0ca986f5a5..eac718a097391 100644 --- a/services/convert/git_commit.go +++ b/services/convert/git_commit.go @@ -208,7 +208,7 @@ func ToCommit(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Rep } affectedFileList = append(affectedFileList, &api.CommitAffectedFiles{ Filename: filename, - Status: filestatus + Status: filestatus, }) } } From 3d9dcfe89f244d7d350f93b8bbcf379b64fe8268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20POZZI?= Date: Wed, 12 Jul 2023 14:34:26 +0200 Subject: [PATCH 3/7] Add missing function contains --- services/convert/git_commit.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/convert/git_commit.go b/services/convert/git_commit.go index eac718a097391..1027217e095be 100644 --- a/services/convert/git_commit.go +++ b/services/convert/git_commit.go @@ -73,6 +73,15 @@ func ToPayloadCommit(ctx context.Context, repo *repo_model.Repository, c *git.Co } } +func contains(a []string, s string) bool { + for _, v := range a { + if v == s { + return true + } + } + return false +} + type ToCommitOptions struct { Stat bool Verification bool From b39b101a241117f47b7f6ca474306c5b22ee9f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20POZZI?= Date: Wed, 12 Jul 2023 15:09:10 +0200 Subject: [PATCH 4/7] Use util.SliceContainsString instead of local function --- services/convert/git_commit.go | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/services/convert/git_commit.go b/services/convert/git_commit.go index 1027217e095be..116e370ba4ab2 100644 --- a/services/convert/git_commit.go +++ b/services/convert/git_commit.go @@ -73,15 +73,6 @@ func ToPayloadCommit(ctx context.Context, repo *repo_model.Repository, c *git.Co } } -func contains(a []string, s string) bool { - for _, v := range a { - if v == s { - return true - } - } - return false -} - type ToCommitOptions struct { Stat bool Verification bool @@ -208,11 +199,11 @@ func ToCommit(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Rep for _, files := range [][]string{fileStatus.Added, fileStatus.Removed, fileStatus.Modified} { for _, filename := range files { var filestatus = "unknown" - if contains(fileStatus.Added, filename) { + if util.SliceContainsString(fileStatus.Added, filename) { filestatus = "added" - } else if contains(fileStatus.Removed, filename) { + } else if util.SliceContainsString(fileStatus.Removed, filename) { filestatus = "removed" - } else if contains(fileStatus.Modified, filename) { + } else if util.SliceContainsString(fileStatus.Modified, filename) { filestatus = "modified" } affectedFileList = append(affectedFileList, &api.CommitAffectedFiles{ From 7ccac1c646e72e8ad8eaa21b1fdf98160f54c462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20POZZI?= Date: Wed, 12 Jul 2023 15:43:54 +0200 Subject: [PATCH 5/7] Use outer loop index --- services/convert/git_commit.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/services/convert/git_commit.go b/services/convert/git_commit.go index 116e370ba4ab2..d80cb0118d233 100644 --- a/services/convert/git_commit.go +++ b/services/convert/git_commit.go @@ -196,15 +196,18 @@ func ToCommit(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Rep } affectedFileList := make([]*api.CommitAffectedFiles, 0, len(fileStatus.Added)+len(fileStatus.Removed)+len(fileStatus.Modified)) - for _, files := range [][]string{fileStatus.Added, fileStatus.Removed, fileStatus.Modified} { + for sliceIndex, files := range [][]string{fileStatus.Added, fileStatus.Removed, fileStatus.Modified} { for _, filename := range files { - var filestatus = "unknown" - if util.SliceContainsString(fileStatus.Added, filename) { - filestatus = "added" - } else if util.SliceContainsString(fileStatus.Removed, filename) { - filestatus = "removed" - } else if util.SliceContainsString(fileStatus.Modified, filename) { - filestatus = "modified" + var filestatus string + switch sliceIndex { + case 0: + filestatus = "added" + case 1: + filestatus = "removed" + case 2: + filestatus = "modified" + default: + filestatus = "unknown" } affectedFileList = append(affectedFileList, &api.CommitAffectedFiles{ Filename: filename, From b0afa0954f244007d47e1414b4bd6b341b4f75a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20POZZI?= Date: Wed, 12 Jul 2023 15:56:43 +0200 Subject: [PATCH 6/7] Applying suggested changes --- services/convert/git_commit.go | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/services/convert/git_commit.go b/services/convert/git_commit.go index d80cb0118d233..048ebb8ed837e 100644 --- a/services/convert/git_commit.go +++ b/services/convert/git_commit.go @@ -196,19 +196,8 @@ func ToCommit(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Rep } affectedFileList := make([]*api.CommitAffectedFiles, 0, len(fileStatus.Added)+len(fileStatus.Removed)+len(fileStatus.Modified)) - for sliceIndex, files := range [][]string{fileStatus.Added, fileStatus.Removed, fileStatus.Modified} { + for filestatus, files := range map[string][]string{"added": fileStatus.Added, "removed": fileStatus.Removed, "modified": fileStatus.Modified} { for _, filename := range files { - var filestatus string - switch sliceIndex { - case 0: - filestatus = "added" - case 1: - filestatus = "removed" - case 2: - filestatus = "modified" - default: - filestatus = "unknown" - } affectedFileList = append(affectedFileList, &api.CommitAffectedFiles{ Filename: filename, Status: filestatus, From aa2f3b75bb8bcedd27694264abfd59ae95c938c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20POZZI?= Date: Thu, 20 Jul 2023 07:33:04 +0200 Subject: [PATCH 7/7] Apply linter --- modules/structs/repo_commit.go | 2 +- services/convert/git_commit.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/structs/repo_commit.go b/modules/structs/repo_commit.go index 941df815459ce..fec7d97608d92 100644 --- a/modules/structs/repo_commit.go +++ b/modules/structs/repo_commit.go @@ -69,5 +69,5 @@ type CommitDateOptions struct { // CommitAffectedFiles store information about files affected by the commit type CommitAffectedFiles struct { Filename string `json:"filename"` - Status string `json:"status"` + Status string `json:"status"` } diff --git a/services/convert/git_commit.go b/services/convert/git_commit.go index 048ebb8ed837e..ac15719c1cfcc 100644 --- a/services/convert/git_commit.go +++ b/services/convert/git_commit.go @@ -200,7 +200,7 @@ func ToCommit(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Rep for _, filename := range files { affectedFileList = append(affectedFileList, &api.CommitAffectedFiles{ Filename: filename, - Status: filestatus, + Status: filestatus, }) } }