aboutsummaryrefslogtreecommitdiffstats
path: root/bridge/github/export.go
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/github/export.go')
-rw-r--r--bridge/github/export.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/bridge/github/export.go b/bridge/github/export.go
new file mode 100644
index 00000000..3c07d682
--- /dev/null
+++ b/bridge/github/export.go
@@ -0,0 +1,49 @@
+package github
+
+import (
+ "time"
+
+ "github.com/MichaelMure/git-bug/bridge/core"
+ "github.com/MichaelMure/git-bug/cache"
+)
+
+// githubImporter implement the Importer interface
+type githubExporter struct {
+ conf core.Configuration
+}
+
+func (ge *githubExporter) Init(conf core.Configuration) error {
+ ge.conf = conf
+ return nil
+}
+
+// ExportAll export all event made by the current user to Github
+func (ge *githubExporter) ExportAll(repo *cache.RepoCache, since time.Time) error {
+ identity, err := repo.GetUserIdentity()
+ if err != nil {
+ return err
+ }
+
+ allBugsIds := repo.AllBugsIds()
+
+ //
+ bugs := make([]*cache.BugCache, 0)
+ for _, id := range allBugsIds {
+ b, err := repo.ResolveBug(id)
+ if err != nil {
+ return err
+ }
+
+ // check if user participated in the issue
+ participants := b.Snapshot().Participants
+ for _, p := range participants {
+ if p.Id() == identity.Id() {
+ bugs = append(bugs, b)
+ }
+ }
+ }
+
+ //TODO: Export bugs/events/editions
+
+ return nil
+}