diff --git a/docs/configuration.md b/docs/configuration.md
index 1cd13af..1b02af4 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -1216,7 +1216,7 @@ Preview:
| token | string | no | |
| pull-requests-limit | integer | no | 3 |
| issues-limit | integer | no | 3 |
-| commits-limit | integer | no | 3 |
+| commits-limit | integer | no | -1 |
##### `repository`
The owner and repository name that will have their information displayed.
@@ -1231,7 +1231,7 @@ The maximum number of latest open pull requests to show. Set to `-1` to not show
The maximum number of latest open issues to show. Set to `-1` to not show any.
##### `commits-limit`
-The maximum number of the lastest commit to show. Set to `-1` to not show any.
+The maximum number of lastest commits to show from the default branch. Set to `-1` to not show any.
### Bookmarks
Display a list of links which can be grouped.
diff --git a/internal/assets/templates/repository.html b/internal/assets/templates/repository.html
index 7f4bedc..53b6617 100644
--- a/internal/assets/templates/repository.html
+++ b/internal/assets/templates/repository.html
@@ -9,16 +9,16 @@
{{ if gt (len .RepositoryDetails.Commits) 0 }}
-Last {{ .RepositoryDetails.LastCommits | formatNumber }} commits
+Last {{ .CommitsLimit }} commits
{{ range .RepositoryDetails.Commits }}
- - {{ .Date | relativeTime }}
+
{{ end }}
diff --git a/internal/feed/github.go b/internal/feed/github.go
index f81b6d2..782d612 100644
--- a/internal/feed/github.go
+++ b/internal/feed/github.go
@@ -17,7 +17,6 @@ type githubReleaseLatestResponseJson struct {
} `json:"reactions"`
}
-
func fetchLatestGithubRelease(request *ReleaseRequest) (*AppRelease, error) {
httpRequest, err := http.NewRequest(
"GET",
@@ -70,7 +69,7 @@ type RepositoryDetails struct {
OpenIssues int
Issues []GithubTicket
LastCommits int
- Commits []CommitsDetails
+ Commits []CommitDetails
}
type githubRepositoryDetailsResponseJson struct {
@@ -88,30 +87,24 @@ type githubTicketResponseJson struct {
} `json:"items"`
}
-type CommitsDetails struct {
- Sha string
- Author string
- Email string
- Date time.Time
- Message string
+type CommitDetails struct {
+ Sha string
+ Author string
+ CreatedAt time.Time
+ Message string
}
-type Author struct {
- Name string `json:"name"`
- Email string `json:"email"`
- Date string `json:"date"`
-}
-
-type Commit struct {
+type gitHubCommitResponseJson struct {
Sha string `json:"sha"`
Commit struct {
- Author Author `json:"author"`
+ Author struct {
+ Name string `json:"name"`
+ Date string `json:"date"`
+ } `json:"author"`
Message string `json:"message"`
} `json:"commit"`
}
-type githubCommitsResponseJson []Commit
-
func FetchRepositoryDetailsFromGithub(repository string, token string, maxPRs int, maxIssues int, maxCommits int) (RepositoryDetails, error) {
repositoryRequest, err := http.NewRequest("GET", fmt.Sprintf("https://api.github.com/repos/%s", repository), nil)
if err != nil {
@@ -136,7 +129,7 @@ func FetchRepositoryDetailsFromGithub(repository string, token string, maxPRs in
var PRsErr error
var issuesResponse githubTicketResponseJson
var issuesErr error
- var CommitsResponse githubCommitsResponseJson
+ var commitsResponse []gitHubCommitResponseJson
var CommitsErr error
var wg sync.WaitGroup
@@ -166,9 +159,10 @@ func FetchRepositoryDetailsFromGithub(repository string, token string, maxPRs in
wg.Add(1)
go (func() {
defer wg.Done()
- CommitsResponse, CommitsErr = decodeJsonFromRequest[githubCommitsResponseJson](defaultClient, CommitsRequest)
+ commitsResponse, CommitsErr = decodeJsonFromRequest[[]gitHubCommitResponseJson](defaultClient, CommitsRequest)
})()
}
+
wg.Wait()
if detailsErr != nil {
@@ -181,7 +175,7 @@ func FetchRepositoryDetailsFromGithub(repository string, token string, maxPRs in
Forks: detailsResponse.Forks,
PullRequests: make([]GithubTicket, 0, len(PRsResponse.Tickets)),
Issues: make([]GithubTicket, 0, len(issuesResponse.Tickets)),
- Commits: make([]CommitsDetails, 0, len(CommitsResponse)),
+ Commits: make([]CommitDetails, 0, len(commitsResponse)),
}
err = nil
@@ -223,17 +217,16 @@ func FetchRepositoryDetailsFromGithub(repository string, token string, maxPRs in
if CommitsErr != nil {
err = fmt.Errorf("%w: could not get issues: %s", ErrPartialContent, CommitsErr)
} else {
- for _, commit := range CommitsResponse {
- details.LastCommits++
- details.Commits = append(details.Commits, CommitsDetails{
- Sha: commit.Sha,
- Author: commit.Commit.Author.Name,
- Email: commit.Commit.Author.Email,
- Date: parseGithubTime(commit.Commit.Author.Date),
- Message: strings.SplitN(commit.Commit.Message, "\n\n", 2)[0],
+ for i := range commitsResponse {
+ details.Commits = append(details.Commits, CommitDetails{
+ Sha: commitsResponse[i].Sha,
+ Author: commitsResponse[i].Commit.Author.Name,
+ CreatedAt: parseRFC3339Time(commitsResponse[i].Commit.Author.Date),
+ Message: strings.SplitN(commitsResponse[i].Commit.Message, "\n\n", 2)[0],
})
}
}
}
+
return details, err
}
diff --git a/internal/widget/repository-overview.go b/internal/widget/repository-overview.go
index 0edbcc1..9d4cab3 100644
--- a/internal/widget/repository-overview.go
+++ b/internal/widget/repository-overview.go
@@ -15,7 +15,7 @@ type Repository struct {
Token OptionalEnvString `yaml:"token"`
PullRequestsLimit int `yaml:"pull-requests-limit"`
IssuesLimit int `yaml:"issues-limit"`
- CommitsLimits int `yaml:"commits-limit"`
+ CommitsLimit int `yaml:"commits-limit"`
RepositoryDetails feed.RepositoryDetails
}
@@ -30,8 +30,8 @@ func (widget *Repository) Initialize() error {
widget.IssuesLimit = 3
}
- if widget.CommitsLimits == 0 || widget.CommitsLimits < -1 {
- widget.CommitsLimits = 3
+ if widget.CommitsLimit == 0 || widget.CommitsLimit < -1 {
+ widget.CommitsLimit = -1
}
return nil
@@ -43,7 +43,7 @@ func (widget *Repository) Update(ctx context.Context) {
string(widget.Token),
widget.PullRequestsLimit,
widget.IssuesLimit,
- widget.CommitsLimits,
+ widget.CommitsLimit,
)
if !widget.canContinueUpdateAfterHandlingErr(err) {