BlueskyEx
This is an Elixir client for the Bluesky / AT protocol.
Right now it's in a pretty barebones proof-of-concept state. Contributions to make it more full-featured are more than welcome :)
Installation
make buildUsage
Here's an example CLI session:
make consoleusername = "username"
password = "password"
pds = "https://bsky.social"
creds = %BlueskyEx.Client.Credentials{
username: username,
password: password
}
session = BlueskyEx.Client.Session.create(creds, pds)
# Fetch 15 skeets from the timeline
popular = BlueskyEx.Client.RecordManager.get_timeline(session, limit: 15)
# Make a skeet with the text content "skeet"
post = BlueskyEx.Client.RecordManager.create_post(session, text: "skeet")API reference
See Hexdocs.
Contributing
Formatting
This project uses credo and formatter for style consistency. Please run
mix formatand
mix credo -a --strictbefore committing changes.
Type checking
Typespecs are validated through dialyzer.
mix dialyzerHelpers
As a shortcut, you can run
make lintto run all three of the above commands before authoring a commit.
Guidelines
Testing
All public functions "should" be tested exhaustively, but coverage is spotty right now -- contributions are welcome.
You can run the test suite with
make test-unitDocumentation
All public modules and their functions should be documented with the appropriate typespecs.
This library uses ExDoc conventions for documentation. You can run
make docsto build the docs and open them in your local environment.
License
MIT