• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

snarfed / granary
97%

Build:
DEFAULT BRANCH: main
Repo Added 25 Jan 2016 11:39PM UTC
Files 24
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • blocklists
  • bsky
  • circ
  • circle
  • circle2
  • circle3
  • circle4
  • claude/fix-emoji-shortcodes-xeVXL
  • claude/fix-microformats2-conversion-MqIkV
  • claude/implement-issue-2391-w6mob
  • coveralls
  • dependabot/github_actions/actions/checkout-5
  • dependabot/github_actions/actions/checkout-6
  • dependabot/github_actions/actions/checkout-7
  • dependabot/github_actions/dependabot/fetch-metadata-2.3.0
  • dependabot/github_actions/dependabot/fetch-metadata-2.4.0
  • dependabot/github_actions/dependabot/fetch-metadata-2.5.0
  • dependabot/github_actions/dependabot/fetch-metadata-3.0.0
  • dependabot/github_actions/dependabot/fetch-metadata-3.1.0
  • dependabot/github_actions/github/codeql-action-4
  • dependabot/github_actions/github/codeql-action-4.37.3
  • dependabot/github_actions/github/codeql-action-4.37.4
  • dependabot/github_actions/github/codeql-action-4.37.5
  • dependabot/github_actions/github/codeql-action-4.37.6
  • dependabot/github_actions/github/codeql-action-4.37.7
  • dependabot/github_actions/github/codeql-action-4.37.8
  • dependabot/github_actions/github/codeql-action-4.37.9
  • dependabot/github_actions/github/codeql-action-4.38.0
  • dependabot/github_actions/github/codeql-action-4.38.1
  • dependabot/github_actions/github/codeql-action-4.38.2
  • dependabot/github_actions/github/codeql-action-4.38.3
  • dependabot/github_actions/github/codeql-action-4.39.0
  • dependabot/github_actions/github/codeql-action-4.39.1
  • dependabot/github_actions/github/codeql-action-4.39.2
  • dependabot/pip/attrs-24.3.0
  • dependabot/pip/attrs-25.1.0
  • dependabot/pip/attrs-25.2.0
  • dependabot/pip/attrs-25.3.0
  • dependabot/pip/attrs-25.4.0
  • dependabot/pip/attrs-26.1.0
  • dependabot/pip/beautifulsoup4-4.13.3
  • dependabot/pip/beautifulsoup4-4.13.4
  • dependabot/pip/beautifulsoup4-4.13.5
  • dependabot/pip/beautifulsoup4-4.14.3
  • dependabot/pip/beautifulsoup4-4.15.0
  • dependabot/pip/blake3-1.0.9
  • dependabot/pip/cachelib-0.14.0
  • dependabot/pip/cbor2-5.9.0
  • dependabot/pip/cbor2-6.1.2
  • dependabot/pip/cbor2-6.1.3
  • dependabot/pip/cbor2-6.1.4
  • dependabot/pip/certifi-2024.12.14
  • dependabot/pip/certifi-2025.1.31
  • dependabot/pip/certifi-2025.10.5
  • dependabot/pip/certifi-2025.11.12
  • dependabot/pip/certifi-2025.8.3
  • dependabot/pip/certifi-2026.1.4
  • dependabot/pip/certifi-2026.4.22
  • dependabot/pip/certifi-2026.5.20
  • dependabot/pip/certifi-2026.6.17
  • dependabot/pip/certifi-2026.7.22
  • dependabot/pip/cffi-2.1.0
  • dependabot/pip/cffi-2.1.1
  • dependabot/pip/charset-normalizer-3.4.1
  • dependabot/pip/charset-normalizer-3.4.2
  • dependabot/pip/charset-normalizer-3.4.3
  • dependabot/pip/charset-normalizer-3.4.4
  • dependabot/pip/charset-normalizer-3.4.5
  • dependabot/pip/charset-normalizer-3.4.6
  • dependabot/pip/charset-normalizer-3.4.7
  • dependabot/pip/charset-normalizer-3.4.8
  • dependabot/pip/charset-normalizer-3.4.9
  • dependabot/pip/charset-normalizer-3.5.0
  • dependabot/pip/charset-normalizer-3.5.1
  • dependabot/pip/click-8.1.8
  • dependabot/pip/click-8.3.1
  • dependabot/pip/click-8.4.2
  • dependabot/pip/click-8.5.0
  • dependabot/pip/cryptography-45.0.6
  • dependabot/pip/cryptography-45.0.7
  • dependabot/pip/cryptography-46.0.2
  • dependabot/pip/cryptography-46.0.3
  • dependabot/pip/cryptography-46.0.4
  • dependabot/pip/cryptography-46.0.5
  • dependabot/pip/cryptography-46.0.6
  • dependabot/pip/cryptography-46.0.7
  • dependabot/pip/cryptography-47.0.0
  • dependabot/pip/cryptography-48.0.0
  • dependabot/pip/cryptography-48.0.1
  • dependabot/pip/cryptography-49.0.0
  • dependabot/pip/cryptography-50.0.0
  • dependabot/pip/cryptography-50.0.1
  • dependabot/pip/domain2idna-1.12.3
  • dependabot/pip/domain2idna-1.12.4
  • dependabot/pip/domain2idna-1.12.5
  • dependabot/pip/ecdsa-0.19.1
  • dependabot/pip/ecdsa-0.19.2
  • dependabot/pip/feedparser-6.0.12
  • dependabot/pip/feedparser-6.0.13
  • dependabot/pip/feedparser-6.0.14
  • dependabot/pip/fixtures-4.2.2
  • dependabot/pip/fixtures-4.2.4.post1
  • dependabot/pip/fixtures-4.2.6
  • dependabot/pip/fixtures-4.2.8
  • dependabot/pip/flask-3.1.1
  • dependabot/pip/flask-3.1.2
  • dependabot/pip/flask-3.1.3
  • dependabot/pip/flask-caching-2.3.1
  • dependabot/pip/flask-caching-2.4.0
  • dependabot/pip/flask-caching-2.4.1
  • dependabot/pip/google-api-python-client-2.198.0
  • dependabot/pip/google-api-python-client-2.199.0
  • dependabot/pip/google-api-python-client-2.200.0
  • dependabot/pip/google-auth-httplib2-0.4.1
  • dependabot/pip/google-auth-httplib2-0.4.2
  • dependabot/pip/google-cloud-appengine-logging-1.6.0
  • dependabot/pip/google-cloud-appengine-logging-1.7.0
  • dependabot/pip/google-cloud-appengine-logging-1.8.0
  • dependabot/pip/google-cloud-appengine-logging-1.9.0
  • dependabot/pip/google-cloud-audit-log-0.3.1
  • dependabot/pip/google-cloud-audit-log-0.3.3
  • dependabot/pip/google-cloud-audit-log-0.4.0
  • dependabot/pip/google-cloud-audit-log-0.5.0
  • dependabot/pip/google-cloud-audit-log-0.6.0
  • dependabot/pip/google-cloud-audit-log-0.6.1
  • dependabot/pip/google-cloud-audit-log-0.6.2
  • dependabot/pip/google-cloud-error-reporting-1.13.0
  • dependabot/pip/google-cloud-error-reporting-1.14.0
  • dependabot/pip/google-cloud-error-reporting-1.15.0
  • dependabot/pip/google-cloud-logging-3.11.4
  • dependabot/pip/google-cloud-logging-3.13.0
  • dependabot/pip/google-cloud-logging-3.14.0
  • dependabot/pip/google-cloud-logging-3.15.0
  • dependabot/pip/google-cloud-logging-3.16.1
  • dependabot/pip/google-cloud-logging-3.16.2
  • dependabot/pip/google-cloud-logging-3.16.3
  • dependabot/pip/google-cloud-ndb-2.4.0
  • dependabot/pip/google-cloud-ndb-2.4.1
  • dependabot/pip/google-cloud-ndb-2.4.2
  • dependabot/pip/google-cloud-ndb-2.5.1
  • dependabot/pip/google-cloud-ndb-2.6.0
  • dependabot/pip/google-cloud-ndb-2.6.1
  • dependabot/pip/googleapis-common-protos-1.67.0
  • dependabot/pip/googleapis-common-protos-1.68.0
  • dependabot/pip/googleapis-common-protos-1.69.0
  • dependabot/pip/googleapis-common-protos-1.69.1
  • dependabot/pip/googleapis-common-protos-1.71.0
  • dependabot/pip/googleapis-common-protos-1.72.0
  • dependabot/pip/googleapis-common-protos-1.73.0
  • dependabot/pip/googleapis-common-protos-1.73.1
  • dependabot/pip/googleapis-common-protos-1.74.0
  • dependabot/pip/googleapis-common-protos-1.75.0
  • dependabot/pip/googleapis-common-protos-1.75.1
  • dependabot/pip/googleapis-common-protos-1.75.2
  • dependabot/pip/googleapis-common-protos-1.75.3
  • dependabot/pip/googleapis-common-protos-1.75.4
  • dependabot/pip/grpc-google-iam-v1-0.14.0
  • dependabot/pip/grpc-google-iam-v1-0.14.1
  • dependabot/pip/grpc-google-iam-v1-0.14.3
  • dependabot/pip/grpc-google-iam-v1-0.14.4
  • dependabot/pip/grpc-google-iam-v1-0.14.5
  • dependabot/pip/grpcio-1.62.0
  • dependabot/pip/grpcio-1.66.0
  • dependabot/pip/grpcio-1.69.0
  • dependabot/pip/grpcio-1.70.0
  • dependabot/pip/grpcio-1.74.0
  • dependabot/pip/grpcio-1.76.0
  • dependabot/pip/grpcio-1.78.0
  • dependabot/pip/grpcio-1.78.1
  • dependabot/pip/grpcio-1.80.0
  • dependabot/pip/grpcio-1.81.1
  • dependabot/pip/grpcio-1.82.0
  • dependabot/pip/grpcio-1.83.0
  • dependabot/pip/grpcio-1.83.1
  • dependabot/pip/grpcio-1.84.0
  • dependabot/pip/grpcio-status-1.69.0
  • dependabot/pip/grpcio-status-1.70.0
  • dependabot/pip/grpcio-status-1.76.0
  • dependabot/pip/grpcio-status-1.78.0
  • dependabot/pip/grpcio-status-1.78.1
  • dependabot/pip/grpcio-status-1.80.0
  • dependabot/pip/grpcio-status-1.81.1
  • dependabot/pip/grpcio-status-1.82.0
  • dependabot/pip/grpcio-status-1.83.0
  • dependabot/pip/grpcio-status-1.83.1
  • dependabot/pip/grpcio-status-1.84.0
  • dependabot/pip/gunicorn-26.0.0
  • dependabot/pip/gunicorn-26.1.0
  • dependabot/pip/gunicorn-26.2.0
  • dependabot/pip/h11-0.16.0
  • dependabot/pip/html2text-2024.2.26
  • dependabot/pip/html2text-2025.4.15
  • dependabot/pip/httplib2-0.32.0
  • dependabot/pip/humanize-4.12.0
  • dependabot/pip/humanize-4.12.1
  • dependabot/pip/humanize-4.12.3
  • dependabot/pip/humanize-4.13.0
  • dependabot/pip/humanize-4.15.0
  • dependabot/pip/humanize-4.16.0
  • dependabot/pip/idna-3.11
  • dependabot/pip/idna-3.12
  • dependabot/pip/idna-3.13
  • dependabot/pip/idna-3.14
  • dependabot/pip/idna-3.15
  • dependabot/pip/idna-3.16
  • dependabot/pip/idna-3.17
  • dependabot/pip/idna-3.18
  • dependabot/pip/idna-3.19
  • dependabot/pip/idna-3.20
  • dependabot/pip/idna-3.8
  • dependabot/pip/jinja2-3.1.5
  • dependabot/pip/jinja2-3.1.6
  • dependabot/pip/libipld-3.0.1
  • dependabot/pip/libipld-3.1.0
  • dependabot/pip/libipld-3.1.1
  • dependabot/pip/libipld-3.2.0
  • dependabot/pip/libipld-3.3.0
  • dependabot/pip/libipld-3.3.1
  • dependabot/pip/libipld-3.3.2
  • dependabot/pip/libipld-3.4.0
  • dependabot/pip/libipld-3.4.1
  • dependabot/pip/lxml-5.3.1
  • dependabot/pip/lxml-6.0.0
  • dependabot/pip/lxml-6.0.1
  • dependabot/pip/lxml-6.0.3
  • dependabot/pip/lxml-6.0.4
  • dependabot/pip/lxml-6.1.0
  • dependabot/pip/lxml-6.1.1
  • dependabot/pip/lxml-6.1.2
  • dependabot/pip/lxml-6.1.3
  • dependabot/pip/markupsafe-3.0.3
  • dependabot/pip/mf2py-2.0.2
  • dependabot/pip/oauthlib-3.3.1
  • dependabot/pip/oauthlib-4.0.0
  • dependabot/pip/opentelemetry-api-1.41.1
  • dependabot/pip/opentelemetry-api-1.43.0
  • dependabot/pip/opentelemetry-api-1.44.0
  • dependabot/pip/opentelemetry-api-1.45.0
  • dependabot/pip/packaging-25.0
  • dependabot/pip/packaging-26.0
  • dependabot/pip/packaging-26.1
  • dependabot/pip/packaging-26.2
  • dependabot/pip/packaging-26.3
  • dependabot/pip/pbr-6.1.1
  • dependabot/pip/pbr-7.0.1
  • dependabot/pip/pbr-7.0.2
  • dependabot/pip/pbr-7.0.3
  • dependabot/pip/pillow-11.1.0
  • dependabot/pip/pillow-11.3.0
  • dependabot/pip/praw-7.8.2
  • dependabot/pip/praw-8.0.2
  • dependabot/pip/praw-8.0.3
  • dependabot/pip/proto-plus-1.23.0
  • dependabot/pip/proto-plus-1.26.0
  • dependabot/pip/proto-plus-1.26.1
  • dependabot/pip/proto-plus-1.27.0
  • dependabot/pip/proto-plus-1.27.1
  • dependabot/pip/proto-plus-1.27.2
  • dependabot/pip/proto-plus-1.28.0
  • dependabot/pip/proto-plus-1.28.1
  • dependabot/pip/proto-plus-1.28.3
  • dependabot/pip/proto-plus-1.28.4
  • dependabot/pip/protobuf-5.29.2
  • dependabot/pip/protobuf-5.29.3
  • dependabot/pip/protobuf-6.32.0
  • dependabot/pip/protobuf-6.32.1
  • dependabot/pip/protobuf-6.33.0
  • dependabot/pip/protobuf-6.33.1
  • dependabot/pip/protobuf-6.33.2
  • dependabot/pip/protobuf-6.33.4
  • dependabot/pip/protobuf-6.33.5
  • dependabot/pip/protobuf-6.33.6
  • dependabot/pip/protobuf-7.35.1
  • dependabot/pip/protobuf-7.36.0
  • dependabot/pip/protobuf-7.36.1
  • dependabot/pip/protobuf-7.36.2
  • dependabot/pip/pyasn1-0.6.2
  • dependabot/pip/pyasn1-0.6.3
  • dependabot/pip/pyasn1-0.6.4
  • dependabot/pip/pyasn1-modules-0.4.2
  • dependabot/pip/pycparser-2.23
  • dependabot/pip/pycparser-3.0
  • dependabot/pip/pyjwt-2.13.0
  • dependabot/pip/pyjwt-2.14.0
  • dependabot/pip/pyjwt-2.15.0
  • dependabot/pip/pyparsing-3.2.1
  • dependabot/pip/pyparsing-3.2.3
  • dependabot/pip/pyparsing-3.2.4
  • dependabot/pip/pyparsing-3.2.5
  • dependabot/pip/pyparsing-3.3.1
  • dependabot/pip/pyparsing-3.3.2
  • dependabot/pip/pyparsing-3.3.3
  • dependabot/pip/pytz-2025.1
  • dependabot/pip/pytz-2025.2
  • dependabot/pip/pytz-2026.1.post1
  • dependabot/pip/pytz-2026.2
  • dependabot/pip/pytz-2026.3.post1
  • dependabot/pip/pytz-2026.4
  • dependabot/pip/pyyaml-6.0.3
  • dependabot/pip/redis-6.4.0
  • dependabot/pip/redis-8.0.1
  • dependabot/pip/redis-8.1.0
  • dependabot/pip/requests-2.32.4
  • dependabot/pip/requests-2.32.5
  • dependabot/pip/requests-hardened-1.3.0
  • dependabot/pip/requests-oauthlib-2.0.0
  • dependabot/pip/rsa-4.9.1
  • dependabot/pip/setuptools-83.0.0
  • dependabot/pip/setuptools-84.0.0
  • dependabot/pip/soupsieve-2.10
  • dependabot/pip/soupsieve-2.8
  • dependabot/pip/soupsieve-2.8.1
  • dependabot/pip/soupsieve-2.8.2
  • dependabot/pip/soupsieve-2.8.3
  • dependabot/pip/soupsieve-2.8.4
  • dependabot/pip/soupsieve-2.9.1
  • dependabot/pip/soupsieve-2.9.2
  • dependabot/pip/sphinx-rtd-theme-gte-3.1.0
  • dependabot/pip/tlslite-ng-0.8.1
  • dependabot/pip/tlslite-ng-0.8.2
  • dependabot/pip/tweepy-4.15.0
  • dependabot/pip/tweepy-4.17.0
  • dependabot/pip/typing-validation-1.2.10.post4
  • dependabot/pip/typing-validation-1.2.12
  • dependabot/pip/ujson-5.11.0
  • dependabot/pip/ujson-6.0.0
  • dependabot/pip/urllib3-2.3.0
  • dependabot/pip/urllib3-2.5.0
  • dependabot/pip/urllib3-2.6.0
  • dependabot/pip/urllib3-2.6.1
  • dependabot/pip/urllib3-2.6.2
  • dependabot/pip/urllib3-2.6.3
  • dependabot/pip/urllib3-2.8.0
  • dependabot/pip/webencodings-0.6.1
  • dependabot/pip/websocket-client-1.9.0
  • dependabot/pip/websocket-client-1.9.2
  • dependabot/pip/websockets-14.1
  • dependabot/pip/websockets-14.2
  • dependabot/pip/websockets-15.0
  • dependabot/pip/websockets-15.0.1
  • dependabot/pip/websockets-16.0
  • dependabot/pip/websockets-16.1.1
  • dependabot/pip/werkzeug-3.1.4
  • dependabot/pip/werkzeug-3.1.5
  • dependabot/pip/werkzeug-3.1.6
  • dependabot/pip/werkzeug-3.1.7
  • dependabot/pip/werkzeug-3.1.8
  • dependabot/pip/wrapt-2.2.2
  • dependabot/pip/wsproto-1.3.2
  • emoji-shortcode-char
  • extended_tweets
  • farcaster
  • fb_api_2.6
  • fb_email
  • flask
  • github
  • h-as
  • ig_schema
  • instagram_scrape
  • jsonfeed
  • live-test
  • live-tests
  • location
  • m_facebook_scrape
  • main
  • mastodon
  • rtd

