Commit Graph

50 Commits

Author SHA1 Message Date
Michael Muré
9b98fc0648
cache: tie up the refactor up to compiling 2022-12-21 21:54:36 +01:00
Michael Muré
0ac39a7ab5
WIP 2022-11-28 17:20:25 +01:00
Michael Muré
3c6ebc2bfd core: bubble up the comment ID when created, or edited the first comment 2022-11-13 12:31:38 +01:00
Michael Muré
8818d091e8
move bug.Status in entities/common for reuse 2022-08-20 10:52:11 +02:00
Michael Muré
5511c230b6
move {bug,identity} to /entities, move input to /commands 2022-08-18 23:44:06 +02:00
Michael Muré
3d454d9dc8
entity/dag: proper base operation for simplified implementation
- reduce boilerplace necessary to implement an operation
- consolidate what an operation is in the core, which in turn pave the way for a generic cache layer mechanism
- avoid the previously complex unmarshalling process
- support operation metadata from the core
- simplified testing
2022-07-25 13:27:17 +02:00
Michael Muré
7348fb9edb
github: fix data race when closing event channel
I believe the issue was twofold:

When done importing, the calling context is likely still valid, so if the output channel is not read enough and reach capacity, some event producer down the line can be blocked trying to send in that channel. When closing it, this send is still trying to proceed, which is illegal in go.

In rateLimitHandlerClient, there was a need to 2 different type of output channel: core.ExportResult and ImportEvent. To do so, the previous code was using a single channel type RateLimitingEvent and a series of goroutines to read/cast/send to the final channel. This could result in more async goroutine being stuck trying to send in an at-capacity channel. Instead, the code now use a simple synchronous callback to directly push to the final output channel. No concurrency needed anymore and the code is simpler.

