Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -260,3 +260,7 @@ dist
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Docusaurus website
website/build
website/.docusaurus
10 changes: 10 additions & 0 deletions docs/home.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
id: home
title: Homepage
---

Welcome to Git Proxy !

Browse from the pages on the left sidebar to know more about the project.

This website is work in progress; more docs will come up soon.
18 changes: 18 additions & 0 deletions docs/roadmap.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
id: roadmap
title: Roadmap
---

1. Consolidate Citi codebase, code and (default) configuration
1. Preserve backward compatibility with existing configuration/extension mechanism
2. Easy way to run with default/existing configuration - Thomas/mao to confirm
2. Design OPA integration
3. Read configuration
1. From a provided file
2. [other options]
4. Software level modularity
1. Enable extension points via package.json dependencies
2. Explore option to expose http(s) endpoints to communicate with extension points
5. Cloud Native
1. Run git-proxy in a container / k8s
2. Run extensions in a container / k8s
11 changes: 11 additions & 0 deletions docs/team.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
id: team
title: Team
---

This is the Git Proxy maintainers team:
1. Jamie Slome (Citi) - Project Lead
2. Thomas Cooper (RBC)
3. Maurizio Pillitu (FINOS)

Hers's the [full list of contributors](https://github.com/finos/git-proxy/graphs/contributors).
1 change: 1 addition & 0 deletions website/.npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
legacy-peer-deps=true
26 changes: 26 additions & 0 deletions website/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
This website was created with [Docusaurus v2](https://v2.docusaurus.io/).

In order to start working with Docusaurus, please read the [Getting Started guide](https://docusaurus.io/docs/configuration) and browse through the following folders and files:
- `website` - contains the Node/React code to build the website
- `website/docusaurus.config.js` - contains the Docusaurus configuration; you'll need to edit this file.
- `website/static` - contains images, PDF and other static assets used in the website; if you add a `file.pdf` in this folder, it will be served as `https://<your_host>/file.pdf`.
- `docs` - contains the `.md` and `.mdx` files that are served as `https://<your_host>/<file_id>` ; the `file_id` is defined at the top of the file.

## Local run

Running Docusaurus locally is very simple, just follow these steps:
- Make sure `node` version is 14 or higher, using `node -v` ; you can use [nvm](https://github.com/nvm-sh/nvm) to install different node versions in your system.
- `cd website ; npm install ; npm run start`

The command should open your browser and point to `http://localhost:3000`.

## Deployment

[Netlify] (https://www.netlify.com/) is the default way to serve FINOS websites publicly. Find docs [here] (https://docs.netlify.com/configure-builds/get-started/).

You can configure Netlify using your own GitHub account, pointing to a personal repository (or fork); when adding a new site, please use the following configuration:
- Woeking directory: `website`
- Build command: `yarn build`
- Build directory: `website/build`

If you want to serve your website through `https://<project_name>.finos.org`, please email [help@finos.org](mailto:help@finos.org). To check a preview, visit https://project-blueprint.finos.org .
124 changes: 124 additions & 0 deletions website/docusaurus.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
// Docs at https://v2.docusaurus.io/docs/configuration

// Replace 'project-blueprint' with {project name}
const projectName = 'Git Proxy';
// Replace 'project-blueprint' with {project name}
const projectSlug = 'git-proxy';
// Replace 'FINOS' with {name of copyright owner}
const copyrightOwner = 'FINOS';
const year = new Date().getFullYear();

module.exports = {
title: `${projectName}`,
tagline: `Enforce push protections and auditability for Git repositories`,
url: 'https://finos.org',
baseUrl: '/',
favicon: 'img/favicon/favicon-finos.ico',
projectName: `${projectName}`,
organizationName: 'FINOS',
customFields: {
repoUrl: `https://github.com/finos/${projectSlug}`,
},
scripts: ['https://buttons.github.io/buttons.js'],
stylesheets: [
'https://fonts.googleapis.com/css?family=Overpass:400,400i,700',
],
themeConfig: {
colorMode: {
disableSwitch: true,
},
navbar: {
title: `${projectName}`,
logo: {
alt: 'FINOS Logo',
src: 'img/favicon/favicon-finos.ico',
},
items: [
{ to: 'docs/home', label: 'Docs', position: 'right' },
{ to: 'docs/roadmap', label: 'Roadmap', position: 'right' },
{ to: 'docs/team', label: 'Team', position: 'right' },
{
href: 'https://github.com/finos/git-proxy',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
copyright: `Copyright © ${year} ${projectName} - ${copyrightOwner}`,
logo: {
alt: 'FINOS Logo',
src: 'img/favicon/favicon-finos.ico',
href: 'https://finos.org',
},
links: [
{
title: 'Docs',
items: [
{
label: 'Getting Started',
to: 'docs/home',
},
{
label: 'Roadmap',
to: 'docs/roadmap',
},
{
label: 'Team',
to: 'docs/team',
},
],
},
{
title: 'FINOS',
items: [
{
label: 'FINOS Website',
to: 'https://www.finos.org/',
},
{
label: 'Community Handbook',
to: 'https://community.finos.org/',
},
{
label: 'Community Governance',
to: 'https://community.finos.org/docs/governance/#community-governance',
},
],
},
{
title: 'About FINOS',
items: [
{
label: 'FINOS Projects on GitHub',
to: 'https://github.com/finos',
},
{
label: 'Engage the FINOS Community',
to: 'https://www.finos.org/engage-with-our-community',
},
{
label: 'FINOS News and Events',
to: 'https://www.finos.org/news-and-events',
},
],
},
],
},
},
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
path: '../docs',
editUrl: 'https://github.com/finos/git-proxy/edit/master/website/',
sidebarPath: require.resolve('./sidebars.js'),
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
},
],
],
};
34 changes: 34 additions & 0 deletions website/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"scripts": {
"docusaurus": "docusaurus",
"deploy": "docusaurus deploy",
"serve": "docusaurus serve",
"clear": "docusaurus clear",
"start": "docusaurus start",
"swizzle": "docusaurus swizzle",
"build": "docusaurus build",
"publish-gh-pages": "docusaurus deploy"
},
"dependencies": {
"@docusaurus/core": "^2.4.1",
"@docusaurus/preset-classic": "^2.4.1",
"classnames": "^2.2.6",
"clsx": "^1.1.1",
"eslint": "^8.0.0",
"eslint-plugin-react": "^7.23.2",
"react": "^18.0.0",
"react-dom": "^18.0.0"
},
"browserslist": {
"production": [
">0.5%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
5 changes: 5 additions & 0 deletions website/sidebars.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
mainSidebar: {
'Main Menu': ['home', 'team', 'roadmap'],
},
};
35 changes: 35 additions & 0 deletions website/src/components/feature-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import React from 'react';

export const features = [
{
title: <>Fully customizable</>,
imageUrl: '/img/toggles.png',
description: (
<>
Using a modular and pluggable configuration, Git Proxy allows to define
manual and automatic approval workflows.
</>
),
},
{
title: <>Store and forward</>,
imageUrl: '/img/fast-forward.png',
description: (
<>
Git Proxy can store developers git operations while waiting for
approval, then forward it without the need of developer&rsquo;s
intervention.
</>
),
},
{
title: <>Share configurations</>,
imageUrl: '/img/share.png',
description: (
<>
Share and reuse Git Proxy configurations across firms and individuals,
by simply pointing to the extension plugins
</>
),
},
];
89 changes: 89 additions & 0 deletions website/src/components/feature.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import React from 'react';
import classnames from 'classnames';
import useBaseUrl from '@docusaurus/useBaseUrl';
import styles from '../pages/styles.module.css';
import PropTypes from 'prop-types';

/**
* Feature page component
* @param {*} props
* @return {JSX.Element}
*/
export default function Feature({
imageUrl,
title,
description,
about,
project,
involved,
}) {
// add prop validation
Feature.propTypes = {
imageUrl: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
description: PropTypes.string.isRequired,
about: PropTypes.shape({
title: PropTypes.string.isRequired,
link: PropTypes.string.isRequired,
}),
project: PropTypes.shape({
title: PropTypes.string.isRequired,
link: PropTypes.string.isRequired,
}),
involved: PropTypes.shape({
title: PropTypes.string.isRequired,
link: PropTypes.string.isRequired,
}),
};
const imgUrl = useBaseUrl(imageUrl);

const defined = function (property) {
return typeof property !== 'undefined';
};

return (
<div
className={classnames('text--center col col--4 padding', styles.feature)}
>
{imgUrl && (
<div>
<img className={styles.featureImage} src={imgUrl} alt={title} />
</div>
)}
<h3>{title}</h3>
<p>{description}</p>
<div className={classnames(styles.featureCTA)}>
{defined(about) &&
defined(about.title) &&
defined(about.link) &&
about.link !== '' && (
<ul>
<li>
<a href={about.link}>{about.title}</a>
</li>
</ul>
)}
{defined(project) &&
defined(project.title) &&
defined(project.link) &&
project.link !== '' && (
<ul>
<li>
<a href={project.link}>{project.title}</a>
</li>
</ul>
)}
{defined(involved) &&
defined(involved.title) &&
defined(involved.link) &&
involved.link !== '' && (
<ul>
<li>
<a href={involved.link}>{involved.title}</a>
</li>
</ul>
)}
</div>
</div>
);
}
Loading