Skip to content
Snippets Groups Projects
Commit ebf265fd authored by Adam Harrison-Fuller's avatar Adam Harrison-Fuller
Browse files

Tidyup

parent 0209b248
Branches
Tags
No related merge requests found
...@@ -8,7 +8,7 @@ A SQLite DB is used to store the GUID/FeedID combination which is checked when a ...@@ -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 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. 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. 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. ## 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 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
......
...@@ -49,10 +49,10 @@ type EnvValues struct { ...@@ -49,10 +49,10 @@ type EnvValues struct {
GitlabAPIKey string 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{ searchOptions := &gitlab.SearchOptions{
Page:1, Page: 1,
PerPage:10, PerPage: 10,
} }
issues, _, err := gitlabClient.Search.IssuesByProject(projectID, guid, searchOptions) issues, _, err := gitlabClient.Search.IssuesByProject(projectID, guid, searchOptions)
if err != nil { if err != nil {
...@@ -110,7 +110,8 @@ func (feed Feed) checkFeed(db *gorm.DB, gitlabClient *gitlab.Client) { ...@@ -110,7 +110,8 @@ func (feed Feed) checkFeed(db *gorm.DB, gitlabClient *gitlab.Client) {
} }
if time.Before(feed.AddedSince) { 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 continue
} }
...@@ -136,15 +137,16 @@ func (feed Feed) checkFeed(db *gorm.DB, gitlabClient *gitlab.Client) { ...@@ -136,15 +137,16 @@ func (feed Feed) checkFeed(db *gorm.DB, gitlabClient *gitlab.Client) {
CreatedAt: time, CreatedAt: time,
} }
//fmt.Println(issueOptions) if _, _, err := gitlabClient.Issues.CreateIssue(feed.GitlabProjectID, issueOptions); err != nil {
_, _, err := gitlabClient.Issues.CreateIssue(feed.GitlabProjectID, issueOptions)
if err != nil {
fmt.Printf("Unable to create Gitlab issue for %s \n %s \n", feed.Name, err) fmt.Printf("Unable to create Gitlab issue for %s \n %s \n", feed.Name, err)
} else { continue
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()
} }
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 { ...@@ -156,8 +158,7 @@ func readConfig(path string) *Config {
log.Fatalln(err) log.Fatalln(err)
} }
err = yaml.Unmarshal(data, config) if err = yaml.Unmarshal(data, config); err != nil {
if err != nil {
fmt.Printf("Unable to parse config YAML \n %s \n", err) fmt.Printf("Unable to parse config YAML \n %s \n", err)
panic(err) panic(err)
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment