summaryrefslogtreecommitdiffstats
path: root/modules/git/ref.go
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-11-08 17:21:54 +0000
committerGitHub <noreply@github.com>2020-11-08 12:21:54 -0500
commitc05a8abc762f868e67dd131d34f45218a0fb95ab (patch)
tree9aa0909c736933adc895ef830941dca85206ee07 /modules/git/ref.go
parentd4e0b286558a68c96b0001a0676099c06067511b (diff)
downloadgitea-c05a8abc762f868e67dd131d34f45218a0fb95ab.tar.gz
gitea-c05a8abc762f868e67dd131d34f45218a0fb95ab.zip
Multiple GitGraph improvements: Exclude PR heads, Add branch/PR links, Show only certain branches, (#12766)
* Multiple GitGraph improvements. Add backend support for excluding PRs, selecting branches and files. Fix #10327 Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @silverwind Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @silverwind Signed-off-by: Andrew Thornton <art27@cantab.net> * Only show refs in dropdown we display on the graph Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @silverwind Signed-off-by: Andrew Thornton <art27@cantab.net> * use flexbox for ui header Signed-off-by: Andrew Thornton <art27@cantab.net> * Move Hide Pull Request button to the dropdown Signed-off-by: Andrew Thornton <art27@cantab.net> * Add SHA and user pictures Signed-off-by: Andrew Thornton <art27@cantab.net> * fix test Signed-off-by: Andrew Thornton <art27@cantab.net> * fix test 2 Signed-off-by: Andrew Thornton <art27@cantab.net> * fixes * async * more tweaks * use tabs in tmpl Signed-off-by: Andrew Thornton <art27@cantab.net> * remove commented thing Signed-off-by: Andrew Thornton <art27@cantab.net> * fix linting Signed-off-by: Andrew Thornton <art27@cantab.net> * Update web_src/js/features/gitgraph.js Co-authored-by: silverwind <me@silverwind.io> * graph tweaks * more tweaks * add title Signed-off-by: Andrew Thornton <art27@cantab.net> * fix loading indicator z-index and position Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Lauris BH <lauris@nix.lv>
Diffstat (limited to 'modules/git/ref.go')
-rw-r--r--modules/git/ref.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/modules/git/ref.go b/modules/git/ref.go
index 67b56ac999..2a2798b18f 100644
--- a/modules/git/ref.go
+++ b/modules/git/ref.go
@@ -4,6 +4,8 @@
package git
+import "strings"
+
// Reference represents a Git ref.
type Reference struct {
Name string
@@ -16,3 +18,44 @@ type Reference struct {
func (ref *Reference) Commit() (*Commit, error) {
return ref.repo.getCommit(ref.Object)
}
+
+// ShortName returns the short name of the reference
+func (ref *Reference) ShortName() string {
+ if ref == nil {
+ return ""
+ }
+ if strings.HasPrefix(ref.Name, "refs/heads/") {
+ return ref.Name[11:]
+ }
+ if strings.HasPrefix(ref.Name, "refs/tags/") {
+ return ref.Name[10:]
+ }
+ if strings.HasPrefix(ref.Name, "refs/remotes/") {
+ return ref.Name[13:]
+ }
+ if strings.HasPrefix(ref.Name, "refs/pull/") && strings.IndexByte(ref.Name[10:], '/') > -1 {
+ return ref.Name[10 : strings.IndexByte(ref.Name[10:], '/')+10]
+ }
+
+ return ref.Name
+}
+
+// RefGroup returns the group type of the reference
+func (ref *Reference) RefGroup() string {
+ if ref == nil {
+ return ""
+ }
+ if strings.HasPrefix(ref.Name, "refs/heads/") {
+ return "heads"
+ }
+ if strings.HasPrefix(ref.Name, "refs/tags/") {
+ return "tags"
+ }
+ if strings.HasPrefix(ref.Name, "refs/remotes/") {
+ return "remotes"
+ }
+ if strings.HasPrefix(ref.Name, "refs/pull/") && strings.IndexByte(ref.Name[10:], '/') > -1 {
+ return "pull"
+ }
+ return ""
+}