Any of those fixes could have resolved the data race, but both fixes is more correct.
2022-06-05 15:13:49 +02:00
rng-dynamics
247e1a865d
feature: Github bridge mutation rate limit (#694)
Unified handling of rate limiting of github graphql api
2021-09-14 22:22:28 +02:00
Michael Muré
10a80f1888
github: minor cleanups 2021-04-09 13:07:45 +02:00
Michael Muré
3f6ef50883
bug: migrate to the DAG entity structure! 2021-02-14 12:19:50 +01:00
Michael Muré
aab3a04d0c
bug: harmonize how time are used, fix some issues in command special formats
This assume that the convertion from time.Time <--> Unix timestamp is lossless which seems to be.
2020-06-25 23:18:17 +02:00
Michael Muré
0cebe1e57e
bridge: record the login used during the configure and use it as default credential
fix #338
2020-02-23 14:20:54 +01:00
Michael Muré
e231b6e839
bridges: pass the context to Init for when a client build process needs it 2020-02-15 15:46:36 +01:00
Michael Muré
fe3d5c95e4
bridges: massive refactor
- automatic flag validation and warning
- generalized prompt
- cleanups
2020-02-15 02:55:19 +01:00
Michael Muré
646fd681ff
it compiles \o/ 2020-02-08 17:19:57 +01:00
Michael Muré
f515b9a129
gitlab also compile 2020-02-08 17:19:57 +01:00
Michael Muré
74e9114410
more more wip 2020-02-08 17:19:57 +01:00
Michael Muré
ae2f942ef9
more wip 2020-02-08 17:18:28 +01:00
Michael Muré
b92adfcb5f
bridge: huge refactor to accept multiple kind of credentials 2019-12-08 21:28:27 +01:00
amine
014e754fcd bridge/github: use core.ConfigKeyToken instead of keyToken 2019-11-23 19:20:55 +01:00
amine
87244d3c8d bridge/github: export correctly emit nothing events 2019-11-19 20:04:40 +01:00
amine
8ffe2a9b03 bridge/launchpad: add missing metadata
bridge: use a specific key for origin metadata
2019-11-19 19:16:16 +01:00
ludovicm67
75004e1298
bug: rename RGBA to Color 2019-10-15 20:42:27 +02:00
Amine Hilaly
d19b8e1a09 bridge/github: fix name case sensitivity in retrieving and creating labels using github graphql api 2019-08-19 00:44:33 +02:00
Amine Hilaly
501a931080 bridge/gthub: use errgroup.Group instead of sync.WaitGroup 2019-08-18 00:14:22 +02:00
Amine Hilaly
5ca326af83 bridge/core: add context.Context to ImportAll and ExportAll signatures
bridge/core: add ImportResult objects to stream import events

bridge/core: launchpad support asynchronous import

bridge/github: cancellable export and import functions

bridge/gitlab: cancellable export and import functions

commands: bridge pull/push gracefull kill

bridge/github: fix github import

bridge/github: use simple context for imports

bridge/core: name parameters in interfaces

github/core: Add EventError to export and import events types

bridge/gitlab: add context support in gitlab requests functions

bridge/gitlab: remove imported events count from importer logic

bridge/github: remove imported events count from importer logic

bridge/github: add context support in query and muration requets

bridge/github: fix bug duplicate editions after multiple calls

bridge/core: import import and export events String methods
bridge/gitlab: fix error handling in note import events

commands/bridge: Add statistics about imports and exports

bridge/gitlab: properly handle context cancellation

bridge/github: improve error handling

bridge: break iterators on context cancel or timeout

bridge: add context timeout support

bridge: improve event formating and error handling

commands: handle interrupt and switch cases

bridge/github: add export mutation timeouts

bridge: fix race condition bug in the github and gitlab importers
bridge/github: improve context error handling
2019-08-18 00:14:22 +02:00
Michael Muré
99b5c58d43 finish the refactoring for the dedicated identifier type 2019-08-12 16:12:14 +02:00
Michael Muré
a0dfc20211 github: fix bad refactor 2019-08-08 19:06:13 +02:00
Michael Muré
612a29b031 fix everything following the hash-->id change 2019-08-08 19:06:13 +02:00
Amine Hilaly
6323c7b106
[bridge/github] ignore imported bugs from other repositories 2019-07-06 00:23:19 +02:00
Amine Hilaly
3e181168ea
[bridge/github] improve export label change function
[bridge/core] rename `EventStatus` to `ExportEvent`
2019-07-05 22:03:00 +02:00
Amine
93e731fd0d
[bridge/github] improve comments and documentation
[bridge/github] improve error handling and tests

Co-Authored-By: Michael Muré <batolettre@gmail.com>
2019-07-05 18:46:59 +02:00
Amine Hilaly
1f365b2369
[core] Implement ExportResults
Use ExportResult chan to send export events
Remove exportedBugs and exportedLabels
2019-06-30 15:42:45 +02:00
Amine Hilaly
570ae5f75e
[bug] add snapshot.GetCreateMetadata method
[bug] add snapshot.HasParticipant(id string)
[bug] add snapshot.HasAnyParticipant(ids ...string)
[bug] add snapshot.HasActor(id string)
[bug] add snapshot.HasAnyActor(ids ...string)
[bridge/github] improve comments
[bridge/github] exporter tests: register deleteRepository in cleaner
[bridge/github] tests rebase
2019-06-30 15:33:27 +02:00
Amine Hilaly
31eebdf9da
[bridge/github] Correcte some types and add comments
General improvements

Co-Authored-By: Michael Muré <batolettre@gmail.com>

empty array check

an empty array is not nil

Co-Authored-By: Michael Muré <batolettre@gmail.com>
2019-06-24 21:35:24 +02:00
Amine Hilaly
0dea0f6a76
[bridge/github] simplify export operation hashs
[bridge/github] exporter tests: add more test cases and global tests

[bridge/github] rename export_query to export_mutation

[bridge/github] exporter: Log number of exported issues and labels

[bridge/github] Improve comments
2019-06-24 21:33:29 +02:00
Amine Hilaly
fc09f2a492
[bridge/github] exporter: Add test cases
correct delete repo
improve tests
set user identity
2019-06-24 21:33:15 +02:00
Amine Hilaly
12cc74e22b
[bridge/github] correct label & comment edit mutations bugs 2019-06-24 21:33:06 +02:00
Amine Hilaly
23f2c58e92
[bridge/github] create label: Generate hexColor from label rgba 2019-06-24 21:32:45 +02:00
Amine Hilaly
4ad3d336c6
[bridge/github] use context.WithTimeout on all graphql queries 2019-06-24 21:32:38 +02:00
Amine Hilaly
f70c279c1e
[bridge/github] exporter: Improve error handling
[bridge/github] queries: use api v4 for getLabel / createLabel

[bridge/github] add comments to getIdentityClient
2019-06-24 21:32:11 +02:00
Amine Hilaly
e511f3d885
[misc] update man docs and completion scripts
[cache] BugCache: Fix set metadata raw

[bridge/github] Fix graphql input objects
2019-06-24 21:30:45 +02:00
Amine Hilaly
a58ac69c1f
[bridge/github] exporter: Check bug import origin
[bridge/github] export only allowed bugs
2019-06-24 21:30:26 +02:00
Amine Hilaly
07492fb72a
[bridge/github] importer: tag imported issues with origin metadata
[bridge/github] exporter: correct export signature and cache maps
2019-06-24 21:29:57 +02:00
Amine Hilaly
1d42814166
[bridge/github] cache user token
fix import typo

init tests

verify issue
2019-06-24 21:29:37 +02:00
Amine Hilaly
a121991f55
[bridge/github] exporter: support multiple tokens/clients 2019-06-24 21:28:51 +02:00
Amine Hilaly
cbac482770
[bridge/github] update github bug exporter
- cache repository ID
- cache all comment IDs
2019-06-24 21:27:17 +02:00
Amine Hilaly
6451dd2928
[cache] BugCache: Add set metadata methods
[bridge/github] fix add/remove mutation requests

[bridge/github] iterator: fix typo
2019-06-24 21:26:34 +02:00
Amine Hilaly
2f620e65b8
[bridge/github] exporter: add graphql functionalities
[bridge/github] graphql mutation objects
[bridge/github] github create and get labels
[bridge/github] repository node_id query
[bridge/github] exporter: ignore old bugs and old operations
[bridge/github] add update labels/status functionalities
[bridge/github] exporter: cache labels while exporting
2019-06-24 21:24:04 +02:00
Amine Hilaly
fbb0e836d3
[bridge/github] Add exporter implementation 2019-06-24 21:20:45 +02:00