Commit Graph

300 Commits

Author SHA1 Message Date
Amine Hilaly
be94780315
bridge/github: recover terminal state in password prompts
commands: error if a token is provide but not the bridge name and target
2019-08-31 23:02:20 +02:00
Amine
65d7ce7c05
commands: enhance flag description
bridge/github: improve configuration logic

Co-Authored-By: Michael Muré <batolettre@gmail.com>
2019-08-31 23:02:20 +02:00
Amine Hilaly
0381400bfd
commands: read token from stdin in bridge configuration
bridge: improve bridge config validation
2019-08-31 23:02:20 +02:00
Amine Hilaly
c8fdaab50a
bridge/gitlab: remove gitlab url checking before export 2019-08-24 13:22:23 +02:00
Amine Hilaly
22960159e9 bridge/gitlab: exporter ignore issues imported from or exported to different projects 2019-08-23 15:16:58 +02:00
Amine Hilaly
63e7b08628 bridge/gitlab: improve exporter error handling and label change operations 2019-08-23 01:55:57 +02:00
Amine Hilaly
514dc30c20 bridge/gitlab: fix edit comment request and remove label functionalities 2019-08-19 23:56:50 +02:00
Amine Hilaly
f1be129d75 bridge/gitlab: rebase and correct exporter 2019-08-19 13:50:48 +02:00
Amine Hilaly
c7e932e5a9 bridge/gitlab: add exporter e2e tests
bridge/gitlab: fix export bugs and rebase
2019-08-19 10:38:09 +02:00
Amine Hilaly
f1c65a9f86 bridge/gitlab: add exporter implementation 2019-08-19 10:38:09 +02:00
Amine Hilaly
4a4e238d1f bridge/github: add exporter test cases for label change bug 2019-08-19 00:44:35 +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
df412430ab bridge/github: improve error handling and Nothing events
vendor: add package golang.org/x/sync/errgroup
2019-08-18 23:50:13 +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
Amine
cf960bc7a5
Merge pull request #193 from MichaelMure/immutableID
Future proof the operation's ID
2019-08-13 16:47:24 +02:00
Michael Muré
c809d37152
more hash-->id fixes 2019-08-13 16:23:05 +02:00
Michael Muré
99b5c58d43 finish the refactoring for the dedicated identifier type 2019-08-12 16:12:14 +02:00
Amine Hilaly
ca5e40e523
bridge/gitlab: importer handle mentions in other issue and merge requests 2019-08-11 00:08:26 +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
e678e81bc7
bridge/gitlab: fix bug when running import multiple times 2019-07-31 19:22:23 +02:00
Amine Hilaly
5327983b7a
bridge/gitlab: handle other notes cases 2019-07-26 16:35:38 +02:00
Michael Muré
9ecbcb1cf6
Merge pull request #179 from MichaelMure/gitlab-support
Add gitlab bridge configuration and importer
2019-07-23 19:50:58 +02:00
Amine Hilaly
29fdd37ce6
bridge/github: add getNewTitle tests 2019-07-23 19:49:53 +02:00
Amine Hilaly
0c8f1c3a58
bridge/gitlab: fix comment edition target hash in the import
bridge/gitlab: global changes, typo fixes, comments addition
2019-07-23 18:40:10 +02:00
Amine Hilaly
0329bfdf44
bridge/gitlab: change validateProjectURL signature
bridge/gitlab: code cleanup
2019-07-23 17:29:53 +02:00
Amine Hilaly
b82ef04452
fix index out of range panic in github configuration 2019-07-23 17:20:42 +02:00
Amine
d098a96407
bridge/gitlab: global code and comment updates
Co-Authored-By: Michael Muré <batolettre@gmail.com>
2019-07-23 17:18:04 +02:00
Amine Hilaly
ece2cb1262
bridge/gitlab: improve tests and errors
bridge/gitlab: global fixes
2019-07-23 17:18:04 +02:00
Amine Hilaly
b27647c7a0
bridge/gitlab: Fix test project path
bridge/gitlab: update comments
2019-07-23 17:18:04 +02:00
Amine Hilaly
b18507836c
bridge/gitlab: add gitlab client default timeout
bridge/gitlab: fix import bug
2019-07-23 17:18:04 +02:00
Amine Hilaly
5e2eb5000b
bridge/gitlab: remove exporter 2019-07-23 17:18:04 +02:00
Amine Hilaly
b9a5338049
bridge/gitlab: move constants to gitlab.go 2019-07-23 17:18:04 +02:00
Amine Hilaly
7726bbdbcf
bridge/gitlab: add bridge config tests 2019-07-23 17:18:04 +02:00
Amine Hilaly
ce3a2788ab
bridge/gitlab: fix note error handling bug
bridge/gitlab: remove unused functions
2019-07-23 17:18:04 +02:00
Amine Hilaly
05a3aec1a8
bridge/gitlab: add import unit tests 2019-07-23 17:18:04 +02:00
Amine Hilaly
76a389c93d
bridge/gitlab: make resolve error unique within the importer 2019-07-23 17:18:04 +02:00
Amine Hilaly
e012b6c622
bridge/gitlab: check notes system field 2019-07-23 17:18:04 +02:00
Amine Hilaly
ffb8d34e4f
bridge/gitlab: check identity cache in ensurePerson 2019-07-23 17:18:04 +02:00
Amine Hilaly
8b6c896369
bridge/gitlab: complete importer 2019-07-23 17:18:04 +02:00
Amine Hilaly
53f99d3b85
bridge/gitlab: add import note utilities
bridge/gitlab: set default capacity to 20
2019-07-23 17:18:04 +02:00
Amine Hilaly
89227f92b5
bridge/gitlab: add iterator LabelEvents 2019-07-23 17:18:04 +02:00
Amine Hilaly
b512108ac7
bridge/gitlab: fix iterator bugs and enhacements 2019-07-23 17:18:04 +02:00
Amine Hilaly
612264a00f
bridge/gitlab: fix iterator out of index bug 2019-07-23 17:18:04 +02:00
Amine Hilaly
6c02f0951d
bridge/gitlab: prompt only for user provided token 2019-07-23 17:18:04 +02:00
Amine Hilaly
aea88180d3
bridge/gitlab: add method to query all project labels 2019-07-23 17:18:04 +02:00
Amine Hilaly
5144525649
bridge/gitlab: remove request token methodes 2019-07-23 17:18:04 +02:00
Amine Hilaly
8ee136e9fc
bridge/gitlab: add issue iterator 2019-07-23 17:18:04 +02:00
Amine Hilaly
35a033c0f1
bridge/gitlab: bridge project validation
bridge/gitlab: token generation
2019-07-23 17:18:04 +02:00
Amine Hilaly
a1a1d4868b
bridge/gitlab: add bridge configure 2019-07-23 17:18:04 +02:00
Amine Hilaly
cfd5653508
bridge/gitlab: init exporter 2019-07-23 17:18:04 +02:00
Amine Hilaly
01c0f644b2
bridge/gitlab: init new bridge 2019-07-23 17:18:04 +02:00
Amine Hilaly
c805142f00
bridge/github: fix project visibility prompt 2019-07-22 18:14:40 +02:00
Michael Muré
dc289876c6
bridge: detect when trying to configure a bridge with a name already taken 2019-07-07 12:15:01 +02:00
Michael Muré
5b1a8cdefa
bridge: use a single KeyTarget constant for all bridges 2019-07-07 11:10:58 +02:00
Amine Hilaly
9e611ee667
[bridge/github] import: avoid retrieving ghost email in userQuery
request

