{"id":13500163,"url":"https://github.com/bartkessels/GetIt","last_synced_at":"2025-03-29T05:33:06.899Z","repository":{"id":19260666,"uuid":"86506819","full_name":"bartkessels/GetIt","owner":"bartkessels","description":"Application to send HTTP requests to test your API endpoints.","archived":false,"fork":false,"pushed_at":"2024-08-27T04:42:29.000Z","size":59228,"stargazers_count":50,"open_issues_count":14,"forks_count":5,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-10-31T18:38:39.400Z","etag":null,"topics":["client","cpp","cpprestsdk","getit","http","linux","macos","qt","rest","syntax-highlighting","windows"],"latest_commit_sha":null,"homepage":"https://getit.bartkessels.net","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bartkessels.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-28T20:59:38.000Z","updated_at":"2024-08-27T04:42:33.000Z","dependencies_parsed_at":"2024-10-31T18:32:01.033Z","dependency_job_id":"540050d4-f339-4ccc-b9e6-68deaf824231","html_url":"https://github.com/bartkessels/GetIt","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartkessels%2FGetIt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartkessels%2FGetIt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartkessels%2FGetIt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartkessels%2FGetIt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bartkessels","download_url":"https://codeload.github.com/bartkessels/GetIt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246145012,"owners_count":20730494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","cpp","cpprestsdk","getit","http","linux","macos","qt","rest","syntax-highlighting","windows"],"created_at":"2024-07-31T22:00:52.094Z","updated_at":"2025-03-29T05:33:03.010Z","avatar_url":"https://github.com/bartkessels.png","language":"C++","readme":"# GetIt\n\nOpen Source HTTP client to test your API's.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\u003cbr\u003e\n[![Build \u0026 Test GetIt](https://github.com/bartkessels/GetIt/actions/workflows/build_and_test.yml/badge.svg)](https://github.com/bartkessels/GetIt/actions/workflows/build_and_test.yml)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/4b84329958e04d3abeb7fc5c45eac01c)](https://www.codacy.com/gh/bartkessels/GetIt/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=bartkessels/GetIt\u0026amp;utm_campaign=Badge_Grade)\n[![Vulnerability scan](https://github.com/bartkessels/GetIt/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/bartkessels/GetIt/actions/workflows/codeql-analysis.yml)\n\u003cbr\u003e\n\u003c!-- Build status --\u003e\n[![Build MacOS package](https://github.com/bartkessels/GetIt/actions/workflows/macos_bundle.yml/badge.svg)](https://github.com/bartkessels/GetIt/actions/workflows/macos_bundle.yml)\n[![Build Windows executable](https://github.com/bartkessels/GetIt/actions/workflows/windows_executable.yml/badge.svg)](https://github.com/bartkessels/GetIt/actions/workflows/windows_executable.yml)\n[![Build Linux Flatpak](https://github.com/bartkessels/GetIt/actions/workflows/linux_flatpak.yml/badge.svg)](https://github.com/bartkessels/GetIt/actions/workflows/linux_flatpak.yml)\n\n---\n\nWelcome to the Git repository of GetIt. GetIt is a small open source application to send API\nrequest using a cross-platform GUI. The main advantage of GetIt is the fact that it's native, no\nmatter what platform you use, and it's completely open source.\n\n# Table of contents\n\n- [1. Overview](#1-overview)\n  - [1.1 Sharing requests](#11-sharing-requests)\n  - [1.2 Roadmap](#12-roadmap)\n- [2. External dependencies](#2-external-dependencies)\n- [3. Build](#3-build)\n  - [3.1 MacOS](#31-macos)\n  - [3.2 Linux](#32-linux)\n  - [3.3 Windows](#33-windows)\n- [4. Package](#4-package)\n  - [4.1 MacOS](#41-macos)\n  - [4.2 Linux](#42-linux)\n  - [4.3 Windows](#43-windows)\n- [5. Automated testing](#5-automated-testing)\n- [6. Contribute](#6-contribute)\n  - [6.1 Branching strategy](#61-branching-strategy)\n\n# 1. Overview\n\nGetIt's main focus is providing an easy user interface to send HTTP request to your API endpoints.\nGetIt is developed for developers who'd like a native application which is capable of saving requests\nin a modern file format.\n\n![Main screen of GetIt](resources/images/getit.png)\n\n## 1.1 Sharing requests\n\nGetIt uses the JSON-format to store request information, however, when you've got a request that uses\nfiles these files aren't incorporated into the GetIt request file.\n\nThe main features of GetIt compared to the alternatives are the way requests can be shared. There are\nother applications which let's you synchronise a number of requests using a proprietary cloud solution \nwith a subscription. In the design of GetIt we took the sharing of requests very seriously but since we're not\nan entire company we can't setup an entire cloud solution. Thus we've made sure the file contents are human readable\nan easy to check-in using VCS.\n\n## 1.2 Roadmap\n\nBecause GetIt is maintained in the spare time, not all features that we'd like are implemented as of yet.\nSome of the features we'd like to see in GetIt are listed below. These features are also added as issues\non GitHub so the status can be viewed in the projects tab.\n\n- Multiple authentication flows\n  - OAuth\n  - JWT\n  - Basic Auth\n- Environment variables\n  - Variables that are stored in the request itself\n  - Variables that are stored in the settings of GetIt\n    - To allow API secrets to be stored, but not checked into VCS\n- Automated stress testing\n\n# 2. External dependencies\n\nGetIt uses CMake to download and compile most of it's dependencies. However, not all dependencies\nare aviable through this method so these need to be installed on the machine itself before compiling.\nWhen downloading and executing a pre-built release from the Releases tab on Github, these dependencies\naren't required.\n\n- [Qt](https://qt.io)\n  - The GUI framework used by GetIt\n- [Boost](https://boost.org)\n  - Helper libraries for formatting strings and used by [CppRestSdk](https://github.com/microsoft/cpprestsdk), which in turn is used by GetIt as the HTTP library\n- [Ninja](https://ninja-build.org)\n  - Cross-platform build system\n- [CMake](https://cmake.org)\n  - Cross-platform build tool generator\n\n# 3. Build\n\n## 3.1 MacOS\n\n```sh\n# Disable warnings as error, these warning are from the CppRestSdk dependency\ncmake . -G Ninja -D CMAKE_CXX_FLAGS=\"-w\"\nninja GetIt\n```\n\nThis will create the `./bin/GetIt.app` file. This can be executed by double-clicking it in Finder.\n\nPlease note that this app bundle does __NOT__ include the dependencies or the Qt framework. When you move\nthe bundle to a different location on your computer (or another computer altogether) the application might not start.\n\n## 3.2 Linux\n\n__NOT TESTED YET!__\n\nThe following steps have not been tested yet, if you follow these steps, and it works, please open a PR\nto remove this warning. If these steps don't work, and you've got a working solution. Please also open a PR to\ninclude your steps here.\n\n```sh\ncmake . -G Ninja\nninja GetIt\n```\n\nThis will create the `./bin/GetIt` binary file. It can be executed by either running `./bin/GetIt` from the terminal\nor double-clicking the file through your file browser.\n\n## 3.3 Windows\n\n__NOT TESTED YET!__\n\nThe following steps have not been tested yet, if you follow these steps, and it works, please open a PR\nto remove this warning. If these steps don't work, and you've got a working solution. Please also open a PR to\ninclude your steps here.\n\n```sh\ncmake . -G Ninja\nninja GetIt\n```\n\nThis will create the `./bin/GetIt.exe` executable. It can be executed by double-clicking the file from Explorer.\n\n# 4. Package\n\n## 4.1 MacOS\n\nBuild the MacOS app bundle with all dependencies and framework included by running the `package.sh` script\nin the MacOS packaging folder.\n\n```sh\nsh ./packaging/macos/package.sh\n```\n\nThis will create the `./bin/GetIt.app` app bundle with all required dependencies. This file can be distributed across\nmultiple systems.\n\n## 4.2 Linux\n\nThis is not completed yet, there is going to be a script to generate a flatpak bundle.\n\n## 4.3 Windows\n\nThis is not completed yet, there is going to be a script to generate a Windows executable file.\n\n# 5. Automated testing\n\nTo validate that GetIt works, and keeps working through various updates GetIt includes automated unit\ntests using [Catch2](https://github.com/catch/catch2). These tests are automatically executed when you create\na PR or when directly pushing to the main branch (which should __NEVER__ be done!).\n\nTo execute these tests manually you need to specify the `getit_tests` build target.\n\n```sh\ncmake . -G Ninja\nninja getit_tests\n\n# Execute the test cases\n./bin/getit_tests\n```\n\nThis will generate an application that will test GetIt when executed.\n\n# 6. Contribute\n\nIf there's a feature you'd like to see, or a bug you've encountered? Please let us know! Or, even better, fix it\nyourself! If you'd just like to contribute back to GetIt but you're not quite sure how to help, take a look at the roadmap\nfor features we'd love to see in GetIt.\n\nAll contributions are welcome, so feel free to join the open source community and support GetIt through your expertise!\n\nTo make sure everyone can contribute to GetIt we value the quality and understandability of our code. When you're building\na feature, or patching a bug and you've made a decision. Please document this decision in the [`docs/design.md`](docs/design.md) document.\nThis will help future contributors understand your rationale. If you've updated some logic in the code, please always update related\ntest cases or add test cases to test your logic.\n\n## 6.1 Branching strategy\n\nYou've got your idea to help us out, but you're not quite sure how to setup your branch. We'll we've got you covered!\n\nThis project does not use a development branch but uses short lived feature branches which are directly merged into `main`.\nWe've chosen this strategy 'cause we believe in _release often, release fast_, there's no need for your feature to gather dust in\na stale development branch. However we do have some guidelines:\n\n- If you're contributing a __feature__ use the `feature/\u003cyour-feature\u003e` naming convention\n- If you're contributing a __bug fix__ use the `bugfix/\u003cbug-name\u003e` naming convention\n- If you're contributing to __documentation__ use the `documentation/\u003ctype-of-documentation\u003e` naming convention\n- If you're contributing a __small fix__, like a version bump to a dependency, use the `hotfix/\u003chotfix-type\u003e-\u003cname\u003e` naming convention\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartkessels%2FGetIt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbartkessels%2FGetIt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartkessels%2FGetIt/lists"}