08 Nov 2026 09:18PM UTC coverage: 96.883% (+0.003%) from 96.88%
5e8a7958-b32b-49df-825d-27a5dbee816f

push

circleci

snarfed
bluesky.to_as1: handle site.standard.document site at:// URIs, append path to site

fetch the site.standard.publication with client to get its url, omit url if we can't. also append path to site per the spec instead of urljoin, which dropped any path in site

for snarfed/bridgy-fed#2768

10 of 10 new or added lines in 1 file covered. (100.0%)

8578 of 8854 relevant lines covered (96.88%)

1.93 hits per line

Relevant lines Covered
Build:
Build:
8854 RELEVANT LINES 8578 COVERED LINES
1.93 HITS PER LINE
Source Files on main
  • Tree
  • List 24
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
5e8a7958... main bluesky.to_as1: handle site.standard.document site at:// URIs, append path to site fetch the site.standard.publication with client to get its url, omit url if we can't. also append path to site per the spec instead of urljoin, which dropped any p... push 08 Nov 2026 09:21PM UTC snarfed circleci
96.88
ab6a08f2... main source: add PROTOCOL_URI_PREFIXES, PROTOCOL_MIME_TYPES, URI_PREFIXES tables use them in as2, microformats2, nostr instead of duplicated constants for snarfed/bridgy-fed#800 push 07 Nov 2026 03:34AM UTC snarfed circleci
96.88
ab6a08f2... main source: add PROTOCOL_URI_PREFIXES, PROTOCOL_MIME_TYPES, URI_PREFIXES tables use them in as2, microformats2, nostr instead of duplicated constants for snarfed/bridgy-fed#800 push 07 Nov 2026 03:34AM UTC snarfed circleci
96.81
2348951c... main build(deps): bump github/codeql-action from 4.39.1 to 4.39.2 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.39.1 to 4.39.2. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://gi... push 06 Nov 2026 10:15PM UTC github-actions[bot] circleci
96.86
ab7ac6cb... dependabot/github_actions/github/codeql-action-4.39.2 build(deps): bump github/codeql-action from 4.39.1 to 4.39.2 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.39.1 to 4.39.2. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://gi... Pull #1219 06 Nov 2026 10:13PM UTC web-flow circleci
96.86
55b9e43d... main as2.from_as1: convert AS1 proxy links to AS2 Links with rel, not PropertyValues for snarfed/bridgy-fed#800 push 06 Nov 2026 03:33AM UTC snarfed circleci
96.86
9d228a8e... main tests: change *.local hostname env vars to *.invalid, which fail fast push 03 Nov 2026 11:41PM UTC snarfed circleci
96.86
0a1c60d5... main circle: bug fix for cache key push 02 Nov 2026 05:56PM UTC snarfed circleci
96.86
7c6cd834... main as1.get_rel_links: add url_prefixes, mime_types kwargs for snarfed/bridgy-fed#800 push 02 Nov 2026 05:41AM UTC snarfed circleci
96.86
e3523f3d... main as1: add get_rel_links, move PROXY_LINK_RELS here from as2 for snarfed/bridgy-fed#800 push 01 Nov 2026 04:49AM UTC snarfed circleci
96.86
See All Builds (5246)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc