https://github.com/darrarski/github-status-bar
GitHub notifications in macOS status bar. Written in Swift and unidirectional data flow architecture.
https://github.com/darrarski/github-status-bar
github-notifications macos status-bar swift unidirectional-data-flow
Last synced: about 1 month ago
JSON representation
GitHub notifications in macOS status bar. Written in Swift and unidirectional data flow architecture.
- Host: GitHub
- URL: https://github.com/darrarski/github-status-bar
- Owner: darrarski
- License: gpl-3.0
- Created: 2020-06-12T15:09:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-12-14T22:07:30.000Z (almost 5 years ago)
- Last Synced: 2025-07-30T13:01:47.021Z (4 months ago)
- Topics: github-notifications, macos, status-bar, swift, unidirectional-data-flow
- Language: Swift
- Homepage:
- Size: 801 KB
- Stars: 18
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-tca - GitHub Status Bar macOS App
README
# GitHub Status Bar macOS App




GitHub notifications in macOS status bar. Written in Swift.

This project demonstrates **unidirectional data flow architecture** implementation in a simple Swift application.
## 🚀 Build and run
### Requirements
- Xcode 11 with Swift 5.2
### Run
You can run the app directly from terminal, by executing:
```sh
GITHUB_USERNAME=user GITHUB_TOKEN=personal-access-token swift run
```
Replace environment variables with your actual credentials.
- `GITHUB_USERNAME` - GitHub username
- `GITHUB_TOKEN` - GitHub [Personal Access Token](https://github.com/settings/tokens)
## 🛠 Develop
### Setup
Open `Package.swift` in Xcode.You can run the app using `github-status-bar` shared build scheme.
The GitHub credentials can be set in the scheme configuration:

### Test
You can run tests from Xcode or by executing the following command in terminal:
```sh
swift test
```
### Package structure
Target|Description
:--|:--
`Executable`|The macOS app executable
`App[Tests]`|Core application logic
`StatusBar[Tests]`|Status bar menu component
`GitHub[Tests]`|GitHub REST API v3 client
### External dependencies
Dependency|Description
:--|:--
[ComposableArchitecture](https://github.com/pointfreeco/swift-composable-architecture)|Architecture foundations
[SwiftEndpoint](https://github.com/darrarski/SwiftEndpoint)|Networking layer abstration
[Quick](https://github.com/Quick/Quick)|Behavior-driven development framework used in test targets
[Nimble](https://github.com/Quick/Nimble)|Assertion matcher framework used in test targets
[Difference](https://github.com/krzysztofzablocki/Difference)|Assertion helper framework used in test targets
## ☕️ Do you like the project?
## 📄 License
Copyright © 2020 [Dariusz Rybicki Darrarski](http://www.darrarski.pl)
License: [GNU GPLv3](LICENSE)
