Comments (2)
Alright, quick update on the git pull
and git push
using the user's session. A few things:
We currently have:
GitConfigDataSource
, which is a data source for configuration files, meaning list of projects, and CI configGitHubSource
, the connection to GitHub, GitHub specific, used to report build status, list repos, etc.
We need a new class that does the git
overhead, around auth, error handling, managing of repos, etc. What I was thinking, having a GitHelper
class, that does it. As part of each method call, we require the user of the class to pass a valid GitHub session. The class also verifies that we only work with https://
URLs just to unify the whole thing.
The user of the method call can decide:
- Was it a user action? If yes, they're gonna pass the user's auth token, so their face is gonna appear (e.g. https://github.com/KrauseFx/ci-config/commit/d5db054433552b1a82cfed8c913d67d6d6e320b8)
- Was it not triggered by being on the CI front-end by a user? (e.g. scheduled job, triggered by a commit, triggered by time)? We're gonna need a fastlane.ci user, so that not a user session is being used.
I started looking into how git auth works for temporary pulls and pushes, and it seems like there is no good built-in way to contain the whole thing. Will consult with some of my friends who know more about git.
It's tricky to pass the credentials, without affecting the whole system, and not leaking the data anywhere (build output, error case, etc.)
Open TODOs
- The things above
- When and how do we authenticate the CI itself for the second kind of git commits? Where and how do we store the login?
from ci.
Moved to #33
from ci.
Related Issues (20)
- Unable to add new projects: Invalid Lane Name HOT 7
- Build logs formatting HOT 2
- Project Settings Dialog HOT 1
- fastlane.ci: command not found HOT 2
- Crash on startup after pulling master HOT 3
- Link to build output uses old _erb template
- Think about security threat model for the GH API token more HOT 5
- Stub out the dot keys access globally for all rspec tests HOT 1
- Each project should define a default branch HOT 1
- Support for application specific password for iTunes Transporter HOT 1
- Fix tests that broke recently
- Exposing the GIT_BRANCH ENV variable won't work if user builds specific SHA HOT 1
- update websocket client for builds. HOT 2
- Vagrant provisioning failure HOT 1
- Remove the "no_platform" from the dropdown when adding a new project HOT 2
- Build details should show the build status HOT 1
- New projects should always have a manual trigger HOT 2
- docker deployment 502 under nginx proxy HOT 1
- Initial Run Problem: "can't find executable foreman for gem foreman." HOT 2
- Blank page after bundle exec rake dev
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ci.