)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9100a3397d47cd680097b041848504538b37ad54","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Kostiantyn Kalynovskyi \u003ckkalynovskyi@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-19 17:53:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"adding abstraction to git repositories"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This can be used to pull documents from git repositories defined"},{"line_number":10,"context_line":"by config module in manifest"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3fa7e38b_f40d4b36","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":6},"updated":"2019-12-20 10:02:46.000000000","message":"Add","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"}],"pkg/document/repo/adapter.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9100a3397d47cd680097b041848504538b37ad54","unresolved":false,"context_lines":[{"line_number":64,"context_line":"\treturn nil"},{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"func (g *GitDriver) SetFilesystem(fs billy.Filesystem) {"},{"line_number":68,"context_line":"\tg.Filesystem \u003d fs"},{"line_number":69,"context_line":"}"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_d42b6f79","line":67,"range":{"start_line":67,"start_character":20,"end_line":67,"end_character":33},"updated":"2019-12-20 10:02:46.000000000","message":"nit: Do we really need setters for public fields ?","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"48e8ec3b3a0ce3422250430720347711415622ef","unresolved":false,"context_lines":[{"line_number":64,"context_line":"\treturn nil"},{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"func (g *GitDriver) SetFilesystem(fs billy.Filesystem) {"},{"line_number":68,"context_line":"\tg.Filesystem \u003d fs"},{"line_number":69,"context_line":"}"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_93f42a57","line":67,"range":{"start_line":67,"start_character":20,"end_line":67,"end_character":33},"in_reply_to":"3fa7e38b_d42b6f79","updated":"2019-12-20 16:17:49.000000000","message":"Well, since this is implementation of interface, we would not be able to change filesystem, using field reference, as we  don\u0027t know what object will lie behind Adapter interface","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"}],"pkg/document/repo/repo.go":[{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"a1c93944c0deccfdac5f801ecff9d331b0717dcd","unresolved":false,"context_lines":[{"line_number":35,"context_line":"type Repository struct {"},{"line_number":36,"context_line":"\tDriver Adapter"},{"line_number":37,"context_line":"\tOptionsBuilder"},{"line_number":38,"context_line":"\t// TODO Add support for Naming repo, for logs"},{"line_number":39,"context_line":"\tName string"},{"line_number":40,"context_line":"}"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_4fac0236","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":8},"updated":"2019-12-17 16:21:36.000000000","message":"please remove","commit_id":"2d854e2094b02f2a1c750ebf6f2fa646e4a33c20"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"48e8ec3b3a0ce3422250430720347711415622ef","unresolved":false,"context_lines":[{"line_number":35,"context_line":"type Repository struct {"},{"line_number":36,"context_line":"\tDriver Adapter"},{"line_number":37,"context_line":"\tOptionsBuilder"},{"line_number":38,"context_line":"\t// TODO Add support for Naming repo, for logs"},{"line_number":39,"context_line":"\tName string"},{"line_number":40,"context_line":"}"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_5236e5ea","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":8},"in_reply_to":"3fa7e38b_4fac0236","updated":"2019-12-20 16:17:49.000000000","message":"Done","commit_id":"2d854e2094b02f2a1c750ebf6f2fa646e4a33c20"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9100a3397d47cd680097b041848504538b37ad54","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\treturn repo.Checkout(force)"},{"line_number":97,"context_line":"}"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"func (repo *Repository) Checkout(enforce bool) error {"},{"line_number":100,"context_line":"\tlog.Debugf(\"Attempting to checkout the repository %s\", repo.Name)"},{"line_number":101,"context_line":"\tif !repo.Driver.IsOpen() {"},{"line_number":102,"context_line":"\t\treturn ErrNoOpenRepo"}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_148ee779","line":99,"updated":"2019-12-20 10:02:46.000000000","message":"Add doc string please","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"48e8ec3b3a0ce3422250430720347711415622ef","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\treturn repo.Checkout(force)"},{"line_number":97,"context_line":"}"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"func (repo *Repository) Checkout(enforce bool) error {"},{"line_number":100,"context_line":"\tlog.Debugf(\"Attempting to checkout the repository %s\", repo.Name)"},{"line_number":101,"context_line":"\tif !repo.Driver.IsOpen() {"},{"line_number":102,"context_line":"\t\treturn ErrNoOpenRepo"}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_73a72e52","line":99,"in_reply_to":"3fa7e38b_148ee779","updated":"2019-12-20 16:17:49.000000000","message":"Done","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9100a3397d47cd680097b041848504538b37ad54","unresolved":false,"context_lines":[{"line_number":109,"context_line":"\treturn tree.Checkout(co)"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"func (repo *Repository) Open() error {"},{"line_number":113,"context_line":"\tlog.Debugf(\"Attempting to open repository %s\", repo.Name)"},{"line_number":114,"context_line":"\treturn repo.Driver.Open()"},{"line_number":115,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_94e73746","line":112,"updated":"2019-12-20 10:02:46.000000000","message":"doc string","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"48e8ec3b3a0ce3422250430720347711415622ef","unresolved":false,"context_lines":[{"line_number":109,"context_line":"\treturn tree.Checkout(co)"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"func (repo *Repository) Open() error {"},{"line_number":113,"context_line":"\tlog.Debugf(\"Attempting to open repository %s\", repo.Name)"},{"line_number":114,"context_line":"\treturn repo.Driver.Open()"},{"line_number":115,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_93a2ea3e","line":112,"in_reply_to":"3fa7e38b_94e73746","updated":"2019-12-20 16:17:49.000000000","message":"Done","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"}],"pkg/document/repo/repo_test.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9100a3397d47cd680097b041848504538b37ad54","unresolved":false,"context_lines":[{"line_number":98,"context_line":"\t\tFilesystem: memfs.New(),"},{"line_number":99,"context_line":"\t\tStorer:     memory.NewStorage(),"},{"line_number":100,"context_line":"\t}"},{"line_number":101,"context_line":"\t//\tSet inmemory fs instead of real one"},{"line_number":102,"context_line":"\trepo.Driver \u003d driver"},{"line_number":103,"context_line":"\trequire.NoError(t, err)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_340a03d1","line":101,"updated":"2019-12-20 10:02:46.000000000","message":"Use space instead of tab","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9100a3397d47cd680097b041848504538b37ad54","unresolved":false,"context_lines":[{"line_number":123,"context_line":"\tbuilder.CheckoutOptions \u003d checkout"},{"line_number":124,"context_line":"\terr \u003d repo.Checkout(true)"},{"line_number":125,"context_line":"\tassert.NoError(t, err)"},{"line_number":126,"context_line":"\t//update"},{"line_number":127,"context_line":"\terr \u003d repo.Update(true)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"\tcurrentHash, err :\u003d repo.Driver.Head()"}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_74295b38","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":9},"updated":"2019-12-20 10:02:46.000000000","message":"King of obvious comment :)","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9100a3397d47cd680097b041848504538b37ad54","unresolved":false,"context_lines":[{"line_number":187,"context_line":"\tassert.Error(t, err)"},{"line_number":188,"context_line":"}"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"func TestURLtoName(t *testing.T) {"},{"line_number":191,"context_line":"\ttests :\u003d []struct {"},{"line_number":192,"context_line":"\t\tinput          string"},{"line_number":193,"context_line":"\t\texpectedOutput string"}],"source_content_type":"text/x-go","patch_set":10,"id":"3fa7e38b_74ce3b90","line":190,"range":{"start_line":190,"start_character":5,"end_line":190,"end_character":18},"updated":"2019-12-20 10:02:46.000000000","message":"It would be nice to have negative tests here\nWhat if user supplies malformed url?","commit_id":"2854f75679b674433a08370bdd5649d08534f95b"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"b6b89bddd50d15c27da4fe6027c73b4a6e9b9e56","unresolved":false,"context_lines":[{"line_number":108,"context_line":"\t\tFilesystem: memfs.New(),"},{"line_number":109,"context_line":"\t\tStorer:     memory.NewStorage(),"},{"line_number":110,"context_line":"\t}"},{"line_number":111,"context_line":"\t//\tSet inmemory fs instead of real one"},{"line_number":112,"context_line":"\trepo.Driver \u003d driver"},{"line_number":113,"context_line":"\trequire.NoError(t, err)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-go","patch_set":16,"id":"3fa7e38b_611d0dbd","line":111,"range":{"start_line":111,"start_character":3,"end_line":111,"end_character":4},"updated":"2019-12-23 06:42:50.000000000","message":"Still tabs for some reason ....","commit_id":"ca2c5f03a2aea835f009a8bc139847b34a65f2d1"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"ffc716d8c067e62d0e4bd5699c0aba76a9527d45","unresolved":false,"context_lines":[{"line_number":108,"context_line":"\t\tFilesystem: memfs.New(),"},{"line_number":109,"context_line":"\t\tStorer:     memory.NewStorage(),"},{"line_number":110,"context_line":"\t}"},{"line_number":111,"context_line":"\t//\tSet inmemory fs instead of real one"},{"line_number":112,"context_line":"\trepo.Driver \u003d driver"},{"line_number":113,"context_line":"\trequire.NoError(t, err)"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-go","patch_set":16,"id":"3fa7e38b_fa32f10e","line":111,"range":{"start_line":111,"start_character":3,"end_line":111,"end_character":4},"in_reply_to":"3fa7e38b_611d0dbd","updated":"2019-12-26 17:34:45.000000000","message":"Done","commit_id":"ca2c5f03a2aea835f009a8bc139847b34a65f2d1"}],"pkg/document/repo/testdata/repos.yaml":[{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"a1c93944c0deccfdac5f801ecff9d331b0717dcd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"no-auth:"},{"line_number":3,"context_line":"  url: https://github.com/src-d/go-git.git"},{"line_number":4,"context_line":"  target-path: \"go-git-test1\""},{"line_number":5,"context_line":"  checkout:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_ef628e15","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"updated":"2019-12-17 16:21:36.000000000","message":"please remove this file","commit_id":"2d854e2094b02f2a1c750ebf6f2fa646e4a33c20"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"48e8ec3b3a0ce3422250430720347711415622ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"no-auth:"},{"line_number":3,"context_line":"  url: https://github.com/src-d/go-git.git"},{"line_number":4,"context_line":"  target-path: \"go-git-test1\""},{"line_number":5,"context_line":"  checkout:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3fa7e38b_7233e1f8","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"in_reply_to":"3fa7e38b_ef628e15","updated":"2019-12-20 16:17:49.000000000","message":"Done","commit_id":"2d854e2094b02f2a1c750ebf6f2fa646e4a33c20"}]}