rename userQuery to ghostQuery
2019-07-06 16:20:05 +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
87cdf03219
[bridge/github] exporter tests: Test issues metadata
[bridge/github] exproter tests: Change env vars
2019-06-24 21:34:52 +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
Michael Muré
54e95cf36f
Merge pull request #171 from MichaelMure/graphql-mutation-relay
Graphql mutation relay
2019-06-23 21:36:42 +02:00
Amine Hilaly
316b4ea6c2
LoadBridge create a bridge using loadConfig
update loadConfig signature
2019-06-17 00:19:01 +02:00
Amine Hilaly
041dc08d43
add target to launchpad configuration 2019-06-17 00:08:02 +02:00
Amine Hilaly
319b648d0f
Naming fixes 2019-06-16 23:02:59 +02:00
Michael Muré
08c0e18ade cache: expose the operation when creating a new bug 2019-06-16 21:04:36 +02:00
Amine Hilaly
f70e775dbd
Store bridge type alongside the other params in the config 2019-06-15 02:33:06 +02:00
Michael Muré
d69dcce806
Merge pull request #153 from A-Hilaly/bridge-configuration
[Breaking] Bridge configuration enhancements
2019-06-07 02:53:21 +02:00
Amine Hilaly
8d6bdb6507
rename GITHUB_TOKEN to GITHUB_PRIVATE_TOKEN 2019-06-07 01:43:48 +02:00
Amine Hilaly
a6c8b6b78d
make token visible in configuration process
validate token
global fixes
2019-06-07 01:17:59 +02:00
Amine Hilaly
da3281c474
Sort bridges list 2019-06-06 01:05:38 +02:00
Amine
c52a467302
Allow cancelling configuration
correct error message

