porting all github actions from bluesky-social/indigo to tangled CI
Go 88.1%
TypeScript 9.6%
HTML 0.6%
Python 0.5%
Dockerfile 0.4%
Shell 0.2%
Makefile 0.2%
JavaScript 0.1%
CSS 0.1%
Other 0.5%
3656 2 0

Clone this repository

https://tangled.org/oppi.li/indigo-ci
git@tangled.org:oppi.li/indigo-ci

For self-hosted knots, clone URLs may differ based on your setup.

README.md

photo

indigo: atproto libraries and services in golang#

Some Bluesky software is developed in Typescript, and lives in the bluesky-social/atproto repository. Some is developed in Go, and lives here.

What is in here?#

Go Services:

Developer Tools:

goat (README): CLI for interacting with network: CAR files, firehose, APIs, etc

Go Packages:

⚠️ All the packages in this repository are under active development. Features and software interfaces have not stabilized and may break or be removed.

Package Docs
api/atproto: generated types for com.atproto.* Lexicons PkgGoDev
api/bsky: generated types for app.bsky.* Lexicons PkgGoDev
atproto/crypto: crytographic signing and key serialization PkgGoDev
atproto/identity: DID and handle resolution PkgGoDev
atproto/syntax: string types and parsers for identifiers PkgGoDev
atproto/lexicon: schema validation of data PkgGoDev
mst: Merkle Search Tree implementation PkgGoDev
repo: account data storage PkgGoDev
xrpc: HTTP API client PkgGoDev

The TypeScript reference implementation, including PDS and bsky AppView services, is at bluesky-social/atproto. Source code for the Bluesky Social client app (for web and mobile) can be found at bluesky-social/social-app.

Development Quickstart#

First, you will need the Go toolchain installed. We develop using the latest stable version of the language.

The Makefile provides wrapper commands for basic development:

make build
make test
make fmt
make lint

Individual commands can be run like:

go run ./cmd/relay

The HACKING file has a list of commands and packages in this repository and some other development tips.

What is atproto?#

not to be confused with the AT command set or Adenosine triphosphate

The Authenticated Transfer Protocol ("ATP" or "atproto") is a decentralized social media protocol, developed by Bluesky Social PBC. Learn more at:

The Bluesky Social application encompasses a set of schemas and APIs built in the overall AT Protocol framework. The namespace for these "Lexicons" is app.bsky.*.

Contributions#

While we do accept contributions, we prioritize high quality issues and pull requests. Adhering to the below guidelines will ensure a more timely review.

Rules:

  • We may not respond to your issue or PR.
  • We may close an issue or PR without much feedback.
  • We may lock discussions or contributions if our attention is getting DDOSed.
  • We do not provide support for build issues.

Guidelines:

  • Check for existing issues before filing a new one, please.
  • Open an issue and give some time for discussion before submitting a PR.
  • Issues are for bugs & feature requests related to the golang implementation of atproto and related services.
  • Stay away from PRs that:
    • Refactor large parts of the codebase
    • Add entirely new features without prior discussion
    • Change the tooling or libraries used without prior discussion
    • Introduce new unnecessary dependencies

Remember, we serve a wide community of users. Our day-to-day involves us constantly asking "which top priority is our top priority." If you submit well-written PRs that solve problems concisely, that's an awesome contribution. Otherwise, as much as we'd love to accept your ideas and contributions, we really don't have the bandwidth.

Are you a developer interested in building on atproto?#

Bluesky is an open social network built on the AT Protocol, a flexible technology that will never lock developers out of the ecosystems that they help build. With atproto, third-party can be as seamless as first-party through custom feeds, federated services, clients, and more.

License#

This project is dual-licensed under MIT and Apache 2.0 terms:

Downstream projects and end users may chose either license individually, or both together, at their discretion. The motivation for this dual-licensing is the additional software patent assurance provided by Apache 2.0.