Commit Graph

180 Commits

Author SHA1 Message Date
Michael Muré
88ad7e606f
repository: remove tie to Bug, improved and reusable testing
- allow the creation of arbitrary Lamport clocks, freeing the way to new entities and removing Bug specific (upper layer) code.
- generalize the memory-only and persisted Lamport clocks behind a common interface
- rework the tests to provide reusable testing code for a Repo, a Clock, a Config, opening a path to add a new Repo implementation more easily
- test previously untested components with those new tests

Note: one problem found during this endeavor is that `identity.Version` also need to store one time + Lamport time for each other Entity (Bug, config, PR ...). This could possibly done without breaking change but it would be much easier to wait for https://github.com/MichaelMure/git-bug-migration to happen.
2020-06-26 19:14:22 +02:00
Michael Muré
c326007d01
fix cache not rebuilding properly 2020-06-26 00:58:38 +02: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é
314fcbb229
query: no need for an ast package 2020-03-28 17:13:28 +01:00
Michael Muré
5e4dc87ffe
cache: replace the all-in-one query parser by a complete one with AST/lexer/parser 2020-03-28 17:13:27 +01:00
Michael Muré
e0a702f41d
cache: fix missing login in LegacyAuthorExcerpt causing panic 2020-03-05 21:57:55 +01:00
Michael Muré
893de4f5c0 identity: bring back the login to hold that info from bridges (purely informational) 2020-02-25 21:35:57 +01:00
Michael Muré
e9aff2a2a1
Merge remote-tracking branch 'origin/master' into cheshirekow-jira 2020-02-14 22:56:59 +01:00
Michael Muré
929480fa0a graphql: expose the name of Repository 2020-02-12 21:03:20 +01:00
Michael Muré
b3d3612393
Merge remote-tracking branch 'origin/master' into cheshirekow-jira 2020-02-09 20:23:38 +01:00
Michael Muré
b7dc5b8aeb
cache: add proper locking to avoid concurrent access 2020-02-09 02:44:00 +01:00
Michael Muré
81f5c3e0af
graphql: use the cache in priority for fast browsing at < 20ms instead of seconds 2020-02-09 02:18:44 +01:00
Michael Muré
74e9114410
more more wip 2020-02-08 17:19:57 +01:00
Michael Muré
8da522d97a
wip 2020-02-08 17:18:30 +01:00
Michael Muré
da0904d238
cache: rework resolving of bugs, identity 2020-02-08 17:18:29 +01:00
Michael Muré
390b13c9ff
identity: rework mutation 2020-02-08 17:18:29 +01:00
Michael Muré
f093be96e9 cache: don't store legacy identities IDs in bug excerpt as they are not reachable. Fix a panic 2020-02-03 22:02:01 +01:00
Josh Bialkowski
cd889572f7 codereview #2: some cleanup, correct use of nothing-events
* return error, don't panic
* skipping status export is an error
* use switch in config.go
* move PromptPassword to input
* move client construction into getIdentityClient
* use non-pointer context throughout client since it is an interface
* remove some TODOs
* don't emit multiple nothing-events, just one per bug only if nothing
  happened.
* rename EditBody to EditCreateComment
* add configuration notes about additional values
* store bug id map in a dictionary in the config
* some fixes from testing
2019-12-18 07:42:16 -08:00
Josh Bialkowski
eff830bdcb Implement jira bridge 2019-12-18 07:42:13 -08:00
Michael Muré
da6591e480 cmd: "user create" only assign the user identity if not set 2019-12-10 20:13:49 +01:00
amine
8b5685bb99 bridge/github: importer corectly emit events 2019-11-19 19:54:07 +01:00
amine
618f896f66 cache: update RepoCache and identity to use new repository Config 2019-11-01 22:01:21 +01:00
Sebastien Devaux
7e123fbfca issue 178: fetch the repo dir with rev-parse --git-dir
Since is returns the .git dir directly, it is not more needed to
concatenate .git.
2019-08-24 22:42:25 +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é
67a3752e17 bug,entity: use a dedicated type to store IDs 2019-08-11 14:08:03 +02:00
Michael Muré
612a29b031 fix everything following the hash-->id change 2019-08-08 19:06:13 +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
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
Michael Muré
9f4da4ce4f
cache: consistently use "ref" to fetch a repository 2019-06-23 21:28:01 +02:00
Michael Muré
bc03a89aa7 fix tests 2019-06-16 21:40:45 +02:00
Michael Muré
b2f8572c44 graphql: change mutations to respect the Relay specification
https://facebook.github.io/relay/graphql/mutations.htm

