commits
this falls back to calling RepoLanguages on the knot, and caches that
info at the appview.
Signed-off-by: oppiliappan <me@oppi.li>
and db helpers to set and get.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
commit-count calculation for initial ref-creation pushes failed silently
because the underlying call to `rev-list` would fail.
Signed-off-by: oppiliappan <me@oppi.li>
not many portions of the site use darkend backgrounds. this is very much
WIP.
Signed-off-by: oppiliappan <me@oppi.li>
Builds on the last commit to introduce a variant of the time component but for durations. I added a verbose/long duration fmt function based on the existing short duration fmt one, and also renamed the other time fmt functions for clarity.
Creates a new template fragment, repo/fragments/time, that is a component based on the <time> HTML element. The <time> element is already used for most datetimes, but inconsistently; some define `title` attributes and/or `datetime` attributes, most don't. The goal here is to standardize with a single component so every date has a consistent interaction. The datetime is ISO 8601 formatted as per the spec, the `title` (shown on hover) is a modified long format similar to GitHub's, and the content is a relative format %s ago (`timeFmt` - two `shortTimeFmt` variants also exist to preserve existing behavior).
regexes were recompiled on each router visit.
Signed-off-by: oppiliappan <me@oppi.li>
Change-Id: lwznzstzpoqqlvxnxsoulpokwxwkuwzw
Change-Id: lonyknzlzukqqowkslrmzkszszuktyzy
also fixes a small UI bug with pipeline symbols on stacked PRs
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Also fixes OrderedReactionKinds breaking patch/interdiff pages.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Renames user/fragments/picHandle to user/fragments/picHandleLink, since it now wraps a simpler user/fragments/picHandle that doesn't include the link. The topbar should now display the avatar next to the handle in the same style, without the link as it was before.
Add `sh.tangled.feed.reaction` lexicon and UI to *react* to issues/PRs
close #65
close #113
Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>
Fixes error:
```
time=2025-07-13T15:01:04.268Z level=WARN msg="failed to setup step logger; logs will not be persisted" component=spindle error="creating log file: open /var/log/spindle/knot1.tangled.sh-3ltu5bpvgwt22-fix-todos.yaml.log: no such file or directory"
```
Signed-off-by: John Andersen <johnandersenpdx@gmail.com>
time=2025-07-13T14:35:21.719Z level=ERROR msg="pipeline failed!" component=spindle image=nixery.tangled.sh/python/bash/git/coreutils/nix workflowId=knot1.tangled.sh-3ltu3twqimw22-fix-todos.yaml error="Error response from daemon: received unexpected HTTP status: 500 Internal Server Error
Related: https://discord.com/channels/1361963801993285692/1393783888530243647/1393964321431617586
Signed-off-by: John Andersen <johnandersenpdx@gmail.com>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: oppiliappan <me@oppi.li>
The build command was out of date, needed path change to `./cmd/spindle/main.go` and mod download
appview/ingester: invalidate identity only if the account was deactivated on an account event
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
use git fetch instead of git clone. git clone is lacking in that it does
not permit cloning at a specific rev. when paired with `--branch` flag,
there is no guarantee if the required rev is available in the shallow
clone.
with git fetch however, we are able to fetch a specific rev. the steps
are a little more involved however:
git init
git remote add origin <url>
git fetch --depth=<d> --recurse-submodules=<yes|no> <sha>
git checkout FETCH_HEAD
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
also rename jetstream consumer to ingester
Signed-off-by: oppiliappan <me@oppi.li>
refers to the tip of the branch that this PR was opened from. this
addition permits us to associate a CI run with a branch or fork based
pull request.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: oppiliappan <me@oppi.li>
reference forgejo's language analysis a bit more, and calculate ratios
based on number of bytes
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
the previous retry mechanism had a slight flaw: successful connections
did not reset the exponent on the retry interval. this results in
constantly growing retry intervals:
attempt #1 - wait 5s
attempt #2 - wait 10s
attempt #3 - success!
.
.
.
disconnect
attempt #4 - wait 20s
what we want to see however, is a pattern like so:
attempt #1 - wait 5s
attempt #2 - wait 10s
attempt #3 - success!
.
.
.
disconnect
attempt #1 - wait 5s
this is solved by slapping the retry logic around DialConnection, which
is a more atomic point of connection attempt. retry logic is also
offloaded to the github.com/avast-go/retry package
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
This commit adds languages with their associated colour just below the
tabs on the repo index page. Hovering over the colours will display the
language name and file percentage within the repo.
Signed-off-by: BrookJeynes <jeynesbrook@gmail.com>
This commit updates the types related to fetching the languages used
within a repo to be more structured and include additional information
such as the language colour. Additional logic to calculate the language
percentage was added to the repo index.
Signed-off-by: BrookJeynes <jeynesbrook@gmail.com>
Signed-off-by: oppiliappan <me@oppi.li>
go test runs binaries from /tmp directory
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
this falls back to calling RepoLanguages on the knot, and caches that
info at the appview.
Signed-off-by: oppiliappan <me@oppi.li>
Creates a new template fragment, repo/fragments/time, that is a component based on the <time> HTML element. The <time> element is already used for most datetimes, but inconsistently; some define `title` attributes and/or `datetime` attributes, most don't. The goal here is to standardize with a single component so every date has a consistent interaction. The datetime is ISO 8601 formatted as per the spec, the `title` (shown on hover) is a modified long format similar to GitHub's, and the content is a relative format %s ago (`timeFmt` - two `shortTimeFmt` variants also exist to preserve existing behavior).
Fixes error:
```
time=2025-07-13T15:01:04.268Z level=WARN msg="failed to setup step logger; logs will not be persisted" component=spindle error="creating log file: open /var/log/spindle/knot1.tangled.sh-3ltu5bpvgwt22-fix-todos.yaml.log: no such file or directory"
```
Signed-off-by: John Andersen <johnandersenpdx@gmail.com>
time=2025-07-13T14:35:21.719Z level=ERROR msg="pipeline failed!" component=spindle image=nixery.tangled.sh/python/bash/git/coreutils/nix workflowId=knot1.tangled.sh-3ltu3twqimw22-fix-todos.yaml error="Error response from daemon: received unexpected HTTP status: 500 Internal Server Error
Related: https://discord.com/channels/1361963801993285692/1393783888530243647/1393964321431617586
Signed-off-by: John Andersen <johnandersenpdx@gmail.com>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
use git fetch instead of git clone. git clone is lacking in that it does
not permit cloning at a specific rev. when paired with `--branch` flag,
there is no guarantee if the required rev is available in the shallow
clone.
with git fetch however, we are able to fetch a specific rev. the steps
are a little more involved however:
git init
git remote add origin <url>
git fetch --depth=<d> --recurse-submodules=<yes|no> <sha>
git checkout FETCH_HEAD
Signed-off-by: oppiliappan <me@oppi.li>
the previous retry mechanism had a slight flaw: successful connections
did not reset the exponent on the retry interval. this results in
constantly growing retry intervals:
attempt #1 - wait 5s
attempt #2 - wait 10s
attempt #3 - success!
.
.
.
disconnect
attempt #4 - wait 20s
what we want to see however, is a pattern like so:
attempt #1 - wait 5s
attempt #2 - wait 10s
attempt #3 - success!
.
.
.
disconnect
attempt #1 - wait 5s
this is solved by slapping the retry logic around DialConnection, which
is a more atomic point of connection attempt. retry logic is also
offloaded to the github.com/avast-go/retry package
Signed-off-by: oppiliappan <me@oppi.li>