├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── Bug_report.md │ ├── Feature_request.md │ ├── Glossary.md │ ├── Meeting.md │ └── Support_question.md └── workflows │ └── meetings.yml ├── .gitignore ├── LICENSE ├── LICENSE.spdx ├── NOTICE ├── README.md ├── docs ├── about-finos.md ├── home.mdx └── working-groups │ ├── _category_.yaml │ ├── acm.mdx │ ├── archived │ ├── _category_.yaml │ ├── aasc.mdx │ └── osssc.mdx │ ├── backstage.mdx │ └── eas.mdx ├── netlify.toml ├── package-lock.json ├── renovate.json └── website ├── .npmrc ├── README.md ├── docusaurus.config.js ├── package.json ├── src ├── components │ ├── feature-config.js │ ├── feature.js │ ├── featuresTwo-config.js │ └── featuresTwo.js ├── css │ └── custom.css ├── pages │ ├── index.js │ └── styles.module.css └── theme │ ├── Bio │ ├── index.js │ └── styles.module.css │ └── MDXComponents │ └── index.js └── static ├── css └── custom.css └── img ├── devops-automation ├── logo-blk.svg ├── logo-wht.svg └── logo.svg ├── favicon └── favicon-finos.ico ├── finos ├── finos-blue.png ├── finos-white.png └── finos.png └── vendors ├── github-800.png ├── github-logo.png └── github.png /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct for finos/devops-automation 2 | 3 | Please see the [Community Code of Conduct](https://www.finos.org/code-of-conduct). 4 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to finos/devops-automation 2 | 3 | finos/devops-automation is [Apache 2.0 licensed](LICENSE) and accepts contributions via git pull requests. Each commit must include a DCO line in the git commit message: 4 | 5 | `Signed-off-by: GitHub User Name ` 6 | 7 | This sign-off means you agree the commit satisfies the 8 | [Developer Certificate of Origin (DCO).](https://developercertificate.org/) 9 | 10 | ## Contributing Issues 11 | 12 | ### Prerequisites 13 | 14 | * [ ] Have you [searched for duplicates](https://github.com/finos-labs/{project name}/issues?utf8=%E2%9C%93&q=)? A simple search for exception error messages or a summary of the unexpected behaviour should suffice. 15 | * [ ] Are you running the latest version? 16 | * [ ] Are you sure this is a bug or missing capability? 17 | 18 | ### Raising an Issue 19 | * Create your issue [here](https://github.com/finos-labs/{project name}/issues/new). 20 | * New issues contain two templates in the description: bug report and enhancement request. Please pick the most appropriate for your issue, **then delete the other**. 21 | * Please also tag the new issue with either "Bug" or "Enhancement". 22 | * Please use [Markdown formatting](https://help.github.com/categories/writing-on-github/) 23 | liberally to assist in readability. 24 | * [Code fences](https://help.github.com/articles/creating-and-highlighting-code-blocks/) for exception stack traces and log entries, for example, massively improve readability. 25 | 26 | ## Contributing Pull Requests (Code & Docs) 27 | To make review of PRs easier, please: 28 | 29 | * Please make sure your PRs will merge cleanly - PRs that don't are unlikely to be accepted. 30 | * For code contributions, follow the existing code layout. 31 | * For documentation contributions, follow the general structure, language, and tone of the [existing docs](https://github.com/finos-labs/{project name}/wiki). 32 | * Keep commits small and cohesive - if you have multiple contributions, please submit them as independent commits (and ideally as independent PRs too). 33 | * Reference issues if your PR has anything to do with an issue (even if it doesn't address it). 34 | * Minimise non-functional changes (e.g. whitespace). 35 | * Ensure all new files include a header comment block containing the [Apache License v2.0 and your copyright information](http://www.apache.org/licenses/LICENSE-2.0#apply). 36 | * If necessary (e.g. due to 3rd party dependency licensing requirements), update the [NOTICE file](https://github.com/finos/{project name}/blob/master/NOTICE) with any new attribution or other notices 37 | 38 | 39 | ### Commit and PR Messages 40 | 41 | * **Reference issues, wiki pages, and pull requests liberally!** 42 | * Use the present tense ("Add feature" not "Added feature") 43 | * Use the imperative mood ("Move button left..." not "Moves button left...") 44 | * Limit the first line to 72 characters or less 45 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🐛 Bug Report 3 | about: If something isn't working as expected 🤔 4 | 5 | --- 6 | 7 | ## Bug Report 8 | 9 | ### Steps to Reproduce: 10 | 1. ...step 1 description... 11 | 2. ...step 2 description... 12 | 3. ...step 3 description... 13 | 14 | ### Expected Result: 15 | ...description of what you expected to see... 16 | 17 | ### Actual Result: 18 | ...what actually happened, including full exceptions (please include the entire stack trace, including "caused by" entries), log entries, screen shots etc. where appropriate... 19 | 20 | ### Environment: 21 | ...version and build of the project, OS and runtime versions, virtualised environment (if any), etc. ... 22 | 23 | ### Additional Context: 24 | ...add any other context about the problem here. If applicable, add screenshots to help explain... 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🚀 Feature Request 3 | about: I have a suggestion (and may want to implement it 🙂) 4 | 5 | --- 6 | 7 | ## Feature Request 8 | 9 | ### Description of Problem: 10 | ...what *problem* are you trying to solve that the project doesn't currently solve? 11 | 12 | ...please resist the temptation to describe your request in terms of a solution. Job Story form ("When [triggering condition], I want to [motivation/goal], so I can [outcome].") can help ensure you're expressing a problem statement. 13 | 14 | ### Potential Solutions: 15 | ...clearly and concisely describe what you want to happen. Add any considered drawbacks. 16 | 17 | ... if you've considered alternatives, clearly and concisely describe those too. 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Glossary.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 📕 Glossary Definition 3 | about: Create a proposal to add a new definition to the Architecture as Code Glossary 4 | labels: architecture-as-code, glossary 5 | --- 6 | ## Architecture as Code: Glossary Definition 7 | Please see [Architecture as Code: Glossary Definition](https://github.com/finos/devops-automation/issues/121) for details on how to help with this definition. 8 | 9 | ### Title 10 | ...in as few words as possible what is the glossary item you will define 11 | 12 | ### Definition 13 | ...proposed definition, please keep this as succinct as possible whilst ensuring you have thought about edge cases. 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🤝 DevOps Automation Meeting Agenda 3 | about: To track DevOps Automation meeting agenda and attendance 4 | --- 5 | 6 | ## Date 7 | 8 | _day-of-week_ DD MMM yyyy - _time_ EST / _time_ UK 9 | 10 | ## Untracked attendees 11 | 12 | | Name | Firm | Comment | 13 | | :--- | :--- | :------ | 14 | 15 | ## Meeting notices 16 | - FINOS **Project leads** are responsible for observing the FINOS guidelines for [running project meetings](https://community.finos.org/docs/governance/meeting-procedures/). Project maintainers can find additional resources in the [FINOS Maintainers Cheatsheet](https://community.finos.org/docs/finos-maintainers-cheatsheet). 17 | 18 | - **All participants** in FINOS project meetings are subject to the [LF Antitrust Policy](https://www.linuxfoundation.org/antitrust-policy/), the [FINOS Community Code of Conduct](https://community.finos.org/docs/governance/code-of-conduct) and all other [FINOS policies](https://community.finos.org/docs/governance/#policies). 19 | 20 | - FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact legal@finos.org with any questions. 21 | 22 | - FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available. 23 | 24 | ## Agenda 25 | 26 | - [ ] Convene, roll call, welcome new people 27 | - [ ] Approve previous meeting minutes 28 | - [ ] Review DevOps SIG [project board](https://github.com/orgs/finos/projects/33) 29 | - [ ] _Add Items Here_ 30 | - [ ] AOB, Q&A & Adjourn (5mins) 31 | 32 | ## Decisions Made 33 | 34 | - [ ] Decision 1 35 | - [ ] Decision 2 36 | - [ ] ... 37 | 38 | ## Action Items 39 | 40 | - [ ] Action 1 41 | - [ ] Action 2 42 | - [ ] ... 43 | 44 | ### Zoom info 45 | 46 | **Join Zoom Meeting** 47 | - https://zoom.us/j/94904595244 48 | - Meeting ID: 949 0459 5244 49 | - Passcode: 545224 50 | - Find your local number: https://zoom.us/u/aesEqmNODb 51 | 52 | **Github Repo:** https://github.com/finos/devops-automation/ 53 | 54 | **Project Board:** https://github.com/orgs/finos/projects/33 55 | 56 | **Mailing List:** Email devops-mutualization+subscribe@finos.org to subscribe to our mailing list 57 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Support_question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🤗 Support Question 3 | about: If you have a question about configuration, usage, etc. 💬 4 | 5 | --- 6 | 7 | ## Support Question 8 | 9 | ...ask your question here. 10 | 11 | ...be sure to search existing issues since someone might have already asked something similar. 12 | -------------------------------------------------------------------------------- /.github/workflows/meetings.yml: -------------------------------------------------------------------------------- 1 | name: meeting-minutes-action 2 | 3 | 4 | # This GitHub action is used to manage meeting minutes via GitHub Issues: 5 | # - The issue description contains minutes and other meeting meta info (see .github/ISSUE_TEMPLATE/Meeting.md) 6 | # - Issue commenters are tracked as meetings attendants, and (eventually, not real time) published on metrics.finos.org 7 | # 8 | # When an issue (with "meeting" label) is closed, this action 9 | # collects the issue commenters and uses FINOS metadata-tool to generate a CSV 10 | # file with meeting attendance, which can be submitted for later ingestion and 11 | # final publication into metrics.finos.org . After successful submission, 12 | # the "indexed" label will be added to the issue. 13 | # 14 | # When the "indexed" label is removed, entries will be removed from the index, 15 | # allowing to amend attendance after the meeting; by re-adding the "indexed", entries will be added again to the index. 16 | # 17 | # The date of the meeting is extracted from the date that the issue was closed, therefore: 18 | # - Do not apply the "indexed" label if the issue is not closed 19 | # - Only close the issue once, during (or right after) the meeting, regardless of issue contents/comments; use the "indexed" label to trigger a reindexing later on 20 | # 21 | # To run this action, you'll need the following secrets defined in https://github.com/finos//settings/secrets : 22 | # - FINOS_TOKEN 23 | # - GIT_CSV_TOKEN 24 | # 25 | # Email help@finos.org to setup the secrets in your repository. 26 | # 27 | # Note. There's a thread regarding org level secrets in GitHub, which may avoid the secret configuration step - https://github.community/t5/GitHub-Actions/Secrets-on-Team-and-Organization-level/td-p/29745 28 | on: 29 | issues: 30 | types: [closed,labeled,unlabeled] 31 | 32 | env: 33 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 34 | FINOS_TOKEN: ${{ secrets.FINOS_TOKEN }} 35 | GIT_CSV_USER_EMAIL: infra@finos.org 36 | GIT_CSV_USER_NAME: "FINOS Admin" 37 | GIT_CSV_USER: "finos-admin" 38 | GIT_CSV_TOKEN: ${{ secrets.GIT_CSV_TOKEN }} 39 | GIT_CSV_HOST: "gitlab.com" 40 | GIT_CSV_ORG: "finos-admin" 41 | GIT_CSV_REPO: sources 42 | GIT_CSV_BRANCH: master 43 | REPO_NAME: ${{ github.event.repository.name }} 44 | ORG_NAME: ${{ github.event.repository.owner.login }} 45 | MEETING_DATE: ${{ github.event.issue.closed_at }} 46 | ASSIGNEES: ${{ join(github.event.issue.assignees.*.login, ', ') }} 47 | ISSUE_NUMBER: ${{ github.event.issue.number }} 48 | ACTION: ${{ github.event.action }} 49 | 50 | jobs: 51 | submit-meeting-attendance: 52 | # Only run the job if the issue contains a `meeting` label AND either the event is `Issue Closed` OR the label been added/removed is `indexed` 53 | if: contains(github.event.issue.labels.*.name, 'meeting') && (github.event.action == 'closed' || github.event.label.name == 'indexed') 54 | runs-on: ubuntu-latest 55 | steps: 56 | - name: Checking out metadata-tool 57 | uses: actions/checkout@v2 58 | with: 59 | repository: 'finos/metadata-tool' 60 | path: 'metadata-tool' 61 | - name: Checking out FINOS metadata 62 | run: git clone https://finos-admin:$FINOS_TOKEN@github.com/finos-admin/metadata.git >/dev/null 63 | - name: Downloading github-finos-meetings.csv 64 | run: curl -s https://raw.githubusercontent.com/finos/open-developer-platform/master/scripts/checkout-meeting-attendance.sh | bash 65 | - name: Checkout metadata dependencies 66 | run: cd metadata-tool ; lein deps 67 | - name: Generating a new github-finos-meetings.csv 68 | run: curl -s https://raw.githubusercontent.com/finos/open-developer-platform/master/scripts/generate-meeting-attendance.sh | bash 69 | - name: Pushing github-finos-meetings.csv changes to Git 70 | run: curl -s https://raw.githubusercontent.com/finos/open-developer-platform/master/scripts/submit-meeting-attendance.sh | bash 71 | - name: Check unknowns 72 | if: github.event.action == 'closed' || (github.event.action == 'labeled' && github.event.label.name == 'indexed') 73 | run: | 74 | if [ -f "metadata-tool/github-finos-meetings-unknowns.txt" ]; then 75 | UNKNOWNS=`cat metadata-tool/github-finos-meetings-unknowns.txt` 76 | ISSUE_CONTENT="Couldn't find the following GitHub usernames on file: ${UNKNOWNS} . /CC @agitana @maoo @mcleo-d" 77 | echo "UNKNOWNS_COMMENT=${ISSUE_CONTENT}" >> $GITHUB_ENV 78 | echo "Posting message as comment: ${UNKNOWNS_COMMENT}" 79 | fi 80 | - name: Report unknowns on issue comment 81 | if: (github.event.action == 'closed' || (github.event.action == 'labeled' && github.event.label.name == 'indexed')) && env.UNKNOWNS_COMMENT != '' 82 | uses: peter-evans/create-or-update-comment@v1 83 | with: 84 | token: ${{ secrets.GITHUB_TOKEN }} 85 | issue-number: ${{ github.event.issue.number }} 86 | body: "${{ env.UNKNOWNS_COMMENT }}" 87 | - name: Add label 'indexed' to issue 88 | if: github.event.action == 'closed' 89 | run: | 90 | curl -v -u admin:${{ secrets.GITHUB_TOKEN }} -H "Accept: application/vnd.github.antiope-preview+json" -d '{"labels": ["indexed"]}' ${{ github.event.issue.url }}/labels 91 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | # Docusaurus generated folders 4 | website/translated_docs/ 5 | website/build/ 6 | website/i18n/ 7 | 8 | # Yarn build 9 | website/node_modules/ 10 | 11 | # Generated docs 12 | docs/contributing.md 13 | 14 | # We use YARN 15 | website/package-lock.json 16 | 17 | /.idea/ 18 | /website/.docusaurus/ 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /LICENSE.spdx: -------------------------------------------------------------------------------- 1 | SPDXVersion: SPDX-2.0 2 | DataLicense: CC0-1.0 3 | Creator: FINOS 4 | PackageName: finos/devops-automation 5 | PackageOriginator: FINOS 6 | PackageHomePage: https://github.com/finos/devops-automation 7 | PackageLicenseDeclared: Apache-2.0 8 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | DevOps Automation SIG - FINOS 2 | Copyright 2023 - 2023 FINOS legal@finos.org 3 | 4 | This product includes software developed at the Fintech Open Source Foundation (https://www.finos.org/). 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # DevOps Automation Special Interest Group 4 | 5 | ## What is DevOps Automation? 6 | 7 | FINOS DevOps Automation Special Interest Group aims to solve common engineering problems by providing a continuous compliance and assurance approach to DevOps that mutually benefits banks, auditors and regulators whilst accelerating DevOps adoption in engineering and FinTech IT departments. 8 | 9 | ## What are the objectives of DevOps Automation? 10 | 11 | To unite SMEs from across FINOS members to help solve the industry's challenges as they relate to continuous automation and the related audit and regulatory compliance. Often seen as an inhibitor of productivity, we see automation of our DevOps practices provides an opportunity to drive automated compliance that help facilitate reduced delivery timelines and increased productivity. The DevOps Automation SIG has formed a number of Working Groups which focus on innovating collaborative solutions to the benefit of all our members. 12 | 13 | ## How do we work? 14 | 15 | The DevOps Automation SIG has formed several Working Groups to focus on key themes for the financial industry. You can see details of the active working groups, how they operate and how you can get involved [here](docs/working-groups). 16 | 17 | If you have a problem you would like the SIG to look at addressing, raise it as a [GitHub Issue](https://github.com/finos-labs/devops-mutualization/issues). 18 | 19 | If you would like to get involved in a specific working group, check out that working groups page to see how to contribute. 20 | 21 | 22 | ## Mailing List 23 | 24 | All SIG related communications are conducted through the devops-automation@finos.org mailing list. Email devops-automation@finos.org with questions or suggestions for collaboration use cases. 25 | 26 | Subscribe to the DevOps Automation mailing list by sending an email to [devops-automation+subscribe@finos.org](mailto:devops-automation+subscribe@finos.org?subject=Subscribe). 27 | 28 | ## SIG Discussions 29 | 30 | DevOps Automation uses [GitHub Team Discussions](https://odp.finos.org/docs/project-collaboration#github-team-discussions) for SIG wide discussions that are only visible to members of the [FINOS GitHub Organisation](https://github.com/orgs/finos/people), with optional `private` discussions available to those who are part of the [devops-automation-participants](https://github.com/orgs/finos/teams/devops-automation-participants/) team. 31 | 32 | Find out [How to Join DevOps Automation SIG Discussions](https://github.com/finos/devops-automation/blob/master/docs/Discussions.md) or continue to the [devops-automation-participants](https://github.com/orgs/finos/teams/devops-automation-participants/) team if you are already a FINOS GitHub Organisation member. 33 | 34 | ## License 35 | 36 | Copyright 2020 Fintech Open Source Foundation 37 | 38 | Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). 39 | 40 | SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) 41 | -------------------------------------------------------------------------------- /docs/about-finos.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: about-finos 3 | title: About FINOS, the Fintech Open Source Foundation 4 | sidebar_position: 5 5 | --- 6 | 7 | The Fintech Open Source Foundation (FINOS) is an independent 501(c)(6) nonprofit organization whose purpose is to accelerate collaboration and innovation in financial services through the adoption of open source software, standards and best practices. 8 | 9 | Read more on https://www.finos.org/about-us 10 | -------------------------------------------------------------------------------- /docs/home.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: home 3 | title: DevOps Automation 4 | hide_title: true 5 | sidebar_position: 1 6 | --- 7 | 8 | import Logo from '/img/devops-automation/logo.svg'; 9 | 10 | 11 |
12 | 13 | ## What is DevOps Automation? 14 | 15 | FINOS DevOps Automation Special Interest Group aims to solve common engineering problems by providing a continuous compliance and assurance approach to DevOps that mutually benefits banks, auditors and regulators whilst accelerating DevOps adoption in engineering and FinTech IT departments. 16 | 17 | ## What are the objectives of DevOps Automation? 18 | To unite SMEs from across FINOS members to help solve industry challenges as they relate to continuous automation and the related audit and regulatory compliance. 19 | 20 | Often seen as an inhibitor of productivity, we see automation of our DevOps practices provides an opportunity to drive automated compliance that help facilitate reduced delivery timelines and increased productivity. 21 | 22 | The DevOps Automation SIG has formed a number of Working Groups which focus on innovating collaborative solutions to the benefit of all our members. 23 | 24 | ## How do we work? 25 | 26 | The DevOps Automation SIG has formed several Working Groups to focus on key themes for the financial industry. You can see details of the active working groups, how they operate and how you can get involved [here](./category/working-groups). 27 | 28 | If you have a problem you would like the SIG to look at addressing, raise it as a [GitHub Issue](https://github.com/finos-labs/devops-mutualization/issues/new/choose). 29 | 30 | ## Mailing List 31 | 32 | All SIG related communications are conducted through the devops-automation@finos.org mailing list. Email devops-automation@finos.org with questions or suggestions for collaboration use cases. 33 | 34 | Subscribe to the DevOps Automation mailing list by sending an email to devops-automation+subscribe@finos.org. 35 | 36 | ## SIG Discussions 37 | 38 | DevOps Automation uses [GitHub Team Discussions](https://odp.finos.org/docs/project-collaboration#github-team-discussions) for SIG wide discussions that are only visible to members of the [FINOS GitHub Organisation](https://github.com/orgs/finos/people), with optional private discussions available to those who are part of the [devops-automation-participants](https://github.com/orgs/finos/teams/devops-automation-participants) team. 39 | 40 | Find out [How to Join DevOps Automation SIG Discussions](https://github.com/finos/devops-mutualization/blob/master/docs/Discussions.md) or continue to the [devops-automation-participants](https://github.com/orgs/finos/teams/devops-automation-participants) team if you are already a FINOS GitHub Organisation member. -------------------------------------------------------------------------------- /docs/working-groups/_category_.yaml: -------------------------------------------------------------------------------- 1 | position: 2 2 | label: 'Working Groups' 3 | link: 4 | type: generated-index 5 | title: Working Groups 6 | description: Each working group is focused on a specific theme of DevOps Automation. Details of each groups key objectives, how to get involved and how to join their meetings are available in the below sections. -------------------------------------------------------------------------------- /docs/working-groups/acm.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: acm 3 | title: Automated Change Management 4 | sidebar_position: 1 5 | --- 6 | 7 | # Automated Change Management Working Group engagement model 8 | 9 | Our community meetings will follow a Lean Coffee pattern. 10 | Because of potential tool restrictions across our community of organizations, we will use Github for all collaboration. 11 | Over time, we will provide updates detailing community activity at each meeting of the FINOS SIG (see [here](https://github.com/finos/devops-automation/issues) for meeting announcements). 12 | 13 | ## Meeting Announcements 14 | 15 | Announcements for working group meetings will be made as issues on the [github issue tracker](https://github.com/finos/devops-automation/issues). 16 | We will follow the same conventions used for the FINOS DevOps Automation SIG meetings. 17 | 18 | ## Meeting Cadence 19 | 20 | To start, we will hold meetings every two weeks, starting the week of June 13, 2023. 21 | Based on community input, we will seek to evolve the meeting cadence to maximize participation within the group as well as with other FINOS workstreams. 22 | 23 | ## Meeting Notes 24 | 25 | Meeting notes will be added as comments to the meeting announcement. 26 | 27 | ## Meeting Agenda 28 | 29 | We believe a regular cadence of real-time in-depth discussions amongst tech leaders will result in acceleration of constructive ideas and actions that advance our clients and the industry. 30 | We will know we have succeeded when attendees contribute to deliverables and provide feedback to improve working group meetings. 31 | 32 | ### Why 33 | 34 | * Provide an opportunity for collaborative discussion and ideas. 35 | * Leverage the experiences and knowledge of tech leaders. 36 | * Foster camaraderie through technical curiosity and geekdom. 37 | * Create artifacts and resources that organizations can use to accelerate their adoption of improved open source supply chain security and compliance practices. 38 | 39 | ### Who 40 | 41 | Open to all practitioners. 42 | 43 | ### How 44 | 45 | * **Size**: Unlimited, but will breakout into smaller groups to promote participation. 46 | * **Format**: Using Lean Coffee ([link1](https://leanchange.org/elements/lean-coffee),[ link2](https://agilecoffee.com/leancoffee/)), we pitch and vote on which topics the group wants to discuss and time-box the discussion. 47 | * **Intent**: Prefix topics with your intention so the group is clear on the proposer's outcome. 48 | 49 | ### What 50 | 51 | Examples of intent (and to prefix your proposed topics): 52 | 53 | * **[inform]** You are simply seeking to inform the group of this item. You may field clarifying questions from the group on your inform, but not seeking further discussion at this time. 54 | * **[ideation]** You are seeking divergent and wide perspectives from this group. In this brainstorming mode, all ideas are accepted, without critical analysis. Clarify whether you’d like to ideate on the problem space or the solution space. 55 | * **[analysis]** You are asking the group to help you poke holes in your idea, plan, etc. 56 | * **[quest]** You are seeking information and responses to a question you have. 57 | 58 | ### Meeting guidelines 59 | 60 | We will start at :05 after, as attendees join. 61 | 62 | * enjoy the music 63 | * join the Leen Coffee meeting issue [here](https://github.com/finos/devops-automation/issues) 64 | * read today's proposed topics in the [project board](https://github.com/orgs/finos/projects/64) 65 | * add your own proposed topics to the list 66 | 67 | ### Schedule 68 | 69 | * Next Meeting is on September 12, 2023 - [devops-automation/issues/134](https://github.com/finos/devops-automation/issues/134) 70 | 71 | ### Agenda 72 | 73 | * 2mn - intro 74 | * 10mn - pitch topics 75 | * 35mn - voted topic discussion 76 | * 5mn - silent readouts, comments / questions via comments in issue 77 | 78 | #### Small group facilitation 79 | 80 | Depending on attendance, we may split out into subgroups to ensure all voices are heard. 81 | We will agree on the room's topic so that attendees may choose according to their interest. 82 | Someone within the group will be responsible for creating an issue, and taking (and posting) notes from the discussion. 83 | 84 | If the topic is completed before time is up, the group may vote on another topic to discuss. 85 | 86 | ## Artifacts 87 | 88 | Any documentation artifacts generated by the group will be organized in the [./docs/autochangemgmt/](https://github.com/finos/devops-automation/blob/main/docs/autochangemgmt/) folder of this repository. 89 | 90 | Contributions are welcome. 91 | See the [./README.md](https://github.com/finos/devops-automation/blob/main/README.md) for licensing and contribution requirements. 92 | -------------------------------------------------------------------------------- /docs/working-groups/archived/_category_.yaml: -------------------------------------------------------------------------------- 1 | position: 4 2 | label: 'Archived Working Groups' 3 | link: 4 | type: generated-index 5 | title: Archived Working Groups -------------------------------------------------------------------------------- /docs/working-groups/archived/aasc.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: aasc 3 | title: Architecture as Code 4 | sidebar_position: 2 5 | --- 6 | 7 | :::info 8 | Architecture as Code has graduated to be it's own project, please visit [calm.finos.org](https://calm.finos.org) for more information. 9 | ::: 10 | 11 | "Architecture as Code" (AasC) aims to devise and manage software architecture via a readable and version-controlled codebase, fostering a robust understanding, efficient development, and seamless maintenance of complex software architectures. 12 | 13 | ## About this Working Group 14 | The Architecture as Code Working Group is a forum for the discussion and coordination of the [Architecture as Code](https://github.com/finos/architecture-as-code) Manifest and its associated projects. The group is open to all interested parties, and we welcome contributions from all members of the community. 15 | 16 | ## Objectives 17 | 18 | ### Maintain the Architecture as Code Manifest 19 | This Working Group is responsible for maintaining the [Common Architecture Language Model](https://github.com/finos/architecture-as-code/tree/main/calm). The manifest is a collection of JSON schemas that defines the structure and content of a system architecture. The manifest is designed to be used as a single source of truth for the architecture of a system. 20 | 21 | The manifest is split into a core schema, the key elements required to define a system architecture, and domains, which are supplementary schemas that provide additional context and capabilities for a specific domain of the architecture such as security, deployment, data, etc. 22 | 23 | For more details on how the manifest is structured, please see the [CALM docs](https://finos.github.io/architecture-as-code/) 24 | 25 | ### Develop Architecture Capabilities 26 | In addition to the manifest, the working group also oversees the development of key capabilities. A capability is the implementation of a key feature to support the architecture community such as: 27 | * Design tools to enable easier generation of AasC specifications 28 | * Translators between the AasC manifest and other formats 29 | * Drift detection tools 30 | * Automated documentation generation 31 | 32 | As this community is still in its infancy we are focusing on a few key capabilities to help evolve the manifest specification. To see what capabilities are currently being developed, to contribute or to propose additional capabilities please visit the [Architecture as Code Repository](https://github.com/finos/architecture-as-code/). 33 | 34 | ### Advocacy 35 | Raise awareness of the benefits and practicalities of Architecture as Code within the wider software development community. By engaging more professionals and organizations with this innovative approach to software design and architecture, we aim to advance the entire industry. 36 | 37 | The Working Group invites those interested in helping define the future of software architecture. Software architects, developers, and DevOps professionals are all welcome to join us as we explore and define the possibilities in software design. 38 | 39 | ## People 40 | The Working Group is organised by . . . 41 | 42 | Yan Tordoff is the Global Head of Architecture at Morgan Stanley, where he has worked in various roles since 2010. 43 | Having ignited his love of coding in the era of ZX Spectrums and Commodore Amigas, Yan went on to study Computer 44 | Science at Cambridge University. From there, he embarked on a technology career in various start-ups and larger 45 | financial institutions where he has been able to apply his hands-on engineering, architectural and transformational 46 | skills over the years. 47 |

48 | As well as his MA from Cambridge, Yan is a Chartered IT Professional and Chartered Engineer. 49 |
50 |

51 | 52 | Matthew Bain leads Architecture, DevOps and Modernization for Securities Finance Technology at Morgan Stanley. He 53 | joined the firm in 2013 and has held various roles across the Institutional Securities Technology division. Matthew 54 | has been interested in computers since he was a child, starting from typing out BASIC programs from computer 55 | magazines on his brothers Acorn Electron and later deciding he knew how to fix his shorting laptop graphics card 56 | with a soldering iron, something that surprisingly worked. 57 |

58 | Matthew studied Computer Science at Durham University and has worked in Technology across the Finance industry for 59 | over 20 years. Matthew is passionate about improving software development practices and driving speed, agility and 60 | resilience through a radical focus on process automation. 61 |
62 | 63 | ## Meetings 64 | Meetings of the working group are held on the fourth Tuesday of each month at 11am Eastern / 16:00 UK, and are open to anyone who would like to participate. 65 | 66 | * [Upcoming Meetings](https://github.com/finos/architecture-as-code/issues?q=is%3Aissue+label%3Ameeting+is%3Aopen) 67 | * [Previous Meetings](https://github.com/finos/architecture-as-code/issues?q=is%3Aissue+is%3Aclosed+label%3Ameeting) 68 | 69 | -------------------------------------------------------------------------------- /docs/working-groups/archived/osssc.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: osssc 3 | title: OSS Supply Chain 4 | sidebar_position: 1 5 | --- 6 | 7 | :::info 8 | The OSS Supply Chain Working Group is no longer active. 9 | ::: 10 | 11 | # OSS Supply Chain Working Group engagement model 12 | 13 | Our community meetings will follow a Lean Coffee pattern. 14 | Because of potential tool restrictions across our community of organizations, we will use Github for all collaboration. 15 | Over time, we will provide updates detailing community activity at each meeting of the FINOS SIG (see [here](https://github.com/finos/devops-automation/issues) for meeting announcements). 16 | 17 | ## Meeting Announcements 18 | 19 | Announcements for working group meetings will be made as issues on the [github issue tracker](https://github.com/finos/devops-automation/issues). 20 | We will follow the same conventions used for the FINOS DevOps Automation SIG meetings. 21 | 22 | ## Meeting Cadence 23 | 24 | To start, we will hold meetings every two weeks, starting the week of June 6, 2023. 25 | Based on community input, we will seek to evolve the meeting cadence to maximize participation within the group as well as with other FINOS workstreams. 26 | 27 | ## Meeting Notes 28 | 29 | Meeting notes will be added as comments to the meeting announcement. 30 | 31 | ## Meeting Agenda 32 | 33 | We believe a regular cadence of real-time in-depth discussions amongst tech leaders will result in acceleration of constructive ideas and actions that advance our clients and the industry. 34 | We will know we have succeeded when attendees contribute to deliverables and provide feedback to improve working group meetings. 35 | 36 | ### Why 37 | 38 | * Provide an opportunity for collaborative discussion and ideas. 39 | * Leverage the experiences and knowledge of tech leaders. 40 | * Foster camaraderie through technical curiosity and geekdom. 41 | * Create artifacts and resources that organizations can use to accelerate their adoption of improved open source supply chain security and compliance practices. 42 | 43 | ### Who 44 | 45 | Open to all practitioners. 46 | 47 | ### How 48 | 49 | * **Size**: Unlimited, but will breakout into smaller groups to promote participation. 50 | * **Format**: Using Lean Coffee ([link1](https://leanchange.org/elements/lean-coffee),[ link2](https://agilecoffee.com/leancoffee/)), we pitch and vote on which topics the group wants to discuss and time-box the discussion. 51 | * **Intent**: Prefix topics with your intention so the group is clear on the proposer's outcome. 52 | 53 | ### What 54 | 55 | Examples of intent (and to prefix your proposed topics): 56 | 57 | * **[inform]** You are simply seeking to inform the group of this item. You may field clarifying questions from the group on your inform, but not seeking further discussion at this time. 58 | * **[ideation]** You are seeking divergent and wide perspectives from this group. In this brainstorming mode, all ideas are accepted, without critical analysis. Clarify whether you’d like to ideate on the problem space or the solution space. 59 | * **[analysis]** You are asking the group to help you poke holes in your idea, plan, etc. 60 | * **[quest]** You are seeking information and responses to a question you have. 61 | 62 | ### Meeting guidelines 63 | 64 | We will start at :05 after, as attendees join. 65 | 66 | * enjoy the music 67 | * join the Leen Coffee meeting issue [here](https://github.com/finos/devops-automation/issues) 68 | * read today's proposed topics in the [project board](https://github.com/orgs/finos/projects/65) 69 | * add your own proposed topics to the list 70 | 71 | ### Agenda 72 | 73 | * 2mn - intro 74 | * 10mn - pitch topics 75 | * 35mn - voted topic discussion 76 | * 5mn - silent readouts, comments / questions via comments in issue 77 | 78 | #### Small group facilitation 79 | 80 | Depending on attendance, we may split out into subgroups to ensure all voices are heard. 81 | We will agree on the room's topic so that attendees may choose according to their interest. 82 | Someone within the group will be responsible for creating an issue, and taking (and posting) notes from the discussion. 83 | 84 | If the topic is completed before time is up, the group may vote on another topic to discuss. 85 | 86 | ## Artifacts 87 | 88 | Any documentation artifacts generated by the group will be organized in the [./docs/osssupplychain/](https://github.com/finos/devops-automation/blob/master/docs/osssupplychain/) folder of this repository. 89 | 90 | Contributions are welcome. 91 | See the [./README.md](https://github.com/finos/devops-automation/blob/master/README.md) for licensing and contribution requirements. 92 | -------------------------------------------------------------------------------- /docs/working-groups/backstage.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: backstage 3 | title: Backstage 4 | sidebar_position: 2 5 | --- 6 | 7 | # Backstage workstream engagement model 8 | 9 | Our community meetings will follow a Lean Coffee pattern. 10 | Because of potential tool restrictions across our community of organizations, we will use Github for all collaboration. 11 | Over time, we will provide updates detailing community activity at each meeting of the FINOS SIG (see [here](https://github.com/finos/devops-automation/issues) for meeting announcements). 12 | 13 | ## Meeting Announcements 14 | 15 | Announcements for workstream meetings will be made as issues on the [github issue tracker](https://github.com/finos/devops-automation/issues). 16 | We will follow the same conventions used for the FINOS DevOps Automation SIG meetings. 17 | 18 | ## Meeting Cadence 19 | 20 | To start, we will hold meetings every two weeks, starting the week of Feb 27, 2023. 21 | Based on community input, we will seek to evolve the meeting cadence to maximize participation within the group as well as with other FINOS workstreams. 22 | 23 | ## Meeting Notes 24 | 25 | Meeting notes will be added as comments to the meeting announcement. 26 | 27 | ## Meeting Agenda 28 | 29 | We believe a regular cadence of real-time in-depth discussions amongst tech leaders will result in acceleration of constructive ideas and actions that advance our clients and the industry. 30 | We will know we have succeeded when attendees contribute to deliverables and provide feedback to improve working group meetings. 31 | 32 | ### Why 33 | 34 | * Provide an opportunity for generative discussion and ideas. 35 | * Leverage the hive mind of tech leaders. 36 | * Foster comradery through technical curiosity and geekdom. 37 | * Create artifacts and resources that organizations can leverage to accelerate their implementation and adoption of Backstage. 38 | 39 | ### Who 40 | 41 | Open to all practitioners. 42 | 43 | ### How 44 | 45 | * **Size**: Unlimited, but will breakout into smaller groups to promote participation. 46 | * **Format**: Using Lean Coffee ([link1](https://leanchange.org/elements/lean-coffee),[ link2](https://agilecoffee.com/leancoffee/)), we pitch and vote on which topics the group wants to discuss and time-box the discussion. 47 | * **Intent**: Prefix topics with your intention so the group is clear on the proposer's outcome. 48 | 49 | ### What 50 | 51 | Examples of intent (and to prefix your proposed topics): 52 | 53 | * **[inform]** You are simply seeking to inform the group of this item. You may field clarifying questions from the group on your inform, but not seeking further discussion at this time. 54 | * **[ideation]** You are seeking divergent and wide perspectives from this group. In this brainstorming mode, all ideas are accepted, without critical analysis. Clarify whether you’d like to ideate on the problem space or the solution space. 55 | * **[analysis]** You are asking the group to help you poke holes in your idea, plan, etc. 56 | * **[quest]** You are seeking information and responses to a question you have. 57 | 58 | ### Meeting guidelines 59 | 60 | We will start at :05 after, as attendees join. 61 | 62 | * enjoy the music 63 | * join the Leen Coffee meeting issue [here](https://github.com/finos/devops-automation/issues) 64 | * read today's proposed topics in the [project board](https://github.com/finos/devops-automation/projects) 65 | * add your own proposed topics to the list 66 | 67 | ### Agenda 68 | 69 | * 2mn - intro 70 | * 10mn - pitch topics 71 | * 35mn - voted topic discussion 72 | * 5mn - silent readouts, comments / questions via comments in issue 73 | 74 | #### Small group facilitation 75 | 76 | Depending on attendance, we may split out into subgroups to ensure all voices are heard. 77 | We will agree on the room's topic so that attendees may choose according to their interest. 78 | Someone within the group will be responsible for creating an issue, and taking (and posting) notes from the discussion. 79 | 80 | If the topic is completed before time is up, the group may vote on another topic to discuss. 81 | 82 | ## Artifacts 83 | 84 | Any documentation artifacts generated by the group will be organized in the [./docs/backstage/](https://github.com/finos/devops-automation/blob/master/docs/backstage/) folder of this repository. 85 | 86 | Contributions are welcome. 87 | See the [./README.md](https://github.com/finos/devops-automation/blob/master/README.md) for licensing and contribution requirements. 88 | -------------------------------------------------------------------------------- /docs/working-groups/eas.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: eas 3 | title: Evolution @ Scale 4 | sidebar_position: 3 5 | --- 6 | 7 | # Evolution at Scale 8 | 9 | Driving the adoption of technologies, patterns and practices with the goal of simplifying how developers can automate mass changes to a large number of code repositories, effectively evolving them all simultaneously. 10 | 11 | ## Vision 12 | 13 | We envision a future where software complexity is continuously and seamlessly managed by intelligent automation; empowering developers to remain focused on delivering new business value. In this world, open source maintainers, security research organizations, product and service vendors and financial institutions collaborate to realize this. Well tested and re-usable building blocks of automation are produced by subject matter experts that can implement security remediations, automate upgrades handling breaking changes, reduce technical debt and more. Above that are systems that can identify where to apply the automation and then distribute the work across source code repositories, making commits and submitting them for review. As a result, system evolution becomes proactive, efficient for all and nearly effortless for some ensuring secure, up-to-date, correct and high performing software everywhere. 14 | 15 | ## Mission 16 | 17 | The Evolution at Scale Working group is a forum for discussion,coordination and collaboration on execution of initiatives and projects. Through education, driving engagement and collaborative innovation .we will enable financial organizations to continuously evolve their systems while at the same time empowering them to focus on delivering what they care about The group is open to all interested parties, and we welcome contributions from all members of the community. 18 | 19 | ### Why Now? 20 | 21 | - Modern software is built on top of a complex web of open-source dependencies and libraries. To mitigate the risk from bad actors, there is a pressing need to secure the software supply chain. 22 | 23 | - There is a need to resolve the same problem across multiple large code bases. As these requirements increase, we need to take a different approach to solve this problem. A new way of thinking supported by modern tools is needed. 24 | 25 | - Improving developer productivity is at the top of everyone’s mind to support more business enablement initiatives. 26 | 27 | ### Potential Objectives 28 | 29 | Our first objective will be to define a further set of forward looking looking objectives aligned with our mission. The details of this will be defined by the members of the working group itself. Some of the objectives that we have considered thus far include the following. 30 | 31 | #### Compare tools that allow developers to evolve and modify code repositories at scale 32 | 33 | There are many solutions on the market that attempt to solve the problem of upgrading at scale, both open source and offered by various vendors. One of the aims of our working group is to provide an objective comparison of these solutions, and to provide guidance on which solutions are best suited for solving which problems. 34 | 35 | #### Share use cases, scenarios and success stories 36 | 37 | To supplement the tool comparison, the working group will be a forum for members and collaborators to share their use cases for needing to perform evolutions at scale across multiple code repositories. Members will also share their success stories to provide guidance and inspiration for others. 38 | 39 | The working group will also present whitepapers on how processes can be modified to support an evolution at scale first model. 40 | 41 | #### Share recipes, scripts and tooling to support evolve at scale 42 | 43 | The working group will create a forum to contribution solutions to common problems in the industry, allowing members to benefit from the expertise of their peers. Contributions can include, but are not limited to, recipes and scripting for existing tools, as well enhancements to open-source solutions. 44 | 45 | #### Advocacy 46 | 47 | Raise awareness of the benefits and practicalities of Evolution at Scale within the wider software development community. By engaging more professionals and organizations with this innovative approach to software design and architecture, we aim to advance the entire industry. 48 | 49 | ## Operating Model 50 | 51 | ### Working Group Lead Maintainers 52 | 53 | At inception the working group will be lead by 54 | 55 | | Name | FINOS Member | GitHub Profile | 56 | | -------------- | -------------- | ------------------------------------------- | 57 | | Miguel Gasca | Morgan Stanley | [@mgasca](http://github.com/mgasca) | 58 | | Khalid Elsawaf | Morgan Stanley | [@masterkhal](http://github.com/masterkhal) | 59 | 60 | The Working group extends an open invitation to anyone interested in helping to define how large-scale evolution can be done in an automated fashion going forward. 61 | 62 | ### Meetings 63 | 64 | Meetings of the working group are held biweekly on Wednesdays at noon Eastern / 17:00 UK, and are open to anyone who would like to participate. We will follow the standard used in DevOps Automation SIG where every meeting and it's agenda will be announced, documented and tracked via GitHub issues using a standard template. We will meet on zoom using the standard DevOps Automation SIG details, which will be posted on every meeting issue posted. 65 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | ignore = "/bin/false" -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "devops-automation", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": {} 6 | } 7 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:base" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /website/.npmrc: -------------------------------------------------------------------------------- 1 | legacy-peer-deps=true 2 | -------------------------------------------------------------------------------- /website/README.md: -------------------------------------------------------------------------------- 1 | # FINOS DevOps Automation Website 2 | 3 | This website is built using [Docusaurus 3.7.0](https://docusaurus.io/), a modern static website generator. 4 | 5 | In order to start working with Docusaurus, please read the [Getting Started guide](https://docusaurus.io/docs/installation) and browse through the following folders and files: 6 | - `website` - contains the Node/React code to build the website 7 | - `website/docusaurus.config.js` - contains the Docusaurus configuration; you'll need to edit this file. 8 | - `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:///file.pdf`. 9 | - `docs` - contains the `.md` and `.mdx` files that are served as `https:///` ; the `file_id` is defined at the top of the file. 10 | 11 | ## Installation 12 | 13 | ```console 14 | npm install 15 | ``` 16 | 17 | ## Local Development 18 | 19 | ```console 20 | npm run start 21 | ``` 22 | 23 | This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. 24 | 25 | ## Build 26 | 27 | ```console 28 | npm run build 29 | ``` 30 | 31 | This command generates static content into the `build` directory and can be served using any static contents hosting service. 32 | 33 | ## Deployment 34 | 35 | [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/). 36 | 37 | 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: 38 | - Working directory: `website` 39 | - Build command: `npm run build` 40 | - Build directory: `website/build` 41 | 42 | If you want to serve your website through `https://.finos.org`, please email [help@finos.org](mailto:help@finos.org). To check a preview, visit https://project-blueprint.finos.org . 43 | 44 | -------------------------------------------------------------------------------- /website/docusaurus.config.js: -------------------------------------------------------------------------------- 1 | // Docs at https://docusaurus.io/docs/configuration 2 | 3 | // Replace 'project-blueprint' with {project name} 4 | const projectName = 'DevOps Automation' 5 | // Replace 'project-blueprint' with {project name} 6 | const projectSlug = 'devops-automation' 7 | // Replace 'FINOS' with {name of copyright owner} 8 | const copyrightOwner = 'FINOS' 9 | 10 | /** @type {import('@docusaurus/types').Config} */ 11 | const config = { 12 | title: `FINOS ${projectName}`, 13 | tagline: `Special Interest Group`, 14 | url: 'https://devops.finos.org', 15 | baseUrl: '/', 16 | favicon: 'img/favicon/favicon-finos.ico', 17 | projectName: `FINOS ${projectName}`, 18 | organizationName: 'FINOS', 19 | customFields: { 20 | repoUrl: `https://github.com/finos/${projectSlug}`, 21 | }, 22 | scripts: ['https://buttons.github.io/buttons.js'], 23 | stylesheets: ['https://fonts.googleapis.com/css?family=Overpass:400,400i,700'], 24 | 25 | /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ 26 | themeConfig: { 27 | navbar: { 28 | logo: { 29 | alt: 'FINOS DevOps Automation Logo', 30 | src: 'img/devops-automation/logo-wht.svg', 31 | }, 32 | items: [ 33 | {to: 'docs/home', label: 'Docs', position: 'right'}, 34 | {to: 'https://github.com/orgs/finos/teams/devops-automation-maintainers', label: 'Team', position: 'right'}, 35 | { 36 | href: 'https://github.com/finos/devops-automation', 37 | label: 'GitHub', 38 | position: 'right', 39 | } 40 | ], 41 | }, 42 | footer: { 43 | copyright: `Copyright ${new Date().getFullYear()} ${projectName} - ${copyrightOwner}`, 44 | logo: { 45 | alt: 'FINOS Logo', 46 | src: 'img/favicon/favicon-finos.ico', 47 | href: 'https://finos.org' 48 | }, 49 | links: [ 50 | { 51 | title: 'Docs', 52 | items: [ 53 | { 54 | label: 'Getting Started', 55 | to: 'docs/home', 56 | }, 57 | { 58 | label: 'Team', 59 | to: 'https://github.com/orgs/finos/teams/devops-automation-maintainers', 60 | }, 61 | { 62 | label: 'About FINOS', 63 | to: 'docs/about-finos', 64 | } 65 | ] 66 | }, 67 | { 68 | title: 'FINOS', 69 | items: [ 70 | { 71 | label: 'FINOS Website', 72 | to: 'https://www.finos.org/', 73 | }, 74 | { 75 | label: 'Community Handbook', 76 | to: 'https://community.finos.org/', 77 | }, 78 | { 79 | label: 'Community Governance', 80 | to: 'https://community.finos.org/docs/governance/#community-governance', 81 | } 82 | ] 83 | }, 84 | { 85 | title: 'About FINOS', 86 | items: [ 87 | { 88 | label: 'FINOS Projects on GitHub', 89 | to: 'https://github.com/finos', 90 | }, 91 | { 92 | label: 'Engage the FINOS Community', 93 | to: 'https://www.finos.org/engage-with-our-community', 94 | }, 95 | { 96 | label: 'FINOS News and Events', 97 | to: 'https://www.finos.org/news-and-events', 98 | } 99 | ] 100 | }, 101 | ] 102 | }, 103 | colorMode: { 104 | defaultMode: 'light', 105 | disableSwitch: true, 106 | respectPrefersColorScheme: false 107 | }, 108 | prism: { 109 | theme: require('prism-react-renderer').themes.github, 110 | } 111 | }, 112 | presets: [ 113 | [ 114 | '@docusaurus/preset-classic', 115 | { 116 | docs: { 117 | path: '../docs', 118 | editUrl: 119 | 'https://github.com/finos/devops-automation/edit/master/website/', 120 | }, 121 | theme: { 122 | customCss: require.resolve('./src/css/custom.css'), 123 | } 124 | } 125 | ] 126 | ] 127 | }; 128 | 129 | module.exports = config; 130 | -------------------------------------------------------------------------------- /website/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "finos-devops-automation-website", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "docusaurus": "docusaurus", 7 | "deploy": "docusaurus deploy", 8 | "serve": "docusaurus serve", 9 | "clear": "docusaurus clear", 10 | "start": "docusaurus start", 11 | "swizzle": "docusaurus swizzle", 12 | "build": "docusaurus build", 13 | "publish-gh-pages": "docusaurus deploy" 14 | }, 15 | "dependencies": { 16 | "@docusaurus/core": "^3.7.0", 17 | "@docusaurus/preset-classic": "^3.7.0", 18 | "@mdx-js/react": "^3.0.0", 19 | "clsx": "^2.0.0", 20 | "prism-react-renderer": "^2.3.1", 21 | "react": "^19.0.0", 22 | "react-dom": "^19.0.0" 23 | }, 24 | "devDependencies": { 25 | "@docusaurus/module-type-aliases": "^3.7.0", 26 | "@docusaurus/types": "^3.7.0" 27 | }, 28 | "browserslist": { 29 | "production": [ 30 | ">0.5%", 31 | "not dead", 32 | "not op_mini all" 33 | ], 34 | "development": [ 35 | "last 1 chrome version", 36 | "last 1 firefox version", 37 | "last 1 safari version" 38 | ] 39 | }, 40 | "engines": { 41 | "node": ">=18.0" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /website/src/components/feature-config.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export const features = [ 4 | { 5 | title: <>What are the objectives of DevOps Automation?, 6 | description: ( 7 | <>To unite SMEs from across FINOS members to help solve the industry's challenges as they relate to 8 | continuous automation and the related audit and regulatory compliance. Often seen as an inhibitor of 9 | productivity, we see automation of our DevOps practices provides an opportunity to drive automated 10 | compliance that help facilitate reduced delivery timelines and increased productivity. 11 | 12 | The DevOps Automation SIG has formed a number of Working Groups which focus on innovating collaborative 13 | solutions to the benefit of all our members. 14 | ), 15 | about: { 16 | title: <>Placeholder Link, 17 | link: 'docs' 18 | }, 19 | project: { 20 | title: '', 21 | link: '' 22 | }, 23 | involved: { 24 | title: '', 25 | link: '' 26 | } 27 | } 28 | ]; 29 | -------------------------------------------------------------------------------- /website/src/components/feature.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import clsx from 'clsx'; 3 | import styles from '../pages/styles.module.css'; 4 | 5 | export default function Feature({title, description}) { 6 | var defined = function (property) { 7 | return typeof property !== 'undefined'; 8 | }; 9 | 10 | return ( 11 |
12 |

{title}

13 |
{description}
14 |
15 | ); 16 | } -------------------------------------------------------------------------------- /website/src/components/featuresTwo-config.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export const featuresTwo = [ 4 | { 5 | title: ( 6 | <> 7 | Automated Change Management 8 | 9 | ), 10 | description: ( 11 | <> 12 | Drive continuous compliance and assurance of software changes within the 13 | Finance Industry through automated change management and associated 14 | practices 15 | 16 | ), 17 | }, 18 | { 19 | title: ( 20 | <> 21 | Backstage 22 | 23 | ), 24 | description: ( 25 | <> 26 | Driving adoption of the open platform for developer portals and building 27 | integrations crucial for the FinTech industry. 28 | 29 | ), 30 | }, 31 | { 32 | title: ( 33 | <> 34 | Evolution @ Scale 35 | 36 | ), 37 | description: ( 38 | <> 39 | Driving the adoption of technologies, patterns and practices with the 40 | goal of simplifying how developers can automate mass changes to a large 41 | number of code repositories. 42 | 43 | ), 44 | }, 45 | ]; 46 | -------------------------------------------------------------------------------- /website/src/components/featuresTwo.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import clsx from 'clsx'; 3 | import styles from '../pages/styles.module.css'; 4 | 5 | export default function FeaturesTwo({title, description}) { 6 | return ( 7 |
8 |

{title}

9 |
10 | {description} 11 |
12 |
13 | ); 14 | } -------------------------------------------------------------------------------- /website/src/css/custom.css: -------------------------------------------------------------------------------- 1 | /* stylelint-disable docusaurus/copyright-header */ 2 | /** 3 | * Any CSS included here will be global. The classic template 4 | * bundles Infima by default. Infima is a CSS framework designed to 5 | * work well for content-centric websites. 6 | */ 7 | 8 | /* You can override the default Infima variables here. */ 9 | :root { 10 | --ifm-color-primary: #00b5e2; 11 | --ifm-color-primary-dark: #0079ac; 12 | --ifm-color-primary-darker: #0072a2; 13 | --ifm-color-primary-darkest: #005e86; 14 | --ifm-color-primary-light: #0093d2; 15 | --ifm-color-primary-lighter: #009adc; 16 | --ifm-color-primary-lightest: #00aef8; 17 | --ifm-font-color-base: #1C1E21; 18 | --ifm-heading-color: #19B6CC; 19 | --ifm-navbar-background-color: #0086BF; 20 | --ifm-navbar-link-color: #FFFFFF; 21 | --ifm-navbar-shadow: 0; 22 | --ifm-footer-background-color: #0086BF; 23 | --ifm-footer-title-color: #ffffff; 24 | --ifm-footer-color: #ffffff; 25 | --ifm-footer-link-color: #ffffff; 26 | --ifm-code-font-size: 95%; 27 | } 28 | 29 | .navbar__items { 30 | color: #ffffff; 31 | } 32 | 33 | .docusaurus-highlight-code-line { 34 | background-color: #0033A0; 35 | display: block; 36 | margin: 0 calc(-1 * var(--ifm-pre-padding)); 37 | padding: 0 var(--ifm-pre-padding); 38 | } 39 | 40 | .hero.hero--primary { 41 | background-color: #ffffff; 42 | background-repeat: no-repeat; 43 | background-size: cover; 44 | } 45 | 46 | .hero.hero--primary img { 47 | margin-bottom: 30px; 48 | width: 50%; 49 | } 50 | 51 | .hero__title { 52 | color: #29327A; 53 | } 54 | 55 | .hero--subtitle { 56 | margin-bottom: 50px; 57 | font-size: 1.5rem; 58 | color: #005e86; 59 | } 60 | 61 | .row h2 { 62 | margin-bottom: 30px; 63 | } 64 | 65 | .button.button--secondary { 66 | color: white; 67 | } 68 | 69 | .button.button--secondary.button--outline:not(.button--active):not(:hover) { 70 | color: #005e86; 71 | } 72 | 73 | .row--center h2 { 74 | color: #29327A; 75 | font-size: 35px; 76 | font-weight: bolder; 77 | text-align: center; 78 | margin-left: 0; 79 | margin-right: 0; 80 | width: 100%; 81 | } 82 | 83 | span { 84 | color: var(#ffffff); 85 | } 86 | 87 | body { 88 | font-family: 'Overpass', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, 89 | sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; 90 | } 91 | 92 | .padding { 93 | margin-top: 25px; 94 | margin-bottom: 25px; 95 | } 96 | 97 | .working-group--title { 98 | font-size: 35px; 99 | font-weight: bold; 100 | text-align: center; 101 | color: #0079ac; 102 | } 103 | -------------------------------------------------------------------------------- /website/src/pages/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import clsx from 'clsx'; 3 | import Layout from '@theme/Layout'; 4 | import Link from '@docusaurus/Link'; 5 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 6 | import styles from './styles.module.css'; 7 | import Feature from '../components/feature'; 8 | import {features} from '../components/feature-config'; 9 | import FeaturesTwo from '../components/featuresTwo'; 10 | import {featuresTwo} from '../components/featuresTwo-config'; 11 | 12 | export default function Home() { 13 | const {siteConfig} = useDocusaurusContext(); 14 | return ( 15 | 18 |
19 |
20 |

Logo

21 |

FINOS DevOps Automation Special Interest Group aims to 22 | solve common engineering problems by providing a continuous compliance and assurance approach to 23 | DevOps that mutually benefits banks, auditors and regulators whilst accelerating DevOps adoption 24 | in engineering and FinTech IT departments.

25 |
26 | 32 | SUBSCRIBE 33 | 34 |
35 |
36 |
37 |
38 | {features && features.length > 0 && ( 39 |
40 |
41 |
42 | {features.map((props, idx) => ( 43 | 44 | ))} 45 |
46 |
47 |
48 | )} 49 | {featuresTwo && featuresTwo.length > 0 && ( 50 |
51 |
52 |
53 |

Working Groups

54 |
55 |
56 |

57 |
58 |
59 | {featuresTwo.map((props, idx) => ( 60 | 61 | ))} 62 |
63 |
64 |
65 | )} 66 |
67 |
68 | ); 69 | } 70 | -------------------------------------------------------------------------------- /website/src/pages/styles.module.css: -------------------------------------------------------------------------------- 1 | /* stylelint-disable docusaurus/copyright-header */ 2 | /** 3 | * CSS files with the .module.css suffix will be treated as CSS modules 4 | * and scoped locally. 5 | */ 6 | 7 | .heroBanner { 8 | padding: 4rem 0; 9 | text-align: center; 10 | position: relative; 11 | overflow: hidden; 12 | background-repeat: no-repeat; 13 | background-size: cover; 14 | } 15 | 16 | @media screen and (max-width: 966px) { 17 | .heroBanner { 18 | padding: 2rem; 19 | } 20 | } 21 | 22 | .buttons { 23 | display: flex; 24 | align-items: center; 25 | justify-content: center; 26 | } 27 | 28 | .getStarted { 29 | margin: 0em .5em 0em .5em; 30 | } 31 | 32 | .features { 33 | display: flex; 34 | align-items: center; 35 | padding: 2rem 0; 36 | width: 100%; 37 | background-color: #005e86; 38 | } 39 | 40 | .featuresCTA{ 41 | text-align: center; 42 | } 43 | 44 | .featuresCTA ul{ 45 | display: inline-block; 46 | padding: 0 20% 0 20%; 47 | list-style: none; 48 | margin-bottom: 5px; 49 | } 50 | 51 | .featuresCTA li::before{ 52 | content: "\2022"; 53 | display: inline-block; 54 | width: 2em; 55 | margin-left: -2em; 56 | color: var(--ifm-link-color); 57 | } 58 | 59 | .featureCTA{ 60 | text-align: center; 61 | } 62 | 63 | .featureCTA ul{ 64 | display: inline-block; 65 | padding: 0 10% 0 10%; 66 | list-style: none; 67 | margin-bottom: 5px; 68 | } 69 | 70 | .featureCTA li::before{ 71 | content: "\2022"; 72 | display: inline-block; 73 | width: 2em; 74 | margin-left: -2em; 75 | color: var(--ifm-link-color); 76 | } 77 | 78 | .featureImage { 79 | height: 175px; 80 | width: 100px; 81 | padding-bottom: 30px; 82 | } 83 | 84 | .memberImage { 85 | height: 250px; 86 | width: 250px; 87 | } 88 | 89 | .projectImage { 90 | height: 250px; 91 | width: 150px; 92 | } 93 | 94 | .row--center h2{ 95 | color: #ffffff; 96 | font-size: 16px; 97 | text-align: center; 98 | } 99 | 100 | .hero.hero--primary { 101 | background-color: #00b5e2; 102 | background-repeat: no-repeat; 103 | background-size: cover; 104 | } 105 | 106 | .members { 107 | background-image: linear-gradient(to bottom, rgba(163,215,212,0.2), rgba(25,182,204,0.2)); 108 | background-repeat: no-repeat; 109 | background-size: cover; 110 | padding: 74px 0; 111 | } 112 | 113 | .projects { 114 | padding: 74px 0; 115 | background-color: #ffffff; 116 | } 117 | 118 | .featureAbout { 119 | color: white; 120 | } -------------------------------------------------------------------------------- /website/src/theme/Bio/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './styles.module.css' 3 | 4 | 5 | export default ({children, image, name, organisation}) => { 6 | return
7 | {name} 8 |
9 |

{name} - {organisation}

10 |
11 | {children} 12 |
13 |
14 |
15 | } -------------------------------------------------------------------------------- /website/src/theme/Bio/styles.module.css: -------------------------------------------------------------------------------- 1 | .bio { 2 | display: flex; 3 | padding-bottom: 1rem; 4 | align-items: center; 5 | } 6 | 7 | .description p { 8 | margin: revert; 9 | } 10 | 11 | .headshot { 12 | width: 10rem; 13 | border-radius: 50%; 14 | padding: 1rem; 15 | } -------------------------------------------------------------------------------- /website/src/theme/MDXComponents/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import MDXComponents from '@theme-original/MDXComponents'; 3 | import Bio from '../Bio'; 4 | 5 | export default { 6 | ...MDXComponents, 7 | Bio: Bio, 8 | }; -------------------------------------------------------------------------------- /website/static/css/custom.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2017-present, Facebook, Inc. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | /* your custom css */ 9 | 10 | @media only screen and (min-device-width: 360px) and (max-device-width: 736px) { 11 | } 12 | 13 | @media only screen and (min-width: 1024px) { 14 | } 15 | 16 | @media only screen and (max-width: 1023px) { 17 | } 18 | 19 | @media only screen and (min-width: 1400px) { 20 | } 21 | 22 | @media only screen and (min-width: 1500px) { 23 | } 24 | 25 | header.postHeader:empty { 26 | display: none; 27 | } 28 | 29 | header.postHeader:empty + article h1 { 30 | margin-top: 0; 31 | } 32 | 33 | .imageAlignTop .blockImage { 34 | max-width: 220px; 35 | } 36 | 37 | .productShowcaseSection .logos img { 38 | width: 200px; 39 | } 40 | 41 | .showcaseSection .logos img { 42 | width: 250px; 43 | } 44 | 45 | .showcase { 46 | align-items: center; 47 | display: flex; 48 | flex-flow: row wrap; 49 | justify-content: center; 50 | padding: 20px; 51 | } 52 | 53 | .showcase img { 54 | width: 250px; 55 | max-height: 150px; 56 | padding-left: 15px; 57 | padding-right: 15px; 58 | } 59 | 60 | .finos { 61 | padding-top: 30px; /* CHANGED 14 MAY 2019 */ 62 | padding-bottom: 30px; 63 | text-align: center; 64 | } 65 | 66 | .projectShowcase p { 67 | max-width: 60%; 68 | } 69 | 70 | /* CSS added 14 May 2019 */ 71 | 72 | .navigationSlider .slidingNav ul { 73 | /* DO NOT CHANGE - THIS IS THE NAVIGATION BACKGROUND - SHOULD STAY FINOS BLUE */ 74 | box-sizing: border-box; 75 | color: #fff; 76 | display: flex; 77 | flex-wrap: nowrap; 78 | list-style: none; 79 | padding: 0; 80 | width: 100%; 81 | } 82 | 83 | .navigationSlider .slidingNav ul li a:hover { 84 | background: #0033A0; /* DO NOT CHANGE - THIS IS THE NAVIGATION BACKGROUND - SHOULD STAY FINOS BLUE */ 85 | 86 | } 87 | 88 | body { 89 | color: #333333; 90 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, 91 | sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; 92 | font-size: 16px; 93 | line-height: 1.5; 94 | -ms-text-size-adjust: 100%; 95 | -webkit-text-size-adjust: 100%; 96 | word-wrap: break-word; 97 | } 98 | 99 | .inner img{ 100 | width: 25%; 101 | } 102 | 103 | .homeContainer { 104 | background-repeat: no-repeat; 105 | background-size: cover; 106 | background-color: #00b5e2; /* CHANGE THIS TO PRIMARY PROJECT COLOR */ 107 | } 108 | 109 | .homeContainer h2{ 110 | color: #ffffff; 111 | } 112 | 113 | .homeContainer a{ 114 | color: #ffffff; 115 | } 116 | 117 | .button { 118 | border: 1px solid #ffffff; 119 | } 120 | 121 | .mainContainer { 122 | padding: 40 0; 123 | } 124 | 125 | .blockImage img{ 126 | fill: #ffffff; 127 | } 128 | 129 | .blockContent h2{ 130 | color: #0086bf; /* DO NOT CHANGE - THIS IS THE TITLE UNDER THE ICONS IN THE 3RD BLOCK - SHOULD STAY FINOS BLUE */ 131 | } 132 | 133 | .featureShowcaseSection .logos img { 134 | width: 200px; 135 | 136 | } 137 | 138 | .featureShowcaseSection h2{ 139 | color: #00b5e2; /* CHANGE THIS TO PRIMARY PROJECT COLOR */ 140 | font-size: 30px; 141 | } 142 | 143 | .featureShowcaseSection { 144 | background-color: #F7F7F7; /* CHANGE THIS TO PRIMARY PROJECT COLOR */ 145 | padding-top: 10px; 146 | padding-bottom: 40px; 147 | } 148 | 149 | .surveyBanner { 150 | background-color: #F7F7F7; /* CHANGE THIS TO PRIMARY PROJECT COLOR */ 151 | padding-top: 10px; 152 | padding-bottom: 40px; 153 | display: inline-flex; 154 | flex-wrap: nowrap; 155 | width: 100%; 156 | padding: 20px; 157 | } 158 | 159 | .CTA-image { 160 | width: 200px; 161 | flex: none; 162 | } 163 | 164 | .productShowcaseSection h2{ 165 | color: #0033A0; /* CHANGE THIS TO PRIMARY PROJECT COLOR */ 166 | } 167 | 168 | .finosBanner { 169 | background-color: #0086bf; /* DO NOT CHANGE - THIS IS THE FINOS BANNER BACKGROUND - SHOULD STAY FINOS BLUE */ 170 | margin: 0 auto; 171 | padding: 0 0; 172 | } 173 | 174 | .finosBanner h2{ 175 | color: #ffffff; 176 | font-size: 16px; 177 | } 178 | 179 | article p img,FeatureCallout 180 | article iframe { 181 | display: block; 182 | margin-left: auto; 183 | margin-right: auto; 184 | max-width: 50%; 185 | } 186 | 187 | .nav-footer { 188 | background-color: #383939; 189 | } 190 | 191 | .nav-footer .sitemap{ 192 | margin: 0 auto 1em; 193 | } 194 | 195 | .row--center h2{ 196 | color: #ffffff; 197 | font-size: 16px; 198 | text-align: center; 199 | } -------------------------------------------------------------------------------- /website/static/img/devops-automation/logo-blk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 47 | 72 | 80 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /website/static/img/devops-automation/logo-wht.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 47 | 72 | 80 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /website/static/img/devops-automation/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 48 | 73 | 81 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /website/static/img/favicon/favicon-finos.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/devops-automation/0e2dc376a5fe3f59be2c18e2928cbd6e0331bf4f/website/static/img/favicon/favicon-finos.ico -------------------------------------------------------------------------------- /website/static/img/finos/finos-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/devops-automation/0e2dc376a5fe3f59be2c18e2928cbd6e0331bf4f/website/static/img/finos/finos-blue.png -------------------------------------------------------------------------------- /website/static/img/finos/finos-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/devops-automation/0e2dc376a5fe3f59be2c18e2928cbd6e0331bf4f/website/static/img/finos/finos-white.png -------------------------------------------------------------------------------- /website/static/img/finos/finos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/devops-automation/0e2dc376a5fe3f59be2c18e2928cbd6e0331bf4f/website/static/img/finos/finos.png -------------------------------------------------------------------------------- /website/static/img/vendors/github-800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/devops-automation/0e2dc376a5fe3f59be2c18e2928cbd6e0331bf4f/website/static/img/vendors/github-800.png -------------------------------------------------------------------------------- /website/static/img/vendors/github-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/devops-automation/0e2dc376a5fe3f59be2c18e2928cbd6e0331bf4f/website/static/img/vendors/github-logo.png -------------------------------------------------------------------------------- /website/static/img/vendors/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/finos/devops-automation/0e2dc376a5fe3f59be2c18e2928cbd6e0331bf4f/website/static/img/vendors/github.png --------------------------------------------------------------------------------