This specification also allow to expose a mutationId for fire and forget,
as well as the created operation.
2019-06-16 21:29:49 +02:00
Michael Muré
08c0e18ade cache: expose the operation when creating a new bug 2019-06-16 21:04:36 +02:00
Sladyn
2c4c0132bf
Add GetRemotes functionalities 2019-05-29 22:58:01 +02:00
Michael Muré
d564e37b31 repository: add ReadConfigBool and ReadConfigString functions 2019-05-27 21:39:55 +02:00
Michael Muré
c7abac388a repo: refactor how test repo are created/cleaned 2019-05-27 21:14:55 +02:00
Amine Hilaly
f7ea3421ca Add ForceLabelChange functionalities 2019-05-05 18:16:10 +02:00
Michael Muré
cc3a21acb6 doc: add an architecture overview 2019-04-18 02:48:27 +02:00
Michael Muré
5eeeae7cdf
commands: fix ls not displaying the new Identities properly 2019-04-11 20:04:44 +02:00
Amine Hilaly
1d00ded250 implement identityExcerpt match method and integrate it into filters
Update docs
2019-04-05 16:56:08 +02:00
Amine Hilaly
98169d5ad1 Support query with identity ID and truncated ID 2019-04-05 15:29:14 +02:00
Amine Hilaly
57f0c2f25d improve docs 2019-04-05 00:01:08 +02:00
Amine Hilaly
682da55271 Improve actor/participant query filters
Lower case identity login
2019-04-04 17:21:40 +02:00
Amine Hilaly
2a5fbc4dc9 Expose actors and participants in snapshot and bug excerpt
Append operations authors to each list on Apply() call

Expose actors and participants in graphql

Add actor/participant query filter and documentation
2019-04-04 00:37:57 +02:00
Michael Muré
96987bf6ae
cache: add a push/pull test 2019-04-02 22:01:42 +02:00
Sladyn
1d758f9f64 cache/filter.go: Fix and match for labels
Fixed filter query for multiple labels from
`OR` to `AND` according to github conventions.

Fixed https://github.com/MichaelMure/git-bug/issues/115
2019-03-31 16:09:29 +05:30
Michael Muré
24d6714dd5 cache: properly push/pull identities and bugs 2019-03-27 21:44:11 +01:00
Michael Muré
d27e3849b8 cache: add basic unit testing 2019-03-25 22:06:01 +01:00
Michael Muré
408654514e
cache: make the title filter case insensitive 2019-03-03 15:23:20 +01:00
Sladyn
6fee8a4442
Commit to chane the description of function 2019-03-03 10:38:33 +05:30
Sladyn
f1d5ca4ff4 Rebased and updated. 2019-03-02 23:58:15 +05:30
Sladyn
0c42a7c33e Rectified Tests 2019-03-02 23:06:55 +05:30
Sladyn
e825525a08 Fixed filter.go
GolangCI complained about an if return else return statement which is fixed in this commit.
2019-03-02 23:06:55 +05:30
Sladyn
beecd2dbe4 Made requested changes
Made changes to the doc files and remaining areas which required updation.
2019-03-02 23:06:55 +05:30
Sladyn
43e56692e8 ls.go:git bug ls should be faster
Added `Title` to BugExcerpt
Added `TitleFilter` to `filter.go`
Used BugExcerpt in `ls` command to improve performance.

