|
1 | | -<br /> |
2 | | -<div align="center"> |
3 | | - <a href="https://github.com/finos/git-proxy"> |
4 | | - <img src="./docs/img/logo.png" alt="Logo" height="95"> |
5 | | - </a> |
6 | | - |
7 | | - <br /> |
8 | | - <br /> |
9 | | - |
10 | | - <p align="center"> |
11 | | - Deploy custom push protections and policies<br />on top of Git |
12 | | - <br /> |
13 | | - <br /> |
14 | | - <br /> |
15 | | - <a href="https://git-proxy.finos.org">Docs</a> |
16 | | - · |
17 | | - <a href="https://www.finos.org/hubfs/Projects%20%2B%20SIGs/Open%20Source%20Readiness%20OSR/OSR%20Meeting_%20GitProxy%20Jamie%20Slome%20Citi%20Presentation.mp4#t=496">Demo</a> |
18 | | - · |
19 | | - <a href="https://github.com/finos/git-proxy/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=">Report a bug</a> |
20 | | - · |
21 | | - <a href="https://github.com/finos/git-proxy/issues/new?assignees=&labels=&projects=&template=feature_request.md&title=">Suggest a new feature</a> |
22 | | - </p> |
| 1 | +# GitProxy v1.1.0 |
23 | 2 |
|
24 | | - <br /> |
25 | | - |
26 | | -[](https://community.finos.org/docs/governance/lifecycle-stages/graduated) |
27 | | -[](https://www.npmjs.com/package/@finos/git-proxy) |
28 | | -[](https://github.com/finos/git-proxy/actions/workflows/ci.yml) |
29 | | -[](https://codecov.io/gh/finos/git-proxy) |
30 | | -[](https://git-proxy.finos.org) |
31 | | -<br /> |
32 | | -[](https://github.com/finos/git-proxy/blob/main/LICENSE) |
33 | | -[](https://github.com/finos/git-proxy/graphs/contributors) |
34 | | -[](https://app.slack.com/client/T01E7QRQH97/C06LXNW0W76) |
35 | | -[](https://api.securityscorecards.dev/projects/github.com/finos/git-proxy) |
36 | | -[](https://www.bestpractices.dev/projects/10520) |
37 | | - |
38 | | -</div> |
39 | | -<br /> |
40 | | - |
41 | | -## What is GitProxy |
42 | | - |
43 | | -GitProxy is an application that stands between developers and a Git remote endpoint (e.g., `github.com`). It applies rules and workflows (configurable as `plugins`) to all outgoing `git push` operations to ensure they are compliant. |
44 | | - |
45 | | -The main goal of GitProxy is to marry the defacto standard Open Source developer experience (git-based workflow of branching out, submitting changes and merging back) with security and legal requirements that firms have to comply with, when operating in highly regulated industries like financial services. |
46 | | - |
47 | | -That said, GitProxy can also be used on a local environment to enforce a single developer's best practices, which tends to be the easiest setup to start with and the most comfortable one to build new GitProxy plugins. |
48 | | - |
49 | | -```mermaid |
50 | | -sequenceDiagram |
51 | | - actor Developer |
52 | | - Developer->>+Git Server: git clone |
53 | | - Developer->>Workstation: git remote add proxy <proxy-server> |
54 | | - Developer->>+GitProxy: git push proxy |
55 | | - GitProxy-->>-Developer: Failed license check |
56 | | - Developer->>Workstation: git commit -m 'fix license issue' |
57 | | - Developer->>+GitProxy: git push |
58 | | - GitProxy-->>-Git Server: Approved |
59 | | -``` |
60 | | - |
61 | | -## Getting Started 🚀 |
62 | | - |
63 | | -Install & run git-proxy (requires [Nodejs](https://nodejs.org/en/download/)): |
64 | | - |
65 | | -```bash |
66 | | -$ npx -- @finos/git-proxy |
67 | | -``` |
68 | | - |
69 | | -Clone a repository, set the remote to the GitProxy URL and push your changes: |
70 | | - |
71 | | -```bash |
72 | | -# Only HTTPS cloning is supported at the moment, see https://github.com/finos/git-proxy/issues/27. |
73 | | -$ git clone https://github.com/octocat/Hello-World.git && cd Hello-World |
74 | | -# The below command is using the GitHub official CLI to fork the repo that is cloned. |
75 | | -# You can also fork on the GitHub UI. For usage details on the CLI, see https://github.com/cli/cli |
76 | | -$ gh repo fork |
77 | | -✓ Created fork yourGithubUser/Hello-World |
78 | | -... |
79 | | -$ git remote add proxy http://localhost:8000/yourGithubUser/Hello-World.git |
80 | | -# This fetches the repository's default branch and pushes it (https://stackoverflow.com/a/44750379). |
81 | | -$ git push proxy $(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@') |
82 | | -``` |
83 | | - |
84 | | -Using the default configuration, GitProxy intercepts the push and _blocks_ it. To enable code pushing to your fork via GitProxy, add your repository URL into the GitProxy config file (`proxy.config.json`). For more information, refer to [our documentation](https://git-proxy.finos.org). |
85 | | - |
86 | | -## Documentation |
87 | | - |
88 | | -For detailed step-by-step instructions for how to install, deploy & configure GitProxy and |
89 | | -customize for your environment, see the [project's documentation](https://git-proxy.finos.org/docs/): |
90 | | - |
91 | | -- [Quickstart](https://git-proxy.finos.org/docs/category/quickstart/) |
92 | | -- [Installation](https://git-proxy.finos.org/docs/quickstart/installation) |
93 | | -- [Configuration](https://git-proxy.finos.org/docs/category/configuration) |
94 | | -- [Contributing](https://git-proxy.finos.org/docs/development/contributing) |
95 | | -- [Testing](https://git-proxy.finos.org/docs/development/testing) |
96 | | - |
97 | | -## Contributing |
98 | | - |
99 | | -Your contributions are at the core of making this a truly open source project. Any contributions you make are **greatly appreciated**. See [`CONTRIBUTING.md`](CONTRIBUTING.md) for more information. |
100 | | - |
101 | | -## Security |
102 | | - |
103 | | -If you identify a security vulnerability in the codebase, please follow the steps in [`SECURITY.md`](https://github.com/finos/git-proxy/security/policy). This includes logic-based vulnerabilities and sensitive information or secrets found in code. |
104 | | - |
105 | | -## Code of Conduct |
106 | | - |
107 | | -We are committed to making open source an enjoyable and respectful experience for our community. See [`CODE_OF_CONDUCT`](CODE_OF_CONDUCT.md) for more information. |
108 | | - |
109 | | -## License |
110 | | - |
111 | | -This project is distributed under the Apache-2.0 license. See [`LICENSE`](LICENSE) for more information. |
112 | | - |
113 | | -## Contact |
114 | | - |
115 | | -Drop a note, ask a question or just say hello in our community Slack channel, which is accessible via the [FINOS Slack Workspace](https://finos-lf.slack.com) 👋 |
116 | | - |
117 | | -If you can't access Slack, you can also [subscribe to our mailing list](mailto:git-proxy+subscribe@lists.finos.org) 📨 |
118 | | - |
119 | | -Otherwise, if you have a deeper query or require more support, please [raise an issue](https://github.com/finos/git-proxy/issues) 🧵 |
120 | | - |
121 | | -🤝 Join our [fortnightly Zoom meeting](https://zoom-lfx.platform.linuxfoundation.org/meeting/95849833904?password=99413314-d03a-4b1c-b682-1ede2c399595) on Monday, 4PM BST (odd week numbers). |
122 | | -🌍 [Convert to your local time](https://www.timeanddate.com/worldclock) |
123 | | -📅 [Click here](https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MTRvbzM0NG01dWNvNGc4OGJjNWphM2ZtaTZfMjAyNTA2MDJUMTUwMDAwWiBzYW0uaG9sbWVzQGNvbnRyb2wtcGxhbmUuaW8&tmsrc=sam.holmes%40control-plane.io&scp=ALL) for the recurring Google Calendar meeting invite. Alternatively, send an e-mail to [help@finos.org](https://zoom-lfx.platform.linuxfoundation.org/meeting/95849833904?password=99413314-d03a-4b1c-b682-1ede2c399595#:~:text=Need-,an,-invite%3F) to get a calendar invitation. |
| 3 | +Testing GitLabFlow branching strategy. This should automatically create a draft setting the project to `v1.1.0`. |
0 commit comments