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
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) {