Closes https://github.com/MichaelMure/git-bug/issues/98
2019-03-02 23:04:45 +05:30
Michael Muré
bad05a4f3d
cache: better API to access excerpts 2019-03-01 22:52:54 +01:00
Michael Muré
46beb4b886
identity: another round of cleanups 2019-03-01 22:52:53 +01:00
Michael Muré
7a80d8f849
commands: add a super-fast "user ls" command 2019-03-01 22:48:51 +01:00
Michael Muré
8bba6d1493
cache: fix ResolveIdentityImmutableMetadata byt storing metadata in IdentityExcerpt 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é
b8caddddc7
identity: some UX cleanup 2019-03-01 22:40:28 +01:00
Michael Muré
71f9290fda
identity: store the times properly 2019-03-01 22:40:27 +01:00
Michael Muré
54f9838f0a
identity: working identity cache 2019-03-01 22:40:26 +01:00
Michael Muré
947ea63522
identity: wip caching 2019-03-01 22:40:26 +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é
da558b05ef
identity: all tests green o/ 2019-03-01 22:40:24 +01:00
Michael Muré
d2483d83dd
identity: I can compile again !! 2019-03-01 22:40:24 +01:00
Michael Muré
328a4e5abf
identity: wip push/pull 2019-03-01 22:40:23 +01:00
Michael Muré
14b240af8f
identity: more cleaning and fixes after a code review 2019-03-01 22:40:22 +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
Michael Muré
0aefae6fcc
cache: fix unhandled error 2019-02-28 00:53:36 +01:00
Michael Muré
d380b3c16b cache: output the build info message on stderr to avoid breaking scripts 2019-02-20 21:58:29 +01:00
Michael Muré
8ec1dd0926
github: working incremental + comment history for the first comment 2018-10-01 23:34:45 +02:00
Michael Muré
6ea6f3614e
bug: in op convenience function, return the new op to be able to set metadata later 2018-10-01 23:31:16 +02:00
Michael Muré
be59fe0d67
cache: also index the first op metadata 2018-10-01 21:55:41 +02:00
Michael Muré
a4b218adec
add documentation 2018-10-01 21:47:12 +02:00
Michael Muré
1bf268cebc
merge package operations into bug, they are tightly coupled anyway 2018-09-29 00:51:54 +02:00
Michael Muré
40c6e64e4b
cache: add raw edit functions to allow setting up the author, the timestamp and the metadatas 2018-09-25 17:56:58 +02:00
Michael Muré
061e83d4b4
commands: add "bridge rm" 2018-09-24 16:24:38 +02:00
Michael Muré
666586c5b9
repo: add functions to read/write git config 2018-09-24 15:21:34 +02:00
Michael Muré
82eaceffc1
repo: split the Repo interface to avoid abstraction leak in RepoCache 2018-09-21 18:53:37 +02:00
Michael Muré
6e44759413
commands: add a "ls-labels" command that output valid labels 2018-09-21 14:02:05 +02:00
Michael Muré
63d0b8b72f
cache: relay early the merge events 2018-09-19 21:45:52 +02:00
Michael Muré
760d077134
cache: don't ignore error when building the cache 2018-09-18 23:36:45 +02:00
Michael Muré
0d5998eb67
commands: add a package to handle implicit bug selection 2018-09-18 12:49:16 +02:00
Michael Muré
6f5d433e33
docs & cleaning 2018-09-16 13:50:53 +02:00
Michael Muré
7bec0b1f13
bug: add a data validation process to avoid merging incorrect operations 2018-09-15 13:15:00 +02:00
Michael Muré
b168d71fc1
cache: attempt to future-proof the cache file 2018-09-13 17:59:02 +02:00
Michael Muré
f569e6aacc
operations: return a more convenient array of result for label changes 2018-09-13 12:20:28 +02:00
Michael Muré
19f43a83c3
bug: proper int baked enum for merge result status instead of a string 2018-09-13 11:13:51 +02:00
Michael Muré
3605887345 reorganize package for a more idomatic go 2018-09-11 22:14:46 +02:00
Michael Muré
7b05983c19
graphql: AllBugs now accept a query 2018-09-11 19:46:38 +02:00
Michael Muré
9cbd5b4ee1
termui: allow to change the bug query 2018-09-11 19:28:32 +02:00
Michael Muré
d1c5015eed
cache: resolved id by prefix using the cache instead of reading bugs 2018-09-11 17:11:16 +02:00
Michael Muré
2dcd06d1e7
bug: ensure that OpBase field are public and properly serialized
fix #37
2018-09-10 19:09:20 +02:00
Michael Muré
9bb980e9de
ls: support expressing a query with flags as well 2018-09-10 18:18:00 +02:00
Michael Muré
c8239a990b
cache: doc & cleaning 2018-09-10 12:47:05 +02:00
Michael Muré
ece9e39461
cache: add the alias "state" for the qualifier "status"
both are commonly expected
2018-09-10 12:46:07 +02:00