For my specific use case, I'd like to get all commits that are on one branch but NOT on the other branch. For instance, I'd like to get all the commits on `Branch1` that are not also on `master` (I.e. all commits that were made after `Branch1` was created). This PR adds a `not` query param that gets passed down to the `git log` command to allow the user to exclude items from `GetAllCommits`. See [git documentation](https://git-scm.com/docs/git-log#Documentation/git-log.txt---not) --------- Co-authored-by: Giteabot <teabot@gitea.io>
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2022 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package feed
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"strings"
 | |
| 	"time"
 | |
| 
 | |
| 	"code.gitea.io/gitea/models/repo"
 | |
| 	"code.gitea.io/gitea/modules/context"
 | |
| 
 | |
| 	"github.com/gorilla/feeds"
 | |
| )
 | |
| 
 | |
| // ShowBranchFeed shows tags and/or releases on the repo as RSS / Atom feed
 | |
| func ShowBranchFeed(ctx *context.Context, repo *repo.Repository, formatType string) {
 | |
| 	commits, err := ctx.Repo.Commit.CommitsByRange(0, 10, "")
 | |
| 	if err != nil {
 | |
| 		ctx.ServerError("ShowBranchFeed", err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	title := fmt.Sprintf("Latest commits for branch %s", ctx.Repo.BranchName)
 | |
| 	link := &feeds.Link{Href: repo.HTMLURL() + "/" + ctx.Repo.BranchNameSubURL()}
 | |
| 
 | |
| 	feed := &feeds.Feed{
 | |
| 		Title:       title,
 | |
| 		Link:        link,
 | |
| 		Description: repo.Description,
 | |
| 		Created:     time.Now(),
 | |
| 	}
 | |
| 
 | |
| 	for _, commit := range commits {
 | |
| 		feed.Items = append(feed.Items, &feeds.Item{
 | |
| 			Id:    commit.ID.String(),
 | |
| 			Title: strings.TrimSpace(strings.Split(commit.Message(), "\n")[0]),
 | |
| 			Link:  &feeds.Link{Href: repo.HTMLURL() + "/commit/" + commit.ID.String()},
 | |
| 			Author: &feeds.Author{
 | |
| 				Name:  commit.Author.Name,
 | |
| 				Email: commit.Author.Email,
 | |
| 			},
 | |
| 			Description: commit.Message(),
 | |
| 			Content:     commit.Message(),
 | |
| 		})
 | |
| 	}
 | |
| 
 | |
| 	writeFeed(ctx, feed, formatType)
 | |
| }
 |