commits
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>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>
found `db.Make` can fail with error message like "no such column: did"
which lacks some context to locate the exact where error occured
added some context following other error return statements in
`state.Make()`
Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>
Signed-off-by: oppiliappan <me@oppi.li>
spindle logs now inform the beginning of a new step using a "control"
message, with logs categorized under a "data" message.
the appview in turn, is able to group logs by step:
- upon encountering a control message, it begins a new step (a
collapsible details tag)
- upon encontering a data message, it adds the log line into the last
encountered step
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>
Signed-off-by: oppiliappan <me@oppi.li>
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>
spindle logs now inform the beginning of a new step using a "control"
message, with logs categorized under a "data" message.
the appview in turn, is able to group logs by step:
- upon encountering a control message, it begins a new step (a
collapsible details tag)
- upon encontering a data message, it adds the log line into the last
encountered step
Signed-off-by: oppiliappan <me@oppi.li>