~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

Basic forge features missing, from archive downloads to webhooks

Open
Open chadtmiller.com opened this issue 0 comments
kind/featurearea/web

What happened

Compared knotless with GitHub, GitLab, Forgejo/Gitea and Tangled. The core is in place. We have repos, branches and tags with protection, and pulls with drafts, reviewers, line comments, verdicts, CODEOWNERS, revert, retarget and the merge queue. Issues have labels, reactions, mentions and templates. There's also blame, compare, raw files, releases, forks, transfers, archiving, CI, notifications, stars, follows, orgs and private repos.

The items below are what those forges have and knotless doesn't. I found each one by searching the lexicons, pages, serve and docs, so check one isn't already partly there before starting it. They're ordered easiest first. Tick each off as its pull lands.

Easy

  • Download a ref as tar.gz or zip. /raw/ serves one file at a time. Add /{owner}/{repo}/archive/{ref}.tar.gz (and .zip) from the cache mirror, linked from the repo page, tags and releases.
  • Atom feeds for a repository's releases, tags and commits on the default branch, and for an account's activity.
  • Scheduled workflows. Add on: {schedule: [{cron: …}]} to the workflow keys, run on the default branch. There's no cron trigger today, only push, pull and asked.
  • Lock a conversation. A maintainer stops new comments on an issue or pull from anyone outside the repository, as a maintainer-side record like a state.
  • Pin issues to the top of a repository's issue list, up to a few. This is also a maintainer-side record.

Medium

  • Assignees on issues and pulls. A maintainer-side record, as labels are, since a maintainer can't write to the author's record. Show it in lists, filter by it, and notify the assignee. (Done in 151f390a. Web list rows don't show assignees yet, though listItems returns them.)
  • Subscribe and mute. Watch a repository, issue or pull you have no part in, and mute a thread you do. Notifications follow fixed rules today.
  • Suggested changes in reviews. A line comment carrying replacement lines, which the pull's author applies as a commit in one click. lineRef already names the lines.
  • Changes since your last review. The diff between the head a review looked at and the head now, after a force-push too. Tangled builds review around these rounds.
  • Milestones, grouping issues and pulls toward a date or release, with progress shown.
  • Commit signature verification. Show SSH and GPG signatures as verified against keys an account publishes. Branch protection could require them.

Larger

  • Webhooks. POST events (push, pull, issue, comment, check, release) to a URL the owner sets, signed with a secret, with retries and a log of deliveries. Jetstream serves atproto consumers but not plain HTTP integrations.
  • Import from GitHub: the git data, then issues, pulls and comments, attributed to their authors. Tangled and Forgejo both have one.
  • Open a pull by pushing: push to a magic ref or with push options, as Gerrit and Forgejo's AGit flow do, with no fork and no knotless pull.
  • Stacked pulls: a pull based on another pull's branch, retargeted when the one below lands, shown as a stack. (Done in 5a2a3d98 and b48d1127, and queued stacks land in turn.)

Not now

Wikis (docs/ in the repo covers them), project boards, discussions, gists, LFS, dependency alerts, and static site hosting. Keep them in mind, but they aren't basics.