Skip to content

Commit db8849f

Browse files
authored
Merge pull request #6 from mackee/fix/pull-request-not-found
ignore request error on 404 not found
2 parents 9578cdc + bc3cb2e commit db8849f

File tree

4 files changed

+27
-10
lines changed

4 files changed

+27
-10
lines changed

comparison.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ func (c ComparisonCommit) PullRequest() (PullRequest, error) {
5555
}
5656

5757
pr = PullRequest{
58-
Number: number,
58+
Number: number,
59+
Fetched: false,
5960
}
6061

6162
return pr, nil

fetcher.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"context"
55
"log"
6+
"net/http"
67

78
"github.com/google/go-github/github"
89
"github.com/pkg/errors"
@@ -89,6 +90,7 @@ func (f *fetcher) compare(ctx context.Context) (Comparison, error) {
8990
if err != nil {
9091
return Comparison{}, errors.Wrap(err, "fail fetching comapre commits")
9192
}
93+
9294
var com Comparison
9395
if len(comparison.Files) > 0 {
9496
files := make([]ComparisonFile, 0, len(comparison.Files))
@@ -168,14 +170,26 @@ func (f *fetcher) MergedPullRequests(ctx context.Context) (PullRequests, error)
168170
for _, pr := range prs {
169171
_pr := pr
170172
eg.Go(func() error {
171-
return f.FetchPullRequest(ctx, _pr)
173+
err := f.FetchPullRequest(ctx, _pr)
174+
if err == nil {
175+
return nil
176+
}
177+
cause := errors.Cause(err)
178+
errResp, ok := cause.(*github.ErrorResponse)
179+
if ok && errResp.Response.StatusCode == http.StatusNotFound {
180+
return nil
181+
}
182+
return err
172183
})
173184
}
174185
if err := eg.Wait(); err != nil {
175186
return nil, err
176187
}
177188
freezedPRs := make(PullRequests, 0, len(prs))
178189
for _, pr := range prs {
190+
if !pr.Fetched {
191+
continue
192+
}
179193
if pr.Base != f.Repo.Head {
180194
continue
181195
}
@@ -195,6 +209,7 @@ func (f *fetcher) FetchPullRequest(ctx context.Context, pr *PullRequest) error {
195209
pr.Base = prr.GetBase().GetRef()
196210
pr.Title = prr.GetTitle()
197211
pr.Author = prr.GetUser().GetLogin()
212+
pr.Fetched = true
198213

199214
return nil
200215
}

pullrequest.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import (
55
)
66

77
type PullRequest struct {
8-
Number int
9-
Title string
10-
Head string
11-
Base string
12-
Author string
8+
Number int
9+
Title string
10+
Head string
11+
Base string
12+
Author string
13+
Fetched bool
1314
}
1415

1516
type PullRequests []PullRequest

template.gen.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ import (
66
"github.com/jessevdk/go-assets"
77
)
88

9-
var _Assetsf000cb359297bc9533188180f9bc040ef1fdcb3e = "title: '[DEPLOY] {{ .Call \"deploy_title\" }}'\nrepo:\n owner: mackee\n repo: release-request\n base: master\n head: develop\nlabels:\n - deploy\ntarget_label: deploy ready\nmarkdown: release.md\ncalls:\n - name: deploy_timing\n command: |\n perl -MTime::Piece -E '\n my $now = Time::Piece->new;\n for my $hms (qw/16:30:00 19:45:00 23:45:00/) {\n next if $now->hms gt $hms;\n say $now->ymd . \" \" . $hms;\n last;\n }'\n - name: deploy_title\n command: date +\"%Y-%m-%d %H:%M\"\n - name: has_assets\n command: |\n perl -MJSON -E '\n my $json = do { local $/; <STDIN> };\n my $releaser = JSON::decode_json($json);\n my $files = $releaser->{comparison}->{files};\n my @assets = grep { $_->{name} =~ m!^_example/.*$! } @$files;\n @assets > 0 ? exit 0 : exit 1;\n '\ntoken: \"<your token>\"\n"
109
var _Assets9d7da04f478156ce3962423189e531c0785612c3 = "# Release\n\nEstimated time of deploying: {{ .Call \"deploy_timing\" }}\n\n## Merged\n\n{{ range .MergedPullRequests -}}\n- [x] #{{ .Number }} {{ .Title }} by @{{ .Author }}\n{{ end }}\n{{ with .OpenedPullRequests }}\n\n## Pendings\n\n{{ range . -}}\n- [ ] #{{ .Number }} {{ .Title }} by @{{ .Author }}\n{{ end }}\n{{ end -}}\n\n## Tasks\n\n{{ with .CallIf \"has_assets\" -}}\n- [ ] generate assets\n\n```console\n$ go generate\n```\n\n{{ end -}}\n\n- [ ] bump tag\n\n```\n$ git tag v1.x.y\n$ git push origin v1.x.y\n```\n\n- [ ] publish release\n\n```\n$ make releases\n```\n"
10+
var _Assetsf000cb359297bc9533188180f9bc040ef1fdcb3e = "title: '[DEPLOY] {{ .Call \"deploy_title\" }}'\nrepo:\n owner: mackee\n repo: release-request\n base: master\n head: develop\nlabels:\n - deploy\ntarget_label: deploy ready\nmarkdown: release.md\ncalls:\n - name: deploy_timing\n command: |\n perl -MTime::Piece -E '\n my $now = Time::Piece->new;\n for my $hms (qw/16:30:00 19:45:00 23:45:00/) {\n next if $now->hms gt $hms;\n say $now->ymd . \" \" . $hms;\n last;\n }'\n - name: deploy_title\n command: date +\"%Y-%m-%d %H:%M\"\n - name: has_assets\n command: |\n perl -MJSON -E '\n my $json = do { local $/; <STDIN> };\n my $releaser = JSON::decode_json($json);\n my $files = $releaser->{comparison}->{files};\n my @assets = grep { $_->{name} =~ m!^_example/.*$! } @$files;\n @assets > 0 ? exit 0 : exit 1;\n '\ntoken: \"<your token>\"\n"
1111

1212
// Assets returns go-assets FileSystem
1313
var Assets = assets.NewFileSystem(map[string][]string{}, map[string]*assets.File{
1414
"config.yml": &assets.File{
1515
Path: "config.yml",
1616
FileMode: 0x1a4,
17-
Mtime: time.Unix(1510225411, 1510225411000000000),
17+
Mtime: time.Unix(1510543974, 1510543974000000000),
1818
Data: []byte(_Assetsf000cb359297bc9533188180f9bc040ef1fdcb3e),
1919
}, "release.md": &assets.File{
2020
Path: "release.md",
2121
FileMode: 0x1a4,
22-
Mtime: time.Unix(1510225411, 1510225411000000000),
22+
Mtime: time.Unix(1510543974, 1510543974000000000),
2323
Data: []byte(_Assets9d7da04f478156ce3962423189e531c0785612c3),
2424
}}, "")

0 commit comments

Comments
 (0)