Skip to content

Git Service

This service is used to get files from a git repository.

We can manage this types of git repository:

  • github (public and private)
  • bitbucket (on-premise)
  • gitlab (public)
  • azuredevops (public)

Independently of the git service, this service needs an endpoint to get the files.

Routes

GET /:endpointName/:docs

  • endpointName: the name of the endpoint
  • docs: is the list of documents to get, separated by a comma if multiple docs

Example

This path is using the github endpoint to get the README.md in the repository krateoplatformops/krateo

github/%5Bkrateoplatformops%5D%5Bkrateo%5DREADME.md

as you can see the docs list is encoded in the path.

Response

{
  "list": [
    {
      "name": "README.md",
      "content": "PGltZyBzcmM9ImRvY3MvbWVkaWEvbG9nby5zdmciIGFsdD0iS3JhdGVvIFBs\nYXRmb3Jtb3BzIiB3aWR0aD0iNDAwIj4KCioqS3JhdGVvIFBsYXRmb3Jtb3Bz\nKiogaXMgYW4gb3BlbiBzb3VyY2UgdG9vbCwgYmFzZWQgb24gQ05DRiBwcm9q\nZWN0cyBzdWNoIGFzIEt1YmVybmV0ZXMgYW5kIENyb3NzcGxhbmUsIHRoYXQg\nZ2l2ZXMgdXNlcnMgdGhlIGNhcGFiaWxpdHkgdG8gY3JlYXRlIGFueSBkZXNp\ncmVkIHJlc291cmNlIG9uIGJhc2ljYWxseSBhbnkgaW5mcmFzdHJ1Y3R1cmUg\ndGhleSdkIGxpa2UuIEJlIGl0IGEgSzhzIGNsdXN0ZXIsIG1pY3Jvc2Vydmlj\nZSwgYXBwbGljYXRpb24sIHBpcGVsaW5lLCBkYXRhYmFzZSBvciBhbnl0aGlu\nZyBlbHNlLCBLcmF0ZW8gaGFzIGdvdCB5b3VyIGJhY2suIFRoZSBvbmx5IHJl\ncXVpcmVtZW50IGlzIGZvciB0aGUgcmVzb3VyY2UgdG8gYmUgZGVzY3JpcHRp\nYmxlIHZpYSBhIFlBTUwgZmlsZSByZXByZXNlbnRpbmcgdGhlIHJlc291cmNl\nJ3MgX2Rlc2lyZWQgc3RhdGVfIChyaW5ncyBhIGJlbGw/IPCfmIkpLgoKS3Jh\ndGVvIGFsbG93cyBmb3I6CgotICoqQ3JlYXRpbmcgYW55IGtpbmQgb2YgcmVz\nb3VyY2VzIHdpdGhpbiBhbmQgb3V0c2lkZSB0aGUgS3ViZXJuZXRlcyBjbHVz\ndGVyIGl0IHJ1bnMgb24qKjogd2hpbHN0IEtyYXRlbyBydW5zIGFzIGEgRGVw\nbG95bWVudCBpbiBhIEt1YmVybmV0ZXMgY2x1c3RlciwgaXQgY2FuIGFsc28g\nY3JlYXRlIHJlc291cmNlcyBfb3V0c2lkZV8gdGhlIGNsdXN0ZXIuIFlvdSBj\nYW4gdXNlIEtyYXRlbyB0byBjcmVhdGUgYW55dGhpbmcgZnJvbSBuZXcgS3Vi\nZXJuZXRlcyBjbHVzdGVycywgTG9nc3Rhc2ggcGlwZWxpbmVzLCBEb2NrZXIg\ncmVnaXN0cmllcywgQVBJIGdhdGV3YXlzLCBhbmQgbWFueSBvdGhlcnMuCi0g\nKipGb2N1c2luZyBvbiB0aGUgbWFuYWdlbWVudCBvZiBzZXJ2aWNlcyoqOiB0\naGFua3MgdG8gW0Nyb3NzcGxhbmVdKGh0dHBzOi8vY3Jvc3NwbGFuZS5pbykg\nYW5kIHRvIFtCYWNrc3RhZ2VdKGh0dHBzOi8vYmFja3N0YWdlLmlvLyksIEty\nYXRlbyBmcmVlcyB0aGUgdXNlciBmcm9tIG1vc3Qgb2YgdGhlIGJ1cmRlbiBv\nZiBjbHVzdGVyIG1hbmFnZW1lbnQsIGdpdmluZyB0aGVtIHRoZSBhYmlsaXR5\nIHRvIGVudGlyZWx5IGZvY3VzIG9uIHRoZSBzZXJ2aWNlcyB0aGF0IG11c3Qg\nYmUgcnVuLiBXaGlsZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgaXMgbWFuYWdlZCBi\neSBDcm9zc3BsYW5lLCB0aGUgcmVzb3VyY2VzIHRvIGJlIGRlcGxveWVkIGNh\nbiBiZSBlYXNpbHkgZm91bmQgYW5kIGNvbmZpZ3VyZWQgaW4gQmFja3N0YWdl\nJ3MgVUksIHdoaWNoIGFjdHMgYXMgYSBjYXRhbG9nIG9mIHJlYWR5LXRvLXVz\nZSBzZXJ2aWNlcy4gVGhpcyByZXN1bHRzIGEgcGhlbm9tZW5hbCB1c2VyIGV4\ncGVyaWVuY2UgdGhhdCBkcmFzdGljYWxseSByZWR1Y2VzIHdhc3RlcyBvZiB0\naW1lLgotICoqU2luZ2xlLWhhbmRlZGx5IG1vbml0b3JpbmcgYW5kIGNvbnRy\nb2xsaW5nIHJlc291cmNlcyoqOiBLcmF0ZW8gYWxzbyBhY3RzIGFzIGEgY2Vu\ndHJhbGl6ZWQgY29udHJvbHBsYW5lLCBsZXR0aW5nIHVzZXJzIG1vbml0b3Ig\nYW55dGhpbmcgcmFuZ2luZyBmcm9tIENJL0NEIHBpcGVsaW5lcyB0byBwb2Qg\nc3RhdHVzZXMgYW5kIG9wZW4gdGlja2V0cyBvbiB5b3VyIEpJUkEuIEFsbCB0\naGUgaW5mb3JtYXRpb24geW91IG5lZWQgaXMgcHJlc2VudCBvbiBhIHNpbmds\nZSBwYWdlIC0tIHlvdSdsbCBuZXZlciBoYXZlIHRvIGd1ZXNzIHRoZSBjb3Jy\nZWN0IGRhc2hib2FyZCBldmVyIGFnYWluLgoKIyMgT3VyIG1pc3Npb24KCldp\ndGggS3JhdGVvLCB3ZSBhaW0gYXQgcHV0dGluZyB0b2dldGhlciBtYW55IGF3\nZXNvbWUgdG9vbHMgZnJvbSB0aGUgQ05DRiBsYW5kc2NhcGUgdG8gcHJvdmlk\nZSBvdXIgdXNlcnMgd2l0aCBhIHNpbXBsZS10by11c2UsIGNvbXBsZXRlIGFu\nZCBtb2R1bGFyIHBsYXRmb3JtIHRoYXQgYWxsb3dzIGZvciBjcmVhdGluZyBy\nZXNvdXJjZXMgb24gYW55IGluZnJhc3RydWN0dXJlLiBXZSBzZWUgS3JhdGVv\nIGFzIGEgcG93ZXJmdWwgdG9vbCB0aGF0IGltcHJvdmVzIHRoZSB3b3JrZmxv\ndyBvZiB0ZWFtcyBieSBkZWZpbmluZyBjbGVhciByb2xlcyBpbiB3aGljaCB0\naGUgaW5mcmFzdHJ1Y3R1cmUgdGVhbSBjcmVhdGVzIHRoZSByZXNvdXJjZSB0\nZW1wbGF0ZXMgbmVlZGVkIGJ5IHRoZSBkZXZlbG9wZXJzLCBhbmQgdGhlIGRl\ndmVsb3BlcnMgYXJlIHRoZSBmaW5hbCB1c2VycyB0aGF0IHVzZSB0aG9zZSB0\nZW1wbGF0ZXMgYW5kIGNhbiBtYW5hZ2UgdGhlIGxpZmVjeWNsZSBvZiB0aGUg\nY3JlYXRlZCByZXNvdXJjZXMgZnJvbSBhIHNpbXBsZSwgdW5pZmllZCBkYXNo\nYm9hcmQuCgpJbiBvdXIgdmlzaW9uLCBLcmF0ZW8gaXM6CgotIGEgX3NlbGYt\nc2VydmljZSBwbGF0Zm9ybV8sIHdoZXJlIHVzZXJzIGNhbiBhdXRvbm9tb3Vz\nbHkgY2hvb3NlIHdoYXQgdG8gY3JlYXRlIGFuZCB3aGVyZTsKLSBhIGNvbXBs\nZXRlIF9jb250cm9scGxhbmVfIHRoYXQgZWFzZXMgYW5kIGNlbnRyYWxpemVz\nIG1hbnkgcHJvY2Vzc2VzLCBwdXR0aW5nIGFsbCB0aGUgcmVsZXZhbnQgaW5m\nb3JtYXRpb24gaW4gYSBzaW5nbGUgcGFnZSByYXRoZXIgdGhhbiBkaXN0cmli\ndXRpbmcgaXQgb24gdGVucyBvZiBkaWZmZXJlbnQgbG9jYXRpb25zOwotIGEg\nX211bHRpLWNsb3VkIHByb3ZpZGVyXyB0b29sOiBpdCB3b3JrcyB3aXRoIGFs\nbCB0aGUgbWFqb3IgY2xvdWQgcHJvdmlkZXJzIGFuZCB3aXRoIG9uLXByZW0g\naW5zdGFsbGF0aW9uczsKLSBlaXRoZXIgbWFuYWdlZCBvciBlYXNpbHkgaW5z\ndGFsbGFibGUgb24geW91ciBleGlzdGluZyBLdWJlcm5ldGVzIGNsdXN0ZXIu\nCgojIyBHZXR0aW5nIHN0YXJ0ZWQKCkJlZm9yZSBpbnN0YWxsIEtyYXRlbywg\ncGxlYXNlIHZlcmlmeSBvdXIgW3JlcXVpcmVtZW50c10oLi9kb2NzL1JFUVVJ\nUkVNRU5UUy5tZCkuCgpHZXR0aW5nIHN0YXJ0ZWQgd2l0aCBLcmF0ZW8gaXMg\nYXMgZWFzeSBhcyBmb2xsb3dpbmcgaXRzIFtpbnN0YWxsYXRpb24gaW5zdHJ1\nY3Rpb25zXSguL2RvY3MvSU5TVEFMTC5tZCkuCgojIyBSZWZlcmVuY2UgYXJj\naGl0ZWN0dXJlCgpXZSBhcmUgYXdhcmUgd2UgaGF2ZSBtZW50aW9uZWQgbWFu\neSBkaWZmZXJlbnQgc29mdHdhcmUgY29tcG9uZW50cyBzbyBmYXIsIHRodXMg\nd2Ugc2VlIHdoeSB5b3UgbWF5IGJlIGEgdGFkIGNvbmZ1c2VkLiBJbiBzdW1t\nYXJ5LCBLcmF0ZW8nIHJlZmVyZW5jZSBhcmNoaXRlY3R1cmUgY2FuIGJlIGRl\ncGljdGVkIGFzIGZvbGxvd3M6Cgo8aW1nIHNyYz0iZG9jcy9tZWRpYS9yZWZl\ncmVuY2VfYXJjaGl0ZWN0dXJlLnBuZyIgd2lkdGg9IjcwMHB4IiBhbHQ9IlJl\nZmVyZW5jZSBhcmNoaXRlY3R1cmUiLz4KCiMjIEhvdyBkb2VzIGl0IHdvcms/\nCgo8aW1nIHNyYz0iZG9jcy9tZWRpYS9ob3dfZG9lc19pdF93b3JrLnBuZyIg\nd2lkdGg9IjcwMHB4IiBhbHQ9IkhvdyBkb2VzIGl0IHdvcmsiLz4K\n"
    }
  ],
  "count": 1
}

Note

Services respond with valid JSON, so, if the response is an array, it will be wrapped in the list property.

If the response contains the list proerty it will add the property count with the number of items in the list.