From ebf265fd55e91fa500859076aedd52e4f8b4745b Mon Sep 17 00:00:00 2001 From: Adam Harrison-Fuller <adam@adamhf.io> Date: Thu, 28 Mar 2019 12:47:13 +0000 Subject: [PATCH] Tidyup Signed-off-by: Adam Harrison-Fuller <adam@adamhf.io> --- README.md | 2 +- main.go | 27 ++++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index fb6f41a..048156a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A SQLite DB is used to store the GUID/FeedID combination which is checked when a In addition we also add the RSS feed's item GUID at the bottom of the issue description. Before synchronising an RSS item we run an issue search in the associated project, if we dont find the GUID in any issue we assume its not already been created. This helps to guard against scenarios where you lose the SQLite DB and dont want RSS items reduplicating into Gitlab. -If found in Gitlab it is marked as syncronised in the local database as well as printing an link to the existing issue(s) to stdout. +If found in Gitlab it is marked as synchronised in the local database as well as printing an link to the existing issue(s) to stdout. ## Limiting what is initially synced. Each feed entry in the config file can have an "added_since" property set. This is used to only sync RSS items that have a diff --git a/main.go b/main.go index 37e9136..76f3d0f 100644 --- a/main.go +++ b/main.go @@ -49,10 +49,10 @@ type EnvValues struct { GitlabAPIKey string } -func hasExistingGitlabIssue(guid string, projectID int, gitlabClient *gitlab.Client) bool{ +func hasExistingGitlabIssue(guid string, projectID int, gitlabClient *gitlab.Client) bool { searchOptions := &gitlab.SearchOptions{ - Page:1, - PerPage:10, + Page: 1, + PerPage: 10, } issues, _, err := gitlabClient.Search.IssuesByProject(projectID, guid, searchOptions) if err != nil { @@ -110,7 +110,8 @@ func (feed Feed) checkFeed(db *gorm.DB, gitlabClient *gitlab.Client) { } if time.Before(feed.AddedSince) { - fmt.Printf("Ignoring %s as its date is < the specified AddedSince (Item: %s vs AddedSince: %s) \n", item.Title, time, feed.AddedSince) + fmt.Printf("Ignoring %s as its date is < the specified AddedSince (Item: %s vs AddedSince: %s)\n", + item.Title, time, feed.AddedSince) continue } @@ -136,15 +137,16 @@ func (feed Feed) checkFeed(db *gorm.DB, gitlabClient *gitlab.Client) { CreatedAt: time, } - //fmt.Println(issueOptions) - _, _, err := gitlabClient.Issues.CreateIssue(feed.GitlabProjectID, issueOptions) - if err != nil { + if _, _, err := gitlabClient.Issues.CreateIssue(feed.GitlabProjectID, issueOptions); err != nil { fmt.Printf("Unable to create Gitlab issue for %s \n %s \n", feed.Name, err) - } else { - fmt.Printf("Created Gitlab Issue '%s' in project: %d' \n", item.Title, feed.GitlabProjectID) - db.Create(&SyncedItems{UUID: item.GUID, Feed: feed.ID}) - issuesCreatedCounter.Inc() + continue } + if err := db.Create(&SyncedItems{UUID: item.GUID, Feed: feed.ID}).Error; err != nil { + fmt.Printf("Unable to persist in %s DB: %s \n", item.Title, err) + continue + } + issuesCreatedCounter.Inc() + fmt.Printf("Created Gitlab Issue '%s' in project: %d' \n", item.Title, feed.GitlabProjectID) } } @@ -156,8 +158,7 @@ func readConfig(path string) *Config { log.Fatalln(err) } - err = yaml.Unmarshal(data, config) - if err != nil { + if err = yaml.Unmarshal(data, config); err != nil { fmt.Printf("Unable to parse config YAML \n %s \n", err) panic(err) } -- GitLab