Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Bug report
description: Report a problem with Hypr
labels: ["bug"]
body:
- type: markdown
attributes:
value: Thanks for taking the time to file a bug! Please fill out the sections below.
- type: textarea
id: what-happened
attributes:
label: What happened?
description: A clear description of the bug, including what you expected to happen.
validations:
required: true
- type: textarea
id: repro
attributes:
label: Steps to reproduce
placeholder: |
1. Open Hypr
2. ...
3. See error
validations:
required: true
- type: input
id: version
attributes:
label: Hypr version
placeholder: e.g. v0.1.0 (or "built from source @ <commit>")
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating system
options:
- macOS
- Windows
- Linux
validations:
required: true
- type: textarea
id: extra
attributes:
label: Logs / screenshots
description: Any relevant logs, error output, or screenshots.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Security vulnerability
url: https://github.com/dropdevrahul/hypr/security/advisories/new
about: Please report security issues privately, not as a public issue.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Feature request
description: Suggest an idea or improvement for Hypr
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Problem / motivation
description: What are you trying to do, and what's getting in the way?
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed solution
description: Describe the feature or change you'd like to see.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Any workarounds or alternative approaches you've thought about.
25 changes: 25 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Summary

<!-- What does this PR do and why? -->

## Related issues

<!-- e.g. Closes #123 -->

## Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] Documentation
- [ ] Refactor / chore

## Checklist

- [ ] `go vet ./...` and `go test ./...` pass
- [ ] `cd frontend && npm run build` passes (typecheck + build)
- [ ] I updated `CHANGELOG.md` under **Unreleased** (if user-facing)
- [ ] I updated docs where relevant

## Screenshots

<!-- For UI changes, before/after screenshots are appreciated. -->
46 changes: 46 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: CI

on:
push:
branches: [main]
pull_request:

permissions:
contents: read

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
backend:
name: Backend (Go)
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.22'
cache: true
- name: Vet
run: go vet ./...
- name: Test
run: go test -race ./...

frontend:
name: Frontend (build + typecheck)
runs-on: ubuntu-22.04
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: npm
cache-dependency-path: frontend/package-lock.json
- name: Install
run: npm ci
- name: Build (runs tsc)
run: npm run build
80 changes: 80 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Release

on:
push:
tags:
- 'v*'

permissions:
contents: write

jobs:
build:
name: Build (${{ matrix.name }})
strategy:
fail-fast: false
matrix:
include:
- name: hypr-macos-universal
platform: darwin/universal
os: macos-latest
- name: hypr-linux-amd64
platform: linux/amd64
os: ubuntu-22.04
- name: hypr-windows-amd64
platform: windows/amd64
os: windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4

- name: Build with Wails
uses: dAppServer/wails-build-action@v2.2
with:
build-name: hypr
build-platform: ${{ matrix.platform }}
go-version: '1.22'
node-version: '20'
wails-version: 'v2.12.0'
package: false

- name: Archive (macOS / Linux)
if: runner.os != 'Windows'
run: |
cd build/bin
if [ "$RUNNER_OS" = "macOS" ]; then
ditto -c -k --keepParent hypr.app "../../${{ matrix.name }}.zip"
else
tar -czf "../../${{ matrix.name }}.tar.gz" hypr
fi

- name: Archive (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: Compress-Archive -Path build/bin/hypr.exe -DestinationPath "${{ matrix.name }}.zip"

- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: |
${{ matrix.name }}.zip
${{ matrix.name }}.tar.gz
if-no-files-found: ignore

release:
name: Publish release
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: dist/*
generate_release_notes: true
draft: false
prerelease: ${{ contains(github.ref_name, '-') }}
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
build/bin
node_modules
frontend/dist

# OS / editor cruft
.DS_Store
*.swp
.idea/
.vscode/
46 changes: 46 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Changelog

All notable changes to this project are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
- Complete UI redesign on Tailwind CSS + shadcn/ui (Radix), with IBM Plex typography
and a reusable component kit under `frontend/src/components/ui/`.
- In-app JSON syntax highlighting for response bodies and headers.
- Send loading state and <kbd>Enter</kbd>-to-send in the URL field.
- Go unit tests for the cURL parser and HTTP header helpers (`go test ./...`).
- Continuous Integration workflow (Go vet/test + frontend build).
- Cross-platform release workflow that builds macOS/Windows/Linux binaries on `v*` tags.
- Contributor documentation: `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `SECURITY.md`,
issue/PR templates, and this changelog.

### Changed
- cURL import now populates the header rows and request body of the active tab.
- The response view now follows the active request tab.
- The "add header" action moved next to the Request Headers title.

### Fixed
- Request headers were serialized to an empty object and not sent; they are now sent correctly.
- Corrected the application window title (`Hpyr` → `Hypr`).

## [0.0.3] - 2023-07-15
### Added
- Dark theme.
- Support for multiple request bodies.

## [0.0.2] - 2023-06-22
### Added
- cURL import support.

## [0.0.1] - 2023-06-21
### Added
- Initial release.

[Unreleased]: https://github.com/dropdevrahul/hypr/compare/v0.0.3...HEAD
[0.0.3]: https://github.com/dropdevrahul/hypr/compare/v0.0.2...v0.0.3
[0.0.2]: https://github.com/dropdevrahul/hypr/compare/v0.0.1...v0.0.2
[0.0.1]: https://github.com/dropdevrahul/hypr/releases/tag/v0.0.1
55 changes: 55 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our community a
harassment-free experience for everyone, regardless of age, body size, visible or invisible
disability, ethnicity, sex characteristics, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race, religion, or sexual
identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive,
and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes
- Focusing on what is best for the overall community

Examples of unacceptable behavior:

- The use of sexualized language or imagery, and sexual attention or advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards and will take
appropriate and fair corrective action in response to any behavior that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all community spaces, and also applies when an individual is
officially representing the community in public spaces.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the
maintainers at **rahul.1992.tyagi@gmail.com**. All complaints will be reviewed and investigated
promptly and fairly. All community leaders are obligated to respect the privacy and security of
the reporter of any incident.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.

[homepage]: https://www.contributor-covenant.org
Loading
Loading