diff --git a/internal/glance/templates/repository.html b/internal/glance/templates/repository.html
index d0d1b8e2..e5f79417 100644
--- a/internal/glance/templates/repository.html
+++ b/internal/glance/templates/repository.html
@@ -9,7 +9,7 @@
{{ if gt (len .Repository.Commits) 0 }}
-Last {{ .CommitsLimit }} commits
+Last {{ .CommitsLimit }} commits {{ .RepositoryBranch }}
{{ range .Repository.Commits }}
diff --git a/internal/glance/widget-repository.go b/internal/glance/widget-repository.go
index 1eeb8b4b..231bcb49 100644
--- a/internal/glance/widget-repository.go
+++ b/internal/glance/widget-repository.go
@@ -15,6 +15,7 @@ var repositoryWidgetTemplate = mustParseTemplate("repository.html", "widget-base
type repositoryWidget struct {
widgetBase `yaml:",inline"`
RequestedRepository string `yaml:"repository"`
+ RepositoryBranch string `yaml:"branch"`
Token string `yaml:"token"`
PullRequestsLimit int `yaml:"pull-requests-limit"`
IssuesLimit int `yaml:"issues-limit"`
@@ -43,6 +44,7 @@ func (widget *repositoryWidget) initialize() error {
func (widget *repositoryWidget) update(ctx context.Context) {
details, err := fetchRepositoryDetailsFromGithub(
widget.RequestedRepository,
+ widget.RepositoryBranch,
string(widget.Token),
widget.PullRequestsLimit,
widget.IssuesLimit,
@@ -111,16 +113,20 @@ type gitHubCommitResponseJson struct {
} `json:"commit"`
}
-func fetchRepositoryDetailsFromGithub(repo string, token string, maxPRs int, maxIssues int, maxCommits int) (repository, error) {
+func fetchRepositoryDetailsFromGithub(repo string, branch string, token string, maxPRs int, maxIssues int, maxCommits int) (repository, error) {
repositoryRequest, err := http.NewRequest("GET", fmt.Sprintf("https://api.github.com/repos/%s", repo), nil)
if err != nil {
return repository{}, fmt.Errorf("%w: could not create request with repository: %v", errNoContent, err)
}
-
+ var repoUrl string
PRsRequest, _ := http.NewRequest("GET", fmt.Sprintf("https://api.github.com/search/issues?q=is:pr+is:open+repo:%s&per_page=%d", repo, maxPRs), nil)
issuesRequest, _ := http.NewRequest("GET", fmt.Sprintf("https://api.github.com/search/issues?q=is:issue+is:open+repo:%s&per_page=%d", repo, maxIssues), nil)
- CommitsRequest, _ := http.NewRequest("GET", fmt.Sprintf("https://api.github.com/repos/%s/commits?per_page=%d", repo, maxCommits), nil)
-
+ if branch != "" {
+ repoUrl = fmt.Sprintf("https://api.github.com/repos/%s/commits?sha=%s&per_page=%d", repo, branch, maxCommits)
+ } else {
+ repoUrl = fmt.Sprintf("https://api.github.com/repos/%s/commits?per_page=%d", repo, maxCommits)
+ }
+ CommitsRequest, _ := http.NewRequest("GET", repoUrl, nil)
if token != "" {
token = fmt.Sprintf("Bearer %s", token)
repositoryRequest.Header.Add("Authorization", token)