Co-Authored-By: Michael Muré <batolettre@gmail.com>
2019-06-05 01:40:37 +02:00
Amine Hilaly
7923d6c942
Skip test validateUsername in travis environment 2019-06-03 20:33:33 +02:00
Amine Hilaly
ebebdfdf35
add unit tests for launchpad bridge configuration
add tests for validateUsername in Github bridge
panic when compile regex fail
2019-05-30 12:50:21 +02:00
Amine Hilaly
45d47a0966
Update configuration process and add unit tests
Update launchpad bridge
2019-05-29 22:58:01 +02:00
Amine
5ea0cb138b
Update documentation and function naming
Co-Authored-By: Michael Muré <batolettre@gmail.com>
2019-05-29 22:58:01 +02:00
Amine Hilaly
5911cb96c0
Change github regex for better matching
Remove '.git' suffixes from URLs
Change token scope for public repositories to `repo:public_repo`
2019-05-29 22:58:01 +02:00
Amine Hilaly
99b6107487
Disable bridgeConfigure sort flags option
rename `validateGithubURLRemotes` to `getValideGithubRemoteURLs`
2019-05-29 22:58:01 +02:00
Amine Hilaly
1c146a1b67
Change client default timeout value to 60 seconds
add named return values for
easier validation for 2FA codes
2019-05-29 22:58:01 +02:00
Amine
1022b9e536
Update flags descriptions
Enhance printing in prompt

Co-Authored-By: Michael Muré <batolettre@gmail.com>
2019-05-29 22:58:01 +02:00
Amine Hilaly
43758a14fd
Add warning messages for launchpad-preview
fix --target flag description
improve comments
2019-05-29 22:58:01 +02:00
Amine Hilaly
0de2bd92b0
Launchpad bridge configuration from BridgeParams Project and URL
Improve Github config comments
2019-05-29 22:58:01 +02:00
Amine Hilaly
46ce1059b6
Update Github bridge configuration
Use GetRemotes in `promptURL` to suggest repo urls
Add `promptTokenOptions` to select token a configuration option
2019-05-29 22:58:01 +02:00
Amine Hilaly
70268ff4ec
Change keyUser to keyOwner in Github bridge 2019-05-29 22:58:01 +02:00
Amine Hilaly
5f80f242fa
Launchpad changes
Use bridge params to configure the bridge
2019-05-29 22:58:01 +02:00
Amine Hilaly
6deb6ec469
Github bridge updates
Use bridge params to configure the bridge
2019-05-29 22:58:01 +02:00
Amine Hilaly
f124df7e73
changes to the BridgeImpl Interface
Add bridge params
Change bridge.Configure signature
2019-05-29 22:58:01 +02:00
Michael Muré
c7abac388a repo: refactor how test repo are created/cleaned 2019-05-27 21:14:55 +02:00
Amine Hilaly
a6d85fbdbb
improve github importer and iterator
drop  and use query variables instead
initialize timeline query variables in the constructor
improve naming and add comments to public functions
2019-05-23 14:21:44 +02:00
Amine Hilaly
458f4da101
fix imported bugs count 2019-05-23 14:21:44 +02:00
Amine Hilaly
2a97056124
introduce nextValidIssueEdit and nextValidCommentEdit to escape empty Diffobjects
calling nextValidEdit functions directly after a new query (Fixing a bug where capacity=2)
2019-05-23 14:21:44 +02:00
Amine Hilaly
12f6fd61be
call NextIssueEdit from ensureIssue 2019-05-23 14:21:44 +02:00
Amine Hilaly
b6dfd45602
Fix importer/exporter design errors 2019-05-23 14:21:44 +02:00
Amine Hilaly
2e17f37175 Add unicode control characters test case
Move `cleanupText` to utils/text/transform.go
`text.Cleanup`: removing unicode control characters except for those allowed by `text.Safe`

Add golang.org/x/text dependencies

fix text.Cleanup

