| Commit message (Collapse) | Author | Files |
|
Adds a `-templates` flag that can be used to provide
an alternative directory with templates for Sally to use.
The new templates override the default set embedded in Sally.
This includes a new 404 template so that 404 errors
use the same theme as the rest of the website.
Additionally, for HTTP status >400,
this also sets the Cache-Control header
to discourage CDNs like Cloudflare from caching the page.
Resolves #125, #18
|
|
Adds support to other VCS systems as per the specification.
Defaults to `git` for backwards compatibility.
Renames the internally used `.GitURL` to `.RepoURL` for clarity.
|
|
<details>
<summary>Background</summary>
Sally renders two kinds of pages:
- packages: These are for packages defined in sally.yaml
and any route under the package path.
- indexes: These list available packages.
The latter--indexes was previously only supported at '/', the root page.
This leads to a slight UX issue:
if you have a package with a / in its name (e.g. net/metrics):
- example.com/net/metrics gives you the package page
- example.com/ lists net/metrics
- However, example.com/net fails with a 404
</details>
This adds support for index pages on all parents of package pages.
Therefore, if example.com/net/metrics exists,
example.com/net will list all packages defined under that path.
Resolves #31
|
|
* Remove branch from PackageConfig struct
With #92, branch is no longer necessary from PackageConfig
struct since go-source tag was removed.
This removes Branch field from PackageConfig.
* update README
|
|
* update: removing redundant go-source tag
* fix: removing /.idea and adding dir to gitignore
* fix: removing /.idea and removing branch field from from templateData
* fix: pkgHndler defaultBranch rem revert
* fix: minor typo
* fix: removing assertion of template responses
* fix: tabs
* Update handler_test.go
* Update handler_test.go
* Update handler_test.go
---------
Co-authored-by: Anuragkillswitch <70265851+Anuragkillswitch@users.noreply.github.com>
|
|
Similar to the previous patch,
this patch removes knowledge of the configuration from the index handler.
Instead, the index handler is now passed a list of packageInfo structs
each containing just the information needed to render the index page.
This also obviates the need to duplicate the logic to compute
the package import path in the index.html template.
|
|
This patch removes the need to retain the configuration in the
packageHandler struct.
Instead, it retains only the fields that are required for the
handler to function.
This also allows us to pre-compute the canonical import path
rather than calculating it on the request path.
|
|
Renames the Package struct to PackageConfig
to make it clear that it is a configuration struct.
This differentiation will help disconnect
the configuration-level representation
from the runtime representation of this information.
This patch also adds documentation to the config package
that was previously missing.
|
|
This drops the third-party HTTP router dependency.
This dependency wasn't strictly necessary
since our routing needs are quite basic:
- `/$name` and `/$name/*` for all registered packages
- `/` for root
This is easily accomplished with `http.ServeMux`:
- register `/$name` and `/$name/`.
The latter will receive all subpackage requests.
- register `/` and reject anything that isn't for exactly `/`.
|
|
Sally accepts the base vanity URL (e.g. `go.uber.org`) in a top-level
`url` key. This applies to all packages listed in the configuration.
Add support for overriding the `url` on a per-package basis.
This will provide for an easier transition period when migrating Go
packages of an organization between hosts, for example from BitBucket
to GitHub.
With this, source code can be modified across the various
repositories over time to use the new vanity URL. For example, some
packages will use a URL of bitbucketurl.org and some will use
mycoolgoimportvanity.org in their source code imports.
Other than the use-case outlined above, this feature adds flexibility
to the vanity server to support more than one vanity URL when used
behind an ingress controller.
|
|
Go 1.16 includes a `//go:embed` directive that obviates the need for
bindata. Use `//go:embed` instead of bindata for templates used in
sally.
Signed-off-by: Luciano Nooijen <luciano@bytecode.nl>
Co-authored-by: Abhinav Gupta <abg@uber.com>
|
|
Support specifying the branch from which source will be served in
the YAML configuration.
|
|
This adds the ability to change the godoc.org instance used by Sally to
link to documentation by providing a new `godoc` section in the
configuration.
|
|
This uses go-bindata/go-bindata to bundle the template in the binary.
I also realized that the handler test was now broken because we were
checking the exact contents of the index page in the test. This change
fixes that too.
|
|
|
|
|
|
|