commits
Obviously file naming of appview/web/handler/*.go files are directly
against to go convention. Though I think flattening all handler files
can significantly reduce the effort involved in file naming and
structuring. We are already grouping core services by domains, and doing
same for web handers is just over-complicating.
```
- appview/web/routes.go : define all web page routes
- appview/web/middleware.go : define middlewares related to web routes
- appview/web/handler/*.go : http handlers, named as path pattern
- appview/service/* : domain-level services
```
Each handlers are pure by receiving all required dependencies as
parameters. Ideally we should not pass base dependencies like `db`, but
that's how it works for now.
Now we can test:
- http handlers with mocked services/renderer
- internal service logic without http handlers
Signed-off-by: Seongmin Lee <git@boltless.me>
includes query and migration helpers
Signed-off-by: oppiliappan <me@oppi.li>
usage of the resolver is now mentionsResolver.
Signed-off-by: oppiliappan <me@oppi.li>
Rendering specific LaTeX expression results infinite loop on renderer,
causing entire appview to crash
Signed-off-by: Seongmin Lee <git@boltless.me>
in smaller views of a commit, such as logs, only the profile pictures of
coauthors are shown, and the lead author's identity is suffixed with a
"+ N" to indicate co-authors.
in larger views of a commit, such as the commit view, the authors and
the committer are explicitly laid out, DIDs are resolved where possible
and shown alongside profile pictures.
Signed-off-by: oppiliappan <me@oppi.li>
given a list of DIDs, this forms a list of profile pictures capped at 5
profile pictures. this component will be used to represent a collection
of users (e.g.: participants, coauthors).
Signed-off-by: oppiliappan <me@oppi.li>
uses a regex to detect & extract a object.Signature from the
Co-authored-by header.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
this is a backwards compatible structure that is capable of
deserializing both go-git Commit structs and the existing
types.NiceDiff.Commit struct.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Jens Rømer Hesselbjerg <jh.roemer@gmail.com>
Co-authored-by: Seongmin Lee <git@boltless.me>
For the "This user does not have X" pages.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
currently all backlinks are parsed with markdown parser.
So only explict urls like below are supported:
- <https://tangled.org/owner.com/repo-name/issues/123>
- [full url](https://tangled.org/owner.com/repo-name/issues/123)
- [absolute path](/owner.com/repo-name/issues/123)
Also `#comment-123` fragment is supported too.
All references in issue/pull/comment records are stored in at-uri
format. we do have a `mentions` field, but it isn't used yet. mentions
are parsed on rendering and aren't stored anywhere for now.
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Storing references parsed from the markdown body in atproto record and
DB. There can be lots of reference types considering the from/to types
so storing both as AT-URIs
Using `sql.Tx` more to combine multiple DB query to single recoverable
operation.
Note: Pulls don't have mentinos/references yet
Signed-off-by: Seongmin Lee <git@boltless.me>
Defined `refResolver` which will parse useful data from markdown body
like @-mentions or issue/pr/comment mentions
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Thomas Karpiniec <tkarpiniec@icloud.com>
Signed-off-by: oppiliappan <me@oppi.li>
detect the host to clone from and use a local clone if possible.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Seongmin Lee <git@boltless.me>
Now `ResolvedRepo` is basically same to `models.Repo` so we can safely
remove it. (not included in this commit to make change reviewable size.)
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
- remove unused parameters
- pass correct parameters
- rename with `*Fragment` suffix
Signed-off-by: Seongmin Lee <git@boltless.me>
`RepoInfo` is mostly designed for rendering, don't use it for service
logic.
Signed-off-by: Seongmin Lee <git@boltless.me>
replace with rbac enforcer instead
Signed-off-by: Seongmin Lee <git@boltless.me>
Ideally we should completely remove it.
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Don't pass resolved user handles from http handlers. The page renderer
is capable of resolving DIDs and we are using redis cache, so the
performance won't matter much either.
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Thomas Karpiniec <tkarpiniec@icloud.com>
Signed-off-by: Thomas Karpiniec <tkarpiniec@icloud.com>
Introduces framework-provided TANGLED_* environment variables
(repo info, ref/SHA, trigger-specific data) that are injected
into workflow steps.
Signed-off-by: Evan Jarrett <evan@evanjarrett.com>
Signed-off-by: 5jiji <git@5jiji.com>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Evan Jarrett <evan@evanjarrett.com>
Signed-off-by: oppiliappan <me@oppi.li>
seems to break on certain events
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: afterlifepro <vielle.dev@proton.me>
this requires a bare clone; which could take time depending on the size
of the repo.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Jordan Reger <jordan@reger.co>
Signed-off-by: oppiliappan <me@oppi.li>
On timeline, if there is multiple cards for same repository including a
star button, when user star/unstar the repository, only first `#starBtn`
is swapped with new button.
This can be fixed by adding `data-star-subject-at` attr to identify all
star buttons related to same repository and use `hx-swap-oob` to replace
all of them.
Signed-off-by: Seongmin Lee <git@boltless.me>
Not sending "XXX starred your string" notif yet.
Close: <https://tangled.org/tangled.org/core/issues/296>
Signed-off-by: Seongmin Lee <git@boltless.me>
- rename `starred_by_did` column to `did`
- rename `repo_at` column to `subject_at` and removed foreign key
constraints.
- rename `RepoAt` field to `SubjectAt`
- remove `Repo` field and split `models.Star` to `RepoStar` and
`StringStar` as now there can be two kinds of reverse mappings.
Signed-off-by: Seongmin Lee <git@boltless.me>
Easier to spot.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.org>
Signed-off-by: Evan Jarrett <evan@evanjarrett.com>
Mobile need a dedicated search button to submit the form.
Also applied correct focus-ring for input tag
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: Runxi Yu <me@runxiyu.org>
Signed-off-by: Evan Jarrett <evan@evanjarrett.com>
Signed-off-by: Catherine <whitequark@whitequark.org>
Signed-off-by: oppiliappan <me@oppi.li>
this changes the routing logic slightly to allow non-path escaped refs
in compare urls that use the `...` syntax:
previously only this worked:
/compare/master/sl%2Fuvpzuszrulvq
/compare/master...sl%2Fuvpzuszrulvq
with this patch:
/compare/master/sl%2Fuvpzuszrulvq
/compare/master...sl%2Fuvpzuszrulvq
/compare/master...sl/uvpzuszrulvq (new)
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>
Signed-off-by: Seongmin Lee <git@boltless.me>
Obviously file naming of appview/web/handler/*.go files are directly
against to go convention. Though I think flattening all handler files
can significantly reduce the effort involved in file naming and
structuring. We are already grouping core services by domains, and doing
same for web handers is just over-complicating.
```
- appview/web/routes.go : define all web page routes
- appview/web/middleware.go : define middlewares related to web routes
- appview/web/handler/*.go : http handlers, named as path pattern
- appview/service/* : domain-level services
```
Each handlers are pure by receiving all required dependencies as
parameters. Ideally we should not pass base dependencies like `db`, but
that's how it works for now.
Now we can test:
- http handlers with mocked services/renderer
- internal service logic without http handlers
Signed-off-by: Seongmin Lee <git@boltless.me>
in smaller views of a commit, such as logs, only the profile pictures of
coauthors are shown, and the lead author's identity is suffixed with a
"+ N" to indicate co-authors.
in larger views of a commit, such as the commit view, the authors and
the committer are explicitly laid out, DIDs are resolved where possible
and shown alongside profile pictures.
Signed-off-by: oppiliappan <me@oppi.li>
currently all backlinks are parsed with markdown parser.
So only explict urls like below are supported:
- <https://tangled.org/owner.com/repo-name/issues/123>
- [full url](https://tangled.org/owner.com/repo-name/issues/123)
- [absolute path](/owner.com/repo-name/issues/123)
Also `#comment-123` fragment is supported too.
All references in issue/pull/comment records are stored in at-uri
format. we do have a `mentions` field, but it isn't used yet. mentions
are parsed on rendering and aren't stored anywhere for now.
Signed-off-by: Seongmin Lee <git@boltless.me>
Storing references parsed from the markdown body in atproto record and
DB. There can be lots of reference types considering the from/to types
so storing both as AT-URIs
Using `sql.Tx` more to combine multiple DB query to single recoverable
operation.
Note: Pulls don't have mentinos/references yet
Signed-off-by: Seongmin Lee <git@boltless.me>
On timeline, if there is multiple cards for same repository including a
star button, when user star/unstar the repository, only first `#starBtn`
is swapped with new button.
This can be fixed by adding `data-star-subject-at` attr to identify all
star buttons related to same repository and use `hx-swap-oob` to replace
all of them.
Signed-off-by: Seongmin Lee <git@boltless.me>
- rename `starred_by_did` column to `did`
- rename `repo_at` column to `subject_at` and removed foreign key
constraints.
- rename `RepoAt` field to `SubjectAt`
- remove `Repo` field and split `models.Star` to `RepoStar` and
`StringStar` as now there can be two kinds of reverse mappings.
Signed-off-by: Seongmin Lee <git@boltless.me>
Signed-off-by: oppiliappan <me@oppi.li>
this changes the routing logic slightly to allow non-path escaped refs
in compare urls that use the `...` syntax:
previously only this worked:
/compare/master/sl%2Fuvpzuszrulvq
/compare/master...sl%2Fuvpzuszrulvq
with this patch:
/compare/master/sl%2Fuvpzuszrulvq
/compare/master...sl%2Fuvpzuszrulvq
/compare/master...sl/uvpzuszrulvq (new)
Signed-off-by: oppiliappan <me@oppi.li>