Fix import panic
2019-05-05 18:16:10 +02:00
Amine Hilaly
537eddb978 Fix import bug 2019-05-05 18:16:10 +02:00
Amine Hilaly
7d02963372 Add old importer comments in the iterator
Test operation authors
Fix typo in test repo url
2019-05-05 18:16:10 +02:00
Michael Muré
eec17050f1 github: simplify and improve the import test 2019-05-05 18:16:10 +02:00
Amine Hilaly
390ca86724 Improve naming and functions signatures
expose `NewIterator` in `github` package
remove `exist` in tests cases
skip tests when env var GITHUB_TOKEN is not given
2019-05-05 18:16:10 +02:00
Amine Hilaly
f7ea3421ca Add ForceLabelChange functionalities 2019-05-05 18:16:10 +02:00
Amine Hilaly
0d976f66e8 Add importer tests
Changes to Importer and exporter interface
Improve importer
Fix extra edits bug
2019-05-05 18:16:10 +02:00
Amine Hilaly
3bcaa35b5d Integrate iterator with importer 2019-05-05 18:16:10 +02:00
Amine Hilaly
c8ad4dbfd9 Add github iterator
use `goto` in .Next* functions
Update iterator.go
2019-05-05 18:16:10 +02:00
Michael Muré
b6bed784e5
github: fix potential bug due to var aliasing 2019-03-01 23:07:24 +01:00
Michael Muré
268f6175fe
github: simplify some code 2019-03-01 22:48:50 +01:00
Michael Muré
e100ee9f10
github: fix 3 edge-case failures 2019-03-01 22:48:50 +01:00
Michael Muré
b59623a835
bridge: fix typo 2019-03-01 22:40:29 +01:00
Michael Muré
864eae0d6b
identity: work on higher level now, cache, first two identity commands 2019-03-01 22:40:25 +01:00
Michael Muré
844616baf8
identity: more progress and fixes 2019-03-01 22:40:21 +01:00
Michael Muré
bdbe9e7e82
identity: more progress and fixes 2019-03-01 22:35:37 +01:00
Michael Muré
feab9412df
WIP identity in git 2019-03-01 22:35:36 +01:00
Cyril Roelandt
49cc971dba Launchpad bridge: fetch comments. 2019-02-27 04:40:15 +01:00
Michael Muré
47b2aa4cc1 launchpad: minor cleaning 2018-12-17 13:05:05 +01:00
Cyril Roelandt
d6ddf0ef5c Initial Launchpad bridge.
This a just a preview. Not all features are expected to work.
2018-12-16 00:51:22 +01:00
Michael Muré
e171448902
bridge: simplify regex 2018-12-04 23:43:57 +01:00
Michael Muré
a133cdffaf
bridge: slightly better error message 2018-12-04 23:43:22 +01:00
Michael Muré
7cb7994cda
github: also pull users email 2018-10-07 18:27:23 +02:00
Michael Muré
64133ee5ba
github: deal with the deleted user case where github return a null actor 2018-10-06 11:55:16 +02:00
Michael Muré
558e149b25
github: handle the case where no diff is available for a comment edition 2018-10-05 17:53:06 +02:00
Michael Muré
f464363213
github: explain better what happen with the user credentials 2018-10-03 21:07:58 +02:00
Michael Muré
b5025a51a2
github: incremental import for labels, title edition, status changes 2018-10-02 13:16:07 +02:00
Michael Muré
892c25aa25
github: incremental import of comments + editions 2018-10-02 13:02:16 +02:00
Michael Muré
8ec1dd0926
github: working incremental + comment history for the first comment 2018-10-01 23:34:45 +02:00
Michael Muré
a4b218adec
add documentation 2018-10-01 21:47:12 +02:00
Michael Muré
879e147e2b
bridge: first working github importer 2018-09-25 19:10:38 +02:00
Michael Muré
c4a207622a
github: query most of the data 2018-09-24 19:22:32 +02:00
Michael Muré
c86e7231b2
bridge: validate config before use 2018-09-24 17:21:24 +02:00
Michael Muré
2282cbb595
commands: add "bridge pull" 2018-09-24 17:11:50 +02:00
Michael Muré
061e83d4b4
commands: add "bridge rm" 2018-09-24 16:24:38 +02:00
Michael Muré
5e8fb7ec50
bridge: big refactor and cleanup 2018-09-24 15:25:15 +02:00
Michael Muré
921cd18cf9
bridge: better interfaces, working github configurator 2018-09-21 18:53:44 +02:00
Michael Muré
6a575fbf48
bridge: make github 2FA work 2018-09-21 14:38:44 +02:00
Michael Muré
1c86a66cbe
bridge: add the beginning of a github importer 2018-09-21 12:54:48 +02:00